@kedao/editor
Version:
Rich Text Editor Based On Draft.js
48 lines • 2.39 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import './styles.scss';
import React from 'react';
import { SketchPicker } from 'react-color';
const getColorPicker = (superProps) => function ColorPicker(_a) {
var { onChange, color, presetColors } = _a, props = __rest(_a, ["onChange", "color", "presetColors"]);
const handleChange = (colorObject) => {
var _a;
if (colorObject.hex === color) {
return false;
}
onChange(colorObject.hex, false);
(_a = superProps.onChange) === null || _a === void 0 ? void 0 : _a.call(superProps, colorObject.hex);
};
const clearColor = () => onChange(color, false);
const closePicker = () => onChange(null, true);
color = color || presetColors[0];
return (React.createElement("div", { className: `kedao-color-picker ${superProps.theme}-theme` },
React.createElement(SketchPicker, Object.assign({ color: color, presetColors: presetColors, onChangeComplete: handleChange }, props)),
React.createElement("footer", { className: "footer" },
React.createElement("button", { type: "button", className: "button control-item button-clear", onClick: clearColor, disabled: !color }, superProps.clearButtonText),
React.createElement("button", { type: "button", className: "button control-item button-close", onClick: closePicker }, superProps.closeButtonText))));
};
export default (options) => {
options = Object.assign({ theme: 'dark', clearButtonText: '清除', closeButtonText: '关闭' }, options);
const { includeEditors, excludeEditors } = options;
return {
type: 'prop-interception',
includeEditors,
excludeEditors,
interceptor: (editorProps) => {
editorProps.colorPicker = getColorPicker(options);
editorProps.colorPickerTheme = options.theme;
return editorProps;
}
};
};
//# sourceMappingURL=index.js.map