* Abstract Module class
Now all modules inherits from `Module` class. You don’t need more to
write
```js
constructor({ config }) {
this.Editor = null;
this.config = config;
}
```
and
```js
/**
* @param Editor
* @param Editor.modules {@link CodexEditor#moduleInstances}
* @param Editor.config {@link CodexEditor#configuration}
*/
set state(Editor) {
this.Editor = Editor;
}
```
## Default exports improved
Now you don’t need more to write `.default` on module requiring
```js
let module = require(‘module’).default;
```
* Update docs
* Autoloading improved, utilities now global
# Autoloading
Webpack специально не дает использовать переменные в реквайрах типа:
let moduleName = 'toolbar.js';
let module = require(moduleName);
У нас в автолоадинге было так:
let modules = editorModules.map( module =>
require('./components/modules/' + module ));
и это работало, но не так как нужно. Он подключал не только нужные
модули из массива editorModules, а вообще все модули из папки
components/modules. Я заметил, что они попадают в сборку, хоть и не
указаны в реквайрах. Оказывается это так и задумано: Webpack на этапе
компиляции не знает что будет в переменной, то есть какой там будет
модуль. А ему нужно высчитать время компиляции, поэтому он вкладывет в
сброрку тупо все файлы из этой папки, и для каждого высчитывает время.
Так что по сути это было то же самое что просто написать
require('./components/modules/') и подключить все файлы.
Но наш автолоадер должен был подключать только указанные файлы, не
заходить в подпапки и не включать файлы, начинающиеся с подчеркивания.
Теперь автолоадинг работает так, как и задумывалось.
# Global visible modules
Теперь не нужно в каждом файле писать
import $ from '../dom';
и тд. Они автоматически будут доступны внутри модулей
* Update util.Dom
* Remove duplicated Babel helpers. Now it will be defined at once
* Improve AJAX context saving
Value returned in beforeSend method now will be passed as context to
the Error, Success and Progress events
* resolve conflict
* callbacks module refactored and added description to each method.
Now all methods have descriptions and documented as JSDoc style
* increase version
* refactored ui
* raw plugin added
* Try to paste raw html to raw plugin
* insert text/plain to native area instead of contenteditable element
* styles updated
* rename variable
* fixed raw backspace click handler
* paste code
* Replace mask with two svg icons
* Toolbox leaf fix
* Remove data in example.html
* Toolbar and caret behavior improvments
* upd
* Upd
* new bundle due the local merge
* prepare plugins improvements
* prepare plugins asyncronically
* update version
* restore data from cache when plugin is unavailable
* added comments to the complicated solution
* new module tools.js for methods working with plugins
* remove ArrayOfCachedData
* build updated
* remove trash