@pie-lib/editable-html 9.2.2 → 9.2.3-next.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/editor.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +5 -5
package/lib/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/editor.jsx"],"names":["log","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","defaultLanguageCharactersProps","createToolbarOpts","toolbarOpts","Editor","props","normalizedResponseAreaProps","responseAreaProps","plugins","activePlugins","math","onClick","onMathClick","onFocus","onPluginFocus","onBlur","onPluginBlur","image","onDelete","imageSupport","src","done","e","state","value","insertImageRequested","getHandler","handler","add","maxImageWidth","maxImageHeight","toolbar","disableScrollbar","disableUnderline","autoWidth","autoWidthToolbar","onDone","nonEmpty","setState","toolbarInFocus","focusedNode","editor","blur","startText","text","length","resetValue","then","onEditingDone","table","responseArea","type","maxResponseAreas","error","languageCharacters","languageCharactersProps","media","focus","createChange","change","onChange","uploadSoundSupport","relatedTarget","target","node","stashedValue","stashValue","c","collapseToStartOf","selectedNode","resolve","event","Promise","preBlurValue","handleBlur","bind","editorDOM","document","querySelector","key","setTimeout","stateValue","wrapperRef","editorElement","activeElement","closest","className","toolbarElement","toolbarRef","isInCurrentComponent","contains","removeEventListener","handleDomBlur","isFocused","__TEMPORARY_CHANGE_DATA","data","domEl","setNodeByKey","addEventListener","force","stopReset","reduce","s","p","toObject","newValue","Value","fromJSON","toJSON","charactersLimit","v","endsWith","undefined","parseInt","isNaN","object","last","nodes","parent","getParent","Block","pos","dropContext","transfer","file","files","fragment","inline","Inline","create","isVoid","loading","range","select","ch","insertInline","InsertImageHandler","insertFragment","selection","startBlock","defaultBlock","defaultMarks","getInsertMarksAtRange","frag","Plain","deserialize","placeholder","size","display","width","maxWidth","whiteSpace","opacity","pointerEvents","userSelect","onResize","handlePlugins","onRef","window","autoFocus","nextProps","newToolbarOpts","zeroWidthEls","querySelectorAll","Array","from","forEach","el","style","minWidth","equals","minHeight","height","maxHeight","valueToSize","disabled","spellCheck","highlightShape","classes","pluginProps","onKeyDown","sizeStyle","buildSizeStyle","names","withBg","toolbarOnTop","ref","r","slateEditor","editorRef","getFocusedValue","onDropPaste","normalize","noPadding","noBorder","renderPlaceholder","changeData","React","Component","PropTypes","bool","func","isRequired","SlateTypes","shape","number","oneOfType","string","any","oneOf","arrayOf","language","characterIcon","characters","values","allValid","every","ALL_PLUGINS","includes","Error","join","styles","backgroundColor","fontFamily","tableLayout","borderCollapse","color","background","borderTop","padding","textAlign","border","marginTop"],"mappings":"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","sourcesContent":["import { Editor as SlateEditor, findNode, getEventRange, getEventTransfer } from 'slate-react';\nimport SlateTypes from 'slate-prop-types';\n\nimport isEqual from 'lodash/isEqual';\nimport * as serialization from './serialization';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { Value, Block, Inline } from 'slate';\nimport { buildPlugins, ALL_PLUGINS, DEFAULT_PLUGINS } from './plugins';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport Plain from 'slate-plain-serializer';\n\nimport { getBase64 } from './serialization';\nimport InsertImageHandler from './plugins/image/insert-image-handler';\n\nexport { ALL_PLUGINS, DEFAULT_PLUGINS, serialization };\n\nconst log = debug('editable-html:editor');\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur'\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {}\n};\n\nconst defaultLanguageCharactersProps = [];\n\nconst createToolbarOpts = toolbarOpts => {\n return {\n ...defaultToolbarOpts,\n ...toolbarOpts\n };\n};\n\nexport class Editor extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n editorRef: PropTypes.func.isRequired,\n onRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n focus: PropTypes.func.isRequired,\n value: SlateTypes.value.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func\n }),\n charactersLimit: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n classes: PropTypes.object.isRequired,\n highlightShape: PropTypes.bool,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidthToolbar: PropTypes.bool,\n pluginProps: PropTypes.any,\n placeholder: PropTypes.string,\n responseAreaProps: PropTypes.shape({\n type: PropTypes.oneOf([\n 'explicit-constructed-response',\n 'inline-dropdown',\n 'drag-in-the-blank'\n ]),\n options: PropTypes.object,\n respAreaToolbar: PropTypes.func,\n onHandleAreaChange: PropTypes.func\n }),\n languageCharactersProps: PropTypes.arrayOf(\n PropTypes.shape({\n language: PropTypes.string,\n characterIcon: PropTypes.string,\n characters: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string))\n })\n ),\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool,\n doneOn: PropTypes.string\n }),\n activePlugins: PropTypes.arrayOf(values => {\n const allValid = values.every(v => ALL_PLUGINS.includes(v));\n\n return (\n !allValid &&\n new Error(`Invalid values: ${values}, values must be one of [${ALL_PLUGINS.join(',')}]`)\n );\n }),\n className: PropTypes.string,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number\n };\n\n static defaultProps = {\n disableUnderline: true,\n onFocus: () => {},\n onBlur: () => {},\n onKeyDown: () => {},\n toolbarOpts: defaultToolbarOpts,\n responseAreaProps: defaultResponseAreaProps,\n languageCharactersProps: defaultLanguageCharactersProps\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n toolbarOpts: createToolbarOpts(props.toolbarOpts)\n };\n\n this.onResize = () => {\n props.onChange(this.state.value, true);\n };\n\n this.handlePlugins(this.props);\n }\n\n handlePlugins = props => {\n const normalizedResponseAreaProps = {\n ...defaultResponseAreaProps,\n ...props.responseAreaProps\n };\n\n this.plugins = buildPlugins(props.activePlugins, {\n math: {\n onClick: this.onMathClick,\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur\n },\n image: {\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((src, done) => {\n props.imageSupport.delete(src, e => {\n done(e, this.state.value);\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n (getHandler => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(() => this.state.value);\n props.imageSupport.add(handler);\n }),\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n maxImageWidth: this.props.maxImageWidth,\n maxImageHeight: this.props.maxImageHeight\n },\n toolbar: {\n /**\n * To minimize converting html -> state -> html\n * We only emit markup once 'done' is clicked.\n */\n disableScrollbar: !!props.disableScrollbar,\n disableUnderline: props.disableUnderline,\n autoWidth: props.autoWidthToolbar,\n onDone: () => {\n const { nonEmpty } = props;\n\n log('[onDone]');\n this.setState({ toolbarInFocus: false, focusedNode: null });\n this.editor.blur();\n\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n });\n } else {\n this.onEditingDone();\n }\n }\n },\n table: {\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n }\n },\n responseArea: {\n type: normalizedResponseAreaProps.type,\n options: normalizedResponseAreaProps.options,\n maxResponseAreas: normalizedResponseAreaProps.maxResponseAreas,\n respAreaToolbar: normalizedResponseAreaProps.respAreaToolbar,\n onHandleAreaChange: normalizedResponseAreaProps.onHandleAreaChange,\n error: normalizedResponseAreaProps.error,\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n }\n },\n languageCharacters: props.languageCharactersProps,\n media: {\n focus: this.focus,\n createChange: () => this.state.value.change(),\n onChange: this.onChange,\n uploadSoundSupport: props.uploadSoundSupport\n }\n });\n };\n\n componentDidMount() {\n // onRef is needed to get the ref of the component because we export it using withStyles\n this.props.onRef(this);\n\n window.addEventListener('resize', this.onResize);\n\n if (this.editor && this.props.autoFocus) {\n Promise.resolve().then(() => {\n if (this.editor) {\n const editorDOM = document.querySelector(\n `[data-key=\"${this.editor.value.document.key}\"]`\n );\n\n this.editor.focus();\n\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n });\n }\n }\n\n componentWillReceiveProps(nextProps) {\n const { toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts);\n\n if (!isEqual(newToolbarOpts, toolbarOpts)) {\n this.setState({\n toolbarOpts: newToolbarOpts\n });\n }\n\n if (!isEqual(nextProps.languageCharactersProps, this.props.languageCharactersProps)) {\n this.handlePlugins(nextProps);\n }\n }\n\n componentDidUpdate() {\n // The cursor is on a zero width element and when that is placed near void elements, it is not visible\n // so we increase the width to at least 2px in order for the user to see it\n const zeroWidthEls = document.querySelectorAll('[data-slate-zero-width=\"z\"]');\n\n Array.from(zeroWidthEls).forEach(el => {\n el.style.minWidth = '2px';\n el.style.display = 'inline-block';\n });\n }\n\n onPluginBlur = e => {\n log('[onPluginBlur]', e && e.relatedTarget);\n const target = e && e.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n log('[onPluginBlur] node: ', node);\n this.setState({ focusedNode: node }, () => {\n this.resetValue();\n });\n };\n\n onPluginFocus = e => {\n log('[onPluginFocus]', e && e.target);\n const target = e && e.target;\n if (target) {\n const node = findNode(target, this.state.value);\n log('[onPluginFocus] node: ', node);\n\n const stashedValue = this.state.stashedValue || this.state.value;\n this.setState({ focusedNode: node, stashedValue });\n } else {\n this.setState({ focusedNode: null });\n }\n this.stashValue();\n };\n\n onMathClick = node => {\n this.editor.change(c => c.collapseToStartOf(node));\n this.setState({ selectedNode: node });\n };\n\n onEditingDone = () => {\n log('[onEditingDone]');\n this.setState({ stashedValue: null, focusedNode: null });\n log('[onEditingDone] value: ', this.state.value);\n this.props.onChange(this.state.value, true);\n };\n\n /**\n * Remove onResize event listener\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n // Allowing time for onChange to take effect if it is called\n handleBlur = resolve => {\n const { nonEmpty } = this.props;\n const {\n toolbarOpts: { doneOn }\n } = this.state;\n\n this.setState({ toolbarInFocus: false, focusedNode: null });\n\n if (this.editor) {\n this.editor.blur();\n }\n\n if (doneOn === 'blur') {\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n resolve();\n });\n } else {\n this.onEditingDone();\n resolve();\n }\n }\n };\n\n onBlur = event => {\n log('[onBlur]');\n const target = event.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n\n log('[onBlur] node: ', node);\n\n return new Promise(resolve => {\n this.setState(\n { preBlurValue: this.state.value, focusedNode: !node ? null : node },\n this.handleBlur.bind(this, resolve)\n );\n this.props.onBlur(event);\n });\n };\n\n handleDomBlur = e => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n setTimeout(() => {\n const { value: stateValue } = this.state;\n\n if (!this.wrapperRef) {\n return;\n }\n\n const editorElement =\n !editorDOM || document.activeElement.closest(`[class*=\"${editorDOM.className}\"]`);\n const toolbarElement =\n !this.toolbarRef ||\n document.activeElement.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n const isInCurrentComponent =\n this.wrapperRef.contains(editorElement) || this.wrapperRef.contains(toolbarElement);\n\n if (!isInCurrentComponent) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n\n if (stateValue.isFocused) {\n this.onBlur(e);\n }\n }\n }, 50);\n };\n\n /*\n * Needs to be wrapped otherwise it causes issues because of race conditions\n * Known issue for slatejs. See: https://github.com/ianstormtaylor/slate/issues/2097\n * Using timeout I wasn't able to test this\n *\n * Note: The use of promises has been causing issues with MathQuill\n * */\n onFocus = () =>\n new Promise(resolve => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n log('[onFocus]', document.activeElement);\n\n /**\n * This is a temporary hack - @see changeData below for some more information.\n */\n if (this.__TEMPORARY_CHANGE_DATA) {\n const { key, data } = this.__TEMPORARY_CHANGE_DATA;\n const domEl = document.querySelector(`[data-key=\"${key}\"]`);\n\n if (domEl) {\n let change = this.state.value.change().setNodeByKey(key, { data });\n\n this.setState({ value: change.value }, () => {\n this.__TEMPORARY_CHANGE_DATA = null;\n });\n }\n }\n\n /**\n * This is needed just in case the browser decides to make the editor\n * lose focus without triggering the onBlur event (can happen in a few cases).\n * This will also trigger onBlur if the user clicks outside of the page when the editor\n * is focused.\n */\n if (editorDOM === document.activeElement) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n editorDOM.addEventListener('blur', this.handleDomBlur);\n }\n\n this.stashValue();\n this.props.onFocus();\n\n resolve();\n });\n\n stashValue = () => {\n log('[stashValue]');\n if (!this.state.stashedValue) {\n this.setState({ stashedValue: this.state.value });\n }\n };\n\n /**\n * Reset the value if the user didn't click done.\n */\n resetValue = force => {\n const { value, focusedNode } = this.state;\n\n const stopReset = this.plugins.reduce((s, p) => {\n return s || (p.stopReset && p.stopReset(this.state.value));\n }, false);\n\n log('[resetValue]', value.isFocused, focusedNode, 'stopReset: ', stopReset);\n if ((this.state.stashedValue && !value.isFocused && !focusedNode && !stopReset) || force) {\n log('[resetValue] resetting...');\n log('stashed', this.state.stashedValue.document.toObject());\n log('current', this.state.value.document.toObject());\n\n const newValue = Value.fromJSON(this.state.stashedValue.toJSON());\n\n log('newValue: ', newValue.document);\n return new Promise(resolve => {\n setTimeout(() => {\n this.setState({ value: newValue, stashedValue: null }, () => {\n log('value now: ', this.state.value.document.toJSON());\n resolve();\n });\n }, 50);\n });\n } else {\n return Promise.resolve({});\n }\n };\n\n onChange = (change, done) => {\n log('[onChange]');\n\n const { value } = change;\n const { charactersLimit } = this.props;\n\n if (\n value &&\n value.document &&\n value.document.text &&\n value.document.text.length > charactersLimit\n ) {\n return;\n }\n\n this.setState({ value }, () => {\n log('[onChange], call done()');\n\n if (done) {\n done();\n }\n });\n };\n\n getFocusedValue = () => {\n if (this.state.value.isFocused) {\n return this.state.value;\n }\n\n return this.state.preBlurValue;\n };\n\n UNSAFE_componentWillReceiveProps(props) {\n if (!props.value.document.equals(this.props.value.document)) {\n this.setState({\n focus: false,\n value: props.value\n });\n }\n }\n\n valueToSize = v => {\n if (!v) {\n return;\n }\n\n if (typeof v === 'string') {\n if (v.endsWith('%')) {\n return undefined;\n } else if (v.endsWith('px') || v.endsWith('vh') || v.endsWith('vw')) {\n return v;\n } else {\n const value = parseInt(v, 10);\n return isNaN(value) ? value : `${value}px`;\n }\n }\n if (typeof v === 'number') {\n return `${v}px`;\n }\n\n return;\n };\n\n buildSizeStyle() {\n const { width, minHeight, height, maxHeight } = this.props;\n\n return {\n width: this.valueToSize(width),\n height: this.valueToSize(height),\n minHeight: this.valueToSize(minHeight),\n maxHeight: this.valueToSize(maxHeight)\n };\n }\n\n validateNode = node => {\n if (node.object !== 'block') return;\n\n const last = node.nodes.last();\n if (!last) return;\n\n if (last.type !== 'image') return;\n\n log('[validateNode] last is image..');\n\n const parent = last.getParent(last.key);\n const p = Block.getParent(last.key);\n log('[validateNode] parent:', parent, p);\n\n return undefined;\n };\n\n changeData = (key, data) => {\n log('[changeData]. .. ', key, data);\n\n /**\n * HACK ALERT: We should be calling setState here and storing the change data:\n *\n * <code>this.setState({changeData: { key, data}})</code>\n * However this is causing issues with the Mathquill instance. The 'input' event stops firing on the element and no\n * more changes get through. The issues seem to be related to the promises in onBlur/onFocus. But removing these\n * brings it's own problems. A major clean up is planned for this component so I've decided to temporarily settle\n * on this hack rather than spend more time on this.\n */\n\n // Uncomment this line to see the bug described above.\n // this.setState({changeData: {key, data}})\n\n this.__TEMPORARY_CHANGE_DATA = { key, data };\n };\n\n focus = (pos, node) => {\n const position = pos || 'end';\n\n this.props.focus(position, node);\n };\n\n onDropPaste = async (event, change, dropContext) => {\n const editor = change.editor;\n const transfer = getEventTransfer(event);\n const file = transfer.files && transfer.files[0];\n\n const type = transfer.type;\n const fragment = transfer.fragment;\n const text = transfer.text;\n\n if (\n file &&\n (file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png')\n ) {\n if (!this.props.imageSupport) {\n return;\n }\n try {\n log('[onDropPaste]');\n const src = await getBase64(file);\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loading: false,\n src\n }\n });\n\n if (dropContext) {\n this.focus();\n } else {\n const range = getEventRange(event, editor);\n if (range) {\n change.select(range);\n }\n }\n\n const ch = change.insertInline(inline);\n this.onChange(ch);\n const handler = new InsertImageHandler(inline, () => this.state.value, this.onChange, true);\n this.props.imageSupport.add(handler);\n } catch (err) {\n log('[onDropPaste] error: ', err);\n }\n } else if (type === 'fragment') {\n change.insertFragment(fragment);\n } else if (type === 'text' || type === 'html') {\n if (!text) {\n return;\n }\n const {\n value: { document, selection, startBlock }\n } = change;\n\n if (startBlock.isVoid) {\n return;\n }\n\n const defaultBlock = startBlock;\n const defaultMarks = document.getInsertMarksAtRange(selection);\n const frag = Plain.deserialize(text, {\n defaultBlock,\n defaultMarks\n }).document;\n change.insertFragment(frag);\n }\n };\n\n renderPlaceholder = props => {\n const { editor } = props;\n const { document } = editor.value;\n\n if (!editor.props.placeholder || document.text !== '' || document.nodes.size !== 1) {\n return false;\n }\n\n return (\n <span\n contentEditable={false}\n style={{\n display: 'inline-block',\n width: 'fit-content', // for centering the placeholder if text-align is set to center\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: '0.33',\n pointerEvents: 'none',\n userSelect: 'none'\n }}\n >\n {editor.props.placeholder}\n </span>\n );\n };\n\n render() {\n const {\n disabled,\n spellCheck,\n highlightShape,\n classes,\n className,\n placeholder,\n pluginProps,\n onKeyDown\n } = this.props;\n\n const { value, focusedNode, toolbarOpts } = this.state;\n\n log('[render] value: ', value);\n const sizeStyle = this.buildSizeStyle();\n const names = classNames(\n {\n [classes.withBg]: highlightShape,\n [classes.toolbarOnTop]: toolbarOpts.alwaysVisible && toolbarOpts.position === 'top'\n },\n className\n );\n\n return (\n <div\n ref={ref => (this.wrapperRef = ref)}\n style={{ width: sizeStyle.width }}\n className={names}\n >\n <SlateEditor\n plugins={this.plugins}\n innerRef={r => {\n if (r) {\n this.slateEditor = r;\n }\n }}\n ref={r => (this.editor = r && this.props.editorRef(r))}\n toolbarRef={r => {\n if (r) {\n this.toolbarRef = r;\n }\n }}\n value={value}\n focus={this.focus}\n onKeyDown={onKeyDown}\n onChange={this.onChange}\n getFocusedValue={this.getFocusedValue}\n onBlur={this.onBlur}\n onDrop={(event, editor) => this.onDropPaste(event, editor, true)}\n onPaste={(event, editor) => this.onDropPaste(event, editor)}\n onFocus={this.onFocus}\n onEditingDone={this.onEditingDone}\n focusedNode={focusedNode}\n normalize={this.normalize}\n readOnly={disabled}\n spellCheck={spellCheck}\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts && toolbarOpts.noBorder\n },\n classes.slateEditor\n )}\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight\n }}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n placeholder={placeholder}\n renderPlaceholder={this.renderPlaceholder}\n onDataChange={this.changeData}\n />\n </div>\n );\n }\n}\n\n// TODO color - hardcoded gray background and keypad colors will need to change too\nconst styles = {\n withBg: {\n backgroundColor: 'rgba(0,0,0,0.06)'\n },\n slateEditor: {\n fontFamily: 'Roboto, sans-serif',\n\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background()\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5'\n // TODO perhaps secondary color for background, for now disable\n // '&:nth-child(2n)': {\n // backgroundColor: '#f6f8fa'\n // }\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center'\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5'\n }\n },\n toolbarOnTop: {\n marginTop: '45px'\n },\n noPadding: {\n padding: '0 !important'\n }\n};\n\nexport default withStyles(styles)(Editor);\n"],"file":"editor.js"}
|
|
1
|
+
{"version":3,"file":"editor.js","names":["log","debug","defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","defaultLanguageCharactersProps","createToolbarOpts","toolbarOpts","Editor","props","normalizedResponseAreaProps","responseAreaProps","plugins","buildPlugins","activePlugins","math","onClick","onMathClick","onFocus","onPluginFocus","onBlur","onPluginBlur","image","onDelete","imageSupport","src","done","e","state","value","insertImageRequested","getHandler","handler","add","maxImageWidth","maxImageHeight","toolbar","disableScrollbar","disableUnderline","autoWidth","autoWidthToolbar","onDone","nonEmpty","setState","toolbarInFocus","focusedNode","editor","blur","startText","text","length","resetValue","then","onEditingDone","table","responseArea","type","maxResponseAreas","error","languageCharacters","languageCharactersProps","media","focus","createChange","change","onChange","uploadSoundSupport","relatedTarget","target","node","findNode","stashedValue","stashValue","c","collapseToStartOf","selectedNode","resolve","event","Promise","preBlurValue","handleBlur","bind","editorDOM","document","querySelector","key","setTimeout","stateValue","wrapperRef","editorElement","activeElement","closest","className","toolbarElement","toolbarRef","isInCurrentComponent","contains","removeEventListener","handleDomBlur","isFocused","__TEMPORARY_CHANGE_DATA","data","domEl","setNodeByKey","addEventListener","force","stopReset","reduce","s","p","toObject","newValue","Value","fromJSON","toJSON","charactersLimit","v","endsWith","undefined","parseInt","isNaN","object","last","nodes","parent","getParent","Block","pos","dropContext","transfer","getEventTransfer","file","files","fragment","getBase64","inline","Inline","create","isVoid","loading","range","getEventRange","select","ch","insertInline","InsertImageHandler","insertFragment","selection","startBlock","defaultBlock","defaultMarks","getInsertMarksAtRange","frag","Plain","deserialize","placeholder","size","display","width","maxWidth","whiteSpace","opacity","pointerEvents","userSelect","onResize","handlePlugins","onRef","window","autoFocus","nextProps","newToolbarOpts","isEqual","zeroWidthEls","querySelectorAll","Array","from","forEach","el","style","minWidth","equals","minHeight","height","maxHeight","valueToSize","disabled","spellCheck","highlightShape","classes","pluginProps","onKeyDown","sizeStyle","buildSizeStyle","names","classNames","withBg","toolbarOnTop","ref","r","slateEditor","editorRef","getFocusedValue","onDropPaste","normalize","noPadding","noBorder","renderPlaceholder","changeData","React","Component","PropTypes","bool","func","isRequired","SlateTypes","shape","number","oneOfType","string","any","oneOf","arrayOf","language","characterIcon","characters","values","allValid","every","ALL_PLUGINS","includes","Error","join","styles","backgroundColor","fontFamily","tableLayout","borderCollapse","color","background","borderTop","padding","textAlign","border","marginTop","withStyles"],"sources":["../src/editor.jsx"],"sourcesContent":["import { Editor as SlateEditor, findNode, getEventRange, getEventTransfer } from 'slate-react';\nimport SlateTypes from 'slate-prop-types';\n\nimport isEqual from 'lodash/isEqual';\nimport * as serialization from './serialization';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { Value, Block, Inline } from 'slate';\nimport { buildPlugins, ALL_PLUGINS, DEFAULT_PLUGINS } from './plugins';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport Plain from 'slate-plain-serializer';\n\nimport { getBase64 } from './serialization';\nimport InsertImageHandler from './plugins/image/insert-image-handler';\n\nexport { ALL_PLUGINS, DEFAULT_PLUGINS, serialization };\n\nconst log = debug('editable-html:editor');\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur'\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {}\n};\n\nconst defaultLanguageCharactersProps = [];\n\nconst createToolbarOpts = toolbarOpts => {\n return {\n ...defaultToolbarOpts,\n ...toolbarOpts\n };\n};\n\nexport class Editor extends React.Component {\n static propTypes = {\n autoFocus: PropTypes.bool,\n editorRef: PropTypes.func.isRequired,\n onRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onKeyDown: PropTypes.func,\n focus: PropTypes.func.isRequired,\n value: SlateTypes.value.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func,\n delete: PropTypes.func\n }),\n charactersLimit: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n classes: PropTypes.object.isRequired,\n highlightShape: PropTypes.bool,\n disabled: PropTypes.bool,\n spellCheck: PropTypes.bool,\n nonEmpty: PropTypes.bool,\n disableScrollbar: PropTypes.bool,\n disableUnderline: PropTypes.bool,\n autoWidthToolbar: PropTypes.bool,\n pluginProps: PropTypes.any,\n placeholder: PropTypes.string,\n responseAreaProps: PropTypes.shape({\n type: PropTypes.oneOf([\n 'explicit-constructed-response',\n 'inline-dropdown',\n 'drag-in-the-blank'\n ]),\n options: PropTypes.object,\n respAreaToolbar: PropTypes.func,\n onHandleAreaChange: PropTypes.func\n }),\n languageCharactersProps: PropTypes.arrayOf(\n PropTypes.shape({\n language: PropTypes.string,\n characterIcon: PropTypes.string,\n characters: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string))\n })\n ),\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool,\n doneOn: PropTypes.string\n }),\n activePlugins: PropTypes.arrayOf(values => {\n const allValid = values.every(v => ALL_PLUGINS.includes(v));\n\n return (\n !allValid &&\n new Error(`Invalid values: ${values}, values must be one of [${ALL_PLUGINS.join(',')}]`)\n );\n }),\n className: PropTypes.string,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number\n };\n\n static defaultProps = {\n disableUnderline: true,\n onFocus: () => {},\n onBlur: () => {},\n onKeyDown: () => {},\n toolbarOpts: defaultToolbarOpts,\n responseAreaProps: defaultResponseAreaProps,\n languageCharactersProps: defaultLanguageCharactersProps\n };\n\n constructor(props) {\n super(props);\n this.state = {\n value: props.value,\n toolbarOpts: createToolbarOpts(props.toolbarOpts)\n };\n\n this.onResize = () => {\n props.onChange(this.state.value, true);\n };\n\n this.handlePlugins(this.props);\n }\n\n handlePlugins = props => {\n const normalizedResponseAreaProps = {\n ...defaultResponseAreaProps,\n ...props.responseAreaProps\n };\n\n this.plugins = buildPlugins(props.activePlugins, {\n math: {\n onClick: this.onMathClick,\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur\n },\n image: {\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((src, done) => {\n props.imageSupport.delete(src, e => {\n done(e, this.state.value);\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n (getHandler => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(() => this.state.value);\n props.imageSupport.add(handler);\n }),\n onFocus: this.onPluginFocus,\n onBlur: this.onPluginBlur,\n maxImageWidth: this.props.maxImageWidth,\n maxImageHeight: this.props.maxImageHeight\n },\n toolbar: {\n /**\n * To minimize converting html -> state -> html\n * We only emit markup once 'done' is clicked.\n */\n disableScrollbar: !!props.disableScrollbar,\n disableUnderline: props.disableUnderline,\n autoWidth: props.autoWidthToolbar,\n onDone: () => {\n const { nonEmpty } = props;\n\n log('[onDone]');\n this.setState({ toolbarInFocus: false, focusedNode: null });\n this.editor.blur();\n\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n });\n } else {\n this.onEditingDone();\n }\n }\n },\n table: {\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n }\n },\n responseArea: {\n type: normalizedResponseAreaProps.type,\n options: normalizedResponseAreaProps.options,\n maxResponseAreas: normalizedResponseAreaProps.maxResponseAreas,\n respAreaToolbar: normalizedResponseAreaProps.respAreaToolbar,\n onHandleAreaChange: normalizedResponseAreaProps.onHandleAreaChange,\n error: normalizedResponseAreaProps.error,\n onFocus: () => {\n log('[table:onFocus]...');\n this.onPluginFocus();\n },\n onBlur: () => {\n log('[table:onBlur]...');\n this.onPluginBlur();\n }\n },\n languageCharacters: props.languageCharactersProps,\n media: {\n focus: this.focus,\n createChange: () => this.state.value.change(),\n onChange: this.onChange,\n uploadSoundSupport: props.uploadSoundSupport\n }\n });\n };\n\n componentDidMount() {\n // onRef is needed to get the ref of the component because we export it using withStyles\n this.props.onRef(this);\n\n window.addEventListener('resize', this.onResize);\n\n if (this.editor && this.props.autoFocus) {\n Promise.resolve().then(() => {\n if (this.editor) {\n const editorDOM = document.querySelector(\n `[data-key=\"${this.editor.value.document.key}\"]`\n );\n\n this.editor.focus();\n\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n });\n }\n }\n\n componentWillReceiveProps(nextProps) {\n const { toolbarOpts } = this.state;\n const newToolbarOpts = createToolbarOpts(nextProps.toolbarOpts);\n\n if (!isEqual(newToolbarOpts, toolbarOpts)) {\n this.setState({\n toolbarOpts: newToolbarOpts\n });\n }\n\n if (!isEqual(nextProps.languageCharactersProps, this.props.languageCharactersProps)) {\n this.handlePlugins(nextProps);\n }\n }\n\n componentDidUpdate() {\n // The cursor is on a zero width element and when that is placed near void elements, it is not visible\n // so we increase the width to at least 2px in order for the user to see it\n const zeroWidthEls = document.querySelectorAll('[data-slate-zero-width=\"z\"]');\n\n Array.from(zeroWidthEls).forEach(el => {\n el.style.minWidth = '2px';\n el.style.display = 'inline-block';\n });\n }\n\n onPluginBlur = e => {\n log('[onPluginBlur]', e && e.relatedTarget);\n const target = e && e.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n log('[onPluginBlur] node: ', node);\n this.setState({ focusedNode: node }, () => {\n this.resetValue();\n });\n };\n\n onPluginFocus = e => {\n log('[onPluginFocus]', e && e.target);\n const target = e && e.target;\n if (target) {\n const node = findNode(target, this.state.value);\n log('[onPluginFocus] node: ', node);\n\n const stashedValue = this.state.stashedValue || this.state.value;\n this.setState({ focusedNode: node, stashedValue });\n } else {\n this.setState({ focusedNode: null });\n }\n this.stashValue();\n };\n\n onMathClick = node => {\n this.editor.change(c => c.collapseToStartOf(node));\n this.setState({ selectedNode: node });\n };\n\n onEditingDone = () => {\n log('[onEditingDone]');\n this.setState({ stashedValue: null, focusedNode: null });\n log('[onEditingDone] value: ', this.state.value);\n this.props.onChange(this.state.value, true);\n };\n\n /**\n * Remove onResize event listener\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n }\n\n // Allowing time for onChange to take effect if it is called\n handleBlur = resolve => {\n const { nonEmpty } = this.props;\n const {\n toolbarOpts: { doneOn }\n } = this.state;\n\n this.setState({ toolbarInFocus: false, focusedNode: null });\n\n if (this.editor) {\n this.editor.blur();\n }\n\n if (doneOn === 'blur') {\n if (nonEmpty && this.state.value.startText?.text?.length === 0) {\n this.resetValue(true).then(() => {\n this.onEditingDone();\n resolve();\n });\n } else {\n this.onEditingDone();\n resolve();\n }\n }\n };\n\n onBlur = event => {\n log('[onBlur]');\n const target = event.relatedTarget;\n\n const node = target ? findNode(target, this.state.value) : null;\n\n log('[onBlur] node: ', node);\n\n return new Promise(resolve => {\n this.setState(\n { preBlurValue: this.state.value, focusedNode: !node ? null : node },\n this.handleBlur.bind(this, resolve)\n );\n this.props.onBlur(event);\n });\n };\n\n handleDomBlur = e => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n setTimeout(() => {\n const { value: stateValue } = this.state;\n\n if (!this.wrapperRef) {\n return;\n }\n\n const editorElement =\n !editorDOM || document.activeElement.closest(`[class*=\"${editorDOM.className}\"]`);\n const toolbarElement =\n !this.toolbarRef ||\n document.activeElement.closest(`[class*=\"${this.toolbarRef.className}\"]`);\n const isInCurrentComponent =\n this.wrapperRef.contains(editorElement) || this.wrapperRef.contains(toolbarElement);\n\n if (!isInCurrentComponent) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n\n if (stateValue.isFocused) {\n this.onBlur(e);\n }\n }\n }, 50);\n };\n\n /*\n * Needs to be wrapped otherwise it causes issues because of race conditions\n * Known issue for slatejs. See: https://github.com/ianstormtaylor/slate/issues/2097\n * Using timeout I wasn't able to test this\n *\n * Note: The use of promises has been causing issues with MathQuill\n * */\n onFocus = () =>\n new Promise(resolve => {\n const editorDOM = document.querySelector(`[data-key=\"${this.state.value.document.key}\"]`);\n\n log('[onFocus]', document.activeElement);\n\n /**\n * This is a temporary hack - @see changeData below for some more information.\n */\n if (this.__TEMPORARY_CHANGE_DATA) {\n const { key, data } = this.__TEMPORARY_CHANGE_DATA;\n const domEl = document.querySelector(`[data-key=\"${key}\"]`);\n\n if (domEl) {\n let change = this.state.value.change().setNodeByKey(key, { data });\n\n this.setState({ value: change.value }, () => {\n this.__TEMPORARY_CHANGE_DATA = null;\n });\n }\n }\n\n /**\n * This is needed just in case the browser decides to make the editor\n * lose focus without triggering the onBlur event (can happen in a few cases).\n * This will also trigger onBlur if the user clicks outside of the page when the editor\n * is focused.\n */\n if (editorDOM === document.activeElement) {\n editorDOM.removeEventListener('blur', this.handleDomBlur);\n editorDOM.addEventListener('blur', this.handleDomBlur);\n }\n\n this.stashValue();\n this.props.onFocus();\n\n resolve();\n });\n\n stashValue = () => {\n log('[stashValue]');\n if (!this.state.stashedValue) {\n this.setState({ stashedValue: this.state.value });\n }\n };\n\n /**\n * Reset the value if the user didn't click done.\n */\n resetValue = force => {\n const { value, focusedNode } = this.state;\n\n const stopReset = this.plugins.reduce((s, p) => {\n return s || (p.stopReset && p.stopReset(this.state.value));\n }, false);\n\n log('[resetValue]', value.isFocused, focusedNode, 'stopReset: ', stopReset);\n if ((this.state.stashedValue && !value.isFocused && !focusedNode && !stopReset) || force) {\n log('[resetValue] resetting...');\n log('stashed', this.state.stashedValue.document.toObject());\n log('current', this.state.value.document.toObject());\n\n const newValue = Value.fromJSON(this.state.stashedValue.toJSON());\n\n log('newValue: ', newValue.document);\n return new Promise(resolve => {\n setTimeout(() => {\n this.setState({ value: newValue, stashedValue: null }, () => {\n log('value now: ', this.state.value.document.toJSON());\n resolve();\n });\n }, 50);\n });\n } else {\n return Promise.resolve({});\n }\n };\n\n onChange = (change, done) => {\n log('[onChange]');\n\n const { value } = change;\n const { charactersLimit } = this.props;\n\n if (\n value &&\n value.document &&\n value.document.text &&\n value.document.text.length > charactersLimit\n ) {\n return;\n }\n\n this.setState({ value }, () => {\n log('[onChange], call done()');\n\n if (done) {\n done();\n }\n });\n };\n\n getFocusedValue = () => {\n if (this.state.value.isFocused) {\n return this.state.value;\n }\n\n return this.state.preBlurValue;\n };\n\n UNSAFE_componentWillReceiveProps(props) {\n if (!props.value.document.equals(this.props.value.document)) {\n this.setState({\n focus: false,\n value: props.value\n });\n }\n }\n\n valueToSize = v => {\n if (!v) {\n return;\n }\n\n if (typeof v === 'string') {\n if (v.endsWith('%')) {\n return undefined;\n } else if (v.endsWith('px') || v.endsWith('vh') || v.endsWith('vw')) {\n return v;\n } else {\n const value = parseInt(v, 10);\n return isNaN(value) ? value : `${value}px`;\n }\n }\n if (typeof v === 'number') {\n return `${v}px`;\n }\n\n return;\n };\n\n buildSizeStyle() {\n const { width, minHeight, height, maxHeight } = this.props;\n\n return {\n width: this.valueToSize(width),\n height: this.valueToSize(height),\n minHeight: this.valueToSize(minHeight),\n maxHeight: this.valueToSize(maxHeight)\n };\n }\n\n validateNode = node => {\n if (node.object !== 'block') return;\n\n const last = node.nodes.last();\n if (!last) return;\n\n if (last.type !== 'image') return;\n\n log('[validateNode] last is image..');\n\n const parent = last.getParent(last.key);\n const p = Block.getParent(last.key);\n log('[validateNode] parent:', parent, p);\n\n return undefined;\n };\n\n changeData = (key, data) => {\n log('[changeData]. .. ', key, data);\n\n /**\n * HACK ALERT: We should be calling setState here and storing the change data:\n *\n * <code>this.setState({changeData: { key, data}})</code>\n * However this is causing issues with the Mathquill instance. The 'input' event stops firing on the element and no\n * more changes get through. The issues seem to be related to the promises in onBlur/onFocus. But removing these\n * brings it's own problems. A major clean up is planned for this component so I've decided to temporarily settle\n * on this hack rather than spend more time on this.\n */\n\n // Uncomment this line to see the bug described above.\n // this.setState({changeData: {key, data}})\n\n this.__TEMPORARY_CHANGE_DATA = { key, data };\n };\n\n focus = (pos, node) => {\n const position = pos || 'end';\n\n this.props.focus(position, node);\n };\n\n onDropPaste = async (event, change, dropContext) => {\n const editor = change.editor;\n const transfer = getEventTransfer(event);\n const file = transfer.files && transfer.files[0];\n\n const type = transfer.type;\n const fragment = transfer.fragment;\n const text = transfer.text;\n\n if (\n file &&\n (file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png')\n ) {\n if (!this.props.imageSupport) {\n return;\n }\n try {\n log('[onDropPaste]');\n const src = await getBase64(file);\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loading: false,\n src\n }\n });\n\n if (dropContext) {\n this.focus();\n } else {\n const range = getEventRange(event, editor);\n if (range) {\n change.select(range);\n }\n }\n\n const ch = change.insertInline(inline);\n this.onChange(ch);\n const handler = new InsertImageHandler(inline, () => this.state.value, this.onChange, true);\n this.props.imageSupport.add(handler);\n } catch (err) {\n log('[onDropPaste] error: ', err);\n }\n } else if (type === 'fragment') {\n change.insertFragment(fragment);\n } else if (type === 'text' || type === 'html') {\n if (!text) {\n return;\n }\n const {\n value: { document, selection, startBlock }\n } = change;\n\n if (startBlock.isVoid) {\n return;\n }\n\n const defaultBlock = startBlock;\n const defaultMarks = document.getInsertMarksAtRange(selection);\n const frag = Plain.deserialize(text, {\n defaultBlock,\n defaultMarks\n }).document;\n change.insertFragment(frag);\n }\n };\n\n renderPlaceholder = props => {\n const { editor } = props;\n const { document } = editor.value;\n\n if (!editor.props.placeholder || document.text !== '' || document.nodes.size !== 1) {\n return false;\n }\n\n return (\n <span\n contentEditable={false}\n style={{\n display: 'inline-block',\n width: 'fit-content', // for centering the placeholder if text-align is set to center\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: '0.33',\n pointerEvents: 'none',\n userSelect: 'none'\n }}\n >\n {editor.props.placeholder}\n </span>\n );\n };\n\n render() {\n const {\n disabled,\n spellCheck,\n highlightShape,\n classes,\n className,\n placeholder,\n pluginProps,\n onKeyDown\n } = this.props;\n\n const { value, focusedNode, toolbarOpts } = this.state;\n\n log('[render] value: ', value);\n const sizeStyle = this.buildSizeStyle();\n const names = classNames(\n {\n [classes.withBg]: highlightShape,\n [classes.toolbarOnTop]: toolbarOpts.alwaysVisible && toolbarOpts.position === 'top'\n },\n className\n );\n\n return (\n <div\n ref={ref => (this.wrapperRef = ref)}\n style={{ width: sizeStyle.width }}\n className={names}\n >\n <SlateEditor\n plugins={this.plugins}\n innerRef={r => {\n if (r) {\n this.slateEditor = r;\n }\n }}\n ref={r => (this.editor = r && this.props.editorRef(r))}\n toolbarRef={r => {\n if (r) {\n this.toolbarRef = r;\n }\n }}\n value={value}\n focus={this.focus}\n onKeyDown={onKeyDown}\n onChange={this.onChange}\n getFocusedValue={this.getFocusedValue}\n onBlur={this.onBlur}\n onDrop={(event, editor) => this.onDropPaste(event, editor, true)}\n onPaste={(event, editor) => this.onDropPaste(event, editor)}\n onFocus={this.onFocus}\n onEditingDone={this.onEditingDone}\n focusedNode={focusedNode}\n normalize={this.normalize}\n readOnly={disabled}\n spellCheck={spellCheck}\n className={classNames(\n {\n [classes.noPadding]: toolbarOpts && toolbarOpts.noBorder\n },\n classes.slateEditor\n )}\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight\n }}\n pluginProps={pluginProps}\n toolbarOpts={toolbarOpts}\n placeholder={placeholder}\n renderPlaceholder={this.renderPlaceholder}\n onDataChange={this.changeData}\n />\n </div>\n );\n }\n}\n\n// TODO color - hardcoded gray background and keypad colors will need to change too\nconst styles = {\n withBg: {\n backgroundColor: 'rgba(0,0,0,0.06)'\n },\n slateEditor: {\n fontFamily: 'Roboto, sans-serif',\n\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background()\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5'\n // TODO perhaps secondary color for background, for now disable\n // '&:nth-child(2n)': {\n // backgroundColor: '#f6f8fa'\n // }\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center'\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5'\n }\n },\n toolbarOnTop: {\n marginTop: '45px'\n },\n noPadding: {\n padding: '0 !important'\n }\n};\n\nexport default withStyles(styles)(Editor);\n"],"mappings":"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"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","reduceMultipleBrs","markup","replace","e","console","EditableHtml","props","value","done","html","valueToHtml","htmlParsed","parseDegrees","onChange","onDone","position","node","editorRef","change","c","lastText","document","getNextText","key","getLastText","editorDOM","querySelector","activeElement","blur","focus","moveFocusTo","text","length","moveAnchorTo","onEditingDone","v","htmlToValue","state","allowValidation","current","equals","setState","toolbarOpts","error","ref","rootRef","React","Component","PropTypes","func","isRequired","string","bool"],"sources":["../src/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Editor, { DEFAULT_PLUGINS, ALL_PLUGINS } from './editor';\nimport { htmlToValue, valueToHtml } from './serialization';\nimport { parseDegrees } from './parse-html';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html');\n/**\n * Export lower level Editor and serialization functions.\n */\nexport { htmlToValue, valueToHtml, Editor, DEFAULT_PLUGINS, ALL_PLUGINS };\n\n/**\n * Wrapper around the editor that exposes a `markup` and `onChange(markup:string)` api.\n * Because of the mismatch between the markup and the `Value` we need to convert the incoming markup to a value and\n * compare it. TODO: This is an interim fix, we'll need to strip back `Editor` and look how best to maintain the\n * `markup` api whilst avoiding the serialization mismatch. We should be making better use of schemas w/ normalize.\n */\n\nconst reduceMultipleBrs = markup => {\n try {\n return markup.replace(/(<br\\s*\\/?>){3,}/gi, '<br>');\n } catch (e) {\n console.log(\"Couldn't remove <br/> tags: \", e);\n }\n\n return markup;\n};\n\nexport default class EditableHtml extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func,\n markup: PropTypes.string.isRequired,\n allowValidation: PropTypes.bool\n };\n\n static defaultProps = {\n onDone: () => {},\n allowValidation: false\n };\n\n constructor(props) {\n super(props);\n const v = htmlToValue(props.markup);\n this.state = {\n value: v\n };\n }\n\n // eslint-disable-next-line react/no-deprecated\n componentWillReceiveProps(props) {\n if (!props.allowValidation && props.markup === this.props.markup) {\n return;\n }\n\n const v = htmlToValue(reduceMultipleBrs(props.markup));\n const current = htmlToValue(reduceMultipleBrs(this.props.markup));\n\n if (v.equals && !v.equals(current)) {\n this.setState({ value: v });\n }\n }\n\n onChange = (value, done) => {\n const html = valueToHtml(value);\n const htmlParsed = parseDegrees(html);\n\n log('value as html: ', html);\n\n if (html !== this.props.markup) {\n this.props.onChange(htmlParsed);\n }\n\n if (done) {\n this.props.onDone(htmlParsed);\n }\n };\n\n focus = (position, node) => {\n if (this.editorRef) {\n this.editorRef.change(c => {\n const lastText = node\n ? c.value.document.getNextText(node.key)\n : c.value.document.getLastText();\n const editorDOM = document.querySelector(\n `[data-key=\"${this.editorRef.value.document.key}\"]`\n );\n\n if (editorDOM !== document.activeElement) {\n document.activeElement.blur();\n }\n\n c.focus();\n\n if (position === 'end' && lastText) {\n c.moveFocusTo(lastText.key, lastText.text?.length).moveAnchorTo(\n lastText.key,\n lastText.text?.length\n );\n }\n\n if (position === 'beginning' && lastText) {\n c.moveFocusTo(lastText.key, 0).moveAnchorTo(lastText.key, 0);\n }\n });\n }\n };\n\n finishEditing = () => {\n if (this.editorRef) {\n this.editorRef.props.onEditingDone();\n }\n };\n\n render() {\n const { value } = this.state;\n const { toolbarOpts, error } = this.props;\n\n if (toolbarOpts) {\n toolbarOpts.error = error;\n }\n\n const props = {\n ...this.props,\n markup: null,\n value,\n onChange: this.onChange,\n focus: this.focus\n };\n\n return (\n <Editor\n onRef={ref => {\n if (ref) {\n this.rootRef = ref;\n }\n }}\n editorRef={ref => ref && (this.editorRef = ref)}\n {...props}\n />\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,wBAAN,CAAZ;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,MAAM,EAAI;EAClC,IAAI;IACF,OAAOA,MAAM,CAACC,OAAP,CAAe,oBAAf,EAAqC,MAArC,CAAP;EACD,CAFD,CAEE,OAAOC,CAAP,EAAU;IACVC,OAAO,CAACN,GAAR,CAAY,8BAAZ,EAA4CK,CAA5C;EACD;;EAED,OAAOF,MAAP;AACD,CARD;;IAUqBI,Y;;;;;EAanB,sBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACjB,0BAAMA,KAAN;IADiB,6FAsBR,UAACC,KAAD,EAAQC,IAAR,EAAiB;MAC1B,IAAMC,IAAI,GAAG,IAAAC,0BAAA,EAAYH,KAAZ,CAAb;MACA,IAAMI,UAAU,GAAG,IAAAC,uBAAA,EAAaH,IAAb,CAAnB;MAEAX,GAAG,CAAC,iBAAD,EAAoBW,IAApB,CAAH;;MAEA,IAAIA,IAAI,KAAK,MAAKH,KAAL,CAAWL,MAAxB,EAAgC;QAC9B,MAAKK,KAAL,CAAWO,QAAX,CAAoBF,UAApB;MACD;;MAED,IAAIH,IAAJ,EAAU;QACR,MAAKF,KAAL,CAAWQ,MAAX,CAAkBH,UAAlB;MACD;IACF,CAnCkB;IAAA,0FAqCX,UAACI,QAAD,EAAWC,IAAX,EAAoB;MAC1B,IAAI,MAAKC,SAAT,EAAoB;QAClB,MAAKA,SAAL,CAAeC,MAAf,CAAsB,UAAAC,CAAC,EAAI;UACzB,IAAMC,QAAQ,GAAGJ,IAAI,GACjBG,CAAC,CAACZ,KAAF,CAAQc,QAAR,CAAiBC,WAAjB,CAA6BN,IAAI,CAACO,GAAlC,CADiB,GAEjBJ,CAAC,CAACZ,KAAF,CAAQc,QAAR,CAAiBG,WAAjB,EAFJ;UAGA,IAAMC,SAAS,GAAGJ,QAAQ,CAACK,aAAT,uBACF,MAAKT,SAAL,CAAeV,KAAf,CAAqBc,QAArB,CAA8BE,GAD5B,SAAlB;;UAIA,IAAIE,SAAS,KAAKJ,QAAQ,CAACM,aAA3B,EAA0C;YACxCN,QAAQ,CAACM,aAAT,CAAuBC,IAAvB;UACD;;UAEDT,CAAC,CAACU,KAAF;;UAEA,IAAId,QAAQ,KAAK,KAAb,IAAsBK,QAA1B,EAAoC;YAAA;;YAClCD,CAAC,CAACW,WAAF,CAAcV,QAAQ,CAACG,GAAvB,oBAA4BH,QAAQ,CAACW,IAArC,mDAA4B,eAAeC,MAA3C,EAAmDC,YAAnD,CACEb,QAAQ,CAACG,GADX,qBAEEH,QAAQ,CAACW,IAFX,oDAEE,gBAAeC,MAFjB;UAID;;UAED,IAAIjB,QAAQ,KAAK,WAAb,IAA4BK,QAAhC,EAA0C;YACxCD,CAAC,CAACW,WAAF,CAAcV,QAAQ,CAACG,GAAvB,EAA4B,CAA5B,EAA+BU,YAA/B,CAA4Cb,QAAQ,CAACG,GAArD,EAA0D,CAA1D;UACD;QACF,CAxBD;MAyBD;IACF,CAjEkB;IAAA,kGAmEH,YAAM;MACpB,IAAI,MAAKN,SAAT,EAAoB;QAClB,MAAKA,SAAL,CAAeX,KAAf,CAAqB4B,aAArB;MACD;IACF,CAvEkB;IAEjB,IAAMC,CAAC,GAAG,IAAAC,0BAAA,EAAY9B,KAAK,CAACL,MAAlB,CAAV;IACA,MAAKoC,KAAL,GAAa;MACX9B,KAAK,EAAE4B;IADI,CAAb;IAHiB;EAMlB,C,CAED;;;;;WACA,mCAA0B7B,KAA1B,EAAiC;MAC/B,IAAI,CAACA,KAAK,CAACgC,eAAP,IAA0BhC,KAAK,CAACL,MAAN,KAAiB,KAAKK,KAAL,CAAWL,MAA1D,EAAkE;QAChE;MACD;;MAED,IAAMkC,CAAC,GAAG,IAAAC,0BAAA,EAAYpC,iBAAiB,CAACM,KAAK,CAACL,MAAP,CAA7B,CAAV;MACA,IAAMsC,OAAO,GAAG,IAAAH,0BAAA,EAAYpC,iBAAiB,CAAC,KAAKM,KAAL,CAAWL,MAAZ,CAA7B,CAAhB;;MAEA,IAAIkC,CAAC,CAACK,MAAF,IAAY,CAACL,CAAC,CAACK,MAAF,CAASD,OAAT,CAAjB,EAAoC;QAClC,KAAKE,QAAL,CAAc;UAAElC,KAAK,EAAE4B;QAAT,CAAd;MACD;IACF;;;WAqDD,kBAAS;MAAA;;MACP,IAAQ5B,KAAR,GAAkB,KAAK8B,KAAvB,CAAQ9B,KAAR;MACA,kBAA+B,KAAKD,KAApC;MAAA,IAAQoC,WAAR,eAAQA,WAAR;MAAA,IAAqBC,KAArB,eAAqBA,KAArB;;MAEA,IAAID,WAAJ,EAAiB;QACfA,WAAW,CAACC,KAAZ,GAAoBA,KAApB;MACD;;MAED,IAAMrC,KAAK,mCACN,KAAKA,KADC;QAETL,MAAM,EAAE,IAFC;QAGTM,KAAK,EAALA,KAHS;QAITM,QAAQ,EAAE,KAAKA,QAJN;QAKTgB,KAAK,EAAE,KAAKA;MALH,EAAX;;MAQA,oBACE,gCAAC,kBAAD;QACE,KAAK,EAAE,eAAAe,GAAG,EAAI;UACZ,IAAIA,GAAJ,EAAS;YACP,MAAI,CAACC,OAAL,GAAeD,GAAf;UACD;QACF,CALH;QAME,SAAS,EAAE,mBAAAA,GAAG;UAAA,OAAIA,GAAG,KAAK,MAAI,CAAC3B,SAAL,GAAiB2B,GAAtB,CAAP;QAAA;MANhB,GAOMtC,KAPN,EADF;IAWD;;;EAjHuCwC,iBAAA,CAAMC,S;;;iCAA3B1C,Y,eACA;EACjBQ,QAAQ,EAAEmC,qBAAA,CAAUC,IAAV,CAAeC,UADR;EAEjBpC,MAAM,EAAEkC,qBAAA,CAAUC,IAFD;EAGjBhD,MAAM,EAAE+C,qBAAA,CAAUG,MAAV,CAAiBD,UAHR;EAIjBZ,eAAe,EAAEU,qBAAA,CAAUI;AAJV,C;iCADA/C,Y,kBAQG;EACpBS,MAAM,EAAE,kBAAM,CAAE,CADI;EAEpBwB,eAAe,EAAE;AAFG,C"}
|
package/lib/parse-html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"parse-html.js","names":["parseDegrees","html","replace"],"sources":["../src/parse-html.js"],"sourcesContent":["export const parseDegrees = html =>\n html\n // removes \\( use case: 50°\n .replace(/\\\\[(]/g, '')\n // removes \\) use case: 50°+m<1\n .replace(/\\\\[)]/g, '')\n // removes \\degree use case: 50°\n .replace(/\\\\degree/g, '°');\n"],"mappings":";;;;;;;AAAO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAAAC,IAAI;EAAA,OAC9BA,IAAI,CACF;EADE,CAEDC,OAFH,CAEW,QAFX,EAEqB,EAFrB,EAGE;EAHF,CAIGA,OAJH,CAIW,QAJX,EAIqB,EAJrB,EAKE;EALF,CAMGA,OANH,CAMW,WANX,EAMwB,OANxB,CAD8B;AAAA,CAAzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"custom-popper.js","names":["styles","popover","background","padding","pointerEvents","zIndex","paper","height","width","typography","fontSize","textAlign","CustomPopper","withStyles","classes","children","props","vertical","horizontal","root"],"sources":["../../../src/plugins/characters/custom-popper.js"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Popper from '@material-ui/core/Popper';\nimport Typography from '@material-ui/core/Typography';\n\nconst styles = () => ({\n popover: {\n background: '#fff',\n padding: '10px',\n pointerEvents: 'none',\n zIndex: 99999\n },\n paper: {\n padding: 20,\n height: 'auto',\n width: 'auto'\n },\n typography: {\n fontSize: 50,\n textAlign: 'center'\n }\n});\n\nconst CustomPopper = withStyles(styles)(({ classes, children, ...props }) => (\n <Popper\n id=\"mouse-over-popover\"\n open\n className={classes.popover}\n classes={{\n paper: classes.paper\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n disableRestoreFocus\n disableAutoFocus\n {...props}\n >\n <Typography classes={{ root: classes.typography }}>{children}</Typography>\n </Popper>\n));\n\nexport default CustomPopper;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;EAAA,OAAO;IACpBC,OAAO,EAAE;MACPC,UAAU,EAAE,MADL;MAEPC,OAAO,EAAE,MAFF;MAGPC,aAAa,EAAE,MAHR;MAIPC,MAAM,EAAE;IAJD,CADW;IAOpBC,KAAK,EAAE;MACLH,OAAO,EAAE,EADJ;MAELI,MAAM,EAAE,MAFH;MAGLC,KAAK,EAAE;IAHF,CAPa;IAYpBC,UAAU,EAAE;MACVC,QAAQ,EAAE,EADA;MAEVC,SAAS,EAAE;IAFD;EAZQ,CAAP;AAAA,CAAf;;AAkBA,IAAMC,YAAY,GAAG,IAAAC,kBAAA,EAAWb,MAAX,EAAmB;EAAA,IAAGc,OAAH,QAAGA,OAAH;EAAA,IAAYC,QAAZ,QAAYA,QAAZ;EAAA,IAAyBC,KAAzB;EAAA,oBACtC,gCAAC,kBAAD;IACE,EAAE,EAAC,oBADL;IAEE,IAAI,MAFN;IAGE,SAAS,EAAEF,OAAO,CAACb,OAHrB;IAIE,OAAO,EAAE;MACPK,KAAK,EAAEQ,OAAO,CAACR;IADR,CAJX;IAOE,YAAY,EAAE;MACZW,QAAQ,EAAE,QADE;MAEZC,UAAU,EAAE;IAFA,CAPhB;IAWE,eAAe,EAAE;MACfD,QAAQ,EAAE,KADK;MAEfC,UAAU,EAAE;IAFG,CAXnB;IAeE,mBAAmB,MAfrB;IAgBE,gBAAgB;EAhBlB,GAiBMF,KAjBN,gBAmBE,gCAAC,sBAAD;IAAY,OAAO,EAAE;MAAEG,IAAI,EAAEL,OAAO,CAACL;IAAhB;EAArB,GAAoDM,QAApD,CAnBF,CADsC;AAAA,CAAnB,CAArB;eAwBeH,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/characters/index.jsx"],"names":["log","removePopOvers","prevPopOvers","document","querySelectorAll","forEach","s","remove","removeDialogs","prevDialogs","insertDialog","editorDOM","value","callback","opts","newEl","createElement","className","configToUse","language","spanishConfig","specialConfig","characters","layoutForCharacters","reduce","obj","arr","length","columns","rows","popoverEl","closePopOver","renderPopOver","event","el","infoStyle","fontSize","lineHeight","ReactDOM","render","currentTarget","label","description","unicode","body","appendChild","firstCallMade","listener","e","focusIsInModals","contains","target","focusIsInEditor","handleClose","undefined","removeEventListener","handleChange","val","n","map","k","name","write","category","extraClass","extraProps","style","border","hasPreview","actions","onMouseEnter","ev","onMouseLeave","cursorItem","querySelector","anchorKey","bodyRect","getBoundingClientRect","boundRect","position","top","Math","abs","offsetHeight","zIndex","leftValue","left","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CharacterIcon","letter","CharactersPlugin","toolbar","icon","characterIcon","characterIcons","onClick","onChange","getFocusedValue","key","valueToUse","char","focus","change","insertTextByKey","anchorOffset","pluginStyles","node","parentNode","p"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport get from 'lodash/get';\n\nimport { PureToolbar } from '@pie-lib/math-toolbar';\n\nimport CustomPopper from './custom-popper';\nimport { insertSnackBar } from '../respArea/utils';\nimport { characterIcons, spanishConfig, specialConfig } from './utils';\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nconst removePopOvers = () => {\n const prevPopOvers = document.querySelectorAll('#mouse-over-popover');\n\n log('[characters:removePopOvers]');\n prevPopOvers.forEach(s => s.remove());\n};\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-character-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach(s => s.remove());\n removePopOvers();\n};\n\nconst insertDialog = ({ editorDOM, value, callback, opts }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-character-dialog';\n\n let configToUse;\n\n switch (true) {\n case opts.language === 'spanish':\n configToUse = spanishConfig;\n break;\n case opts.language === 'special':\n configToUse = specialConfig;\n break;\n default:\n configToUse = opts;\n }\n\n if (!configToUse.characters) {\n insertSnackBar('No characters provided or language not recognized');\n return;\n }\n\n const layoutForCharacters = configToUse.characters.reduce(\n (obj, arr) => {\n if (arr.length >= obj.columns) {\n obj.columns = arr.length;\n }\n\n return obj;\n },\n { rows: configToUse.characters.length, columns: 0 }\n );\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n\n removePopOvers();\n };\n\n const renderPopOver = (event, el) => {\n if (!event) {\n return;\n }\n\n const infoStyle = { fontSize: '20px', lineHeight: '20px' };\n\n closePopOver();\n\n popoverEl = document.createElement('div');\n ReactDOM.render(\n <CustomPopper onClose={closePopOver} anchorEl={event.currentTarget}>\n <div>{el.label}</div>\n\n <div style={infoStyle}>{el.description}</div>\n\n <div style={infoStyle}>{el.unicode}</div>\n </CustomPopper>,\n popoverEl\n );\n\n document.body.appendChild(newEl);\n };\n\n let firstCallMade = false;\n\n const listener = e => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals =\n newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = val => {\n if (typeof val === 'string') {\n callback(val, true);\n }\n };\n\n const el = (\n <PureToolbar\n autoFocus\n noDecimal\n hideInput\n noLatexHandling\n layoutForKeyPad={layoutForCharacters}\n additionalKeys={configToUse.characters.reduce((arr, n) => {\n arr = [\n ...arr,\n ...n.map(k => ({\n name: get(k, 'name') || k,\n write: get(k, 'write') || k,\n label: get(k, 'label') || k,\n category: 'character',\n extraClass: 'character',\n extraProps: {\n ...(k.extraProps || {}),\n style: {\n ...(k.extraProps || {}).style,\n border: '1px solid #000'\n }\n },\n ...(configToUse.hasPreview\n ? {\n actions: { onMouseEnter: ev => renderPopOver(ev, k), onMouseLeave: closePopOver }\n }\n : {})\n }))\n ];\n\n return arr;\n }, [])}\n keypadMode=\"language\"\n onChange={handleChange}\n onDone={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = document.querySelector(`[data-key=\"${value.anchorKey}\"]`);\n\n if (cursorItem) {\n const bodyRect = document.body.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n document.body.appendChild(newEl);\n newEl.style.position = 'absolute';\n newEl.style.top = `${boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10}px`;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left +\n Math.abs(bodyRect.left) +\n cursorItem.offsetWidth +\n 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst CharacterIcon = ({ letter }) => (\n <div\n style={{\n fontSize: '25px',\n lineHeight: '15px'\n }}\n >\n {letter}\n </div>\n);\n\nexport default function CharactersPlugin(opts) {\n removeDialogs();\n return {\n name: 'characters',\n toolbar: {\n icon: <CharacterIcon letter={opts.characterIcon || characterIcons[opts.language] || 'ñ'} />,\n onClick: (value, onChange, getFocusedValue) => {\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n const callback = (char, focus) => {\n valueToUse = getFocusedValue();\n\n if (char) {\n const change = valueToUse\n .change()\n .insertTextByKey(valueToUse.anchorKey, valueToUse.anchorOffset, char);\n\n valueToUse = change.value;\n log('[characters:insert]: ', value);\n onChange(change);\n }\n\n log('[characters:click]');\n\n if (focus) {\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n };\n\n insertDialog({ editorDOM, value: valueToUse, callback, opts });\n }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n }\n };\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","removePopOvers","prevPopOvers","document","querySelectorAll","forEach","s","remove","removeDialogs","prevDialogs","insertDialog","editorDOM","value","callback","opts","newEl","createElement","className","configToUse","language","spanishConfig","specialConfig","characters","insertSnackBar","layoutForCharacters","reduce","obj","arr","length","columns","rows","popoverEl","closePopOver","renderPopOver","event","el","infoStyle","fontSize","lineHeight","ReactDOM","render","currentTarget","label","description","unicode","body","appendChild","firstCallMade","listener","e","focusIsInModals","contains","target","focusIsInEditor","handleClose","undefined","removeEventListener","handleChange","val","n","map","k","name","get","write","category","extraClass","extraProps","style","border","hasPreview","actions","onMouseEnter","ev","onMouseLeave","cursorItem","querySelector","anchorKey","bodyRect","getBoundingClientRect","boundRect","position","top","Math","abs","offsetHeight","zIndex","leftValue","left","offsetWidth","rightValue","x","leftAlignedWidth","right","rightAlignedWidth","addEventListener","CharacterIcon","letter","CharactersPlugin","toolbar","icon","characterIcon","characterIcons","onClick","onChange","getFocusedValue","key","valueToUse","char","focus","change","insertTextByKey","anchorOffset","pluginStyles","node","parentNode","p"],"sources":["../../../src/plugins/characters/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport get from 'lodash/get';\n\nimport { PureToolbar } from '@pie-lib/math-toolbar';\n\nimport CustomPopper from './custom-popper';\nimport { insertSnackBar } from '../respArea/utils';\nimport { characterIcons, spanishConfig, specialConfig } from './utils';\nconst log = debug('@pie-lib:editable-html:plugins:characters');\n\nconst removePopOvers = () => {\n const prevPopOvers = document.querySelectorAll('#mouse-over-popover');\n\n log('[characters:removePopOvers]');\n prevPopOvers.forEach(s => s.remove());\n};\n\nexport const removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-character-dialog');\n\n log('[characters:removeDialogs]');\n prevDialogs.forEach(s => s.remove());\n removePopOvers();\n};\n\nconst insertDialog = ({ editorDOM, value, callback, opts }) => {\n const newEl = document.createElement('div');\n\n log('[characters:insertDialog]');\n\n removeDialogs();\n\n newEl.className = 'insert-character-dialog';\n\n let configToUse;\n\n switch (true) {\n case opts.language === 'spanish':\n configToUse = spanishConfig;\n break;\n case opts.language === 'special':\n configToUse = specialConfig;\n break;\n default:\n configToUse = opts;\n }\n\n if (!configToUse.characters) {\n insertSnackBar('No characters provided or language not recognized');\n return;\n }\n\n const layoutForCharacters = configToUse.characters.reduce(\n (obj, arr) => {\n if (arr.length >= obj.columns) {\n obj.columns = arr.length;\n }\n\n return obj;\n },\n { rows: configToUse.characters.length, columns: 0 }\n );\n\n let popoverEl;\n\n const closePopOver = () => {\n if (popoverEl) {\n popoverEl.remove();\n }\n\n removePopOvers();\n };\n\n const renderPopOver = (event, el) => {\n if (!event) {\n return;\n }\n\n const infoStyle = { fontSize: '20px', lineHeight: '20px' };\n\n closePopOver();\n\n popoverEl = document.createElement('div');\n ReactDOM.render(\n <CustomPopper onClose={closePopOver} anchorEl={event.currentTarget}>\n <div>{el.label}</div>\n\n <div style={infoStyle}>{el.description}</div>\n\n <div style={infoStyle}>{el.unicode}</div>\n </CustomPopper>,\n popoverEl\n );\n\n document.body.appendChild(newEl);\n };\n\n let firstCallMade = false;\n\n const listener = e => {\n // this will be triggered right after setting it because\n // this toolbar is added on the mousedown event\n // so right after mouseup, the click will be triggered\n if (firstCallMade) {\n const focusIsInModals =\n newEl.contains(e.target) || (popoverEl && popoverEl.contains(e.target));\n const focusIsInEditor = editorDOM.contains(e.target);\n\n if (!(focusIsInModals || focusIsInEditor)) {\n handleClose();\n }\n } else {\n firstCallMade = true;\n }\n };\n\n const handleClose = () => {\n callback(undefined, true);\n newEl.remove();\n closePopOver();\n document.body.removeEventListener('click', listener);\n };\n\n const handleChange = val => {\n if (typeof val === 'string') {\n callback(val, true);\n }\n };\n\n const el = (\n <PureToolbar\n autoFocus\n noDecimal\n hideInput\n noLatexHandling\n layoutForKeyPad={layoutForCharacters}\n additionalKeys={configToUse.characters.reduce((arr, n) => {\n arr = [\n ...arr,\n ...n.map(k => ({\n name: get(k, 'name') || k,\n write: get(k, 'write') || k,\n label: get(k, 'label') || k,\n category: 'character',\n extraClass: 'character',\n extraProps: {\n ...(k.extraProps || {}),\n style: {\n ...(k.extraProps || {}).style,\n border: '1px solid #000'\n }\n },\n ...(configToUse.hasPreview\n ? {\n actions: { onMouseEnter: ev => renderPopOver(ev, k), onMouseLeave: closePopOver }\n }\n : {})\n }))\n ];\n\n return arr;\n }, [])}\n keypadMode=\"language\"\n onChange={handleChange}\n onDone={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl, () => {\n const cursorItem = document.querySelector(`[data-key=\"${value.anchorKey}\"]`);\n\n if (cursorItem) {\n const bodyRect = document.body.getBoundingClientRect();\n const boundRect = cursorItem.getBoundingClientRect();\n\n document.body.appendChild(newEl);\n newEl.style.position = 'absolute';\n newEl.style.top = `${boundRect.top + Math.abs(bodyRect.top) - newEl.offsetHeight - 10}px`;\n newEl.style.zIndex = 99999;\n\n const leftValue = `${boundRect.left +\n Math.abs(bodyRect.left) +\n cursorItem.offsetWidth +\n 10}px`;\n\n const rightValue = `${boundRect.x}px`;\n\n newEl.style.left = leftValue;\n\n const leftAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = rightValue;\n\n const rightAlignedWidth = newEl.offsetWidth;\n\n newEl.style.left = 'unset';\n newEl.style.right = 'unset';\n\n if (leftAlignedWidth >= rightAlignedWidth) {\n newEl.style.left = leftValue;\n } else {\n newEl.style.right = rightValue;\n }\n\n document.body.addEventListener('click', listener);\n }\n });\n};\n\nconst CharacterIcon = ({ letter }) => (\n <div\n style={{\n fontSize: '25px',\n lineHeight: '15px'\n }}\n >\n {letter}\n </div>\n);\n\nexport default function CharactersPlugin(opts) {\n removeDialogs();\n return {\n name: 'characters',\n toolbar: {\n icon: <CharacterIcon letter={opts.characterIcon || characterIcons[opts.language] || 'ñ'} />,\n onClick: (value, onChange, getFocusedValue) => {\n const editorDOM = document.querySelector(`[data-key=\"${value.document.key}\"]`);\n let valueToUse = value;\n const callback = (char, focus) => {\n valueToUse = getFocusedValue();\n\n if (char) {\n const change = valueToUse\n .change()\n .insertTextByKey(valueToUse.anchorKey, valueToUse.anchorOffset, char);\n\n valueToUse = change.value;\n log('[characters:insert]: ', value);\n onChange(change);\n }\n\n log('[characters:click]');\n\n if (focus) {\n if (editorDOM) {\n editorDOM.focus();\n }\n }\n };\n\n insertDialog({ editorDOM, value: valueToUse, callback, opts });\n }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n }\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/characters/utils.js"],"names":["spanishConfig","characters","specialConfig","hasPreview","unicode","description","write","label","extraProps","style","gridRow","String","fromCodePoint","characterIcons","spanish","special"],"mappings":"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","sourcesContent":["export const spanishConfig = {\n characters: [\n ['á', 'é', 'í', 'ó', 'ú'],\n ['Á', 'É', 'Í', 'Ó', 'Ú'],\n ['—', '«', '»', 'ñ', 'ü'],\n ['-', '¿', '¡', 'Ñ', 'Ü']\n ]\n};\n\nexport const specialConfig = {\n hasPreview: true,\n characters: [\n [\n {\n unicode: 'U+00A2',\n description: 'CENT SIGN',\n write: '¢',\n label: '¢'\n },\n {\n unicode: 'U+00BF',\n description: 'INVERTED QUESTION MARK',\n write: '¿',\n label: '¿'\n },\n {\n unicode: 'U+00B4',\n description: 'ACUTE ACCENT',\n write: '´',\n label: '´',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E1',\n description: 'LATIN SMALL LETTER A WITH ACUTE',\n write: 'á',\n label: 'á'\n },\n {\n unicode: 'U+00E9',\n description: 'LATIN SMALL LETTER E WITH ACUTE',\n write: 'é',\n label: 'é'\n },\n {\n unicode: 'U+00ED',\n description: 'LATIN SMALL LETTER I WITH ACUTE',\n write: 'í',\n label: 'í'\n },\n {\n unicode: 'U+00F3',\n description: 'LATIN SMALL LETTER O WITH ACUTE',\n write: 'ó',\n label: 'ó'\n },\n {\n unicode: 'U+00FA',\n description: 'LATIN SMALL LETTER U WITH ACUTE',\n write: 'ú',\n label: 'ú'\n },\n {\n unicode: 'U+00F1',\n description: 'LATIN SMALL LETTER N WITH TILDE',\n write: 'ñ',\n label: 'ñ'\n }\n ],\n [\n {\n unicode: 'U+20AC',\n description: 'EURO SIGN',\n write: '€',\n label: '€'\n },\n {\n unicode: 'U+00A1',\n description: 'INVERTED EXCLAMATION MARK',\n write: '¡',\n label: '¡'\n },\n {\n unicode: 'U+00C1',\n description: 'LATIN CAPITAL LETTER A WITH ACUTE',\n write: 'Á',\n label: 'Á'\n },\n {\n unicode: 'U+00C9',\n description: 'LATIN CAPITAL LETTER E WITH ACUTE',\n write: 'É',\n label: 'É'\n },\n {\n unicode: 'U+00CD',\n description: 'LATIN CAPITAL LETTER I WITH ACUTE',\n write: 'Í',\n label: 'Í'\n },\n {\n unicode: 'U+00D3',\n description: 'LATIN CAPITAL LETTER O WITH ACUTE',\n write: 'Ó',\n label: 'Ó'\n },\n {\n unicode: 'U+00DA',\n description: 'LATIN CAPITAL LETTER U WITH ACUTE',\n write: 'Ú',\n label: 'Ú'\n },\n {\n unicode: 'U+00D1',\n description: 'LATIN CAPITAL LETTER N WITH TILDE',\n write: 'Ñ',\n label: 'Ñ'\n }\n ],\n [\n {\n unicode: 'U+00A3',\n description: 'POUND SIGN',\n write: '£',\n label: '£'\n },\n {\n unicode: 'U+00AB',\n description: 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '«',\n label: '«'\n },\n {\n unicode: 'U+005E',\n description: 'CIRCUMFLEX ACCENT',\n write: '^',\n label: '^',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E2',\n description: 'LATIN SMALL LETTER A WITH CIRCUMFLEX',\n write: 'â',\n label: 'â'\n },\n {\n unicode: 'U+00EA',\n description: 'LATIN SMALL LETTER E WITH CIRCUMFLEX',\n write: 'ê',\n label: 'ê'\n },\n {\n unicode: 'U+00EE',\n description: 'LATIN SMALL LETTER I WITH CIRCUMFLEX',\n write: 'î',\n label: 'î'\n },\n {\n unicode: 'U+00F4',\n description: 'LATIN SMALL LETTER O WITH CIRCUMFLEX',\n write: 'ô',\n label: 'ô'\n },\n {\n unicode: 'U+00FB',\n description: 'LATIN SMALL LETTER U WITH CIRCUMFLEX',\n write: 'û',\n label: 'û'\n },\n {\n unicode: 'U+00E7',\n description: 'LATIN SMALL LETTER C WITH CEDILLA',\n write: 'ç',\n label: 'ç'\n }\n ],\n [\n {\n unicode: 'U+00A5',\n description: 'YEN SIGN',\n write: '¥',\n label: '¥'\n },\n {\n unicode: 'U+00BB',\n description: 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '»',\n label: '»'\n },\n {\n unicode: 'U+00C2',\n description: 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX',\n write: 'Â',\n label: 'Â'\n },\n {\n unicode: 'U+00CA',\n description: 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX',\n write: 'Ê',\n label: 'Ê'\n },\n {\n unicode: 'U+00CE',\n description: 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX',\n write: 'Î',\n label: 'Î'\n },\n {\n unicode: 'U+00D4',\n description: 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX',\n write: 'Ô',\n label: 'Ô'\n },\n {\n unicode: 'U+00DB',\n description: 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX',\n write: 'Û',\n label: 'Û'\n },\n {\n unicode: 'U+00C7',\n description: 'LATIN CAPITAL LETTER C WITH CEDILLA',\n write: 'Ç',\n label: 'Ç'\n }\n ],\n [\n {\n unicode: 'U+00A0',\n description: 'NO-BREAK SPACE',\n write: String.fromCodePoint('0x00A0'),\n label: ' '\n },\n {\n unicode: 'U+00A7',\n description: 'SECTION SIGN',\n write: '§',\n label: '§'\n },\n {\n unicode: 'U+00A8',\n description: 'DIAERESIS',\n write: '¨',\n label: '¨',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E4',\n description: 'LATIN SMALL LETTER A WITH DIAERESIS',\n write: 'ä',\n label: 'ä'\n },\n {\n unicode: 'U+00EB',\n description: 'LATIN SMALL LETTER E WITH DIAERESIS',\n write: 'ë',\n label: 'ë'\n },\n {\n unicode: 'U+00EF',\n description: 'LATIN SMALL LETTER I WITH DIAERESIS',\n write: 'ï',\n label: 'ï'\n },\n {\n unicode: 'U+00F6',\n description: 'LATIN SMALL LETTER O WITH DIAERESIS',\n write: 'ö',\n label: 'ö'\n },\n {\n unicode: 'U+00FC',\n description: 'LATIN SMALL LETTER U WITH DIAERESIS',\n write: 'ü',\n label: 'ü'\n },\n {\n unicode: 'U+00DF',\n description: 'LATIN SMALL LETTER SHARP S',\n write: 'ß',\n label: 'ß'\n }\n ],\n [\n {\n unicode: 'U+2009',\n description: 'THIN SPACE',\n write: String.fromCodePoint('0x2009'),\n label: ' '\n },\n {\n unicode: 'U+2026',\n description: 'HORIZONTAL ELLIPSIS',\n write: '…',\n label: '…'\n },\n {\n unicode: 'U+00C4',\n description: 'LATIN CAPITAL LETTER A WITH DIAERESIS',\n write: 'Ä',\n label: 'Ä'\n },\n {\n unicode: 'U+00CB',\n description: 'LATIN CAPITAL LETTER E WITH DIAERESIS',\n write: 'Ë',\n label: 'Ë'\n },\n {\n unicode: 'U+00CF',\n description: 'LATIN CAPITAL LETTER I WITH DIAERESIS',\n write: 'Ï',\n label: 'Ï'\n },\n {\n unicode: 'U+00D6',\n description: 'LATIN CAPITAL LETTER O WITH DIAERESIS',\n write: 'Ö',\n label: 'Ö'\n },\n {\n unicode: 'U+00DC',\n description: 'LATIN CAPITAL LETTER U WITH DIAERESIS',\n write: 'Ü',\n label: 'Ü'\n },\n {\n unicode: 'U+2212',\n description: 'MINUS SIGN',\n write: '−',\n label: '−'\n }\n ],\n [\n {\n unicode: 'U+200A',\n description: 'HAIR SPACE',\n write: String.fromCodePoint('0x200A'),\n label: ' '\n },\n {\n unicode: 'U+2022',\n description: 'BULLET',\n write: '•',\n label: '•'\n },\n {\n unicode: 'U+0060',\n description: 'GRAVE ACCENT',\n write: '`',\n label: '`',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E0',\n description: 'LATIN SMALL LETTER A WITH GRAVE',\n write: 'à',\n label: 'à'\n },\n {\n unicode: 'U+00E8',\n description: 'LATIN SMALL LETTER E WITH GRAVE',\n write: 'è',\n label: 'è'\n },\n {\n unicode: 'U+00EC',\n description: 'LATIN SMALL LETTER I WITH GRAVE',\n write: 'ì',\n label: 'ì'\n },\n {\n unicode: 'U+00F2',\n description: 'LATIN SMALL LETTER O WITH GRAVE',\n write: 'ò',\n label: 'ò'\n },\n {\n unicode: 'U+00F9',\n description: 'LATIN SMALL LETTER U WITH GRAVE',\n write: 'ù',\n label: 'ù'\n },\n {\n unicode: 'U+2013',\n description: 'EN DASH',\n write: '–',\n label: '–'\n }\n ],\n [\n {\n unicode: 'U+0009',\n description: 'TAB',\n write: String.fromCodePoint('0x0009'),\n label: 'TAB'\n },\n {\n unicode: 'U+25E6',\n description: 'WHITE BULLET',\n write: '◦',\n label: '◦'\n },\n {\n unicode: 'U+00C0',\n description: 'LATIN CAPITAL LETTER A WITH GRAVE',\n write: 'À',\n label: 'À'\n },\n {\n unicode: 'U+00C8',\n description: 'LATIN CAPITAL LETTER E WITH GRAVE',\n write: 'È',\n label: 'È'\n },\n {\n unicode: 'U+00CC',\n description: 'LATIN CAPITAL LETTER I WITH GRAVE',\n write: 'Ì',\n label: 'Ì'\n },\n {\n unicode: 'U+00D2',\n description: 'LATIN CAPITAL LETTER O WITH GRAVE',\n write: 'Ò',\n label: 'Ò'\n },\n {\n unicode: 'U+00D9',\n description: 'LATIN CAPITAL LETTER U WITH GRAVE',\n write: 'Ù',\n label: 'Ù'\n },\n {\n unicode: 'U+2014',\n description: 'EM DASH',\n write: '—',\n label: '—'\n }\n ]\n ]\n};\n\nexport const characterIcons = {\n spanish: 'ñ',\n special: '€'\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["spanishConfig","characters","specialConfig","hasPreview","unicode","description","write","label","extraProps","style","gridRow","String","fromCodePoint","characterIcons","spanish","special"],"sources":["../../../src/plugins/characters/utils.js"],"sourcesContent":["export const spanishConfig = {\n characters: [\n ['á', 'é', 'í', 'ó', 'ú'],\n ['Á', 'É', 'Í', 'Ó', 'Ú'],\n ['—', '«', '»', 'ñ', 'ü'],\n ['-', '¿', '¡', 'Ñ', 'Ü']\n ]\n};\n\nexport const specialConfig = {\n hasPreview: true,\n characters: [\n [\n {\n unicode: 'U+00A2',\n description: 'CENT SIGN',\n write: '¢',\n label: '¢'\n },\n {\n unicode: 'U+00BF',\n description: 'INVERTED QUESTION MARK',\n write: '¿',\n label: '¿'\n },\n {\n unicode: 'U+00B4',\n description: 'ACUTE ACCENT',\n write: '´',\n label: '´',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E1',\n description: 'LATIN SMALL LETTER A WITH ACUTE',\n write: 'á',\n label: 'á'\n },\n {\n unicode: 'U+00E9',\n description: 'LATIN SMALL LETTER E WITH ACUTE',\n write: 'é',\n label: 'é'\n },\n {\n unicode: 'U+00ED',\n description: 'LATIN SMALL LETTER I WITH ACUTE',\n write: 'í',\n label: 'í'\n },\n {\n unicode: 'U+00F3',\n description: 'LATIN SMALL LETTER O WITH ACUTE',\n write: 'ó',\n label: 'ó'\n },\n {\n unicode: 'U+00FA',\n description: 'LATIN SMALL LETTER U WITH ACUTE',\n write: 'ú',\n label: 'ú'\n },\n {\n unicode: 'U+00F1',\n description: 'LATIN SMALL LETTER N WITH TILDE',\n write: 'ñ',\n label: 'ñ'\n }\n ],\n [\n {\n unicode: 'U+20AC',\n description: 'EURO SIGN',\n write: '€',\n label: '€'\n },\n {\n unicode: 'U+00A1',\n description: 'INVERTED EXCLAMATION MARK',\n write: '¡',\n label: '¡'\n },\n {\n unicode: 'U+00C1',\n description: 'LATIN CAPITAL LETTER A WITH ACUTE',\n write: 'Á',\n label: 'Á'\n },\n {\n unicode: 'U+00C9',\n description: 'LATIN CAPITAL LETTER E WITH ACUTE',\n write: 'É',\n label: 'É'\n },\n {\n unicode: 'U+00CD',\n description: 'LATIN CAPITAL LETTER I WITH ACUTE',\n write: 'Í',\n label: 'Í'\n },\n {\n unicode: 'U+00D3',\n description: 'LATIN CAPITAL LETTER O WITH ACUTE',\n write: 'Ó',\n label: 'Ó'\n },\n {\n unicode: 'U+00DA',\n description: 'LATIN CAPITAL LETTER U WITH ACUTE',\n write: 'Ú',\n label: 'Ú'\n },\n {\n unicode: 'U+00D1',\n description: 'LATIN CAPITAL LETTER N WITH TILDE',\n write: 'Ñ',\n label: 'Ñ'\n }\n ],\n [\n {\n unicode: 'U+00A3',\n description: 'POUND SIGN',\n write: '£',\n label: '£'\n },\n {\n unicode: 'U+00AB',\n description: 'LEFT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '«',\n label: '«'\n },\n {\n unicode: 'U+005E',\n description: 'CIRCUMFLEX ACCENT',\n write: '^',\n label: '^',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E2',\n description: 'LATIN SMALL LETTER A WITH CIRCUMFLEX',\n write: 'â',\n label: 'â'\n },\n {\n unicode: 'U+00EA',\n description: 'LATIN SMALL LETTER E WITH CIRCUMFLEX',\n write: 'ê',\n label: 'ê'\n },\n {\n unicode: 'U+00EE',\n description: 'LATIN SMALL LETTER I WITH CIRCUMFLEX',\n write: 'î',\n label: 'î'\n },\n {\n unicode: 'U+00F4',\n description: 'LATIN SMALL LETTER O WITH CIRCUMFLEX',\n write: 'ô',\n label: 'ô'\n },\n {\n unicode: 'U+00FB',\n description: 'LATIN SMALL LETTER U WITH CIRCUMFLEX',\n write: 'û',\n label: 'û'\n },\n {\n unicode: 'U+00E7',\n description: 'LATIN SMALL LETTER C WITH CEDILLA',\n write: 'ç',\n label: 'ç'\n }\n ],\n [\n {\n unicode: 'U+00A5',\n description: 'YEN SIGN',\n write: '¥',\n label: '¥'\n },\n {\n unicode: 'U+00BB',\n description: 'RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK',\n write: '»',\n label: '»'\n },\n {\n unicode: 'U+00C2',\n description: 'LATIN CAPITAL LETTER A WITH CIRCUMFLEX',\n write: 'Â',\n label: 'Â'\n },\n {\n unicode: 'U+00CA',\n description: 'LATIN CAPITAL LETTER E WITH CIRCUMFLEX',\n write: 'Ê',\n label: 'Ê'\n },\n {\n unicode: 'U+00CE',\n description: 'LATIN CAPITAL LETTER I WITH CIRCUMFLEX',\n write: 'Î',\n label: 'Î'\n },\n {\n unicode: 'U+00D4',\n description: 'LATIN CAPITAL LETTER O WITH CIRCUMFLEX',\n write: 'Ô',\n label: 'Ô'\n },\n {\n unicode: 'U+00DB',\n description: 'LATIN CAPITAL LETTER U WITH CIRCUMFLEX',\n write: 'Û',\n label: 'Û'\n },\n {\n unicode: 'U+00C7',\n description: 'LATIN CAPITAL LETTER C WITH CEDILLA',\n write: 'Ç',\n label: 'Ç'\n }\n ],\n [\n {\n unicode: 'U+00A0',\n description: 'NO-BREAK SPACE',\n write: String.fromCodePoint('0x00A0'),\n label: ' '\n },\n {\n unicode: 'U+00A7',\n description: 'SECTION SIGN',\n write: '§',\n label: '§'\n },\n {\n unicode: 'U+00A8',\n description: 'DIAERESIS',\n write: '¨',\n label: '¨',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E4',\n description: 'LATIN SMALL LETTER A WITH DIAERESIS',\n write: 'ä',\n label: 'ä'\n },\n {\n unicode: 'U+00EB',\n description: 'LATIN SMALL LETTER E WITH DIAERESIS',\n write: 'ë',\n label: 'ë'\n },\n {\n unicode: 'U+00EF',\n description: 'LATIN SMALL LETTER I WITH DIAERESIS',\n write: 'ï',\n label: 'ï'\n },\n {\n unicode: 'U+00F6',\n description: 'LATIN SMALL LETTER O WITH DIAERESIS',\n write: 'ö',\n label: 'ö'\n },\n {\n unicode: 'U+00FC',\n description: 'LATIN SMALL LETTER U WITH DIAERESIS',\n write: 'ü',\n label: 'ü'\n },\n {\n unicode: 'U+00DF',\n description: 'LATIN SMALL LETTER SHARP S',\n write: 'ß',\n label: 'ß'\n }\n ],\n [\n {\n unicode: 'U+2009',\n description: 'THIN SPACE',\n write: String.fromCodePoint('0x2009'),\n label: ' '\n },\n {\n unicode: 'U+2026',\n description: 'HORIZONTAL ELLIPSIS',\n write: '…',\n label: '…'\n },\n {\n unicode: 'U+00C4',\n description: 'LATIN CAPITAL LETTER A WITH DIAERESIS',\n write: 'Ä',\n label: 'Ä'\n },\n {\n unicode: 'U+00CB',\n description: 'LATIN CAPITAL LETTER E WITH DIAERESIS',\n write: 'Ë',\n label: 'Ë'\n },\n {\n unicode: 'U+00CF',\n description: 'LATIN CAPITAL LETTER I WITH DIAERESIS',\n write: 'Ï',\n label: 'Ï'\n },\n {\n unicode: 'U+00D6',\n description: 'LATIN CAPITAL LETTER O WITH DIAERESIS',\n write: 'Ö',\n label: 'Ö'\n },\n {\n unicode: 'U+00DC',\n description: 'LATIN CAPITAL LETTER U WITH DIAERESIS',\n write: 'Ü',\n label: 'Ü'\n },\n {\n unicode: 'U+2212',\n description: 'MINUS SIGN',\n write: '−',\n label: '−'\n }\n ],\n [\n {\n unicode: 'U+200A',\n description: 'HAIR SPACE',\n write: String.fromCodePoint('0x200A'),\n label: ' '\n },\n {\n unicode: 'U+2022',\n description: 'BULLET',\n write: '•',\n label: '•'\n },\n {\n unicode: 'U+0060',\n description: 'GRAVE ACCENT',\n write: '`',\n label: '`',\n extraProps: { style: { gridRow: 'span 2' } }\n },\n {\n unicode: 'U+00E0',\n description: 'LATIN SMALL LETTER A WITH GRAVE',\n write: 'à',\n label: 'à'\n },\n {\n unicode: 'U+00E8',\n description: 'LATIN SMALL LETTER E WITH GRAVE',\n write: 'è',\n label: 'è'\n },\n {\n unicode: 'U+00EC',\n description: 'LATIN SMALL LETTER I WITH GRAVE',\n write: 'ì',\n label: 'ì'\n },\n {\n unicode: 'U+00F2',\n description: 'LATIN SMALL LETTER O WITH GRAVE',\n write: 'ò',\n label: 'ò'\n },\n {\n unicode: 'U+00F9',\n description: 'LATIN SMALL LETTER U WITH GRAVE',\n write: 'ù',\n label: 'ù'\n },\n {\n unicode: 'U+2013',\n description: 'EN DASH',\n write: '–',\n label: '–'\n }\n ],\n [\n {\n unicode: 'U+0009',\n description: 'TAB',\n write: String.fromCodePoint('0x0009'),\n label: 'TAB'\n },\n {\n unicode: 'U+25E6',\n description: 'WHITE BULLET',\n write: '◦',\n label: '◦'\n },\n {\n unicode: 'U+00C0',\n description: 'LATIN CAPITAL LETTER A WITH GRAVE',\n write: 'À',\n label: 'À'\n },\n {\n unicode: 'U+00C8',\n description: 'LATIN CAPITAL LETTER E WITH GRAVE',\n write: 'È',\n label: 'È'\n },\n {\n unicode: 'U+00CC',\n description: 'LATIN CAPITAL LETTER I WITH GRAVE',\n write: 'Ì',\n label: 'Ì'\n },\n {\n unicode: 'U+00D2',\n description: 'LATIN CAPITAL LETTER O WITH GRAVE',\n write: 'Ò',\n label: 'Ò'\n },\n {\n unicode: 'U+00D9',\n description: 'LATIN CAPITAL LETTER U WITH GRAVE',\n write: 'Ù',\n label: 'Ù'\n },\n {\n unicode: 'U+2014',\n description: 'EM DASH',\n write: '—',\n label: '—'\n }\n ]\n ]\n};\n\nexport const characterIcons = {\n spanish: 'ñ',\n special: '€'\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"alt-dialog.js","names":["AltDialog","props","allDialogs","document","querySelectorAll","forEach","s","remove","onDone","value","state","closeDialog","alt","display","paddingTop","event","setState","target","React","Component","PropTypes","func","isRequired","string"],"sources":["../../../src/plugins/image/alt-dialog.jsx"],"sourcesContent":["import React from 'react';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport ArrowBackIos from '@material-ui/icons/ArrowBackIos';\nimport TextField from '@material-ui/core/TextField';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport PropTypes from \"prop-types\";\n\nexport class AltDialog extends React.Component {\n static propTypes = {\n onDone: PropTypes.func.isRequired,\n alt: PropTypes.string\n };\n\n constructor(props) {\n super(props);\n\n const { alt } = props;\n\n this.state = {\n value: alt\n };\n }\n\n closeDialog = () => {\n const allDialogs = document.querySelectorAll('#text-dialog');\n\n allDialogs.forEach(function(s) {\n return s.remove();\n });\n };\n\n onDone = () => {\n const { onDone } = this.props;\n const { value } = this.state;\n\n onDone(value);\n this.closeDialog();\n };\n\n render() {\n const { value } = this.state;\n\n return (\n <Dialog open disablePortal onClose={this.closeDialog} id=\"text-dialog\" hideBackdrop>\n <DialogContent>\n <div style={{ display: 'flex' }}>\n <ArrowBackIos style={{ paddingTop: '6px' }} />\n <TextField\n multiline\n placeholder={'Enter an Alt Text description of this image'}\n helperText={\n 'Users with visual limitations rely on Alt Text, since screen readers cannot otherwise describe the contents of an image.'\n }\n value={value}\n onChange={event => this.setState({ value: event.target.value })}\n />\n </div>\n </DialogContent>\n <DialogActions>\n <Button onClick={this.onDone}>Done</Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nexport default AltDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,S;;;;;EAMX,mBAAYC,KAAZ,EAAmB;IAAA;;IAAA;IACjB,0BAAMA,KAAN;IADiB,gGAUL,YAAM;MAClB,IAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,cAA1B,CAAnB;MAEAF,UAAU,CAACG,OAAX,CAAmB,UAASC,CAAT,EAAY;QAC7B,OAAOA,CAAC,CAACC,MAAF,EAAP;MACD,CAFD;IAGD,CAhBkB;IAAA,2FAkBV,YAAM;MACb,IAAQC,MAAR,GAAmB,MAAKP,KAAxB,CAAQO,MAAR;MACA,IAAQC,KAAR,GAAkB,MAAKC,KAAvB,CAAQD,KAAR;MAEAD,MAAM,CAACC,KAAD,CAAN;;MACA,MAAKE,WAAL;IACD,CAxBkB;IAGjB,IAAQC,GAAR,GAAgBX,KAAhB,CAAQW,GAAR;IAEA,MAAKF,KAAL,GAAa;MACXD,KAAK,EAAEG;IADI,CAAb;IALiB;EAQlB;;;;WAkBD,kBAAS;MAAA;;MACP,IAAQH,KAAR,GAAkB,KAAKC,KAAvB,CAAQD,KAAR;MAEA,oBACE,gCAAC,kBAAD;QAAQ,IAAI,MAAZ;QAAa,aAAa,MAA1B;QAA2B,OAAO,EAAE,KAAKE,WAAzC;QAAsD,EAAE,EAAC,aAAzD;QAAuE,YAAY;MAAnF,gBACE,gCAAC,yBAAD,qBACE;QAAK,KAAK,EAAE;UAAEE,OAAO,EAAE;QAAX;MAAZ,gBACE,gCAAC,wBAAD;QAAc,KAAK,EAAE;UAAEC,UAAU,EAAE;QAAd;MAArB,EADF,eAEE,gCAAC,qBAAD;QACE,SAAS,MADX;QAEE,WAAW,EAAE,6CAFf;QAGE,UAAU,EACR,0HAJJ;QAME,KAAK,EAAEL,KANT;QAOE,QAAQ,EAAE,kBAAAM,KAAK;UAAA,OAAI,MAAI,CAACC,QAAL,CAAc;YAAEP,KAAK,EAAEM,KAAK,CAACE,MAAN,CAAaR;UAAtB,CAAd,CAAJ;QAAA;MAPjB,EAFF,CADF,CADF,eAeE,gCAAC,yBAAD,qBACE,gCAAC,kBAAD;QAAQ,OAAO,EAAE,KAAKD;MAAtB,UADF,CAfF,CADF;IAqBD;;;EAxD4BU,iBAAA,CAAMC,S;;;iCAAxBnB,S,eACQ;EACjBQ,MAAM,EAAEY,qBAAA,CAAUC,IAAV,CAAeC,UADN;EAEjBV,GAAG,EAAEQ,qBAAA,CAAUG;AAFE,C;eA0DNvB,S"}
|