31 lines
		
	
	
		
			602 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			602 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
class Theme {
 | 
						|
  constructor(quill, options) {
 | 
						|
    this.quill = quill;
 | 
						|
    this.options = options;
 | 
						|
    this.modules = {};
 | 
						|
  }
 | 
						|
 | 
						|
  init() {
 | 
						|
    Object.keys(this.options.modules).forEach((name) => {
 | 
						|
      if (this.modules[name] == null) {
 | 
						|
        this.addModule(name);
 | 
						|
      }
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  addModule(name) {
 | 
						|
    let moduleClass = this.quill.constructor.import(`modules/${name}`);
 | 
						|
    this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});
 | 
						|
    return this.modules[name];
 | 
						|
  }
 | 
						|
}
 | 
						|
Theme.DEFAULTS = {
 | 
						|
  modules: {}
 | 
						|
};
 | 
						|
Theme.themes = {
 | 
						|
  'default': Theme
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
export default Theme;
 |