antui-admin
Version:
admin ui for antd
101 lines (84 loc) • 3.36 kB
JavaScript
;
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'];