UNPKG

antui-admin

Version:
101 lines (84 loc) 3.36 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _quill = require('quill'); var _quill2 = _interopRequireDefault(_quill); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var AlignStyle = _quill2.default.import('attributors/style/align'); var BackgroundStyle = _quill2.default.import('attributors/style/background'); var ColorStyle = _quill2.default.import('attributors/style/color'); var DirectionStyle = _quill2.default.import('attributors/style/direction'); var FontStyle = _quill2.default.import('attributors/style/font'); _quill2.default.register(AlignStyle, true); _quill2.default.register(BackgroundStyle, true); _quill2.default.register(ColorStyle, true); _quill2.default.register(DirectionStyle, true); _quill2.default.register(FontStyle, true); var SizeAttributor = _quill2.default.import('attributors/style/size'); SizeAttributor.whitelist = ['10px', '12px', '18px', '32px']; _quill2.default.register(SizeAttributor, true); exports.default = { createEditor: function createEditor($el, config, clazz) { var quill = new _quill2.default($el, config); this.hookEditor(quill, clazz); return quill; }, hookEditor: function hookEditor(quill, clazz) { var unprivilegedEditor = this.makeUnprivilegedEditor(quill); this.handleTextChange = function (delta, oldDelta, source) { if (clazz.onEditorChangeText) { clazz.onEditorChangeText(quill.root.innerHTML, delta, source, unprivilegedEditor); clazz.onEditorChangeSelection(quill.getSelection(), source, unprivilegedEditor); } }; this.handleSelectionChange = function (range, oldRange, source) { if (clazz.onEditorChangeSelection) { clazz.onEditorChangeSelection(range, source, unprivilegedEditor); } }; quill.on('text-change', this.handleTextChange); quill.on('selection-change', this.handleSelectionChange); }, unhookEditor: function unhookEditor(quill) { quill.off('selection-change'); quill.off('editor-change'); }, setEditorReadOnly: function setEditorReadOnly(quill, value) { value ? quill.disable() : quill.enable(); }, setEditorContents: function setEditorContents(quill, value) { var sel = quill.getSelection(); quill.clipboard.dangerouslyPasteHTML(value || ''); if (sel) this.setEditorSelection(quill, sel); }, setEditorSelection: function setEditorSelection(quill, range) { if (range) { var length = quill.getLength(); range.index = Math.max(0, Math.min(range.index, length - 1)); range.length = Math.max(0, Math.min(range.length, length - 1 - range.index)); } quill.setSelection(range); }, makeUnprivilegedEditor: function makeUnprivilegedEditor(quill) { var e = quill; return { getLength: function getLength() { return e.getLength.apply(e, arguments); }, getText: function getText() { return e.getText.apply(e, arguments); }, getContents: function getContents() { return e.getContents.apply(e, arguments); }, getSelection: function getSelection() { return e.getSelection.apply(e, arguments); }, getBounds: function getBounds() { return e.getBounds.apply(e, arguments); } }; } }; module.exports = exports['default'];