@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.
Files changed (98) hide show
  1. package/CHANGELOG.json +165 -0
  2. package/CHANGELOG.md +286 -0
  3. package/lib/editor.js +373 -178
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +63 -52
  6. package/lib/index.js.map +1 -1
  7. package/lib/parse-html.js.map +1 -1
  8. package/lib/plugins/characters/custom-popover.js +70 -0
  9. package/lib/plugins/characters/custom-popover.js.map +1 -0
  10. package/lib/plugins/characters/index.js +266 -0
  11. package/lib/plugins/characters/index.js.map +1 -0
  12. package/lib/plugins/characters/utils.js +382 -0
  13. package/lib/plugins/characters/utils.js.map +1 -0
  14. package/lib/plugins/image/alt-dialog.js +119 -0
  15. package/lib/plugins/image/alt-dialog.js.map +1 -0
  16. package/lib/plugins/image/component.js +253 -77
  17. package/lib/plugins/image/component.js.map +1 -1
  18. package/lib/plugins/image/image-toolbar.js +95 -61
  19. package/lib/plugins/image/image-toolbar.js.map +1 -1
  20. package/lib/plugins/image/index.js +62 -20
  21. package/lib/plugins/image/index.js.map +1 -1
  22. package/lib/plugins/image/insert-image-handler.js +9 -15
  23. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  24. package/lib/plugins/index.js +20 -12
  25. package/lib/plugins/index.js.map +1 -1
  26. package/lib/plugins/list/index.js +82 -14
  27. package/lib/plugins/list/index.js.map +1 -1
  28. package/lib/plugins/math/index.js +50 -55
  29. package/lib/plugins/math/index.js.map +1 -1
  30. package/lib/plugins/media/index.js +26 -25
  31. package/lib/plugins/media/index.js.map +1 -1
  32. package/lib/plugins/media/media-dialog.js +45 -56
  33. package/lib/plugins/media/media-dialog.js.map +1 -1
  34. package/lib/plugins/media/media-toolbar.js +24 -30
  35. package/lib/plugins/media/media-toolbar.js.map +1 -1
  36. package/lib/plugins/media/media-wrapper.js +28 -35
  37. package/lib/plugins/media/media-wrapper.js.map +1 -1
  38. package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
  39. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  40. package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
  41. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  42. package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
  43. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  44. package/lib/plugins/respArea/icons/index.js +11 -11
  45. package/lib/plugins/respArea/icons/index.js.map +1 -1
  46. package/lib/plugins/respArea/index.js +58 -42
  47. package/lib/plugins/respArea/index.js.map +1 -1
  48. package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
  49. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  50. package/lib/plugins/respArea/utils.js +5 -5
  51. package/lib/plugins/respArea/utils.js.map +1 -1
  52. package/lib/plugins/table/icons/index.js +12 -12
  53. package/lib/plugins/table/icons/index.js.map +1 -1
  54. package/lib/plugins/table/index.js +83 -27
  55. package/lib/plugins/table/index.js.map +1 -1
  56. package/lib/plugins/table/table-toolbar.js +41 -50
  57. package/lib/plugins/table/table-toolbar.js.map +1 -1
  58. package/lib/plugins/toolbar/default-toolbar.js +14 -11
  59. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  60. package/lib/plugins/toolbar/done-button.js +5 -5
  61. package/lib/plugins/toolbar/done-button.js.map +1 -1
  62. package/lib/plugins/toolbar/editor-and-toolbar.js +43 -43
  63. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/index.js +5 -5
  65. package/lib/plugins/toolbar/index.js.map +1 -1
  66. package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
  67. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  68. package/lib/plugins/toolbar/toolbar.js +60 -64
  69. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  70. package/lib/plugins/utils.js +1 -1
  71. package/lib/plugins/utils.js.map +1 -1
  72. package/lib/serialization.js +32 -9
  73. package/lib/serialization.js.map +1 -1
  74. package/lib/theme.js.map +1 -1
  75. package/package.json +7 -6
  76. package/src/editor.jsx +196 -31
  77. package/src/index.jsx +20 -3
  78. package/src/plugins/characters/custom-popover.js +45 -0
  79. package/src/plugins/characters/index.jsx +244 -0
  80. package/src/plugins/characters/utils.js +448 -0
  81. package/src/plugins/image/alt-dialog.jsx +69 -0
  82. package/src/plugins/image/component.jsx +204 -21
  83. package/src/plugins/image/image-toolbar.jsx +68 -22
  84. package/src/plugins/image/index.jsx +47 -9
  85. package/src/plugins/index.jsx +4 -1
  86. package/src/plugins/list/index.jsx +67 -5
  87. package/src/plugins/math/index.jsx +31 -37
  88. package/src/plugins/media/index.jsx +3 -0
  89. package/src/plugins/media/media-dialog.js +1 -1
  90. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
  91. package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
  92. package/src/plugins/respArea/index.jsx +50 -31
  93. package/src/plugins/table/index.jsx +63 -14
  94. package/src/plugins/toolbar/default-toolbar.jsx +8 -0
  95. package/src/plugins/toolbar/editor-and-toolbar.jsx +12 -4
  96. package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
  97. package/src/plugins/toolbar/toolbar.jsx +14 -4
  98. 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 ? '&lt;' : ''}${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":"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"}
@@ -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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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 _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; }
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 _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
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 = _objectWithoutProperties(props, ["type", "callback"]);
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"], _extends({}, rest, {
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 = _objectWithoutProperties(jsonData, ["src", "height", "width", "editing"]);
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"], _extends({
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", _extends({
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", _extends({
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":";;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,sCAAN,CAAZ;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;EAC1B,IAAMC,WAAW,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAApB;EAEAF,WAAW,CAACG,OAAZ,CAAoB,UAAAC,CAAC;IAAA,OAAIA,CAAC,CAACC,MAAF,EAAJ;EAAA,CAArB;AACD,CAJD;;AAMO,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAAAC,KAAK,EAAI;EACnC,IAAMC,KAAK,GAAGP,QAAQ,CAACQ,aAAT,CAAuB,KAAvB,CAAd;EACA,IAAQC,IAAR,GAAoCH,KAApC,CAAQG,IAAR;EAAA,IAAcC,QAAd,GAAoCJ,KAApC,CAAcI,QAAd;EAAA,IAA2BC,IAA3B,6CAAoCL,KAApC;EACA,IAAMM,mBAAmB,GAAGZ,QAAQ,CAACa,IAAT,CAAcC,KAAd,CAAoBC,QAAhD;EAEAjB,aAAa;EAEbS,KAAK,CAACS,SAAN,GAAkB,qBAAlB;EACAhB,QAAQ,CAACa,IAAT,CAAcC,KAAd,CAAoBC,QAApB,GAA+B,QAA/B;;EAEA,IAAME,WAAW,GAAG,SAAdA,WAAc,CAACC,GAAD,EAAMC,IAAN,EAAe;IACjCT,QAAQ,CAACQ,GAAD,EAAMC,IAAN,CAAR;IACAZ,KAAK,CAACH,MAAN;IACAJ,QAAQ,CAACa,IAAT,CAAcC,KAAd,CAAoBC,QAApB,GAA+BH,mBAA/B;EACD,CAJD;;EAMA,IAAMQ,EAAE,gBACN,gCAAC,uBAAD,gCAAiBT,IAAjB;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,aAAa,EAAE,IAAlD;IAAwD,IAAI,EAAE,IAA9D;IAAoE,WAAW,EAAEQ;EAAjF,GADF;;EAIAI,oBAAA,CAASC,MAAT,CAAgBF,EAAhB,EAAoBb,KAApB;;EAEAP,QAAQ,CAACa,IAAT,CAAcU,WAAd,CAA0BhB,KAA1B;AACD,CAvBM;;;AAyBP,IAAMiB,KAAK,GAAG,CAAC,OAAD,EAAU,OAAV,CAAd;;AAEe,SAASC,WAAT,CAAqBhB,IAArB,EAA2BiB,IAA3B,EAAiC;EAC9C,IAAMC,OAAO,GAAG;IACdC,IAAI,EAAEnB,IAAI,KAAK,OAAT,gBAAmB,gCAAC,oBAAD,OAAnB,gBAAsC,gCAAC,oBAAD,OAD9B;IAEdoB,OAAO,EAAE,iBAACC,KAAD,EAAQC,QAAR,EAAqB;MAC5BnC,GAAG,CAAC,mBAAD,CAAH;;MACA,IAAMoC,MAAM,GAAGC,aAAA,CAAOC,MAAP,CAAc;QAC3BzB,IAAI,EAAEA,IADqB;QAE3B0B,MAAM,EAAE,IAFmB;QAG3BhB,IAAI,EAAE;UACJiB,OAAO,EAAE,KADL;UAEJC,IAAI,EAAEC,SAFF;UAGJC,MAAM,EAAED,SAHJ;UAIJE,KAAK,EAAEF,SAJH;UAKJG,MAAM,EAAEH,SALJ;UAMJI,GAAG,EAAEJ,SAND;UAOJK,GAAG,EAAEL,SAPD;UAQJM,KAAK,EAAEN;QARH;MAHqB,CAAd,CAAf;;MAeA,IAAMO,MAAM,GAAGf,KAAK,CAACe,MAAN,GAAeC,YAAf,CAA4Bd,MAA5B,CAAf;MACAD,QAAQ,CAACc,MAAD,CAAR;MACAxC,YAAY,CAAC;QACXI,IAAI,EAAJA,IADW;QAEXC,QAAQ,EAAE,kBAACQ,GAAD,EAAMC,IAAN,EAAe;UACvB,IAAM4B,WAAW,GAAGF,MAAM,CAACf,KAAP,CAAa9B,QAAb,CAAsBgD,cAAtB,CAAqC,UAAAC,CAAC;YAAA,OAAIA,CAAC,CAACC,GAAF,KAAUlB,MAAM,CAACkB,GAArB;UAAA,CAAtC,CAApB;;UAEA,IAAIH,WAAJ,EAAiB;YACf,IAAI,CAAC7B,GAAL,EAAU;cACR,IAAMiC,CAAC,GAAGN,MAAM,CAACO,eAAP,CAAuBpB,MAAM,CAACkB,GAA9B,CAAV;cACAnB,QAAQ,CAACoB,CAAD,EAAI;gBAAA,OAAMzB,IAAI,CAAC2B,KAAL,EAAN;cAAA,CAAJ,CAAR;YACD,CAHD,MAGO;cACL,IAAMF,EAAC,GAAGN,MAAM,CAACS,YAAP,CAAoBtB,MAAM,CAACkB,GAA3B,EAAgC;gBAAE/B,IAAI,EAAJA;cAAF,CAAhC,CAAV;;cACAY,QAAQ,CAACoB,EAAD,EAAI;gBAAA,OAAMzB,IAAI,CAAC2B,KAAL,CAAW,WAAX,EAAwBN,WAAxB,CAAN;cAAA,CAAJ,CAAR;YACD;UACF,CARD,MAQO;YACLrB,IAAI,CAAC2B,KAAL;UACD;QACF;MAhBU,CAAD,CAAZ;IAkBD,CAvCa;IAwCdE,QAAQ,EAAE,kBAAAC,IAAI;MAAA,OAAIA,IAAI,CAACC,MAAL,KAAgB,QAAhB,IAA4BD,IAAI,CAAC/C,IAAL,KAAcA,IAA9C;IAAA;EAxCA,CAAhB;EA2CA,OAAO;IACLiD,IAAI,EAAEjD,IADD;IAELkB,OAAO,EAAPA,OAFK;IAGLgC,UAAU,EAAE,oBAACC,CAAD,EAAIJ,IAAJ,EAAU1B,KAAV,EAAiBC,QAAjB,EAA8B;MACxC6B,CAAC,CAACC,cAAF;MACA,IAAMhB,MAAM,GAAGf,KAAK,CAACe,MAAN,GAAeO,eAAf,CAA+BI,IAAI,CAACN,GAApC,CAAf;MAEAnB,QAAQ,CAACc,MAAD,CAAR;IACD,CARI;IASLiB,UATK,sBASMxD,KATN,EASa;MAChB,IAAIA,KAAK,CAACkD,IAAN,CAAW/C,IAAX,KAAoBA,IAAxB,EAA8B;QAC5B,IAAQ+C,IAAR,GAAsBlD,KAAtB,CAAQkD,IAAR;QAAA,IAAcN,GAAd,GAAsB5C,KAAtB,CAAc4C,GAAd;QACA,IAAQ/B,IAAR,GAAiBqC,IAAjB,CAAQrC,IAAR;QACA,IAAM4C,QAAQ,GAAG5C,IAAI,CAAC6C,MAAL,EAAjB;QACA,IAAQtB,GAAR,GAAiDqB,QAAjD,CAAQrB,GAAR;QAAA,IAAaH,MAAb,GAAiDwB,QAAjD,CAAaxB,MAAb;QAAA,IAAqBK,KAArB,GAAiDmB,QAAjD,CAAqBnB,KAArB;QAAA,IAA4BR,OAA5B,GAAiD2B,QAAjD,CAA4B3B,OAA5B;QAAA,IAAwCzB,IAAxC,6CAAiDoD,QAAjD;;QACA,IAAME,UAAU,GAAG,SAAbA,UAAa,GAAM;UACvB,IAAMpB,MAAM,GAAGnB,IAAI,CAACwC,YAAL,EAAf;UACA,IAAMf,CAAC,GAAGN,MAAM,CAACS,YAAP,CAAoBJ,GAApB,EAAyB;YACjC/B,IAAI,kCACC4C,QADD;cAEF3B,OAAO,EAAE;YAFP;UAD6B,CAAzB,CAAV;UAOAV,IAAI,CAACK,QAAL,CAAcoB,CAAd,EAAiB,YAAM;YACrB9C,YAAY,iCACP0D,QADO;cAEVI,IAAI,EAAE,IAFI;cAGV1D,IAAI,EAAJA,IAHU;cAIVC,QAAQ,EAAE,kBAACQ,GAAD,EAAMC,IAAN,EAAe;gBACvB,IAAQ+B,GAAR,GAAgBM,IAAhB,CAAQN,GAAR;gBAEA,IAAMH,WAAW,GAAGF,MAAM,CAACf,KAAP,CAAa9B,QAAb,CAAsBgD,cAAtB,CAClB,UAAAC,CAAC;kBAAA,OAAIA,CAAC,CAACxC,IAAF,KAAWA,IAAX,IAAmBwC,CAAC,CAAC9B,IAAF,CAAOiD,GAAP,CAAW,SAAX,CAAvB;gBAAA,CADiB,CAApB;;gBAIA,IAAIrB,WAAW,IAAI7B,GAAnB,EAAwB;kBACtB,IAAMiC,GAAC,GAAGN,MAAM,CAACS,YAAP,CAAoBJ,GAApB,EAAyB;oBAAE/B,IAAI,EAAJA,IAAF;oBAAQiB,OAAO,EAAE;kBAAjB,CAAzB,CAAV;;kBACAV,IAAI,CAACK,QAAL,CAAcoB,GAAd,EAAiB;oBAAA,OAAMzB,IAAI,CAAC2B,KAAL,CAAW,WAAX,EAAwBN,WAAxB,CAAN;kBAAA,CAAjB;gBACD,CAHD,MAGO;kBACLrB,IAAI,CAAC2B,KAAL;gBACD;cACF;YAjBS,GAAZ;UAmBD,CApBD;QAqBD,CA9BD;;QA+BA,IAAMgB,YAAY,GAAG,SAAfA,YAAe,GAAM;UACzB,IAAMxB,MAAM,GAAGnB,IAAI,CAACwC,YAAL,EAAf;UACA,IAAMf,CAAC,GAAGN,MAAM,CAACO,eAAP,CAAuBI,IAAI,CAACN,GAA5B,CAAV;UAEAxB,IAAI,CAACK,QAAL,CAAcoB,CAAd;QACD,CALD;;QAMA,IAAMrC,KAAK,GAAG,EAAd;;QAEA,IAAI8B,KAAJ,EAAW;UACT9B,KAAK,CAAC8B,KAAN,aAAiBA,KAAjB;QACD;;QAED,IAAIL,MAAJ,EAAY;UACVzB,KAAK,CAACyB,MAAN,aAAkBA,MAAlB;QACD;;QAED,oBACE,gCAAC,wBAAD;UAAc,MAAM,MAApB;UAAqB,aAAW9B,IAAhC;UAAsC,KAAK,EAAEK,KAAK,CAAC8B;QAAnD,GAA8DjC,IAA9D,gBACE;UACE,WAAW,EAAC,GADd;UAEE,KAAK,EAAC,0FAFR;UAGE,eAAe,MAHjB;UAIE,GAAG,EAAE+B,GAJP;UAKE,OAAO,EAAEN,OAAO,GAAG,CAAH,GAAO;QALzB,GAMMzB,IANN,EAOMG,KAPN,EADF,eAUE,gCAAC,wBAAD;UAAc,MAAM,EAAEmD,UAAtB;UAAkC,QAAQ,EAAEI;QAA5C,EAVF,CADF;MAcD;IACF,CA7EI;IA8ELC,aAAa,EAAE,uBAAAd,IAAI,EAAI;MACrB,IAAMe,WAAW,GAAG,EAApB;MACA,IAAMC,gBAAgB,GAAG,EAAzB;MACA,IAAIC,KAAK,GAAG,CAAZ;MAEA,IAAIjB,IAAI,CAACC,MAAL,KAAgB,UAApB,EAAgC;MAEhCD,IAAI,CAACR,cAAL,CAAoB,UAAAC,CAAC,EAAI;QACvB,IAAIA,CAAC,CAACQ,MAAF,KAAa,MAAjB,EAAyB;UACvBc,WAAW,CAACE,KAAD,CAAX,GAAqBxB,CAArB;QACD;;QAED,IAAMyB,OAAO,GAAGlD,KAAK,CAACmD,OAAN,CAAc1B,CAAC,CAACxC,IAAhB,KAAyB,CAAzC;;QAEA,IAAIiE,OAAJ,EAAa;UACX,IAAID,KAAK,GAAG,CAAR,IAAaF,WAAW,CAACE,KAAK,GAAG,CAAT,CAAxB,IAAuCF,WAAW,CAACE,KAAK,GAAG,CAAT,CAAX,CAAuBG,IAAvB,KAAgC,EAA3E,EAA+E;YAC7EJ,gBAAgB,CAACK,IAAjB,CAAsBN,WAAW,CAACE,KAAK,GAAG,CAAT,CAAjC;UACD;QACF;;QAEDA,KAAK;MACN,CAdD;MAgBA,IAAI,CAACD,gBAAgB,CAACM,MAAtB,EAA8B;MAE9B,OAAO,UAAAjC,MAAM,EAAI;QACfA,MAAM,CAACkC,oBAAP,CAA4B,YAAM;UAChCP,gBAAgB,CAACtE,OAAjB,CAAyB,UAAA8E,CAAC;YAAA,OAAInC,MAAM,CAACoC,eAAP,CAAuBD,CAAC,CAAC9B,GAAzB,EAA8B,CAA9B,EAAiC,GAAjC,CAAJ;UAAA,CAA1B;QACD,CAFD;MAGD,CAJD;IAKD;EA5GI,CAAP;AA8GD;;AAEM,IAAMgC,aAAa,GAAG;EAC3BC,WAD2B,uBACf/D;EAAG;EADY,EACA;IACzB,IAAMX,IAAI,GAAGW,EAAE,CAACgE,OAAH,IAAchE,EAAE,CAACgE,OAAH,CAAW3E,IAAtC;IACA,IAAM4E,SAAS,GAAG7D,KAAK,CAACmD,OAAN,CAAclE,IAAd,CAAlB;IAEA,IAAI4E,SAAS,GAAG,CAAhB,EAAmB;;IAEnB,WAA8CjE,EAAE,CAACgE,OAAH,IAAc,EAA5D;IAAA,IAAQ/C,IAAR,QAAQA,IAAR;IAAA,IAAcI,MAAd,QAAcA,MAAd;IAAA,IAAsBD,KAAtB,QAAsBA,KAAtB;IAAA,IAA6BJ,OAA7B,QAA6BA,OAA7B;IAAA,IAAsCO,GAAtC,QAAsCA,GAAtC;;IAEA/C,GAAG,CAAC,eAAD,EAAkB8D,IAAlB,CAAH;IACA,IAAMd,KAAK,GAAG0C,QAAQ,CAAClE,EAAE,CAACmE,YAAH,CAAgB,OAAhB,CAAD,EAA2B,EAA3B,CAAR,IAA0C,IAAxD;IACA,IAAMhD,MAAM,GAAG+C,QAAQ,CAAClE,EAAE,CAACmE,YAAH,CAAgB,QAAhB,CAAD,EAA4B,EAA5B,CAAR,IAA2C,IAA1D;IAEA,IAAMC,GAAG,GAAG;MACV/B,MAAM,EAAE,QADE;MAEVhD,IAAI,EAAEA,IAFI;MAGV0B,MAAM,EAAE,IAHE;MAIVhB,IAAI,EAAE;QACJuB,GAAG,EAAEtB,EAAE,CAACmE,YAAH,CAAgB,KAAhB,CADD;QAEJnD,OAAO,EAAPA,OAFI;QAGJC,IAAI,EAAJA,IAHI;QAIJE,MAAM,EAANA,MAJI;QAKJE,MAAM,EAANA,MALI;QAMJD,KAAK,EAALA,KANI;QAOJI,KAAK,EAALA,KAPI;QAQJD,GAAG,EAAHA;MARI;IAJI,CAAZ;IAeA/C,GAAG,CAAC,iBAAD,EAAoB4F,GAApB,CAAH;IACA,OAAOA,GAAP;EACD,CA9B0B;EA+B3BC,SA/B2B,qBA+BjBhC;EAAO;EA/BU,EA+BM;IAC/B,IAAM4B,SAAS,GAAG7D,KAAK,CAACmD,OAAN,CAAclB,MAAM,CAAChD,IAArB,CAAlB;IAEA,IAAI4E,SAAS,GAAG,CAAhB,EAAmB;IAEnB,IAAM5E,IAAI,GAAGe,KAAK,CAAC6D,SAAD,CAAlB;IAEA,IAAQlE,IAAR,GAAiBsC,MAAjB,CAAQtC,IAAR;IACA,IAAMiB,OAAO,GAAGjB,IAAI,CAACiD,GAAL,CAAS,SAAT,CAAhB;IACA,IAAM/B,IAAI,GAAGlB,IAAI,CAACiD,GAAL,CAAS,MAAT,CAAb;IACA,IAAM1B,GAAG,GAAGvB,IAAI,CAACiD,GAAL,CAAS,KAAT,CAAZ;IACA,IAAM3B,MAAM,GAAGtB,IAAI,CAACiD,GAAL,CAAS,QAAT,CAAf;IACA,IAAM5B,KAAK,GAAGrB,IAAI,CAACiD,GAAL,CAAS,OAAT,CAAd;IACA,IAAMxB,KAAK,GAAGzB,IAAI,CAACiD,GAAL,CAAS,OAAT,CAAd;IACA,IAAM7B,MAAM,GAAGpB,IAAI,CAACiD,GAAL,CAAS,QAAT,CAAf;IACA,IAAMzB,GAAG,GAAGxB,IAAI,CAACiD,GAAL,CAAS,KAAT,CAAZ;IACA,IAAMtD,KAAK,GAAG,EAAd;;IAEA,IAAI8B,KAAJ,EAAW;MACT9B,KAAK,CAAC8B,KAAN,aAAiBA,KAAjB;IACD;;IAED,IAAIL,MAAJ,EAAY;MACVzB,KAAK,CAACyB,MAAN,aAAkBA,MAAlB;IACD;;IAED,IAAMmD,QAAQ,GAAG;MACf,gBAAgBtD,OADD;MAEf,aAAaC,IAFE;MAGf,eAAeI,MAHA;MAIf,cAAcD,KAJC;MAKf,YAAYG;IALG,CAAjB;;IAOA,IAAMrC,KAAK,mCACNQ,KADM;MAET4B,GAAG,EAAHA;IAFS,EAAX;;IAKA,oBACE;MACE,aAAWjC,IADb;MAEE,GAAG,EAAEiC;IAFP,GAGMgD,QAHN;MAIE,WAAW,EAAC,GAJd;MAKE,KAAK,EAAC,0FALR;MAME,eAAe;IANjB,GAOMpF,KAPN,EADF;EAWD;AAhF0B,CAAtB"}
@@ -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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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
- /*#__PURE__*/
108
- function (_React$Component) {
109
- _inherits(MediaDialog, _React$Component);
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
- _classCallCheck(this, MediaDialog);
115
-
116
- _this = _possibleConstructorReturn(this, _getPrototypeOf(MediaDialog).call(this, props));
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(_defineProperty({}, type, e.target.value));
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
- _createClass(MediaDialog, [{
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,