UNPKG

react-simple-wysiwyg

Version:
1 lines â€Ē 41.7 kB
{"version":3,"file":"index.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/utils.ts","../../src/ContentEditable.tsx","../../src/styles.ts","../../src/Editor.tsx","../../src/toolbar/icons/OrderedListIcon.tsx","../../src/toolbar/icons/UnorderedListIcon.tsx","../../src/toolbar/buttons.tsx","../../src/toolbar/dropdowns.tsx","../../src/toolbar/Separator.tsx","../../src/toolbar/Toolbar.tsx","../../src/DefaultEditor.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function compare<T>(a: T, b: T, keys: Array<keyof T>): boolean {\n return keys.every((key) => {\n return a[key] === b[key];\n });\n}\n\nexport function deepMerge<T>(target, ...sources: T[]): T {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (!source.hasOwnProperty(key)) {\n continue;\n }\n\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n\n deepMerge(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return deepMerge(target, ...sources);\n}\n\nexport function findLastTextNode(node: Node): Node | null {\n if (node.nodeType === Node.TEXT_NODE) {\n return node;\n }\n\n const children = node.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n const textNode = findLastTextNode(children[i]);\n\n if (textNode !== null) {\n return textNode;\n }\n }\n return null;\n}\n\nexport function getSelectedNode(): Node {\n if ((document as any).selection) {\n return (document as any).selection.createRange().parentElement();\n }\n\n const selection = window.getSelection();\n if (selection.rangeCount > 0) {\n return selection.getRangeAt(0).startContainer.parentNode;\n }\n}\n\nfunction isObject(item) {\n return (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function normalizeHtml(str: string): string {\n return str && str.replace(/&nbsp;|\\u202F|\\u00A0/g, ' ');\n}\n\nexport function replaceCaret(el: HTMLElement) {\n // Place the caret at the end of the element\n const target = findLastTextNode(el);\n // do not move caret if element was not focused\n const isTargetFocused = document.activeElement === el;\n\n if (target !== null && target.nodeValue !== null && isTargetFocused) {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(target, target.nodeValue.length);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n\n if (el instanceof HTMLElement) {\n el.focus();\n }\n }\n}\n","import { Component, createElement, HTMLAttributes } from 'react';\nimport * as React from 'react';\nimport { compare, normalizeHtml, replaceCaret } from './utils';\n\n/**\n * Based on https://github.com/lovasoa/react-contenteditable\n * A simple component for an html element with editable contents.\n */\nexport default class ContentEditable extends Component<ICEProps> {\n el: HTMLElement;\n previousValue: string;\n\n constructor(props: ICEProps) {\n super(props);\n\n this.previousValue = props.value;\n\n this.onChange = this.onChange.bind(this);\n this.setElementRef = this.setElementRef.bind(this);\n }\n\n shouldComponentUpdate(nextProps: ICEProps): boolean {\n const props = this.props;\n\n if (!this.el) {\n return true;\n }\n\n if (normalizeHtml(nextProps.value) !== normalizeHtml(this.el.innerHTML)) {\n return true;\n }\n\n return !compare(props, nextProps, ['disabled', 'tagName', 'className']);\n }\n\n componentDidUpdate() {\n if (!this.el) {\n return;\n }\n\n if (this.props.value !== this.el.innerHTML) {\n this.previousValue = this.props.value;\n this.el.innerHTML = this.props.value;\n }\n\n replaceCaret(this.el);\n }\n\n setElementRef(el) {\n const { contentEditableRef } = this.props;\n this.el = el;\n\n contentEditableRef && contentEditableRef(el);\n }\n\n onChange(event: React.FormEvent<HTMLElement>) {\n if (!this.el) {\n return;\n }\n\n const value = this.el.innerHTML;\n const previous = this.previousValue;\n this.previousValue = value;\n\n if (this.props.onChange && value !== previous) {\n this.props.onChange({ ...event, target: { value } as any });\n }\n }\n\n render() {\n const { contentEditableRef, tagName, value, ...props } = this.props;\n\n return createElement(tagName || 'div', {\n ...props,\n contentEditable: !this.props.disabled,\n dangerouslySetInnerHTML: { __html: value },\n onBlur: this.props.onBlur || this.onChange,\n onInput: this.onChange,\n onKeyDown: this.props.onKeyDown || this.onChange,\n onKeyUp: this.props.onKeyUp || this.onChange,\n ref: this.setElementRef,\n });\n }\n}\n\nexport interface ICEProps extends HTMLAttributes<HTMLElement> {\n disabled?: boolean;\n contentEditableRef?: (el: HTMLElement) => void;\n tagName?: string;\n value?: string;\n}\n","import { CSSProperties } from 'react';\n\nconst styles = {\n button: {\n normal: {\n backgroundColor: 'unset',\n border: 'none',\n color: '#222',\n height: 24,\n outline: 'none',\n padding: 0,\n verticalAlign: 'top',\n width: 24,\n },\n\n hovered: {\n backgroundColor: '#eaeaea',\n },\n\n active: {\n backgroundColor: '#e0e0e0',\n },\n },\n\n contentEditable: {\n flex: 1,\n outline: 'none',\n padding: 5,\n },\n\n dropdown: {\n boxSizing: 'border-box' as any,\n height: 20,\n marginTop: 2,\n outline: 'none',\n verticalAlign: 'top',\n },\n\n editor: {\n border: '1px solid #ddd',\n borderRadius: 3,\n display: 'flex',\n flexDirection: 'column' as any,\n minHeight: 100,\n },\n\n separator: {\n backgroundColor: '#ddd',\n display: 'inline-block',\n height: 20,\n margin: 2,\n verticalAlign: 'top',\n width: 1,\n },\n};\n\nexport default styles;\n\ntype CssCollection<T> = {\n [P in keyof T]?: CSSProperties | CssCollection<T[P]>;\n};\n\nexport type IStyles = typeof styles;\nexport type IEditorStyles = CssCollection<IStyles>;\n","import {\n ComponentType,\n createContext,\n PureComponent,\n SyntheticEvent,\n} from 'react';\nimport * as React from 'react';\nimport ContentEditable, { ICEProps } from './ContentEditable';\nimport defaultStyles, { IEditorStyles, IStyles } from './styles';\nimport { deepMerge, getSelectedNode } from './utils';\n\nexport const EditorContext = createContext<IEditorContext>({\n styles: defaultStyles,\n});\n\nexport default class Editor extends PureComponent<IEditorProps, IState> {\n constructor(props: IEditorProps) {\n super(props);\n\n this.state = {};\n\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onTextSelect = this.onTextSelect.bind(this);\n this.setContentEditableRef = this.setContentEditableRef.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('click', this.onClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('click', this.onClickOutside);\n }\n\n setContentEditableRef(el: HTMLElement) {\n this.setState({ contentEditable: el });\n this.props.contentEditableRef && this.props.contentEditableRef(el);\n }\n\n onClickOutside(event: MouseEvent) {\n const { contentEditable } = this.state;\n\n if (event.target === contentEditable) {\n return;\n }\n\n if (contentEditable && contentEditable.contains(event.target as any)) {\n return;\n }\n\n this.setState({ selection: null });\n }\n\n onTextSelect(e: SyntheticEvent<HTMLElement>) {\n this.props.onSelect && this.props.onSelect(e);\n this.setState({ selection: getSelectedNode() });\n }\n\n render() {\n const { children, styles, ...props } = this.props;\n const { contentEditable, selection } = this.state;\n\n const allStyles = deepMerge({}, defaultStyles, styles as any);\n\n const context: IEditorContext = {\n el: contentEditable,\n selection,\n styles: allStyles,\n };\n\n return (\n <div style={context.styles.editor}>\n <EditorContext.Provider value={context}>\n {children}\n <ContentEditable\n {...props}\n contentEditableRef={this.setContentEditableRef}\n onSelect={this.onTextSelect}\n style={allStyles.contentEditable}\n />\n </EditorContext.Provider>\n </div>\n );\n }\n}\n\nexport function withEditorContext<T extends ComponentType<any>>(\n Component: T,\n): T {\n\n WithEditorContext.displayName =\n `withEditorContext(${Component.displayName || Component.name})`;\n\n return WithEditorContext as any;\n\n function WithEditorContext(props) {\n return (\n <EditorContext.Consumer>\n {(context: IEditorContext) => (\n <Component\n {...props}\n el={context.el}\n selection={context.selection}\n styles={context.styles}\n />\n )}\n </EditorContext.Consumer>\n );\n }\n}\n\nexport interface IEditorProps extends ICEProps {\n styles?: IEditorStyles;\n}\n\nexport interface IEditorContext {\n el?: HTMLElement;\n selection?: Node;\n styles?: IStyles;\n}\n\ninterface IState {\n contentEditable?: HTMLElement;\n selection?: Node;\n}\n","import * as React from 'react';\n\nexport default function OrderedListIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n style={{ verticalAlign: 'text-top' }}\n >\n <path\n fill=\"currentColor\"\n d=\"M 6.99938,12.998L 6.99938,10.998L 20.9994,10.998L 20.9994,12.998L 6.99938,12.998 Z M 6.99938,18.9981L 6.99938,16.9981L 20.9994,16.9981L 20.9994,18.9981L 6.99938,18.9981 Z M 6.99938,6.99809L 6.99938,4.99809L 20.9994,4.99809L 20.9994,6.99809L 6.99938,6.99809 Z M 2.99938,7.99809L 2.99938,4.99809L 1.99938,4.99809L 1.99938,3.99809L 3.99938,3.99809L 3.99938,7.99809L 2.99938,7.99809 Z M 1.99938,16.9981L 1.99938,15.9981L 4.99938,15.9981L 4.99938,19.9981L 1.99938,19.9981L 1.99938,18.9981L 3.99938,18.9981L 3.99938,18.4981L 2.99938,18.4981L 2.99938,17.4981L 3.99938,17.4981L 3.99938,16.9981L 1.99938,16.9981 Z M 4.25,10C 4.66421,10 5,10.3358 5,10.75C 5,10.9524 4.91983,11.1361 4.7895,11.271L 3.11983,13L 5,13L 5,14L 2,14L 2,13.0782L 4,11L 2,11L 2,10L 4.25,10 Z \"\n />\n </svg>\n );\n}\n","import * as React from 'react';\n\nexport default function UnorderedListIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n style={{ verticalAlign: 'text-top'}}\n >\n <path\n fill=\"currentColor\"\n d=\"M 7,5L 21,5L 21,7L 7,7L 7,5 Z M 7,13L 7,11L 21,11L 21,13L 7,13 Z M 4,4.50001C 4.83,4.50001 5.5,5.16993 5.5,6.00001C 5.5,6.83008 4.83,7.50001 4,7.50001C 3.17,7.50001 2.5,6.83008 2.5,6.00001C 2.5,5.16993 3.17,4.50001 4,4.50001 Z M 4,10.5C 4.83,10.5 5.5,11.17 5.5,12C 5.5,12.83 4.83,13.5 4,13.5C 3.17,13.5 2.5,12.83 2.5,12C 2.5,11.17 3.17,10.5 4,10.5 Z M 7,19L 7,17L 21,17L 21,19L 7,19 Z M 4,16.5C 4.83,16.5 5.5,17.17 5.5,18C 5.5,18.83 4.83,19.5 4,19.5C 3.17,19.5 2.5,18.83 2.5,18C 2.5,17.17 3.17,16.5 4,16.5 Z \"\n />\n</svg>\n );\n}\n","import { CSSProperties, HTMLAttributes, ReactNode, useState } from 'react';\nimport * as React from 'react';\nimport { IEditorContext, withEditorContext } from '../Editor';\nimport OrderedListIcon from './icons/OrderedListIcon';\nimport UnorderedListIcon from './icons/UnorderedListIcon';\n\n// tslint:disable:max-line-length\n\nexport const BtnBold = createButton('Bold', '𝐁', 'bold');\nexport const BtnClearFormatting = createButton('Clear formatting', 'TĖēₓ', 'removeFormat');\nexport const BtnItalic = createButton('Italic', '𝑰', 'italic');\nexport const BtnLink = createButton('Link', '🔗', (selected: Node) => {\n if (selected && selected.nodeName === 'A') {\n document.execCommand('unlink');\n } else {\n document.execCommand('createLink', false, prompt('URL'));\n }\n});\nexport const BtnNumberedList = createButton('Numbered list', <OrderedListIcon />, 'insertOrderedList');\nexport const BtnRedo = createButton('Redo', '↷', 'redo');\nexport const BtnUnderline = createButton('Underline', <span style={{ textDecoration: 'underline' }}>𝐔</span>, 'underline');\nexport const BtnUndo = createButton('Undo', 'â†ķ', 'undo');\nexport const BtnBulletList = createButton('Bullet list', <UnorderedListIcon />, 'insertUnorderedList');\n\nexport function Button(props: IButtonProps) {\n const [ hovered, setHovered ] = useState(false);\n\n const { active, styles, el, selection, ...inputProps } = props;\n\n const style = {\n ...styles.button.normal,\n ...props.style,\n ...(hovered ? styles.button.hovered : {}),\n ...(hovered ? props.hoverStyle : {}),\n ...(active ? styles.button.active : {}),\n };\n\n const onHover = (e) => {\n setHovered(true);\n props.onMouseEnter && props.onMouseEnter(e);\n };\n\n const onUnHover = (e) => {\n setHovered(false);\n props.onMouseLeave && props.onMouseLeave(e);\n };\n\n return (\n <button\n {...inputProps}\n style={style}\n onMouseEnter={onHover}\n onMouseLeave={onUnHover}\n />\n );\n}\n\nexport interface IButtonProps\n extends HTMLAttributes<HTMLButtonElement>, IEditorContext {\n active?: boolean;\n hoverStyle?: CSSProperties;\n}\n\nfunction createButton(\n title: string,\n content: ReactNode,\n command: ((selection: Node) => void) | string,\n): typeof Button {\n ButtonFactory.displayName = title.replace(/\\s/g, '');\n\n return withEditorContext<typeof Button>(ButtonFactory);\n\n function ButtonFactory(props: IButtonProps) {\n const { selection, ...buttonProps } = props;\n\n let active = false;\n if (typeof command === 'string') {\n active = !!selection && document.queryCommandState(command);\n }\n\n return (\n <Button title={title} {...buttonProps} onMouseDown={action} active={active}>\n {content}\n </Button>\n );\n\n function action() {\n if (typeof command === 'function') {\n command(selection);\n } else {\n document.execCommand(command);\n }\n }\n }\n}\n","import { ChangeEvent, HTMLAttributes } from 'react';\nimport * as React from 'react';\nimport { IEditorContext, withEditorContext } from '../Editor';\n\nexport const BtnStyles = createDropdown('Styles', [\n ['Normal', 'formatBlock', 'DIV'],\n ['𝗛ð—ēð—Ūð—ąð—ēð—ŋ 𝟭', 'formatBlock', 'H1'],\n ['Header 2', 'formatBlock', 'H2'],\n ['ð™ē𝚘𝚍𝚎', 'formatBlock', 'PRE'],\n]);\n\nfunction createDropdown(\n title: string,\n items: IDropDownItem[],\n): typeof Dropdown {\n DropdownFactory.displayName = title;\n\n return withEditorContext<typeof Dropdown>(DropdownFactory);\n\n function DropdownFactory(props: IDropdownProps) {\n const { selection, ...ddProps } = props;\n\n return (\n <Dropdown {...ddProps} onChange={onChange} title={title} items={items} />\n );\n\n function onChange(e: ChangeEvent<HTMLSelectElement>) {\n const selected = parseInt(e.target.value, 10);\n const [, command, commandArgument] = items[selected];\n\n e.preventDefault();\n e.target.selectedIndex = 0;\n\n if (typeof command === 'function') {\n command(selection);\n } else {\n document.execCommand(command, false, commandArgument);\n }\n }\n }\n}\n\nexport function Dropdown(props: IDropdownProps) {\n const { el, items, selected, selection, styles, ...inputProps } = props;\n\n const style = { ...styles.dropdown, ...props.style };\n\n return (\n <select {...inputProps} value={selected} style={style}>\n <option hidden>{props.title}</option>\n {items.map((item, index) => (\n <option key={index} value={index}>{item[0]}</option>\n ))}\n </select>\n );\n}\n\nexport interface IDropdownProps\n extends HTMLAttributes<HTMLSelectElement>, IEditorContext {\n selected?: number;\n items?: IDropDownItem[];\n}\n\ntype IDropDownItem = [string, string | ((selection: Node) => void), string?];\n","import * as React from 'react';\nimport { IEditorContext, withEditorContext } from '../Editor';\n\nfunction Separator(context: IEditorContext) {\n return (\n <span style={context.styles.separator} />\n );\n}\n\nconst WrappedSeparator = withEditorContext(Separator);\nexport default WrappedSeparator;\n","import * as React from 'react';\n\nexport default function Toolbar(props: React.HTMLAttributes<HTMLDivElement>) {\n const rootStyle = {\n ...styles.root,\n ...props.style,\n };\n\n return (\n <div {...props} style={rootStyle}/>\n );\n}\n\nconst styles = {\n root: {\n backgroundColor: '#f5f5f5',\n borderBottom: '1px solid #ddd',\n },\n};\n","import * as React from 'react';\nimport Editor, { IEditorProps } from './Editor';\nimport {\n BtnBold,\n BtnBulletList,\n BtnClearFormatting,\n BtnItalic,\n BtnLink,\n BtnNumberedList,\n BtnRedo,\n BtnStyles,\n BtnUnderline,\n BtnUndo,\n Separator,\n Toolbar,\n} from './toolbar';\n\nexport default function DefaultEditor(props: IEditorProps) {\n return (\n <Editor {...props}>\n <Toolbar>\n <BtnUndo />\n <BtnRedo />\n <Separator />\n <BtnBold />\n <BtnItalic />\n <BtnUnderline />\n <Separator />\n <BtnNumberedList />\n <BtnBulletList />\n <Separator />\n <BtnLink />\n <BtnClearFormatting />\n <Separator />\n <BtnStyles />\n </Toolbar>\n </Editor>\n );\n}\n"],"names":["tslib_1.__extends","createElement","Component","createContext","defaultStyles","styles","React.createElement","PureComponent","Separator"],"mappings":"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"}