theme.js 602 B

123456789101112131415161718192021222324252627282930
  1. class Theme {
  2. constructor(quill, options) {
  3. this.quill = quill;
  4. this.options = options;
  5. this.modules = {};
  6. }
  7. init() {
  8. Object.keys(this.options.modules).forEach((name) => {
  9. if (this.modules[name] == null) {
  10. this.addModule(name);
  11. }
  12. });
  13. }
  14. addModule(name) {
  15. let moduleClass = this.quill.constructor.import(`modules/${name}`);
  16. this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});
  17. return this.modules[name];
  18. }
  19. }
  20. Theme.DEFAULTS = {
  21. modules: {}
  22. };
  23. Theme.themes = {
  24. 'default': Theme
  25. };
  26. export default Theme;