@pie-lib/editable-html 7.17.4-next.45 → 7.17.4-next.450
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/CHANGELOG.json +165 -0
- package/CHANGELOG.md +286 -0
- package/lib/editor.js +373 -178
- package/lib/editor.js.map +1 -1
- package/lib/index.js +63 -52
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popover.js +70 -0
- package/lib/plugins/characters/custom-popover.js.map +1 -0
- package/lib/plugins/characters/index.js +266 -0
- package/lib/plugins/characters/index.js.map +1 -0
- package/lib/plugins/characters/utils.js +382 -0
- package/lib/plugins/characters/utils.js.map +1 -0
- package/lib/plugins/image/alt-dialog.js +119 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -0
- package/lib/plugins/image/component.js +253 -77
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +95 -61
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +62 -20
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +9 -15
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +20 -12
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +82 -14
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +50 -55
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +26 -25
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +45 -56
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +24 -30
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +28 -35
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +11 -11
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +58 -42
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +5 -5
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +12 -12
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +83 -27
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +41 -50
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +14 -11
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +5 -5
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +43 -43
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +5 -5
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +60 -64
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +1 -1
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +32 -9
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +7 -6
- package/src/editor.jsx +196 -31
- package/src/index.jsx +20 -3
- package/src/plugins/characters/custom-popover.js +45 -0
- package/src/plugins/characters/index.jsx +244 -0
- package/src/plugins/characters/utils.js +448 -0
- package/src/plugins/image/alt-dialog.jsx +69 -0
- package/src/plugins/image/component.jsx +204 -21
- package/src/plugins/image/image-toolbar.jsx +68 -22
- package/src/plugins/image/index.jsx +47 -9
- package/src/plugins/index.jsx +4 -1
- package/src/plugins/list/index.jsx +67 -5
- package/src/plugins/math/index.jsx +31 -37
- package/src/plugins/media/index.jsx +3 -0
- package/src/plugins/media/media-dialog.js +1 -1
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
- package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
- package/src/plugins/respArea/index.jsx +50 -31
- package/src/plugins/table/index.jsx +63 -14
- package/src/plugins/toolbar/default-toolbar.jsx +8 -0
- package/src/plugins/toolbar/editor-and-toolbar.jsx +12 -4
- package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
- package/src/plugins/toolbar/toolbar.jsx +14 -4
- package/src/serialization.jsx +19 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/math/index.jsx"],"names":["log","TEXT_NODE","generateAdditionalKeys","keyData","map","key","name","latex","write","label","CustomToolbarComp","React","memo","props","node","value","onFocus","onBlur","onClick","pluginProps","math","keypadMode","customKeys","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","prev","next","nodeNext","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","toolbar","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","html","attributes","__html","normalizeNode","addSpacesArray","allElements","filterDescendants","d","forEach","el","prevText","getPreviousText","lastCharIsNewLine","text","length","push","nr","withoutNormalization","getNode","insertTextByKey","repeat","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","tagName","toLowerCase","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","newHtml","innerHTML","outerHTML","nodeType","hasLatex","hasAttribute","unwrapped","wrapType","nodes","wrapper","serialize","l","decoded"],"mappings":"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","sourcesContent":["import Functions from '@material-ui/icons/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../serialization';\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map(key => ({\n name: key,\n latex: key,\n write: key,\n label: key\n }));\n}\n\nexport const CustomToolbarComp = React.memo(\n props => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: {\n math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {}\n } = {}\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n }\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nexport default function MathPlugin() {\n return {\n name: 'math',\n toolbar: {\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: node => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp\n },\n schema: {\n document: { match: [{ type: 'math' }] }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n },\n\n renderNode: props => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n },\n\n normalizeNode: node => {\n if (node.object !== 'document') {\n return;\n }\n\n const addSpacesArray = [];\n\n const allElements = node.filterDescendants(d => d.type === 'math');\n\n allElements.forEach(el => {\n const prevText = node.getPreviousText(el.key);\n const lastCharIsNewLine = prevText.text[prevText.text.length - 1] === '\\n';\n\n if (prevText.text.length === 0 || lastCharIsNewLine) {\n addSpacesArray.push({\n nr: lastCharIsNewLine ? 1 : 2,\n key: prevText.key\n });\n }\n });\n\n if (!addSpacesArray.length) {\n return;\n }\n\n return change => {\n change.withoutNormalization(() => {\n addSpacesArray.forEach(({ key, nr }) => {\n const node = change.value.document.getNode(key);\n\n change.insertTextByKey(key, node.text.length, '\\u00A0'.repeat(nr));\n });\n });\n };\n }\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: ''\n }\n });\n\nconst htmlDecode = input => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = el => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild =\n BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const newHtml = hasMathChild ? el.innerHTML : el.outerHTML;\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: newHtml\n }\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType\n }\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const l = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n log('[serialize] latex: ', l);\n const decoded = htmlDecode(l);\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","TEXT_NODE","generateAdditionalKeys","keyData","map","key","name","latex","write","label","CustomToolbarComp","React","memo","props","node","value","onFocus","onBlur","onClick","pluginProps","math","keypadMode","customKeys","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","prev","next","nodeNext","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","toolbar","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","html","attributes","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","el","tagName","toLowerCase","lessThanHandling","arrowSplit","split","length","reduce","st","part","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","newHtml","innerHTML","outerHTML","nodeType","hasLatex","hasAttribute","unWrapMath","unwrapped","wrapType","nodes","wrapper","serialize","l","decoded","wrapMath"],"sources":["../../../src/plugins/math/index.jsx"],"sourcesContent":["import Functions from '@material-ui/icons/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../serialization';\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map(key => ({\n name: key,\n latex: key,\n write: key,\n label: key\n }));\n}\n\nexport const CustomToolbarComp = React.memo(\n props => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = latex => {\n const update = {\n ...node.data.toObject(),\n latex\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: {\n math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {}\n } = {}\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n }\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func\n};\n\nexport default function MathPlugin() {\n return {\n name: 'math',\n toolbar: {\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: node => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp\n },\n schema: {\n document: { match: [{ type: 'math' }] }\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial'\n };\n }\n },\n\n renderNode: props => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: ''\n }\n });\n\nconst htmlDecode = input => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = el => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\n/**\n * Makes sure that strings that contain stuff like:\n * x<y are not transformed into x by the DOMParser because it thinks\n * that <y is the start of a dom element tag\n * @param input\n * @returns {*}\n */\nconst lessThanHandling = input => {\n const arrowSplit = input.split('<');\n\n // if we don't have at least 2 characters there's no point in checking\n if (input.length > 2) {\n return arrowSplit.reduce((st, part) => {\n /*\n We check if this element resulted is:\n div - continuation of a beginning of a HTML element\n /div - closing of a HTML tag\n br/> - beginning and closing of a html TAG\n */\n if (part.match(/<[a-zA-Z/][\\s\\S]*>/ig)) {\n return `${st}${st ? '<' : ''}${part}`;\n }\n\n return `${st}${st ? '<' : ''}${part}`;\n }, '');\n }\n\n return input;\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild =\n BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const newHtml = hasMathChild ? el.innerHTML : el.outerHTML;\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: newHtml\n }\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType\n }\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const l = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n log('[serialize] latex: ', l);\n const decoded = htmlDecode(lessThanHandling(l));\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;AACA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,qCAAN,CAAZ;AAEA,IAAMC,SAAS,GAAG,CAAlB;;AAEA,SAASC,sBAAT,GAA8C;EAAA,IAAdC,OAAc,uEAAJ,EAAI;EAC5C,OAAOA,OAAO,CAACC,GAAR,CAAY,UAAAC,GAAG;IAAA,OAAK;MACzBC,IAAI,EAAED,GADmB;MAEzBE,KAAK,EAAEF,GAFkB;MAGzBG,KAAK,EAAEH,GAHkB;MAIzBI,KAAK,EAAEJ;IAJkB,CAAL;EAAA,CAAf,CAAP;AAMD;;AAEM,IAAMK,iBAAiB,gBAAGC,iBAAA,CAAMC,IAAN,CAC/B,UAAAC,KAAK,EAAI;EACP,IAAQC,IAAR,GAAkDD,KAAlD,CAAQC,IAAR;EAAA,IAAcC,KAAd,GAAkDF,KAAlD,CAAcE,KAAd;EAAA,IAAqBC,OAArB,GAAkDH,KAAlD,CAAqBG,OAArB;EAAA,IAA8BC,MAA9B,GAAkDJ,KAAlD,CAA8BI,MAA9B;EAAA,IAAsCC,OAAtC,GAAkDL,KAAlD,CAAsCK,OAAtC;;EACA,WAAwBL,KAAK,IAAI,EAAjC;EAAA,IAAQM,WAAR,QAAQA,WAAR;;EACA,YAAiBA,WAAW,IAAI,EAAhC;EAAA,IAAQC,IAAR,SAAQA,IAAR;;EACA,YAAgEA,IAAI,IAAI,EAAxE;EAAA,IAAQC,UAAR,SAAQA,UAAR;EAAA,IAAoBC,UAApB,SAAoBA,UAApB;EAAA,kCAAgCC,oBAAhC;EAAA,IAAgCA,oBAAhC,sCAAuD,IAAvD;;EAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAjB,KAAK,EAAI;IACtB,IAAMkB,MAAM,mCACPX,IAAI,CAACY,IAAL,CAAUC,QAAV,EADO;MAEVpB,KAAK,EAALA;IAFU,EAAZ;;IAIA,IAAMqB,MAAM,GAAGb,KAAK,CAACa,MAAN,GAAeC,YAAf,CAA4Bf,IAAI,CAACT,GAAjC,EAAsC;MAAEqB,IAAI,EAAED;IAAR,CAAtC,CAAf;IAEA,IAAMK,QAAQ,GAAGf,KAAK,CAACgB,QAAN,CAAeC,WAAf,CAA2BlB,IAAI,CAACT,GAAhC,CAAjB;IAEAuB,MAAM,CAACK,WAAP,CAAmBH,QAAQ,CAACzB,GAA5B,EAAiC,CAAjC,EAAoC6B,YAApC,CAAiDJ,QAAQ,CAACzB,GAA1D,EAA+D,CAA/D;IAEAQ,KAAK,CAACsB,aAAN,CAAoBP,MAApB,EAA4B,KAA5B;EACD,CAZD;;EAcA,IAAMQ,QAAQ,GAAG,SAAXA,QAAW,CAAA7B,KAAK,EAAI;IACxB,IAAMkB,MAAM,mCACPX,IAAI,CAACY,IAAL,CAAUC,QAAV,EADO;MAEVpB,KAAK,EAALA;IAFU,EAAZ;;IAIA,IAAMqB,MAAM,GAAGb,KAAK,CAACa,MAAN,GAAeC,YAAf,CAA4Bf,IAAI,CAACT,GAAjC,EAAsC;MAAEqB,IAAI,EAAED;IAAR,CAAtC,CAAf;IACA1B,GAAG,CAAC,uBAAD,EAA0B6B,MAA1B,CAAH;IACAf,KAAK,CAACwB,YAAN,CAAmBvB,IAAI,CAACT,GAAxB,EAA6BoB,MAA7B;EACD,CARD;;EAUA,IAAMlB,KAAK,GAAGO,IAAI,CAACY,IAAL,CAAUY,GAAV,CAAc,OAAd,CAAd;EAEA,oBACE,gCAAC,wBAAD;IACE,SAAS,MADX;IAEE,cAAc,EAAEpC,sBAAsB,CAACoB,UAAD,CAFxC;IAGE,KAAK,EAAEf,KAHT;IAIE,QAAQ,EAAE6B,QAJZ;IAKE,MAAM,EAAEZ,MALV;IAME,MAAM,EAAEP,MANV;IAOE,OAAO,EAAED,OAPX;IAQE,OAAO,EAAEE,OARX;IASE,UAAU,EAAEG,UATd;IAUE,oBAAoB,EAAEE;EAVxB,EADF;AAcD,CA/C8B,EAgD/B,UAACgB,IAAD,EAAOC,IAAP,EAAgB;EACd,IAAQ1B,IAAR,GAAwFyB,IAAxF,CAAQzB,IAAR;EAAA,wBAAwFyB,IAAxF,CAAcpB,WAAd;EAAA,mDAAiF,EAAjF;EAAA,8CAA6BC,IAA7B;EAAA,2DAA0E,EAA1E;EAAA,IAAqCC,UAArC,yBAAqCA,UAArC;EAAA,IAAiDE,oBAAjD,yBAAiDA,oBAAjD;EACA,IACQkB,QADR,GAKID,IALJ,CACE1B,IADF;EAAA,wBAKI0B,IALJ,CAEErB,WAFF;EAAA,mDAIM,EAJN;EAAA,8CAGIC,IAHJ;EAAA,2DAG2F,EAH3F;EAAA,IAGwBsB,cAHxB,yBAGYrB,UAHZ;EAAA,IAG8DsB,wBAH9D,yBAGwCpB,oBAHxC;EAMA,IAAMqB,iBAAiB,GAAGvB,UAAU,KAAKqB,cAAzC;EACA,IAAMG,2BAA2B,GAAGtB,oBAAoB,KAAKoB,wBAA7D;EAEA,IAAMG,KAAK,GAAGhC,IAAI,CAACiC,MAAL,CAAYN,QAAZ,CAAd;EACA,OAAOK,KAAK,IAAI,CAACF,iBAAV,IAA+B,CAACC,2BAAvC;AACD,CA7D8B,CAA1B;;;AAgEPnC,iBAAiB,CAACsC,SAAlB,GAA8B;EAC5BlC,IAAI,EAAEmC,0BAAA,CAAenC,IAAf,CAAoBoC,UADE;EAE5BnC,KAAK,EAAEkC,0BAAA,CAAelC,KAFM;EAG5BoB,aAAa,EAAEgB,qBAAA,CAAUC,IAHG;EAI5Bf,YAAY,EAAEc,qBAAA,CAAUC,IAJI;EAK5BpC,OAAO,EAAEmC,qBAAA,CAAUC,IALS;EAM5BlC,OAAO,EAAEiC,qBAAA,CAAUC,IANS;EAO5BnC,MAAM,EAAEkC,qBAAA,CAAUC;AAPU,CAA9B;;AAUe,SAASC,UAAT,GAAsB;EACnC,OAAO;IACL/C,IAAI,EAAE,MADD;IAELgD,OAAO,EAAE;MACPC,IAAI,eAAE,gCAAC,qBAAD,OADC;MAEPrC,OAAO,EAAE,iBAACH,KAAD,EAAQqB,QAAR,EAAqB;QAC5BrC,GAAG,CAAC,cAAD,CAAH;QACA,IAAMqB,IAAI,GAAGoC,UAAU,EAAvB;QACA,IAAM5B,MAAM,GAAGb,KAAK,CAACa,MAAN,GAAe6B,YAAf,CAA4BrC,IAA5B,CAAf;QACAgB,QAAQ,CAACR,MAAD,CAAR;MACD,CAPM;MAQP8B,QAAQ,EAAE,kBAAA5C,IAAI;QAAA,OAAIA,IAAI,IAAIA,IAAI,CAAC6C,MAAL,KAAgB,QAAxB,IAAoC7C,IAAI,CAAC8C,IAAL,KAAc,MAAtD;MAAA,CARP;;MASP;AACN;AACA;AACA;AACA;AACA;AACA;MACMlD,iBAAiB,EAAjBA;IAhBO,CAFJ;IAoBLmD,MAAM,EAAE;MACN9B,QAAQ,EAAE;QAAE+B,KAAK,EAAE,CAAC;UAAEF,IAAI,EAAE;QAAR,CAAD;MAAT;IADJ,CApBH;IAwBLG,YAAY,EAAE,sBAACjD,IAAD,EAAOkD,UAAP,EAAmBC,CAAnB,EAAyB;MACrC,IAAIA,CAAJ,EAAO;QACL,OAAO;UACLC,QAAQ,EAAE,UADL;UAELC,GAAG,EAAE;QAFA,CAAP;MAID;IACF,CA/BI;IAiCLC,UAAU,EAAE,oBAAAvD,KAAK,EAAI;MACnB,IAAIA,KAAK,CAACC,IAAN,CAAW8C,IAAX,KAAoB,MAAxB,EAAgC;QAC9B7D,GAAG,CAAC,qBAAD,EAAwBc,KAAK,CAACC,IAAN,CAAWY,IAAnC,CAAH;QACA,oBAAO,gCAAC,wBAAD,EAAiBb,KAAjB,CAAP;MACD;MAED;AACN;AACA;;;MACM,IAAIA,KAAK,CAACC,IAAN,CAAW8C,IAAX,KAAoB,QAAxB,EAAkC;QAChC,IAAMS,IAAI,GAAGxD,KAAK,CAACC,IAAN,CAAWY,IAAX,CAAgBY,GAAhB,CAAoB,MAApB,CAAb;QAEA,oBAAO,sEAAUzB,KAAK,CAACyD,UAAhB;UAA4B,uBAAuB,EAAE;YAAEC,MAAM,EAAEF;UAAV;QAArD,GAAP;MACD;IACF;EA/CI,CAAP;AAiDD;;AAEDhB,UAAU,CAACmB,cAAX,GAA4B,gBAA5B;AACAnB,UAAU,CAACoB,eAAX,GAA6B,iBAA7B;AACApB,UAAU,CAACqB,MAAX,GAAoB,QAApB;AACArB,UAAU,CAACsB,aAAX,GAA2B,eAA3B;;AAEO,IAAMnB,UAAU,GAAG,SAAbA,UAAa;EAAA,OACxBoB,aAAA,CAAOC,MAAP,CAAc;IACZlB,MAAM,EAAE,QADI;IAEZC,IAAI,EAAE,MAFM;IAGZkB,MAAM,EAAE,IAHI;IAIZpD,IAAI,EAAE;MACJnB,KAAK,EAAE;IADH;EAJM,CAAd,CADwB;AAAA,CAAnB;;;;AAUP,IAAMwE,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK,EAAI;EAC1B,IAAMC,GAAG,GAAG,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCH,KAAhC,EAAuC,WAAvC,CAAZ;EAEA,OAAOC,GAAG,CAACG,eAAJ,CAAoBC,WAA3B;AACD,CAJD;;AAMA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAC,EAAE,EAAI;EACvB,OAAO,CAAEA,EAAE,IAAIA,EAAE,CAACC,OAAV,IAAsB,EAAvB,EAA2BC,WAA3B,EAAP;AACD,CAFD;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAV,KAAK,EAAI;EAChC,IAAMW,UAAU,GAAGX,KAAK,CAACY,KAAN,CAAY,GAAZ,CAAnB,CADgC,CAGhC;;EACA,IAAIZ,KAAK,CAACa,MAAN,GAAe,CAAnB,EAAsB;IACpB,OAAOF,UAAU,CAACG,MAAX,CAAkB,UAACC,EAAD,EAAKC,IAAL,EAAc;MACrC;AACN;AACA;AACA;AACA;AACA;MACM,IAAIA,IAAI,CAAClC,KAAL,CAAW,sBAAX,CAAJ,EAAwC;QACtC,iBAAUiC,EAAV,SAAeA,EAAE,GAAG,GAAH,GAAS,EAA1B,SAA+BC,IAA/B;MACD;;MAED,iBAAUD,EAAV,SAAeA,EAAE,GAAG,MAAH,GAAY,EAA7B,SAAkCC,IAAlC;IACD,CAZM,EAYJ,EAZI,CAAP;EAaD;;EAED,OAAOhB,KAAP;AACD,CArBD;;AAuBO,IAAMiB,aAAa,GAAG;EAC3BC,WAD2B,uBACfX,EADe,EACX;IACd,IAAMC,OAAO,GAAGF,UAAU,CAACC,EAAD,CAA1B;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;;IACI,IAAMY,YAAY,GAChBC,yBAAA,CAAWZ,OAAX,KAAuBD,EAAE,CAACc,UAAH,CAAcR,MAAd,KAAyB,CAAhD,IAAqDP,UAAU,CAACC,EAAE,CAACe,UAAJ,CAAV,KAA8B,MADrF;IAEAvG,GAAG,CAAC,sBAAD,EAAyByF,OAAzB,CAAH;IAEA;AACJ;AACA;;IACI,IAAIA,OAAO,KAAK,MAAZ,IAAuBD,EAAE,CAACgB,OAAH,IAAchB,EAAE,CAACgB,OAAH,CAAW3C,IAAX,KAAoB,QAAzD,IAAsEuC,YAA1E,EAAwF;MACtF,IAAMK,OAAO,GAAGL,YAAY,GAAGZ,EAAE,CAACkB,SAAN,GAAkBlB,EAAE,CAACmB,SAAjD;MAEA,OAAO;QACL/C,MAAM,EAAE,QADH;QAELmB,MAAM,EAAE,IAFH;QAGLlB,IAAI,EAAE,QAHD;QAILlC,IAAI,EAAE;UACJ2C,IAAI,EAAEmC;QADF;MAJD,CAAP;IAQD;;IAED,IAAIjB,EAAE,CAACoB,QAAH,KAAgB1G,SAApB,EAA+B;MAC7B;IACD;;IAED,IAAIuF,OAAO,KAAK,MAAhB,EAAwB;MACtB;IACD;;IAED,IAAMoB,QAAQ,GAAGrB,EAAE,CAACsB,YAAH,CAAgB,YAAhB,KAAiCtB,EAAE,CAACsB,YAAH,CAAgB,OAAhB,CAAlD;;IAEA,IAAID,QAAJ,EAAc;MACZ,IAAMrG,KAAK,GAAGwE,UAAU,CAACQ,EAAE,CAACkB,SAAJ,CAAxB;;MACA,kBAAgC,IAAAK,yBAAA,EAAWvG,KAAX,CAAhC;MAAA,IAAQwG,SAAR,eAAQA,SAAR;MAAA,IAAmBC,QAAnB,eAAmBA,QAAnB;;MACAjH,GAAG,CAAC,6BAAD,EAAgCgH,SAAhC,EAA2CC,QAA3C,CAAH;MACA,OAAO;QACLrD,MAAM,EAAE,QADH;QAELC,IAAI,EAAE,MAFD;QAGLkB,MAAM,EAAE,IAHH;QAILmC,KAAK,EAAE,EAJF;QAKLvF,IAAI,EAAE;UACJnB,KAAK,EAAEwG,SADH;UAEJG,OAAO,EAAEF;QAFL;MALD,CAAP;IAUD;EACF,CAvD0B;EAwD3BG,SAxD2B,qBAwDjBxD,MAxDiB,EAwDT;IAChB,IAAIA,MAAM,CAACC,IAAP,KAAgB,MAApB,EAA4B;MAC1B,IAAMwD,CAAC,GAAGzD,MAAM,CAACjC,IAAP,CAAYY,GAAZ,CAAgB,OAAhB,CAAV;MACA,IAAM4E,OAAO,GAAGvD,MAAM,CAACjC,IAAP,CAAYY,GAAZ,CAAgB,SAAhB,CAAhB;MACAvC,GAAG,CAAC,qBAAD,EAAwBqH,CAAxB,CAAH;MACA,IAAMC,OAAO,GAAGtC,UAAU,CAACW,gBAAgB,CAAC0B,CAAD,CAAjB,CAA1B;MACA,oBACE;QAAM,cAAW,EAAjB;QAAoB,YAAUC;MAA9B,GACG,IAAAC,uBAAA,EAASD,OAAT,EAAkBH,OAAlB,CADH,CADF;IAKD;IAED;AACJ;AACA;;;IACI,IAAIvD,MAAM,CAACC,IAAP,KAAgB,QAApB,EAA8B;MAC5B,IAAMS,IAAI,GAAGV,MAAM,CAACjC,IAAP,CAAYY,GAAZ,CAAgB,MAAhB,CAAb;MAEA,oBAAO;QAAM,aAAU,QAAhB;QAAyB,uBAAuB,EAAE;UAAEiC,MAAM,EAAEF;QAAV;MAAlD,EAAP;IACD;EACF;AA7E0B,CAAtB"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = MediaPlugin;
|
|
7
9
|
exports.serialization = exports.insertDialog = void 0;
|
|
8
10
|
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
|
|
13
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
14
|
+
|
|
15
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
16
|
+
|
|
9
17
|
var _react = _interopRequireDefault(require("react"));
|
|
10
18
|
|
|
11
19
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
@@ -24,19 +32,12 @@ var _mediaToolbar = _interopRequireDefault(require("./media-toolbar"));
|
|
|
24
32
|
|
|
25
33
|
var _mediaWrapper = _interopRequireDefault(require("./media-wrapper"));
|
|
26
34
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
30
|
-
|
|
31
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
35
|
+
var _excluded = ["type", "callback"],
|
|
36
|
+
_excluded2 = ["src", "height", "width", "editing"];
|
|
32
37
|
|
|
33
|
-
function
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
34
39
|
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
38
|
-
|
|
39
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
40
41
|
|
|
41
42
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image');
|
|
42
43
|
|
|
@@ -49,20 +50,21 @@ var removeDialogs = function removeDialogs() {
|
|
|
49
50
|
|
|
50
51
|
var insertDialog = function insertDialog(props) {
|
|
51
52
|
var newEl = document.createElement('div');
|
|
52
|
-
|
|
53
53
|
var type = props.type,
|
|
54
54
|
callback = props.callback,
|
|
55
|
-
rest =
|
|
56
|
-
|
|
55
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
56
|
+
var initialBodyOverflow = document.body.style.overflow;
|
|
57
57
|
removeDialogs();
|
|
58
58
|
newEl.className = 'insert-media-dialog';
|
|
59
|
+
document.body.style.overflow = 'hidden';
|
|
59
60
|
|
|
60
61
|
var handleClose = function handleClose(val, data) {
|
|
61
62
|
callback(val, data);
|
|
62
63
|
newEl.remove();
|
|
64
|
+
document.body.style.overflow = initialBodyOverflow;
|
|
63
65
|
};
|
|
64
66
|
|
|
65
|
-
var el = _react["default"].createElement(_mediaDialog["default"],
|
|
67
|
+
var el = /*#__PURE__*/_react["default"].createElement(_mediaDialog["default"], (0, _extends2["default"])({}, rest, {
|
|
66
68
|
type: type,
|
|
67
69
|
disablePortal: true,
|
|
68
70
|
open: true,
|
|
@@ -79,7 +81,7 @@ var types = ['audio', 'video'];
|
|
|
79
81
|
|
|
80
82
|
function MediaPlugin(type, opts) {
|
|
81
83
|
var toolbar = {
|
|
82
|
-
icon: type === 'audio' ? _react["default"].createElement(_VolumeUp["default"], null) : _react["default"].createElement(_Theaters["default"], null),
|
|
84
|
+
icon: type === 'audio' ? /*#__PURE__*/_react["default"].createElement(_VolumeUp["default"], null) : /*#__PURE__*/_react["default"].createElement(_Theaters["default"], null),
|
|
83
85
|
onClick: function onClick(value, onChange) {
|
|
84
86
|
log('[toolbar] onClick');
|
|
85
87
|
|
|
@@ -146,22 +148,21 @@ function MediaPlugin(type, opts) {
|
|
|
146
148
|
key = props.key;
|
|
147
149
|
var data = node.data;
|
|
148
150
|
var jsonData = data.toJSON();
|
|
149
|
-
|
|
150
151
|
var src = jsonData.src,
|
|
151
152
|
height = jsonData.height,
|
|
152
153
|
width = jsonData.width,
|
|
153
154
|
editing = jsonData.editing,
|
|
154
|
-
rest =
|
|
155
|
+
rest = (0, _objectWithoutProperties2["default"])(jsonData, _excluded2);
|
|
155
156
|
|
|
156
157
|
var handleEdit = function handleEdit() {
|
|
157
158
|
var change = opts.createChange();
|
|
158
159
|
var c = change.setNodeByKey(key, {
|
|
159
|
-
data: _objectSpread({}, jsonData, {
|
|
160
|
+
data: _objectSpread(_objectSpread({}, jsonData), {}, {
|
|
160
161
|
editing: true
|
|
161
162
|
})
|
|
162
163
|
});
|
|
163
164
|
opts.onChange(c, function () {
|
|
164
|
-
insertDialog(_objectSpread({}, jsonData, {
|
|
165
|
+
insertDialog(_objectSpread(_objectSpread({}, jsonData), {}, {
|
|
165
166
|
edit: true,
|
|
166
167
|
type: type,
|
|
167
168
|
callback: function callback(val, data) {
|
|
@@ -203,17 +204,17 @@ function MediaPlugin(type, opts) {
|
|
|
203
204
|
style.height = "".concat(height, "px");
|
|
204
205
|
}
|
|
205
206
|
|
|
206
|
-
return _react["default"].createElement(_mediaWrapper["default"],
|
|
207
|
+
return /*#__PURE__*/_react["default"].createElement(_mediaWrapper["default"], (0, _extends2["default"])({
|
|
207
208
|
editor: true,
|
|
208
209
|
"data-type": type,
|
|
209
210
|
width: style.width
|
|
210
|
-
}, rest), _react["default"].createElement("iframe",
|
|
211
|
+
}, rest), /*#__PURE__*/_react["default"].createElement("iframe", (0, _extends2["default"])({
|
|
211
212
|
frameBorder: "0",
|
|
212
213
|
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
213
214
|
allowFullScreen: true,
|
|
214
215
|
src: src,
|
|
215
216
|
editing: editing ? 1 : 0
|
|
216
|
-
}, rest, style)), _react["default"].createElement(_mediaToolbar["default"], {
|
|
217
|
+
}, rest, style)), /*#__PURE__*/_react["default"].createElement(_mediaToolbar["default"], {
|
|
217
218
|
onEdit: handleEdit,
|
|
218
219
|
onRemove: handleDelete
|
|
219
220
|
}));
|
|
@@ -320,11 +321,11 @@ var serialization = {
|
|
|
320
321
|
'data-url': url
|
|
321
322
|
};
|
|
322
323
|
|
|
323
|
-
var props = _objectSpread({}, style, {
|
|
324
|
+
var props = _objectSpread(_objectSpread({}, style), {}, {
|
|
324
325
|
src: src
|
|
325
326
|
});
|
|
326
327
|
|
|
327
|
-
return _react["default"].createElement("iframe",
|
|
328
|
+
return /*#__PURE__*/_react["default"].createElement("iframe", (0, _extends2["default"])({
|
|
328
329
|
"data-type": type,
|
|
329
330
|
src: src
|
|
330
331
|
}, divProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/media/index.jsx"],"names":["log","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","props","newEl","createElement","type","callback","rest","className","handleClose","val","data","el","ReactDOM","render","body","appendChild","types","MediaPlugin","opts","toolbar","icon","onClick","value","onChange","inline","Inline","create","isVoid","editing","ends","undefined","height","title","starts","src","url","width","change","insertInline","nodeIsThere","findDescendant","d","key","c","removeNodeByKey","focus","setNodeByKey","supports","node","object","name","deleteNode","e","preventDefault","renderNode","jsonData","toJSON","handleEdit","createChange","edit","get","handleDelete","style","normalizeNode","textNodeMap","updateNodesArray","index","isMedia","indexOf","text","push","length","withoutNormalization","n","insertTextByKey","serialization","deserialize","dataset","typeIndex","parseInt","getAttribute","out","serialize","divProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport debug from 'debug';\n\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach(s => s.remove());\n};\n\nexport const insertDialog = props => {\n const newEl = document.createElement('div');\n const { type, callback, ...rest } = props;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n };\n\n const el = (\n <MediaDialog {...rest} type={type} disablePortal={true} open={true} handleClose={handleClose} />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: type,\n isVoid: true,\n data: {\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n insertDialog({\n type,\n callback: (val, data) => {\n const nodeIsThere = change.value.document.findDescendant(d => d.key === inline.key);\n\n if (nodeIsThere) {\n if (!val) {\n const c = change.removeNodeByKey(inline.key);\n onChange(c, () => opts.focus());\n } else {\n const c = change.setNodeByKey(inline.key, { data });\n onChange(c, () => opts.focus('beginning', nodeIsThere));\n }\n } else {\n opts.focus();\n }\n }\n });\n },\n supports: node => node.object === 'inline' && node.type === type\n };\n\n return {\n name: type,\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n if (props.node.type === type) {\n const { node, key } = props;\n const { data } = node;\n const jsonData = data.toJSON();\n const { src, height, width, editing, ...rest } = jsonData;\n const handleEdit = () => {\n const change = opts.createChange();\n const c = change.setNodeByKey(key, {\n data: {\n ...jsonData,\n editing: true\n }\n });\n\n opts.onChange(c, () => {\n insertDialog({\n ...jsonData,\n edit: true,\n type,\n callback: (val, data) => {\n const { key } = node;\n\n const nodeIsThere = change.value.document.findDescendant(\n d => d.type === type && d.data.get('editing')\n );\n\n if (nodeIsThere && val) {\n const c = change.setNodeByKey(key, { data, editing: false });\n opts.onChange(c, () => opts.focus('beginning', nodeIsThere));\n } else {\n opts.focus();\n }\n }\n });\n });\n };\n const handleDelete = () => {\n const change = opts.createChange();\n const c = change.removeNodeByKey(node.key);\n\n opts.onChange(c);\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n const isMedia = types.indexOf(d.type) >= 0;\n\n if (isMedia) {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const type = el.dataset && el.dataset.type;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) return;\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = {\n object: 'inline',\n type: type,\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) return;\n\n const type = types[typeIndex];\n\n const { data } = object;\n const editing = data.get('editing');\n const ends = data.get('ends');\n const src = data.get('src');\n const starts = data.get('starts');\n const title = data.get('title');\n const width = data.get('width');\n const height = data.get('height');\n const url = data.get('url');\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url\n };\n const props = {\n ...style,\n src\n };\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n }\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","removeDialogs","prevDialogs","document","querySelectorAll","forEach","s","remove","insertDialog","props","newEl","createElement","type","callback","rest","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","el","ReactDOM","render","appendChild","types","MediaPlugin","opts","toolbar","icon","onClick","value","onChange","inline","Inline","create","isVoid","editing","ends","undefined","height","title","starts","src","url","width","change","insertInline","nodeIsThere","findDescendant","d","key","c","removeNodeByKey","focus","setNodeByKey","supports","node","object","name","deleteNode","e","preventDefault","renderNode","jsonData","toJSON","handleEdit","createChange","edit","get","handleDelete","normalizeNode","textNodeMap","updateNodesArray","index","isMedia","indexOf","text","push","length","withoutNormalization","n","insertTextByKey","serialization","deserialize","dataset","typeIndex","parseInt","getAttribute","out","serialize","divProps"],"sources":["../../../src/plugins/media/index.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport TheatersIcon from '@material-ui/icons/Theaters';\nimport VolumeUpIcon from '@material-ui/icons/VolumeUp';\nimport debug from 'debug';\n\nimport MediaDialog from './media-dialog';\nimport MediaToolbar from './media-toolbar';\nimport MediaWrapper from './media-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach(s => s.remove());\n};\n\nexport const insertDialog = props => {\n const newEl = document.createElement('div');\n const { type, callback, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog {...rest} type={type} disablePortal={true} open={true} handleClose={handleClose} />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nconst types = ['audio', 'video'];\n\nexport default function MediaPlugin(type, opts) {\n const toolbar = {\n icon: type === 'audio' ? <VolumeUpIcon /> : <TheatersIcon />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: type,\n isVoid: true,\n data: {\n editing: false,\n ends: undefined,\n height: undefined,\n title: undefined,\n starts: undefined,\n src: undefined,\n url: undefined,\n width: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n insertDialog({\n type,\n callback: (val, data) => {\n const nodeIsThere = change.value.document.findDescendant(d => d.key === inline.key);\n\n if (nodeIsThere) {\n if (!val) {\n const c = change.removeNodeByKey(inline.key);\n onChange(c, () => opts.focus());\n } else {\n const c = change.setNodeByKey(inline.key, { data });\n onChange(c, () => opts.focus('beginning', nodeIsThere));\n }\n } else {\n opts.focus();\n }\n }\n });\n },\n supports: node => node.object === 'inline' && node.type === type\n };\n\n return {\n name: type,\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n if (props.node.type === type) {\n const { node, key } = props;\n const { data } = node;\n const jsonData = data.toJSON();\n const { src, height, width, editing, ...rest } = jsonData;\n const handleEdit = () => {\n const change = opts.createChange();\n const c = change.setNodeByKey(key, {\n data: {\n ...jsonData,\n editing: true\n }\n });\n\n opts.onChange(c, () => {\n insertDialog({\n ...jsonData,\n edit: true,\n type,\n callback: (val, data) => {\n const { key } = node;\n\n const nodeIsThere = change.value.document.findDescendant(\n d => d.type === type && d.data.get('editing')\n );\n\n if (nodeIsThere && val) {\n const c = change.setNodeByKey(key, { data, editing: false });\n opts.onChange(c, () => opts.focus('beginning', nodeIsThere));\n } else {\n opts.focus();\n }\n }\n });\n });\n };\n const handleDelete = () => {\n const change = opts.createChange();\n const c = change.removeNodeByKey(node.key);\n\n opts.onChange(c);\n };\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n return (\n <MediaWrapper editor data-type={type} width={style.width} {...rest}>\n <iframe\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n src={src}\n editing={editing ? 1 : 0}\n {...rest}\n {...style}\n />\n <MediaToolbar onEdit={handleEdit} onRemove={handleDelete} />\n </MediaWrapper>\n );\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n const isMedia = types.indexOf(d.type) >= 0;\n\n if (isMedia) {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const type = el.dataset && el.dataset.type;\n const typeIndex = types.indexOf(type);\n\n if (typeIndex < 0) return;\n\n const { ends, starts, title, editing, url } = el.dataset || {};\n\n log('deserialize: ', name);\n const width = parseInt(el.getAttribute('width'), 10) || null;\n const height = parseInt(el.getAttribute('height'), 10) || null;\n\n const out = {\n object: 'inline',\n type: type,\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n editing,\n ends,\n height,\n starts,\n title,\n width,\n url\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n const typeIndex = types.indexOf(object.type);\n\n if (typeIndex < 0) return;\n\n const type = types[typeIndex];\n\n const { data } = object;\n const editing = data.get('editing');\n const ends = data.get('ends');\n const src = data.get('src');\n const starts = data.get('starts');\n const title = data.get('title');\n const width = data.get('width');\n const height = data.get('height');\n const url = data.get('url');\n const style = {};\n\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n const divProps = {\n 'data-editing': editing,\n 'data-ends': ends,\n 'data-starts': starts,\n 'data-title': title,\n 'data-url': url\n };\n const props = {\n ...style,\n src\n };\n\n return (\n <iframe\n data-type={type}\n src={src}\n {...divProps}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n {...props}\n />\n );\n }\n};\n"],"mappings":"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"}
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = exports.MediaDialog = void 0;
|
|
7
9
|
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
8
24
|
var _react = _interopRequireDefault(require("react"));
|
|
9
25
|
|
|
10
26
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -27,27 +43,9 @@ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
|
27
43
|
|
|
28
44
|
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
29
45
|
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
33
|
-
|
|
34
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
35
|
-
|
|
36
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
37
|
-
|
|
38
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
39
|
-
|
|
40
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
41
|
-
|
|
42
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
46
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
43
47
|
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
47
|
-
|
|
48
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
49
|
-
|
|
50
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
48
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
51
49
|
|
|
52
50
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:media:dialog');
|
|
53
51
|
|
|
@@ -103,19 +101,17 @@ var typeMap = {
|
|
|
103
101
|
audio: 'Audio'
|
|
104
102
|
};
|
|
105
103
|
|
|
106
|
-
var MediaDialog =
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
var MediaDialog = /*#__PURE__*/function (_React$Component) {
|
|
105
|
+
(0, _inherits2["default"])(MediaDialog, _React$Component);
|
|
106
|
+
|
|
107
|
+
var _super = _createSuper(MediaDialog);
|
|
110
108
|
|
|
111
109
|
function MediaDialog(props) {
|
|
112
110
|
var _this;
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
_defineProperty(_assertThisInitialized(_this), "formatUrl", function () {
|
|
112
|
+
(0, _classCallCheck2["default"])(this, MediaDialog);
|
|
113
|
+
_this = _super.call(this, props);
|
|
114
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "formatUrl", function () {
|
|
119
115
|
var _this$state = _this.state,
|
|
120
116
|
url = _this$state.url,
|
|
121
117
|
urlToUse = _this$state.urlToUse,
|
|
@@ -169,12 +165,10 @@ function (_React$Component) {
|
|
|
169
165
|
updating: true
|
|
170
166
|
}, callback);
|
|
171
167
|
});
|
|
172
|
-
|
|
173
|
-
_defineProperty(_assertThisInitialized(_this), "handleStateChange", function (newState) {
|
|
168
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleStateChange", function (newState) {
|
|
174
169
|
return _this.setState(newState, _this.formatUrl);
|
|
175
170
|
});
|
|
176
|
-
|
|
177
|
-
_defineProperty(_assertThisInitialized(_this), "urlChange", function (e) {
|
|
171
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "urlChange", function (e) {
|
|
178
172
|
var _ref = e.target || {},
|
|
179
173
|
value = _ref.value;
|
|
180
174
|
|
|
@@ -232,14 +226,12 @@ function (_React$Component) {
|
|
|
232
226
|
invalid: true
|
|
233
227
|
});
|
|
234
228
|
});
|
|
235
|
-
|
|
236
|
-
_defineProperty(_assertThisInitialized(_this), "changeHandler", function (type) {
|
|
229
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeHandler", function (type) {
|
|
237
230
|
return function (e) {
|
|
238
|
-
return _this.handleStateChange(
|
|
231
|
+
return _this.handleStateChange((0, _defineProperty2["default"])({}, type, e.target.value));
|
|
239
232
|
};
|
|
240
233
|
});
|
|
241
|
-
|
|
242
|
-
_defineProperty(_assertThisInitialized(_this), "handleDone", function (val) {
|
|
234
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleDone", function (val) {
|
|
243
235
|
var handleClose = _this.props.handleClose;
|
|
244
236
|
|
|
245
237
|
if (!val) {
|
|
@@ -264,7 +256,6 @@ function (_React$Component) {
|
|
|
264
256
|
});
|
|
265
257
|
}
|
|
266
258
|
});
|
|
267
|
-
|
|
268
259
|
var src = props.src,
|
|
269
260
|
_starts = props.starts,
|
|
270
261
|
_ends = props.ends,
|
|
@@ -285,7 +276,7 @@ function (_React$Component) {
|
|
|
285
276
|
return _this;
|
|
286
277
|
}
|
|
287
278
|
|
|
288
|
-
|
|
279
|
+
(0, _createClass2["default"])(MediaDialog, [{
|
|
289
280
|
key: "componentDidMount",
|
|
290
281
|
value: function componentDidMount() {
|
|
291
282
|
if (this.props.url) {
|
|
@@ -317,7 +308,7 @@ function (_React$Component) {
|
|
|
317
308
|
formattedUrl = _this$state3.formattedUrl,
|
|
318
309
|
updating = _this$state3.updating;
|
|
319
310
|
var isYoutube = matchYoutubeUrl(url);
|
|
320
|
-
return _react["default"].createElement(_Dialog["default"], {
|
|
311
|
+
return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
|
|
321
312
|
classes: {
|
|
322
313
|
paper: classes.paper
|
|
323
314
|
},
|
|
@@ -327,9 +318,9 @@ function (_React$Component) {
|
|
|
327
318
|
return _this2.handleDone(false);
|
|
328
319
|
},
|
|
329
320
|
"aria-labelledby": "form-dialog-title"
|
|
330
|
-
}, _react["default"].createElement(_DialogTitle["default"], {
|
|
321
|
+
}, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
|
|
331
322
|
id: "form-dialog-title"
|
|
332
|
-
}, "Insert ", typeMap[type]), _react["default"].createElement(_DialogContent["default"], null, _react["default"].createElement(_DialogContentText["default"], null, type === 'video' ? 'Insert YouTube or Vimeo URL' : 'Insert SoundCloud URL'), _react["default"].createElement(_TextField["default"], {
|
|
323
|
+
}, "Insert ", typeMap[type]), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], null, type === 'video' ? 'Insert YouTube or Vimeo URL' : 'Insert SoundCloud URL'), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
333
324
|
autoFocus: true,
|
|
334
325
|
error: invalid,
|
|
335
326
|
helperText: invalid ? 'Invalid URL' : '',
|
|
@@ -341,11 +332,11 @@ function (_React$Component) {
|
|
|
341
332
|
onChange: this.urlChange,
|
|
342
333
|
value: url,
|
|
343
334
|
fullWidth: true
|
|
344
|
-
}), type === 'video' && _react["default"].createElement(_DialogContent["default"], {
|
|
335
|
+
}), type === 'video' && /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
|
|
345
336
|
classes: {
|
|
346
337
|
root: classes.properties
|
|
347
338
|
}
|
|
348
|
-
}, _react["default"].createElement(_DialogContentText["default"], null, "Video Properties"), _react["default"].createElement(_TextField["default"], {
|
|
339
|
+
}, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], null, "Video Properties"), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
349
340
|
autoFocus: true,
|
|
350
341
|
margin: "dense",
|
|
351
342
|
id: "width",
|
|
@@ -354,7 +345,7 @@ function (_React$Component) {
|
|
|
354
345
|
placeholder: "Width",
|
|
355
346
|
value: width,
|
|
356
347
|
onChange: this.changeHandler('width')
|
|
357
|
-
}), _react["default"].createElement(_TextField["default"], {
|
|
348
|
+
}), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
358
349
|
autoFocus: true,
|
|
359
350
|
margin: "dense",
|
|
360
351
|
id: "height",
|
|
@@ -363,18 +354,18 @@ function (_React$Component) {
|
|
|
363
354
|
placeholder: "Height",
|
|
364
355
|
value: height,
|
|
365
356
|
onChange: this.changeHandler('height')
|
|
366
|
-
})), formattedUrl && _react["default"].createElement("iframe", {
|
|
357
|
+
})), formattedUrl && /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
367
358
|
width: width,
|
|
368
359
|
height: height,
|
|
369
360
|
src: formattedUrl,
|
|
370
361
|
frameBorder: "0",
|
|
371
362
|
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",
|
|
372
363
|
allowFullScreen: true
|
|
373
|
-
}), type === 'video' && (formattedUrl || updating) && !invalid && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_DialogContent["default"], {
|
|
364
|
+
}), type === 'video' && (formattedUrl || updating) && !invalid && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
|
|
374
365
|
classes: {
|
|
375
366
|
root: classes.properties
|
|
376
367
|
}
|
|
377
|
-
}, _react["default"].createElement(_TextField["default"], {
|
|
368
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
378
369
|
autoFocus: true,
|
|
379
370
|
margin: "dense",
|
|
380
371
|
id: "starts",
|
|
@@ -383,7 +374,7 @@ function (_React$Component) {
|
|
|
383
374
|
placeholder: "Starts",
|
|
384
375
|
value: starts,
|
|
385
376
|
onChange: this.changeHandler('starts')
|
|
386
|
-
}), isYoutube && _react["default"].createElement(_TextField["default"], {
|
|
377
|
+
}), isYoutube && /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
387
378
|
autoFocus: true,
|
|
388
379
|
margin: "dense",
|
|
389
380
|
id: "ends",
|
|
@@ -392,13 +383,13 @@ function (_React$Component) {
|
|
|
392
383
|
placeholder: "Ends",
|
|
393
384
|
value: ends,
|
|
394
385
|
onChange: this.changeHandler('ends')
|
|
395
|
-
})))), _react["default"].createElement(_DialogActions["default"], null, _react["default"].createElement(_Button["default"], {
|
|
386
|
+
})))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
396
387
|
onClick: function onClick() {
|
|
397
388
|
return _this2.handleDone(false);
|
|
398
389
|
},
|
|
399
390
|
color: "primary"
|
|
400
|
-
}, "Cancel"), _react["default"].createElement(_Button["default"], {
|
|
401
|
-
disabled: invalid || url === null,
|
|
391
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
392
|
+
disabled: invalid || url === null || url === undefined,
|
|
402
393
|
onClick: function onClick() {
|
|
403
394
|
return _this2.handleDone(true);
|
|
404
395
|
},
|
|
@@ -406,13 +397,11 @@ function (_React$Component) {
|
|
|
406
397
|
}, edit ? 'Update' : 'Insert')));
|
|
407
398
|
}
|
|
408
399
|
}]);
|
|
409
|
-
|
|
410
400
|
return MediaDialog;
|
|
411
401
|
}(_react["default"].Component);
|
|
412
402
|
|
|
413
403
|
exports.MediaDialog = MediaDialog;
|
|
414
|
-
|
|
415
|
-
_defineProperty(MediaDialog, "propTypes", {
|
|
404
|
+
(0, _defineProperty2["default"])(MediaDialog, "propTypes", {
|
|
416
405
|
classes: _propTypes["default"].object.isRequired,
|
|
417
406
|
open: _propTypes["default"].bool,
|
|
418
407
|
edit: _propTypes["default"].bool,
|