@pie-lib/editable-html-tip-tap 1.2.0-next.2 → 1.2.0-next.21

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 (126) hide show
  1. package/CHANGELOG.md +115 -21
  2. package/LICENSE.md +5 -0
  3. package/lib/components/CharacterPicker.js +2 -1
  4. package/lib/components/CharacterPicker.js.map +1 -1
  5. package/lib/components/EditableHtml.js +34 -17
  6. package/lib/components/EditableHtml.js.map +1 -1
  7. package/lib/components/MenuBar.js +77 -45
  8. package/lib/components/MenuBar.js.map +1 -1
  9. package/lib/components/TiptapContainer.js +15 -9
  10. package/lib/components/TiptapContainer.js.map +1 -1
  11. package/lib/components/characters/characterUtils.js +1 -1
  12. package/lib/components/characters/custom-popper.js +1 -1
  13. package/lib/components/common/done-button.js +1 -1
  14. package/lib/components/common/toolbar-buttons.js +1 -1
  15. package/lib/components/icons/CssIcon.js +1 -1
  16. package/lib/components/icons/RespArea.js +1 -1
  17. package/lib/components/icons/TableIcons.js +1 -1
  18. package/lib/components/icons/TextAlign.js +3 -3
  19. package/lib/components/icons/TextAlign.js.map +1 -1
  20. package/lib/components/image/AltDialog.js +1 -1
  21. package/lib/components/image/ImageToolbar.js +1 -1
  22. package/lib/components/image/InsertImageHandler.js +1 -1
  23. package/lib/components/media/MediaDialog.js +1 -1
  24. package/lib/components/media/MediaToolbar.js +1 -1
  25. package/lib/components/media/MediaWrapper.js +1 -1
  26. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +7 -2
  27. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  28. package/lib/components/respArea/DragInTheBlank/choice.js +16 -8
  29. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  30. package/lib/components/respArea/ExplicitConstructedResponse.js +2 -2
  31. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  32. package/lib/components/respArea/InlineDropdown.js +11 -4
  33. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  34. package/lib/components/respArea/MathTemplated.js +130 -0
  35. package/lib/components/respArea/MathTemplated.js.map +1 -0
  36. package/lib/components/respArea/ToolbarIcon.js +1 -1
  37. package/lib/constants.js +1 -1
  38. package/lib/extensions/css.js +1 -1
  39. package/lib/extensions/custom-toolbar-wrapper.js +1 -1
  40. package/lib/extensions/div-node.js +39 -0
  41. package/lib/extensions/div-node.js.map +1 -0
  42. package/lib/extensions/extended-table.js +1 -1
  43. package/lib/extensions/image-component.js +1 -1
  44. package/lib/extensions/image-component.js.map +1 -1
  45. package/lib/extensions/image.js +1 -1
  46. package/lib/extensions/index.js +4 -2
  47. package/lib/extensions/index.js.map +1 -1
  48. package/lib/extensions/math.js +7 -4
  49. package/lib/extensions/math.js.map +1 -1
  50. package/lib/extensions/media.js +15 -12
  51. package/lib/extensions/media.js.map +1 -1
  52. package/lib/extensions/responseArea.js +13 -10
  53. package/lib/extensions/responseArea.js.map +1 -1
  54. package/lib/index.js +1 -1
  55. package/lib/styles/editorContainerStyles.js +6 -5
  56. package/lib/styles/editorContainerStyles.js.map +1 -1
  57. package/lib/theme.js +1 -1
  58. package/lib/utils/helper.js +17 -0
  59. package/lib/utils/helper.js.map +1 -0
  60. package/lib/utils/size.js +1 -1
  61. package/package.json +11 -11
  62. package/src/__tests__/EditableHtml.test.jsx +41 -1
  63. package/src/__tests__/index.test.jsx +4 -1
  64. package/src/components/CharacterPicker.jsx +1 -0
  65. package/src/components/EditableHtml.jsx +40 -16
  66. package/src/components/MenuBar.jsx +66 -25
  67. package/src/components/TiptapContainer.jsx +10 -7
  68. package/src/components/__tests__/CharacterPicker.test.jsx +22 -0
  69. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +1 -1
  70. package/src/components/__tests__/InlineDropdown.test.jsx +150 -1
  71. package/src/components/__tests__/MenuBar.test.jsx +32 -0
  72. package/src/components/icons/TextAlign.jsx +1 -1
  73. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +6 -1
  74. package/src/components/respArea/DragInTheBlank/choice.jsx +32 -4
  75. package/src/components/respArea/ExplicitConstructedResponse.jsx +1 -1
  76. package/src/components/respArea/InlineDropdown.jsx +12 -2
  77. package/src/components/respArea/MathTemplated.jsx +124 -0
  78. package/src/components/respArea/__tests__/MathTemplated.test.jsx +210 -0
  79. package/src/extensions/__tests__/divNode.test.js +87 -0
  80. package/src/extensions/__tests__/math.test.js +327 -0
  81. package/src/extensions/__tests__/media-node-view.test.jsx +296 -0
  82. package/src/extensions/__tests__/media.test.js +1 -0
  83. package/src/extensions/__tests__/responseArea.test.js +157 -0
  84. package/src/extensions/div-node.js +36 -0
  85. package/src/extensions/index.js +2 -0
  86. package/src/extensions/math.js +6 -3
  87. package/src/extensions/media.js +17 -14
  88. package/src/extensions/responseArea.js +4 -8
  89. package/src/styles/editorContainerStyles.js +5 -4
  90. package/src/utils/helper.js +17 -0
  91. package/lib/__tests__/EditableHtml.test.js +0 -377
  92. package/lib/__tests__/constants.test.js +0 -21
  93. package/lib/__tests__/extensions.test.js +0 -209
  94. package/lib/__tests__/index.test.js +0 -235
  95. package/lib/__tests__/size-utils.test.js +0 -57
  96. package/lib/__tests__/theme.test.js +0 -17
  97. package/lib/components/__tests__/AltDialog.test.js +0 -201
  98. package/lib/components/__tests__/CharacterPicker.test.js +0 -305
  99. package/lib/components/__tests__/CssIcon.test.js +0 -58
  100. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  101. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -253
  102. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  103. package/lib/components/__tests__/InlineDropdown.test.js +0 -287
  104. package/lib/components/__tests__/InsertImageHandler.test.js +0 -162
  105. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  106. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  107. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  108. package/lib/components/__tests__/MenuBar.test.js +0 -459
  109. package/lib/components/__tests__/RespArea.test.js +0 -171
  110. package/lib/components/__tests__/TableIcons.test.js +0 -153
  111. package/lib/components/__tests__/TextAlign.test.js +0 -209
  112. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  113. package/lib/components/__tests__/characterUtils.test.js +0 -178
  114. package/lib/components/__tests__/choice.test.js +0 -213
  115. package/lib/components/__tests__/custom-popper.test.js +0 -108
  116. package/lib/components/__tests__/done-button.test.js +0 -72
  117. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  118. package/lib/extensions/__tests__/component.test.js +0 -314
  119. package/lib/extensions/__tests__/css.test.js +0 -214
  120. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  121. package/lib/extensions/__tests__/extended-table.test.js +0 -92
  122. package/lib/extensions/__tests__/image-component.test.js +0 -305
  123. package/lib/extensions/__tests__/image.test.js +0 -164
  124. package/lib/extensions/__tests__/media.test.js +0 -292
  125. package/lib/extensions/__tests__/responseArea.test.js +0 -330
  126. package/lib/extensions/component.js +0 -305
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_prosemirrorState","_mathToolbar","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ensureTextAfterMathPluginKey","PluginKey","EnsureTextAfterMathPlugin","exports","mathNodeName","Plugin","key","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","name","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","from","empty","prevChar","textBetween","posBefore","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodePos","nodeResolved","setSelection","NodeSelection","create","TextSelection","MathNode","Node","group","inline","atom","addAttributes","latex","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","textContent","innerHTML","addCommands","_this","insertMath","undefined","_ref","_node$type","editor","nodes","math","$from","sel","renderHTML","_ref2","HTMLAttributes","dangerouslySetInnerHTML","__html","wrapMath","addNodeView","_this2","ReactNodeViewRenderer","createElement","MathNodeView","options","updateAttributes","selected","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","toolbarRef","useRef","_useState3","top","left","_useState4","position","setPosition","attrs","useEffect","_toolbarOpened","bodyRect","document","body","getBoundingClientRect","start","coordsAtPos","Math","abs","handleClickOutside","current","contains","target","closest","addEventListener","removeEventListener","handleChange","newLatex","handleDone","_editor$state","commands","focus","NodeViewWrapper","className","style","display","cursor","margin","onClick","contentEditable","MathPreview","ReactDOM","createPortal","ref","concat","zIndex","background","boxShadow","MathToolbar","autoFocus","onChange","onDone","keypadMode"],"sources":["../../src/extensions/math.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath } from '@pie-lib/math-rendering';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) return null;\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n if (prevChar === '\\u200b') {\n const tr = state.tr.delete(from - 2, from);\n dispatch(tr);\n return true; // handled\n }\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n // If the previous character is the zero-width space...\n if (prevChar === '\\u200b') {\n const posBefore = from - 1;\n const resolved = state.doc.resolve(posBefore - 1); // look just before the zwsp\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodePos = posBefore - maybeNode.nodeSize;\n const nodeResolved = state.doc.resolve(nodePos);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n }\n\n return false;\n },\n },\n});\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath:\n (latex = '') =>\n ({ tr, editor, dispatch }) => {\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n return true;\n },\n // insertMath: (latex = '') => ({ commands }) => {\n // return commands.insertContent({\n // type: this.name,\n // attrs: { latex },\n // });\n // },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const latex = node.attrs.latex || '';\n\n useEffect(() => {\n if (selected) {\n setShowToolbar(true);\n }\n }, [selected]);\n\n useEffect(() => {\n editor._toolbarOpened = !!showToolbar;\n }, [showToolbar]);\n\n useEffect(() => {\n // Calculate position relative to selection\n const bodyRect = document.body.getBoundingClientRect();\n const { from } = editor.state.selection;\n const start = editor.view.coordsAtPos(from);\n setPosition({\n top: start.top + Math.abs(bodyRect.top) + 40, // shift above\n left: start.left,\n });\n\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [editor, showToolbar]);\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n editor._toolbarOpened = false;\n\n const { selection, tr, doc } = editor.state;\n const sel = TextSelection.create(doc, selection.from + 1);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n editor.view.dispatch(tr);\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n className=\"math-node\"\n style={{\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n }}\n data-selected={selected}\n >\n <div onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} />\n </div>\n {showToolbar &&\n ReactDOM.createPortal(\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: `${position.top}px`,\n left: `${position.left}px`,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar latex={latex} autoFocus onChange={handleChange} onDone={handleDone} keypadMode=\"basic\" />\n </div>,\n document.body,\n )}\n </NodeViewWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"math.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_prosemirrorState","_mathToolbar","_mathRendering","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ensureTextAfterMathPluginKey","PluginKey","EnsureTextAfterMathPlugin","exports","mathNodeName","Plugin","key","appendTransaction","transactions","oldState","newState","some","tr","docChanged","changed","doc","descendants","node","pos","type","name","nextPos","nodeSize","nextNode","nodeAt","insert","schema","text","ZeroWidthSpaceHandlingPlugin","props","handleKeyDown","view","event","state","dispatch","selection","from","empty","prevChar","textBetween","posBefore","resolved","resolve","maybeNode","nodeAfter","nodeBefore","nodePos","nodeResolved","setSelection","NodeSelection","create","TextSelection","MathNode","Node","group","inline","atom","addAttributes","latex","wrapper","html","addProseMirrorPlugins","parseHTML","tag","getAttrs","el","getAttribute","textContent","innerHTML","addCommands","_this","insertMath","undefined","_ref","_node$type","editor","nodes","math","$from","sel","renderHTML","_ref2","HTMLAttributes","dangerouslySetInnerHTML","__html","wrapMath","addNodeView","_this2","ReactNodeViewRenderer","createElement","MathNodeView","options","updateAttributes","selected","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","toolbarRef","useRef","_useState3","top","left","_useState4","position","setPosition","attrs","useEffect","_toolbarOpened","bodyRect","document","body","getBoundingClientRect","start","coordsAtPos","Math","abs","handleClickOutside","current","contains","target","closest","addEventListener","removeEventListener","handleChange","newLatex","handleDone","_editor$state","commands","focus","NodeViewWrapper","className","style","display","cursor","margin","onClick","contentEditable","MathPreview","ReactDOM","createPortal","ref","instanceId","concat","zIndex","background","boxShadow","MathToolbar","autoFocus","onChange","onDone","keypadMode"],"sources":["../../src/extensions/math.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath } from '@pie-lib/math-rendering';\n\nconst ensureTextAfterMathPluginKey = new PluginKey('ensureTextAfterMath');\n\nexport const EnsureTextAfterMathPlugin = (mathNodeName) =>\n new Plugin({\n key: ensureTextAfterMathPluginKey,\n appendTransaction: (transactions, oldState, newState) => {\n // Only act when the doc actually changed\n if (!transactions.some((tr) => tr.docChanged)) return null;\n\n const tr = newState.tr;\n let changed = false;\n\n newState.doc.descendants((node, pos) => {\n if (node.type.name === mathNodeName) {\n const nextPos = pos + node.nodeSize;\n const nextNode = newState.doc.nodeAt(nextPos);\n\n // If there's no node after, or the next node isn't text, insert a space\n if (!nextNode || nextNode.type.name !== 'text') {\n tr.insert(nextPos, newState.schema.text('\\u200b'));\n changed = true;\n }\n }\n });\n\n return changed ? tr : null;\n },\n });\n\nexport const ZeroWidthSpaceHandlingPlugin = new Plugin({\n key: new PluginKey('zeroWidthSpaceHandling'),\n props: {\n handleKeyDown(view, event) {\n const { state, dispatch } = view;\n const { selection, doc } = state;\n const { from, empty } = selection;\n\n if (empty && event.key === 'Backspace' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n if (prevChar === '\\u200b') {\n const tr = state.tr.delete(from - 2, from);\n dispatch(tr);\n return true; // handled\n }\n }\n\n if (empty && event.key === 'ArrowLeft' && from > 0) {\n const prevChar = doc.textBetween(from - 1, from, '\\uFFFC', '\\uFFFC');\n // If the previous character is the zero-width space...\n if (prevChar === '\\u200b') {\n const posBefore = from - 1;\n const resolved = state.doc.resolve(posBefore - 1); // look just before the zwsp\n const maybeNode = resolved.nodeAfter || resolved.nodeBefore;\n\n // Check if there's an inline selectable node (e.g., your math node)\n if (maybeNode) {\n const nodePos = posBefore - maybeNode.nodeSize;\n const nodeResolved = state.doc.resolve(nodePos);\n const tr = state.tr.setSelection(NodeSelection.create(state.doc, nodeResolved.pos));\n dispatch(tr);\n return true;\n } else {\n // Just move the text cursor before the zwsp\n const tr = state.tr.setSelection(TextSelection.create(state.doc, from - 2));\n dispatch(tr);\n return true;\n }\n }\n }\n\n return false;\n },\n },\n});\n\nexport const MathNode = Node.create({\n name: 'math',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n latex: { default: '' },\n wrapper: { default: null },\n html: { default: null },\n };\n },\n\n addProseMirrorPlugins() {\n return [EnsureTextAfterMathPlugin(this.name), ZeroWidthSpaceHandlingPlugin];\n },\n\n parseHTML() {\n return [\n {\n tag: 'span[data-latex]',\n getAttrs: (el) => ({\n latex: el.getAttribute('data-raw') || el.textContent,\n }),\n },\n {\n tag: 'span[data-type=\"mathml\"]',\n getAttrs: (el) => ({\n html: el.innerHTML,\n }),\n },\n ];\n },\n\n addCommands() {\n return {\n insertMath:\n (latex = '') =>\n ({ tr, editor, dispatch }) => {\n const { state } = editor.view;\n const node = state.schema.nodes.math.create({\n latex,\n });\n const { selection } = state;\n\n // The inserted node is typically just before the cursor\n const pos = selection.$from.pos;\n\n tr.insert(pos, node);\n\n if (node?.type?.name === this.name) {\n // Create a NodeSelection from the current doc\n const sel = NodeSelection.create(tr.doc, selection.$from.pos);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n }\n\n dispatch(tr);\n\n return true;\n },\n // insertMath: (latex = '') => ({ commands }) => {\n // return commands.insertContent({\n // type: this.name,\n // attrs: { latex },\n // });\n // },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n if (HTMLAttributes.html) {\n return ['span', { 'data-type': 'mathml', dangerouslySetInnerHTML: { __html: HTMLAttributes.html } }];\n }\n\n return [\n 'span',\n { 'data-latex': '', 'data-raw': HTMLAttributes.latex },\n wrapMath(HTMLAttributes.latex, HTMLAttributes.wrapper),\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nexport const MathNodeView = (props) => {\n const { node, updateAttributes, editor, selected, options } = props;\n const [showToolbar, setShowToolbar] = useState(selected);\n const toolbarRef = useRef(null);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const latex = node.attrs.latex || '';\n\n useEffect(() => {\n if (selected) {\n setShowToolbar(true);\n }\n }, [selected]);\n\n useEffect(() => {\n editor._toolbarOpened = !!showToolbar;\n }, [showToolbar]);\n\n useEffect(() => {\n // Calculate position relative to selection\n const bodyRect = document.body.getBoundingClientRect();\n const { from } = editor.state.selection;\n const start = editor.view.coordsAtPos(from);\n setPosition({\n top: start.top + Math.abs(bodyRect.top) + 40, // shift above\n left: start.left,\n });\n\n const handleClickOutside = (event) => {\n if (\n toolbarRef.current &&\n !toolbarRef.current.contains(event.target) &&\n !event.target.closest('[data-inline-node]')\n ) {\n setShowToolbar(false);\n }\n };\n\n if (showToolbar) {\n // Use `click` (not `mousedown`) so interacting with browser UI like the scrollbar\n // doesn't automatically dismiss the math toolbar.\n document.addEventListener('click', handleClickOutside);\n } else {\n document.removeEventListener('click', handleClickOutside);\n }\n\n return () => document.removeEventListener('click', handleClickOutside);\n }, [editor, showToolbar]);\n\n const handleChange = (newLatex) => {\n updateAttributes({ latex: newLatex });\n };\n\n const handleDone = (newLatex) => {\n updateAttributes({ latex: newLatex });\n setShowToolbar(false);\n\n editor._toolbarOpened = false;\n\n const { selection, tr, doc } = editor.state;\n const sel = TextSelection.create(doc, selection.from + 1);\n\n // Build a fresh transaction from the current state and set the selection\n tr.setSelection(sel);\n editor.view.dispatch(tr);\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n className=\"math-node\"\n style={{\n display: 'inline-flex',\n cursor: 'pointer',\n margin: '0 4px',\n }}\n data-selected={selected}\n >\n <div onClick={() => setShowToolbar(true)} contentEditable={false}>\n <MathPreview latex={latex} />\n </div>\n {showToolbar &&\n ReactDOM.createPortal(\n <div\n ref={toolbarRef}\n data-toolbar-for={editor.instanceId}\n style={{\n position: 'absolute',\n top: `${position.top}px`,\n left: `${position.left}px`,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n }}\n >\n <MathToolbar latex={latex} autoFocus onChange={handleChange} onDone={handleDone} keypadMode=\"basic\" />\n </div>,\n document.body,\n )}\n </NodeViewWrapper>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -201,18 +201,21 @@ function MediaNodeView(_ref4) {
201
201
  }));
202
202
  };
203
203
  (0, _react.useEffect)(function () {
204
- insertDialog(_objectSpread(_objectSpread({}, node.attrs), {}, {
205
- options: options,
206
- edit: true,
207
- callback: function callback(val, data) {
208
- if (val) {
209
- updateAttributes(data);
210
- } else {
211
- deleteNode();
204
+ // Only open dialog for newly inserted media without a src
205
+ if (!src) {
206
+ insertDialog(_objectSpread(_objectSpread({}, node.attrs), {}, {
207
+ options: options,
208
+ edit: true,
209
+ callback: function callback(val, data) {
210
+ if (val) {
211
+ updateAttributes(data);
212
+ } else {
213
+ deleteNode();
214
+ }
215
+ editor.chain().focus().run();
212
216
  }
213
- editor.chain().focus().run();
214
- }
215
- }));
217
+ }));
218
+ }
216
219
  }, []);
217
220
  return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
218
221
  "data-type": type,
@@ -235,4 +238,4 @@ function MediaNodeView(_ref4) {
235
238
  onRemove: deleteNode
236
239
  }));
237
240
  }
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvcmUiLCJfcmVhY3QyIiwiX01lZGlhRGlhbG9nIiwiX01lZGlhVG9vbGJhciIsIl9leGNsdWRlZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJNZWRpYSIsImV4cG9ydHMiLCJOb2RlIiwiY3JlYXRlIiwibmFtZSIsImdyb3VwIiwiaW5saW5lIiwiYXRvbSIsImFkZEF0dHJpYnV0ZXMiLCJ0eXBlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJ0aXRsZSIsInN0YXJ0cyIsImVuZHMiLCJlZGl0aW5nIiwidGFnIiwidXJsIiwicGFyc2VIVE1MIiwiZ2V0QXR0cnMiLCJlbCIsImdldEF0dHJpYnV0ZSIsImRhdGFzZXQiLCJfZWwkcXVlcnlTZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZW5kZXJIVE1MIiwiX3JlZiIsIkhUTUxBdHRyaWJ1dGVzIiwiY29udHJvbHMiLCJjb250cm9sc0xpc3QiLCJtZXJnZUF0dHJpYnV0ZXMiLCJmcmFtZWJvcmRlciIsImFsbG93IiwiYWxsb3dmdWxsc2NyZWVuIiwiYWRkQ29tbWFuZHMiLCJfdGhpcyIsImluc2VydE1lZGlhIiwiYXR0cnMiLCJfcmVmMiIsImNvbW1hbmRzIiwiaW5zZXJ0Q29udGVudCIsInVwZGF0ZU1lZGlhIiwiX3JlZjMiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwiYWRkTm9kZVZpZXciLCJfdGhpczIiLCJSZWFjdE5vZGVWaWV3UmVuZGVyZXIiLCJwcm9wcyIsImNyZWF0ZUVsZW1lbnQiLCJNZWRpYU5vZGVWaWV3Iiwib3B0aW9ucyIsInJlbW92ZURpYWxvZ3MiLCJwcmV2RGlhbG9ncyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInMiLCJyZW1vdmUiLCJpbnNlcnREaWFsb2ciLCJuZXdFbCIsImNhbGxiYWNrIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJpbml0aWFsQm9keU92ZXJmbG93IiwiYm9keSIsInN0eWxlIiwib3ZlcmZsb3ciLCJjbGFzc05hbWUiLCJoYW5kbGVDbG9zZSIsInZhbCIsImRhdGEiLCJfZXh0ZW5kczIiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJkaXNhYmxlUG9ydGFsIiwib3BlbiIsIlJlYWN0RE9NIiwicmVuZGVyIiwiYXBwZW5kQ2hpbGQiLCJfcmVmNCIsImVkaXRvciIsIm5vZGUiLCJkZWxldGVOb2RlIiwiX25vZGUkYXR0cnMiLCJoYW5kbGVFZGl0IiwiZWRpdCIsImNoYWluIiwiZm9jdXMiLCJydW4iLCJ1c2VFZmZlY3QiLCJOb2RlVmlld1dyYXBwZXIiLCJhbGxvd0Z1bGxTY3JlZW4iLCJmcmFtZUJvcmRlciIsIm9uRWRpdCIsIm9uUmVtb3ZlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvbWVkaWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgbWVyZ2VBdHRyaWJ1dGVzLCBOb2RlIH0gZnJvbSAnQHRpcHRhcC9jb3JlJztcbmltcG9ydCB7IE5vZGVWaWV3V3JhcHBlciwgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgTWVkaWFEaWFsb2cgZnJvbSAnLi4vY29tcG9uZW50cy9tZWRpYS9NZWRpYURpYWxvZyc7XG5pbXBvcnQgTWVkaWFUb29sYmFyIGZyb20gJy4uL2NvbXBvbmVudHMvbWVkaWEvTWVkaWFUb29sYmFyJztcblxuZXhwb3J0IGNvbnN0IE1lZGlhID0gTm9kZS5jcmVhdGUoe1xuICBuYW1lOiAnbWVkaWEnLFxuICBncm91cDogJ2lubGluZScsXG4gIGlubGluZTogdHJ1ZSxcbiAgYXRvbTogdHJ1ZSxcblxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB7IGRlZmF1bHQ6ICd2aWRlbycgfSxcbiAgICAgIHNyYzogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB3aWR0aDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBoZWlnaHQ6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgdGl0bGU6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgc3RhcnRzOiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIGVuZHM6IHsgZGVmYXVsdDogbnVsbCB9LFxuICAgICAgZWRpdGluZzogeyBkZWZhdWx0OiBmYWxzZSB9LFxuICAgICAgdGFnOiB7IGRlZmF1bHQ6ICdpZnJhbWUnIH0sIC8vICdpZnJhbWUnIG9yICdhdWRpbydcbiAgICAgIHVybDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgfTtcbiAgfSxcblxuICBwYXJzZUhUTUwoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnaWZyYW1lW2RhdGEtdHlwZT1cInZpZGVvXCJdJyxcbiAgICAgICAgZ2V0QXR0cnM6IChlbCkgPT4gKHtcbiAgICAgICAgICB0eXBlOiAndmlkZW8nLFxuICAgICAgICAgIHRhZzogJ2lmcmFtZScsXG4gICAgICAgICAgc3JjOiBlbC5nZXRBdHRyaWJ1dGUoJ3NyYycpLFxuICAgICAgICAgIHdpZHRoOiBlbC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJyksXG4gICAgICAgICAgaGVpZ2h0OiBlbC5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpLFxuICAgICAgICAgIHRpdGxlOiBlbC5kYXRhc2V0LnRpdGxlLFxuICAgICAgICAgIHN0YXJ0czogZWwuZGF0YXNldC5zdGFydHMsXG4gICAgICAgICAgZW5kczogZWwuZGF0YXNldC5lbmRzLFxuICAgICAgICAgIHVybDogZWwuZGF0YXNldC51cmwsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGFnOiAnYXVkaW8nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIHR5cGU6ICdhdWRpbycsXG4gICAgICAgICAgdGFnOiAnYXVkaW8nLFxuICAgICAgICAgIHNyYzogZWwucXVlcnlTZWxlY3Rvcignc291cmNlJyk/LmdldEF0dHJpYnV0ZSgnc3JjJyksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuXG4gIHJlbmRlckhUTUwoeyBIVE1MQXR0cmlidXRlcyB9KSB7XG4gICAgY29uc3QgeyB0YWcsIHNyYywgd2lkdGgsIGhlaWdodCB9ID0gSFRNTEF0dHJpYnV0ZXM7XG5cbiAgICBpZiAodGFnID09PSAnYXVkaW8nKSB7XG4gICAgICByZXR1cm4gWydhdWRpbycsIHsgY29udHJvbHM6ICdjb250cm9scycsIGNvbnRyb2xzTGlzdDogJ25vZG93bmxvYWQnIH0sIFsnc291cmNlJywgeyBzcmMsIHR5cGU6ICdhdWRpby9tcDMnIH1dXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgJ2lmcmFtZScsXG4gICAgICBtZXJnZUF0dHJpYnV0ZXMoXG4gICAgICAgIHtcbiAgICAgICAgICAnZGF0YS10eXBlJzogJ3ZpZGVvJyxcbiAgICAgICAgICBmcmFtZWJvcmRlcjogJzAnLFxuICAgICAgICAgIGFsbG93OiAnYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZScsXG4gICAgICAgICAgYWxsb3dmdWxsc2NyZWVuOiAnJyxcbiAgICAgICAgICBzcmMsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoID8geyB3aWR0aCB9IDoge30sXG4gICAgICAgIGhlaWdodCA/IHsgaGVpZ2h0IH0gOiB7fSxcbiAgICAgICksXG4gICAgXTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zZXJ0TWVkaWE6XG4gICAgICAgIChhdHRycykgPT5cbiAgICAgICAgKHsgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21tYW5kcy5pbnNlcnRDb250ZW50KHsgdHlwZTogdGhpcy5uYW1lLCBhdHRycyB9KTtcbiAgICAgICAgfSxcbiAgICAgIHVwZGF0ZU1lZGlhOlxuICAgICAgICAoYXR0cnMpID0+XG4gICAgICAgICh7IGNvbW1hbmRzIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcyh0aGlzLm5hbWUsIGF0dHJzKTtcbiAgICAgICAgfSxcbiAgICB9O1xuICB9LFxuXG4gIGFkZE5vZGVWaWV3KCkge1xuICAgIHJldHVybiBSZWFjdE5vZGVWaWV3UmVuZGVyZXIoKHByb3BzKSA9PiA8TWVkaWFOb2RlVmlldyB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcbn0pO1xuXG5jb25zdCByZW1vdmVEaWFsb2dzID0gKCkgPT4ge1xuICBjb25zdCBwcmV2RGlhbG9ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnNlcnQtbWVkaWEtZGlhbG9nJyk7XG5cbiAgcHJldkRpYWxvZ3MuZm9yRWFjaCgocykgPT4gcy5yZW1vdmUoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0RGlhbG9nID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IG5ld0VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGNvbnN0IHsgdHlwZSwgY2FsbGJhY2ssIG9wdGlvbnMsIC4uLnJlc3QgfSA9IHByb3BzO1xuICBjb25zdCBpbml0aWFsQm9keU92ZXJmbG93ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcblxuICByZW1vdmVEaWFsb2dzKCk7XG5cbiAgbmV3RWwuY2xhc3NOYW1lID0gJ2luc2VydC1tZWRpYS1kaWFsb2cnO1xuICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAodmFsLCBkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sodmFsLCBkYXRhKTtcbiAgICBuZXdFbC5yZW1vdmUoKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gaW5pdGlhbEJvZHlPdmVyZmxvdztcbiAgfTtcblxuICBjb25zdCBlbCA9IChcbiAgICA8TWVkaWFEaWFsb2dcbiAgICAgIHsuLi5yZXN0fVxuICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXtvcHRpb25zLnVwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICBkaXNhYmxlUG9ydGFsPXt0cnVlfVxuICAgICAgb3Blbj17dHJ1ZX1cbiAgICAgIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAvPlxuICApO1xuXG4gIFJlYWN0RE9NLnJlbmRlcihlbCwgbmV3RWwpO1xuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobmV3RWwpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWVkaWFOb2RlVmlldyh7IGVkaXRvciwgbm9kZSwgdXBkYXRlQXR0cmlidXRlcywgZGVsZXRlTm9kZSwgb3B0aW9ucyB9KSB7XG4gIGNvbnN0IHsgdHlwZSwgc3JjLCB3aWR0aCwgaGVpZ2h0LCB0YWcgfSA9IG5vZGUuYXR0cnM7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9ICgpID0+IHtcbiAgICBpbnNlcnREaWFsb2coe1xuICAgICAgLi4ubm9kZS5hdHRycyxcbiAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICBlZGl0OiB0cnVlLFxuICAgICAgY2FsbGJhY2s6ICh2YWwsIGRhdGEpID0+IHtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgIHVwZGF0ZUF0dHJpYnV0ZXMoZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJ1bigpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluc2VydERpYWxvZyh7XG4gICAgICAuLi5ub2RlLmF0dHJzLFxuICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgIGVkaXQ6IHRydWUsXG4gICAgICBjYWxsYmFjazogKHZhbCwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgdXBkYXRlQXR0cmlidXRlcyhkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGVOb2RlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBlZGl0b3IuY2hhaW4oKS5mb2N1cygpLnJ1bigpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlciBkYXRhLXR5cGU9e3R5cGV9IHN0eWxlPXt7IHdpZHRoLCBoZWlnaHQgfX0+XG4gICAgICB7dGFnID09PSAnYXVkaW8nID8gKFxuICAgICAgICA8YXVkaW8gY29udHJvbHMgY29udHJvbHNMaXN0PVwibm9kb3dubG9hZFwiPlxuICAgICAgICAgIDxzb3VyY2UgdHlwZT1cImF1ZGlvL21wM1wiIHNyYz17c3JjfSAvPlxuICAgICAgICA8L2F1ZGlvPlxuICAgICAgKSA6IChcbiAgICAgICAgPGlmcmFtZSBzcmM9e3NyY30gYWxsb3dGdWxsU2NyZWVuIGZyYW1lQm9yZGVyPVwiMFwiIC8+XG4gICAgICApfVxuXG4gICAgICA8TWVkaWFUb29sYmFyIG9uRWRpdD17aGFuZGxlRWRpdH0gb25SZW1vdmU9e2RlbGV0ZU5vZGV9IC8+XG4gICAgPC9Ob2RlVmlld1dyYXBwZXI+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFBNEQsSUFBQU8sU0FBQTtBQUFBLFNBQUFSLHdCQUFBUyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBWCx1QkFBQSxZQUFBQSx3QkFBQVMsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFBZCxDQUFBLGdCQUFBYyxFQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FB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
241
+ //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_MediaDialog","_MediaToolbar","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Media","exports","Node","create","name","group","inline","atom","addAttributes","type","src","width","height","title","starts","ends","editing","tag","url","parseHTML","getAttrs","el","getAttribute","dataset","_el$querySelector","querySelector","renderHTML","_ref","HTMLAttributes","controls","controlsList","mergeAttributes","frameborder","allow","allowfullscreen","addCommands","_this","insertMedia","attrs","_ref2","commands","insertContent","updateMedia","_ref3","updateAttributes","addNodeView","_this2","ReactNodeViewRenderer","props","createElement","MediaNodeView","options","removeDialogs","prevDialogs","document","querySelectorAll","s","remove","insertDialog","newEl","callback","rest","_objectWithoutProperties2","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","_extends2","uploadSoundSupport","disablePortal","open","ReactDOM","render","appendChild","_ref4","editor","node","deleteNode","_node$attrs","handleEdit","edit","chain","focus","run","useEffect","NodeViewWrapper","allowFullScreen","frameBorder","onEdit","onRemove"],"sources":["../../src/extensions/media.js"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { mergeAttributes, Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport MediaDialog from '../components/media/MediaDialog';\nimport MediaToolbar from '../components/media/MediaToolbar';\n\nexport const Media = Node.create({\n name: 'media',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n type: { default: 'video' },\n src: { default: null },\n width: { default: null },\n height: { default: null },\n title: { default: null },\n starts: { default: null },\n ends: { default: null },\n editing: { default: false },\n tag: { default: 'iframe' }, // 'iframe' or 'audio'\n url: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[data-type=\"video\"]',\n getAttrs: (el) => ({\n type: 'video',\n tag: 'iframe',\n src: el.getAttribute('src'),\n width: el.getAttribute('width'),\n height: el.getAttribute('height'),\n title: el.dataset.title,\n starts: el.dataset.starts,\n ends: el.dataset.ends,\n url: el.dataset.url,\n }),\n },\n {\n tag: 'audio',\n getAttrs: (el) => ({\n type: 'audio',\n tag: 'audio',\n src: el.querySelector('source')?.getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n const { tag, src, width, height } = HTMLAttributes;\n\n if (tag === 'audio') {\n return ['audio', { controls: 'controls', controlsList: 'nodownload' }, ['source', { src, type: 'audio/mp3' }]];\n }\n\n return [\n 'iframe',\n mergeAttributes(\n {\n 'data-type': 'video',\n frameborder: '0',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n allowfullscreen: '',\n src,\n },\n width ? { width } : {},\n height ? { height } : {},\n ),\n ];\n },\n\n addCommands() {\n return {\n insertMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContent({ type: this.name, attrs });\n },\n updateMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.updateAttributes(this.name, attrs);\n },\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MediaNodeView {...{ ...props, options: this.options }} />);\n },\n});\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, options, ...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\n {...rest}\n uploadSoundSupport={options.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nexport default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }) {\n const { type, src, width, height, tag } = node.attrs;\n\n const handleEdit = () => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n }\n\n editor.chain().focus().run();\n },\n });\n };\n\n useEffect(() => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n } else {\n deleteNode();\n }\n\n editor.chain().focus().run();\n },\n });\n }, []);\n\n return (\n <NodeViewWrapper data-type={type} style={{ width, height }}>\n {tag === 'audio' ? (\n <audio controls controlsList=\"nodownload\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n ) : (\n <iframe src={src} allowFullScreen frameBorder=\"0\" />\n )}\n\n <MediaToolbar onEdit={handleEdit} onRemove={deleteNode} />\n </NodeViewWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"media.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_MediaDialog","_MediaToolbar","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Media","exports","Node","create","name","group","inline","atom","addAttributes","type","src","width","height","title","starts","ends","editing","tag","url","parseHTML","getAttrs","el","getAttribute","dataset","_el$querySelector","querySelector","renderHTML","_ref","HTMLAttributes","controls","controlsList","mergeAttributes","frameborder","allow","allowfullscreen","addCommands","_this","insertMedia","attrs","_ref2","commands","insertContent","updateMedia","_ref3","updateAttributes","addNodeView","_this2","ReactNodeViewRenderer","props","createElement","MediaNodeView","options","removeDialogs","prevDialogs","document","querySelectorAll","s","remove","insertDialog","newEl","callback","rest","_objectWithoutProperties2","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","_extends2","uploadSoundSupport","disablePortal","open","ReactDOM","render","appendChild","_ref4","editor","node","deleteNode","_node$attrs","handleEdit","edit","chain","focus","run","useEffect","NodeViewWrapper","allowFullScreen","frameBorder","onEdit","onRemove"],"sources":["../../src/extensions/media.js"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { mergeAttributes, Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport MediaDialog from '../components/media/MediaDialog';\nimport MediaToolbar from '../components/media/MediaToolbar';\n\nexport const Media = Node.create({\n name: 'media',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n type: { default: 'video' },\n src: { default: null },\n width: { default: null },\n height: { default: null },\n title: { default: null },\n starts: { default: null },\n ends: { default: null },\n editing: { default: false },\n tag: { default: 'iframe' }, // 'iframe' or 'audio'\n url: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[data-type=\"video\"]',\n getAttrs: (el) => ({\n type: 'video',\n tag: 'iframe',\n src: el.getAttribute('src'),\n width: el.getAttribute('width'),\n height: el.getAttribute('height'),\n title: el.dataset.title,\n starts: el.dataset.starts,\n ends: el.dataset.ends,\n url: el.dataset.url,\n }),\n },\n {\n tag: 'audio',\n getAttrs: (el) => ({\n type: 'audio',\n tag: 'audio',\n src: el.querySelector('source')?.getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n const { tag, src, width, height } = HTMLAttributes;\n\n if (tag === 'audio') {\n return ['audio', { controls: 'controls', controlsList: 'nodownload' }, ['source', { src, type: 'audio/mp3' }]];\n }\n\n return [\n 'iframe',\n mergeAttributes(\n {\n 'data-type': 'video',\n frameborder: '0',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n allowfullscreen: '',\n src,\n },\n width ? { width } : {},\n height ? { height } : {},\n ),\n ];\n },\n\n addCommands() {\n return {\n insertMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContent({ type: this.name, attrs });\n },\n updateMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.updateAttributes(this.name, attrs);\n },\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MediaNodeView {...{ ...props, options: this.options }} />);\n },\n});\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, options, ...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\n {...rest}\n uploadSoundSupport={options.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nexport default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }) {\n const { type, src, width, height, tag } = node.attrs;\n\n const handleEdit = () => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n }\n\n editor.chain().focus().run();\n },\n });\n };\n\n useEffect(() => {\n // Only open dialog for newly inserted media without a src\n if (!src) {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n } else {\n deleteNode();\n }\n\n editor.chain().focus().run();\n },\n });\n }\n }, []);\n\n return (\n <NodeViewWrapper data-type={type} style={{ width, height }}>\n {tag === 'audio' ? (\n <audio controls controlsList=\"nodownload\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n ) : (\n <iframe src={src} allowFullScreen frameBorder=\"0\" />\n )}\n\n <MediaToolbar onEdit={handleEdit} onRemove={deleteNode} />\n </NodeViewWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ var _react2 = require("@tiptap/react");
13
13
  var _ExplicitConstructedResponse = _interopRequireDefault(require("../components/respArea/ExplicitConstructedResponse"));
14
14
  var _DragInTheBlank = _interopRequireDefault(require("../components/respArea/DragInTheBlank/DragInTheBlank"));
15
15
  var _InlineDropdown = _interopRequireDefault(require("../components/respArea/InlineDropdown"));
16
+ var _MathTemplated = _interopRequireDefault(require("../components/respArea/MathTemplated"));
16
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
19
  var lastIndexMap = {};
@@ -190,10 +191,9 @@ var ResponseAreaExtension = exports.ResponseAreaExtension = _core.Extension.crea
190
191
  // tr.setSelection(NodeSelection.create(tr.doc, usedPos))
191
192
 
192
193
  // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---
193
- if (['math_templated', 'inline_dropdown', 'drag_in_the_blank', 'explicit_constructed_response'].includes(typeName)) {
194
+ if (['math_templated', 'inline_dropdown', 'explicit_constructed_response'].includes(typeName)) {
194
195
  tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, usedPos));
195
196
  } else {
196
- // Default: put cursor after inserted node
197
197
  var after = usedPos + newInline.nodeSize;
198
198
  tr.setSelection(selectionAfterPos(tr.doc, after));
199
199
  }
@@ -213,7 +213,7 @@ var ResponseAreaExtension = exports.ResponseAreaExtension = _core.Extension.crea
213
213
  var selection = state.selection;
214
214
  var node = selection.$from.nodeAfter;
215
215
  var nodePos = selection.from;
216
- tr.setNodeMarkup(nodePos, undefined, _objectSpread(_objectSpread({}, node.attrs), {}, {
216
+ tr.setNodeMarkup(nodePos, undefined, _objectSpread(_objectSpread({}, node === null || node === void 0 ? void 0 : node.attrs), {}, {
217
217
  updated: "".concat(Date.now())
218
218
  }));
219
219
  tr.setSelection(_prosemirrorState.NodeSelection.create(tr.doc, nodePos));
@@ -319,8 +319,11 @@ var MathTemplatedNode = exports.MathTemplatedNode = _react2.Node.create({
319
319
  }];
320
320
  },
321
321
  addNodeView: function addNodeView() {
322
- return (0, _react2.ReactNodeViewRenderer)(function () {
323
- return /*#__PURE__*/_react["default"].createElement("div", null);
322
+ var _this4 = this;
323
+ return (0, _react2.ReactNodeViewRenderer)(function (props) {
324
+ return /*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], _objectSpread(_objectSpread({}, props), {}, {
325
+ options: _this4.options
326
+ }));
324
327
  });
325
328
  }
326
329
  });
@@ -376,10 +379,10 @@ var DragInTheBlankNode = exports.DragInTheBlankNode = _react2.Node.create({
376
379
  }];
377
380
  },
378
381
  addNodeView: function addNodeView() {
379
- var _this4 = this;
382
+ var _this5 = this;
380
383
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
381
384
  return /*#__PURE__*/_react["default"].createElement(_DragInTheBlank["default"], _objectSpread(_objectSpread({}, props), {}, {
382
- options: _this4.options
385
+ options: _this5.options
383
386
  }));
384
387
  });
385
388
  }
@@ -426,12 +429,12 @@ var InlineDropdownNode = exports.InlineDropdownNode = _react2.Node.create({
426
429
  }];
427
430
  },
428
431
  addNodeView: function addNodeView() {
429
- var _this5 = this;
432
+ var _this6 = this;
430
433
  return (0, _react2.ReactNodeViewRenderer)(function (props) {
431
434
  return /*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], _objectSpread(_objectSpread({}, props), {}, {
432
- options: _this5.options
435
+ options: _this6.options
433
436
  }));
434
437
  });
435
438
  }
436
439
  });
437
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9zZW1pcnJvclN0YXRlIiwiX2NvcmUiLCJfcmVhY3QyIiwiX0V4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZSIsIl9EcmFnSW5UaGVCbGFuayIsIl9JbmxpbmVEcm9wZG93biIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwibGFzdEluZGV4TWFwIiwibm9ybWFsaXplVHlwZSIsInR5cGUiLCJTdHJpbmciLCJyZXBsYWNlIiwiZ2V0QXR0ckluZGV4Iiwibm9kZSIsImF0dHJzIiwiaW5kZXgiLCJjb2xsZWN0Tm9kZXNPZlR5cGUiLCJkb2MiLCJ0eXBlTmFtZSIsInJlc3VsdHMiLCJkZXNjZW5kYW50cyIsInBvcyIsIm5hbWUiLCJjb3VudE5vZGVzT2ZUeXBlIiwiY291bnQiLCJnZXREZWZhdWx0Tm9kZSIsIl9yZWYiLCJzY2hlbWEiLCJub2RlVHlwZSIsIm5vZGVzIiwiY3JlYXRlIiwiaWQiLCJ2YWx1ZSIsInNlbGVjdGlvbkFmdGVyUG9zIiwiJHBvcyIsInJlc29sdmUiLCJNYXRoIiwibWluIiwiY29udGVudCIsInNpemUiLCJUZXh0U2VsZWN0aW9uIiwibmVhciIsIlJlc3BvbnNlQXJlYUV4dGVuc2lvbiIsImV4cG9ydHMiLCJFeHRlbnNpb24iLCJhZGRPcHRpb25zIiwibWF4UmVzcG9uc2VBcmVhcyIsImVycm9yIiwib3B0aW9ucyIsInJlc3BBcmVhVG9vbGJhciIsIm9uSGFuZGxlQXJlYUNoYW5nZSIsImFkZFByb3NlTWlycm9yUGx1Z2lucyIsIl90aGlzIiwia2V5IiwiUGx1Z2luS2V5IiwiY29uY2F0IiwiUGx1Z2luIiwidmlldyIsInVuZGVmaW5lZCIsInN0YXRlIiwiaWR4IiwibiIsInBhcnNlSW50IiwiTnVtYmVyIiwiaXNOYU4iLCJ1cGRhdGUiLCJwcmV2U3RhdGUiLCJlcSIsImN1cnJlbnRMaXN0Iiwib2xkTGlzdCIsInRvb2xiYXIiLCJkaXNhYmxlZCIsImN1cnJlbnRJbmRleFNldCIsIlNldCIsIm1hcCIsIngiLCJyZW1vdmVkIiwiaGFzIiwiYWRkQ29tbWFuZHMiLCJfdGhpczIiLCJpbnNlcnRSZXNwb25zZUFyZWEiLCJfcmVmMiIsInRyIiwiZGlzcGF0Y2giLCJjb21tYW5kcyIsImN1cnJlbnRDb3VudCIsInByZXZJbmRleCIsIm5ld0luZGV4IiwibmV3SW5saW5lIiwic2VsZWN0aW9uIiwiaW5zZXJ0UG9zIiwiZnJvbSIsInRyeUluc2VydEF0IiwiaW5zZXJ0IiwidXNlZFBvcyIsImluY2x1ZGVzIiwic2V0U2VsZWN0aW9uIiwiTm9kZVNlbGVjdGlvbiIsImFmdGVyIiwibm9kZVNpemUiLCJmb2N1cyIsInJlZnJlc2hSZXNwb25zZUFyZWEiLCJfcmVmMyIsIiRmcm9tIiwibm9kZUFmdGVyIiwibm9kZVBvcyIsInNldE5vZGVNYXJrdXAiLCJ1cGRhdGVkIiwiRGF0ZSIsIm5vdyIsIkV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZU5vZGUiLCJOb2RlIiwiZ3JvdXAiLCJpbmxpbmUiLCJhdG9tIiwiYWRkQXR0cmlidXRlcyIsInBhcnNlSFRNTCIsInRhZyIsImdldEF0dHJzIiwiZWwiLCJkYXRhc2V0IiwicmVuZGVySFRNTCIsIl9yZWY0IiwiSFRNTEF0dHJpYnV0ZXMiLCJhZGROb2RlVmlldyIsIl90aGlzMyIsIlJlYWN0Tm9kZVZpZXdSZW5kZXJlciIsInByb3BzIiwiY3JlYXRlRWxlbWVudCIsIk1hdGhUZW1wbGF0ZWROb2RlIiwiX3JlZjUiLCJEcmFnSW5UaGVCbGFua05vZGUiLCJpblRhYmxlIiwiX3JlZjYiLCJfdGhpczQiLCJJbmxpbmVEcm9wZG93bk5vZGUiLCJfcmVmNyIsIl90aGlzNSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3Jlc3BvbnNlQXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTm9kZVNlbGVjdGlvbiwgUGx1Z2luLCBQbHVnaW5LZXksIFRleHRTZWxlY3Rpb24gfSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tICdAdGlwdGFwL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSwgUmVhY3ROb2RlVmlld1JlbmRlcmVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIGZyb20gJy4uL2NvbXBvbmVudHMvcmVzcEFyZWEvRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlJztcbmltcG9ydCBEcmFnSW5UaGVCbGFuayBmcm9tICcuLi9jb21wb25lbnRzL3Jlc3BBcmVhL0RyYWdJblRoZUJsYW5rL0RyYWdJblRoZUJsYW5rJztcbmltcG9ydCBJbmxpbmVEcm9wZG93biBmcm9tICcuLi9jb21wb25lbnRzL3Jlc3BBcmVhL0lubGluZURyb3Bkb3duJztcblxuY29uc3QgbGFzdEluZGV4TWFwID0ge307XG5cbmNvbnN0IG5vcm1hbGl6ZVR5cGUgPSAodHlwZSkgPT4gU3RyaW5nKHR5cGUgfHwgJycpLnJlcGxhY2UoLy0vZywgJ18nKTtcblxuY29uc3QgZ2V0QXR0ckluZGV4ID0gKG5vZGUpID0+IChub2RlICYmIG5vZGUuYXR0cnMgJiYgbm9kZS5hdHRycy5pbmRleCAhPSBudWxsID8gU3RyaW5nKG5vZGUuYXR0cnMuaW5kZXgpIDogbnVsbCk7XG5cbmNvbnN0IGNvbGxlY3ROb2Rlc09mVHlwZSA9IChkb2MsIHR5cGVOYW1lKSA9PiB7XG4gIGNvbnN0IHJlc3VsdHMgPSBbXTtcblxuICBkb2MuZGVzY2VuZGFudHMoKG5vZGUsIHBvcykgPT4ge1xuICAgIGlmIChub2RlLnR5cGUgJiYgbm9kZS50eXBlLm5hbWUgPT09IHR5cGVOYW1lKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGdldEF0dHJJbmRleChub2RlKTtcbiAgICAgIGlmIChpbmRleCAhPSBudWxsKSByZXN1bHRzLnB1c2goeyBpbmRleCwgcG9zLCBub2RlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59O1xuXG5jb25zdCBjb3VudE5vZGVzT2ZUeXBlID0gKGRvYywgdHlwZU5hbWUpID0+IHtcbiAgbGV0IGNvdW50ID0gMDtcbiAgZG9jLmRlc2NlbmRhbnRzKChub2RlKSA9PiB7XG4gICAgaWYgKG5vZGUudHlwZSAmJiBub2RlLnR5cGUubmFtZSA9PT0gdHlwZU5hbWUpIGNvdW50ICs9IDE7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuICByZXR1cm4gY291bnQ7XG59O1xuXG5jb25zdCBnZXREZWZhdWx0Tm9kZSA9ICh7IHNjaGVtYSwgdHlwZU5hbWUsIGluZGV4IH0pID0+IHtcbiAgY29uc3Qgbm9kZVR5cGUgPSBzY2hlbWEubm9kZXNbdHlwZU5hbWVdO1xuICBpZiAoIW5vZGVUeXBlKSByZXR1cm4gbnVsbDtcblxuICAvLyBtaXJyb3IgeW91ciBTbGF0ZSBcImdldERlZmF1bHRFbGVtZW50KG9wdHMsIG5ld0luZGV4KVwiXG4gIC8vIGN1c3RvbWl6ZSBhdHRycyBhcyBuZWVkZWQ6XG4gIHJldHVybiBub2RlVHlwZS5jcmVhdGUoe1xuICAgIGluZGV4OiBTdHJpbmcoaW5kZXgpLFxuICAgIGlkOiBTdHJpbmcoaW5kZXgpLFxuICAgIHZhbHVlOiAnJyxcbiAgfSk7XG59O1xuXG4vLyBGaW5kIGEgZ29vZCBjdXJzb3IgcG9zaXRpb24gKmFmdGVyKiBhbiBpbnNlcnRlZCBub2RlLlxuY29uc3Qgc2VsZWN0aW9uQWZ0ZXJQb3MgPSAoZG9jLCBwb3MpID0+IHtcbiAgY29uc3QgJHBvcyA9IGRvYy5yZXNvbHZlKE1hdGgubWluKHBvcywgZG9jLmNvbnRlbnQuc2l6ZSkpO1xuICByZXR1cm4gVGV4dFNlbGVjdGlvbi5uZWFyKCRwb3MsIDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IFJlc3BvbnNlQXJlYUV4dGVuc2lvbiA9IEV4dGVuc2lvbi5jcmVhdGUoe1xuICBuYW1lOiAncmVzcG9uc2VBcmVhJyxcblxuICBhZGRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtYXhSZXNwb25zZUFyZWFzOiBudWxsLFxuICAgICAgZXJyb3I6IG51bGwsXG4gICAgICBvcHRpb25zOiBudWxsLFxuICAgICAgcmVzcEFyZWFUb29sYmFyOiBudWxsLFxuICAgICAgb25IYW5kbGVBcmVhQ2hhbmdlOiBudWxsLFxuICAgIH07XG4gIH0sXG5cbiAgYWRkUHJvc2VNaXJyb3JQbHVnaW5zKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnR5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IG5vcm1hbGl6ZVR5cGUodGhpcy5vcHRpb25zLnR5cGUpO1xuICAgIGNvbnN0IGtleSA9IG5ldyBQbHVnaW5LZXkoYHJlc3BvbnNlLWFyZWEtd2F0Y2hlcjoke3R5cGVOYW1lfWApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBQbHVnaW4oe1xuICAgICAgICBrZXksXG5cbiAgICAgICAgdmlldzogKHZpZXcpID0+IHtcbiAgICAgICAgICAvLyBMYXp5IGluaXQgbGFzdEluZGV4TWFwW3R5cGVOYW1lXVxuICAgICAgICAgIGlmIChsYXN0SW5kZXhNYXBbdHlwZU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxhc3RJbmRleE1hcFt0eXBlTmFtZV0gPSAwO1xuXG4gICAgICAgICAgICB2aWV3LnN0YXRlLmRvYy5kZXNjZW5kYW50cygobm9kZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAobm9kZS50eXBlICYmIG5vZGUudHlwZS5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IGdldEF0dHJJbmRleChub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAoaWR4ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChpZHgsIDEwKTtcbiAgICAgICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzTmFOKG4pICYmIG4gPiBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleE1hcFt0eXBlTmFtZV0gPSBuO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cGRhdGU6ICh2aWV3LCBwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB2aWV3LnN0YXRlO1xuICAgICAgICAgICAgICBpZiAocHJldlN0YXRlLmRvYy5lcShzdGF0ZS5kb2MpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpc3QgPSBjb2xsZWN0Tm9kZXNPZlR5cGUoc3RhdGUuZG9jLCB0eXBlTmFtZSk7XG4gICAgICAgICAgICAgIGNvbnN0IG9sZExpc3QgPSBjb2xsZWN0Tm9kZXNPZlR5cGUocHJldlN0YXRlLmRvYywgdHlwZU5hbWUpO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9vbGJhcikge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy50b29sYmFyLmRpc2FibGVkID0gY3VycmVudExpc3QubGVuZ3RoID49IHRoaXMub3B0aW9ucy5tYXhSZXNwb25zZUFyZWFzO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gUmVtb3ZlZCBlbGVtZW50cyAoc2FtZSBsb2dpYyBhcyBTbGF0ZSlcbiAgICAgICAgICAgICAgaWYgKG9sZExpc3QubGVuZ3RoID4gY3VycmVudExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4U2V0ID0gbmV3IFNldChjdXJyZW50TGlzdC5tYXAoKHgpID0+IHguaW5kZXgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBvbGRMaXN0LmZpbHRlcigoeCkgPT4gIWN1cnJlbnRJbmRleFNldC5oYXMoeC5pbmRleCkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlbW92ZWQubGVuZ3RoICYmIHR5cGVvZiB0aGlzLm9wdGlvbnMub25IYW5kbGVBcmVhQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25IYW5kbGVBcmVhQ2hhbmdlKHJlbW92ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zZXJ0UmVzcG9uc2VBcmVhOlxuICAgICAgICAodHlwZSkgPT5cbiAgICAgICAgKHsgdHIsIHN0YXRlLCBkaXNwYXRjaCwgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gbm9ybWFsaXplVHlwZSh0eXBlKTtcblxuICAgICAgICAgIC8vIC0tLSBTbGF0ZTogY3VycmVudFJlc3BBcmVhTGlzdCArIG1heCBjaGVjayAtLS1cbiAgICAgICAgICBjb25zdCBjdXJyZW50Q291bnQgPSBjb3VudE5vZGVzT2ZUeXBlKHN0YXRlLmRvYywgdHlwZU5hbWUpO1xuICAgICAgICAgIGlmIChjdXJyZW50Q291bnQgPj0gdGhpcy5vcHRpb25zLm1heFJlc3BvbnNlQXJlYXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyAtLS0gU2xhdGU6IGluZGV4aW5nIGxvZ2ljIChrZXB0IGlkZW50aWNhbCkgLS0tXG4gICAgICAgICAgaWYgKGxhc3RJbmRleE1hcFt0eXBlTmFtZV0gPT09IHVuZGVmaW5lZCkgbGFzdEluZGV4TWFwW3R5cGVOYW1lXSA9IDA7XG5cbiAgICAgICAgICBjb25zdCBwcmV2SW5kZXggPSBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdO1xuICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gcHJldkluZGV4ID09PSAwID8gcHJldkluZGV4IDogcHJldkluZGV4ICsgMTtcblxuICAgICAgICAgIC8vIFNsYXRlIGluY3JlbWVudHMgbWFwIGV2ZW4gaWYgbmV3SW5kZXggPT09IDBcbiAgICAgICAgICBsYXN0SW5kZXhNYXBbdHlwZU5hbWVdICs9IDE7XG5cbiAgICAgICAgICBjb25zdCBuZXdJbmxpbmUgPSBnZXREZWZhdWx0Tm9kZSh7XG4gICAgICAgICAgICBzY2hlbWE6IHN0YXRlLnNjaGVtYSxcbiAgICAgICAgICAgIHR5cGVOYW1lLFxuICAgICAgICAgICAgaW5kZXg6IG5ld0luZGV4LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFuZXdJbmxpbmUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgIC8vIC0tLSBJbnNlcnQgbG9naWMgLS0tXG4gICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IHN0YXRlO1xuICAgICAgICAgIGxldCBpbnNlcnRQb3MgPSBzZWxlY3Rpb24uZnJvbTtcblxuICAgICAgICAgIC8vIElmIHdlJ3JlIGluIGEgTm9kZVNlbGVjdGlvbiwgaW5zZXJ0IGJlZm9yZS9hZnRlciBpcyBhbWJpZ3VvdXM7XG4gICAgICAgICAgLy8gV2UnbGwgaW5zZXJ0IGF0IGl0cyBcImZyb21cIiAobGlrZSB5b3VyIGN1cnJlbnQgY29kZSkuXG4gICAgICAgICAgLy8gSWYgaW5zZXJ0aW9uIGZhaWxzLCB3ZSBmYWxsYmFjayB0byBlbmQgb2YgZG9jLlxuICAgICAgICAgIGNvbnN0IHRyeUluc2VydEF0ID0gKHBvcykgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdHIuaW5zZXJ0KHBvcywgbmV3SW5saW5lKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHBvcztcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGxldCB1c2VkUG9zID0gdHJ5SW5zZXJ0QXQoaW5zZXJ0UG9zKTtcblxuICAgICAgICAgIC8vIFNsYXRlIGJyYW5jaDogXCJtYXJrdXAgZW1wdHkgYW5kIHRoZXJlJ3Mgbm8gZm9jdXNcIlxuICAgICAgICAgIC8vIFByb3NlTWlycm9yIGRvZXNuJ3QgZXhwb3NlIFwibm8gZm9jdXNcIiB0aGUgc2FtZSB3YXksIHNvIHRoZSBjbG9zZXN0XG4gICAgICAgICAgLy8gZXF1aXZhbGVudCBmYWxsYmFjayBpcyBpbnNlcnRpbmcgYXQgZW5kIG9mIGRvY3VtZW50LlxuICAgICAgICAgIGlmICh1c2VkUG9zID09IG51bGwpIHtcbiAgICAgICAgICAgIHVzZWRQb3MgPSB0cnlJbnNlcnRBdCh0ci5kb2MuY29udGVudC5zaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHVzZWRQb3MgPT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgLy8gT3B0aW9uYWxseSBzZWxlY3QgdGhlIG5vZGUgeW91IGp1c3QgaW5zZXJ0ZWQgKGxpa2UgeW91ciBvcmlnaW5hbCBjb21tYW5kKVxuICAgICAgICAgIC8vIHRyLnNldFNlbGVjdGlvbihOb2RlU2VsZWN0aW9uLmNyZWF0ZSh0ci5kb2MsIHVzZWRQb3MpKVxuXG4gICAgICAgICAgLy8gLS0tIEN1cnNvciBtb3ZlIGJlaGF2aW9yIGZvciBjZXJ0YWluIHR5cGVzIChTbGF0ZTogbW92ZUZvY3VzVG8gbmV4dCB0ZXh0KSAtLS1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBbJ21hdGhfdGVtcGxhdGVkJywgJ2lubGluZV9kcm9wZG93bicsICdkcmFnX2luX3RoZV9ibGFuaycsICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZSddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICB0eXBlTmFtZSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyLnNldFNlbGVjdGlvbihOb2RlU2VsZWN0aW9uLmNyZWF0ZSh0ci5kb2MsIHVzZWRQb3MpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRGVmYXVsdDogcHV0IGN1cnNvciBhZnRlciBpbnNlcnRlZCBub2RlXG4gICAgICAgICAgICBjb25zdCBhZnRlciA9IHVzZWRQb3MgKyBuZXdJbmxpbmUubm9kZVNpemU7XG4gICAgICAgICAgICB0ci5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uQWZ0ZXJQb3ModHIuZG9jLCBhZnRlcikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChkaXNwYXRjaCkge1xuICAgICAgICAgICAgY29tbWFuZHMuZm9jdXMoKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHRyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgIHJlZnJlc2hSZXNwb25zZUFyZWE6XG4gICAgICAgICgpID0+XG4gICAgICAgICh7IHRyLCBzdGF0ZSwgY29tbWFuZHMsIGRpc3BhdGNoIH0pID0+IHtcbiAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gc3RhdGU7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHNlbGVjdGlvbi4kZnJvbS5ub2RlQWZ0ZXI7XG4gICAgICAgICAgY29uc3Qgbm9kZVBvcyA9IHNlbGVjdGlvbi5mcm9tO1xuXG4gICAgICAgICAgdHIuc2V0Tm9kZU1hcmt1cChub2RlUG9zLCB1bmRlZmluZWQsIHsgLi4ubm9kZS5hdHRycywgdXBkYXRlZDogYCR7RGF0ZS5ub3coKX1gIH0pO1xuICAgICAgICAgIHRyLnNldFNlbGVjdGlvbihOb2RlU2VsZWN0aW9uLmNyZWF0ZSh0ci5kb2MsIG5vZGVQb3MpKTtcblxuICAgICAgICAgIGlmIChkaXNwYXRjaCkge1xuICAgICAgICAgICAgY29tbWFuZHMuZm9jdXMoKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKHRyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbi8qKlxuICogRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIE5vZGVcbiAqL1xuZXhwb3J0IGNvbnN0IEV4cGxpY2l0Q29uc3RydWN0ZWRSZXNwb25zZU5vZGUgPSBOb2RlLmNyZWF0ZSh7XG4gIG5hbWU6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gIGdyb3VwOiAnaW5saW5lJyxcbiAgaW5saW5lOiB0cnVlLFxuICBhdG9tOiB0cnVlLFxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB2YWx1ZTogeyBkZWZhdWx0OiAnJyB9LFxuICAgICAgdXBkYXRlZDogeyBkZWZhdWx0OiAnJyB9LFxuICAgIH07XG4gIH0sXG4gIHBhcnNlSFRNTCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0YWc6ICdzcGFuW2RhdGEtdHlwZT1cImV4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlXCJdJyxcbiAgICAgICAgZ2V0QXR0cnM6IChlbCkgPT4gKHtcbiAgICAgICAgICBpbmRleDogZWwuZGF0YXNldC5pbmRleCxcbiAgICAgICAgICB2YWx1ZTogZWwuZGF0YXNldC52YWx1ZSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG4gIHJlbmRlckhUTUwoeyBIVE1MQXR0cmlidXRlcyB9KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdzcGFuJyxcbiAgICAgIHtcbiAgICAgICAgJ2RhdGEtdHlwZSc6ICdleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZScsXG4gICAgICAgICdkYXRhLWluZGV4JzogSFRNTEF0dHJpYnV0ZXMuaW5kZXgsXG4gICAgICAgICdkYXRhLXZhbHVlJzogSFRNTEF0dHJpYnV0ZXMudmFsdWUsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG4gIGFkZE5vZGVWaWV3KCkge1xuICAgIHJldHVybiBSZWFjdE5vZGVWaWV3UmVuZGVyZXIoKHByb3BzKSA9PiA8RXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlIHsuLi57IC4uLnByb3BzLCBvcHRpb25zOiB0aGlzLm9wdGlvbnMgfX0gLz4pO1xuICB9LFxufSk7XG5cbi8qKlxuICogTWF0aFRlbXBsYXRlZCBOb2RlXG4gKi9cbmV4cG9ydCBjb25zdCBNYXRoVGVtcGxhdGVkTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ21hdGhfdGVtcGxhdGVkJyxcbiAgZ3JvdXA6ICdpbmxpbmUnLFxuICBpbmxpbmU6IHRydWUsXG4gIGF0b206IHRydWUsXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiB7IGRlZmF1bHQ6IG51bGwgfSxcbiAgICAgIHZhbHVlOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgICB1cGRhdGVkOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgfTtcbiAgfSxcbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS10eXBlPVwibWF0aF90ZW1wbGF0ZWRcIl0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBlbC5kYXRhc2V0LnZhbHVlLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3NwYW4nLFxuICAgICAge1xuICAgICAgICAnZGF0YS10eXBlJzogJ21hdGhfdGVtcGxhdGVkJyxcbiAgICAgICAgJ2RhdGEtaW5kZXgnOiBIVE1MQXR0cmlidXRlcy5pbmRleCxcbiAgICAgICAgJ2RhdGEtdmFsdWUnOiBIVE1MQXR0cmlidXRlcy52YWx1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigoKSA9PiA8ZGl2PjwvZGl2Pik7XG4gIH0sXG59KTtcblxuLyoqXG4gKiBEcmFnSW5UaGVCbGFuayBOb2RlXG4gKi9cbmV4cG9ydCBjb25zdCBEcmFnSW5UaGVCbGFua05vZGUgPSBOb2RlLmNyZWF0ZSh7XG4gIG5hbWU6ICdkcmFnX2luX3RoZV9ibGFuaycsXG4gIGdyb3VwOiAnaW5saW5lJyxcbiAgaW5saW5lOiB0cnVlLFxuICBhdG9tOiB0cnVlLFxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICBpZDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB2YWx1ZTogeyBkZWZhdWx0OiAnJyB9LFxuICAgICAgaW5UYWJsZTogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB1cGRhdGVkOiB7IGRlZmF1bHQ6ICcnIH0sXG4gICAgfTtcbiAgfSxcbiAgcGFyc2VIVE1MKCkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRhZzogJ3NwYW5bZGF0YS10eXBlPVwiZHJhZ19pbl90aGVfYmxhbmtcIl0nLFxuICAgICAgICBnZXRBdHRyczogKGVsKSA9PiAoe1xuICAgICAgICAgIGluZGV4OiBlbC5kYXRhc2V0LmluZGV4LFxuICAgICAgICAgIGlkOiBlbC5kYXRhc2V0LmlkLFxuICAgICAgICAgIHZhbHVlOiBlbC5kYXRhc2V0LnZhbHVlLFxuICAgICAgICAgIGluVGFibGU6IGVsLmRhdGFzZXQuaW5UYWJsZSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG4gIHJlbmRlckhUTUwoeyBIVE1MQXR0cmlidXRlcyB9KSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdzcGFuJyxcbiAgICAgIHtcbiAgICAgICAgJ2RhdGEtdHlwZSc6ICdkcmFnX2luX3RoZV9ibGFuaycsXG4gICAgICAgICdkYXRhLWluZGV4JzogSFRNTEF0dHJpYnV0ZXMuaW5kZXgsXG4gICAgICAgICdkYXRhLWlkJzogSFRNTEF0dHJpYnV0ZXMuaWQsXG4gICAgICAgICdkYXRhLXZhbHVlJzogSFRNTEF0dHJpYnV0ZXMudmFsdWUsXG4gICAgICAgICdkYXRhLWluLXRhYmxlJzogSFRNTEF0dHJpYnV0ZXMuaW5UYWJsZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxEcmFnSW5UaGVCbGFuayB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcbn0pO1xuXG4vKipcbiAqIElubGluZURyb3Bkb3duIE5vZGVcbiAqL1xuZXhwb3J0IGNvbnN0IElubGluZURyb3Bkb3duTm9kZSA9IE5vZGUuY3JlYXRlKHtcbiAgbmFtZTogJ2lubGluZV9kcm9wZG93bicsXG4gIGdyb3VwOiAnaW5saW5lJyxcbiAgaW5saW5lOiB0cnVlLFxuICBhdG9tOiB0cnVlLFxuICBhZGRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogeyBkZWZhdWx0OiBudWxsIH0sXG4gICAgICB2YWx1ZTogeyBkZWZhdWx0OiAnJyB9LFxuICAgICAgdXBkYXRlZDogeyBkZWZhdWx0OiAnJyB9LFxuICAgIH07XG4gIH0sXG4gIHBhcnNlSFRNTCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0YWc6ICdzcGFuW2RhdGEtdHlwZT1cImlubGluZV9kcm9wZG93blwiXScsXG4gICAgICAgIGdldEF0dHJzOiAoZWwpID0+ICh7XG4gICAgICAgICAgaW5kZXg6IGVsLmRhdGFzZXQuaW5kZXgsXG4gICAgICAgICAgdmFsdWU6IGVsLmRhdGFzZXQudmFsdWUsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdO1xuICB9LFxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbXG4gICAgICAnc3BhbicsXG4gICAgICB7XG4gICAgICAgICdkYXRhLXR5cGUnOiAnaW5saW5lX2Ryb3Bkb3duJyxcbiAgICAgICAgJ2RhdGEtaW5kZXgnOiBIVE1MQXR0cmlidXRlcy5pbmRleCxcbiAgICAgICAgJ2RhdGEtdmFsdWUnOiBIVE1MQXR0cmlidXRlcy52YWx1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcbiAgYWRkTm9kZVZpZXcoKSB7XG4gICAgcmV0dXJuIFJlYWN0Tm9kZVZpZXdSZW5kZXJlcigocHJvcHMpID0+IDxJbmxpbmVEcm9wZG93biB7Li4ueyAuLi5wcm9wcywgb3B0aW9uczogdGhpcy5vcHRpb25zIH19IC8+KTtcbiAgfSxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSw0QkFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQW1FLFNBQUFPLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFD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
440
+ //# sourceMappingURL=responseArea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responseArea.js","names":["_react","_interopRequireDefault","require","_prosemirrorState","_core","_react2","_ExplicitConstructedResponse","_DragInTheBlank","_InlineDropdown","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","lastIndexMap","normalizeType","type","String","replace","getAttrIndex","node","attrs","index","collectNodesOfType","doc","typeName","results","descendants","pos","name","countNodesOfType","count","getDefaultNode","_ref","schema","nodeType","nodes","create","id","value","selectionAfterPos","$pos","resolve","Math","min","content","size","TextSelection","near","ResponseAreaExtension","exports","Extension","addOptions","maxResponseAreas","error","options","respAreaToolbar","onHandleAreaChange","addProseMirrorPlugins","_this","key","PluginKey","concat","Plugin","view","undefined","state","idx","n","parseInt","Number","isNaN","update","prevState","eq","currentList","oldList","toolbar","disabled","currentIndexSet","Set","map","x","removed","has","addCommands","_this2","insertResponseArea","_ref2","tr","dispatch","commands","currentCount","prevIndex","newIndex","newInline","selection","insertPos","from","tryInsertAt","insert","usedPos","includes","setSelection","NodeSelection","after","nodeSize","focus","refreshResponseArea","_ref3","$from","nodeAfter","nodePos","setNodeMarkup","updated","Date","now","ExplicitConstructedResponseNode","Node","group","inline","atom","addAttributes","parseHTML","tag","getAttrs","el","dataset","renderHTML","_ref4","HTMLAttributes","addNodeView","_this3","ReactNodeViewRenderer","props","createElement","MathTemplatedNode","_ref5","DragInTheBlankNode","inTable","_ref6","_this4","InlineDropdownNode","_ref7","_this5"],"sources":["../../src/extensions/responseArea.js"],"sourcesContent":["import React from 'react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { Extension } from '@tiptap/core';\nimport { Node, ReactNodeViewRenderer } from '@tiptap/react';\nimport ExplicitConstructedResponse from '../components/respArea/ExplicitConstructedResponse';\nimport DragInTheBlank from '../components/respArea/DragInTheBlank/DragInTheBlank';\nimport InlineDropdown from '../components/respArea/InlineDropdown';\n\nconst lastIndexMap = {};\n\nconst normalizeType = (type) => String(type || '').replace(/-/g, '_');\n\nconst getAttrIndex = (node) => (node && node.attrs && node.attrs.index != null ? String(node.attrs.index) : null);\n\nconst collectNodesOfType = (doc, typeName) => {\n const results = [];\n\n doc.descendants((node, pos) => {\n if (node.type && node.type.name === typeName) {\n const index = getAttrIndex(node);\n if (index != null) results.push({ index, pos, node });\n }\n return true;\n });\n\n return results;\n};\n\nconst countNodesOfType = (doc, typeName) => {\n let count = 0;\n doc.descendants((node) => {\n if (node.type && node.type.name === typeName) count += 1;\n return true;\n });\n return count;\n};\n\nconst getDefaultNode = ({ schema, typeName, index }) => {\n const nodeType = schema.nodes[typeName];\n if (!nodeType) return null;\n\n // mirror your Slate \"getDefaultElement(opts, newIndex)\"\n // customize attrs as needed:\n return nodeType.create({\n index: String(index),\n id: String(index),\n value: '',\n });\n};\n\n// Find a good cursor position *after* an inserted node.\nconst selectionAfterPos = (doc, pos) => {\n const $pos = doc.resolve(Math.min(pos, doc.content.size));\n return TextSelection.near($pos, 1);\n};\n\nexport const ResponseAreaExtension = Extension.create({\n name: 'responseArea',\n\n addOptions() {\n return {\n maxResponseAreas: null,\n error: null,\n options: null,\n respAreaToolbar: null,\n onHandleAreaChange: null,\n };\n },\n\n addProseMirrorPlugins() {\n if (!this.options.type) {\n return [];\n }\n\n const typeName = normalizeType(this.options.type);\n const key = new PluginKey(`response-area-watcher:${typeName}`);\n\n return [\n new Plugin({\n key,\n\n view: (view) => {\n // Lazy init lastIndexMap[typeName]\n if (lastIndexMap[typeName] === undefined) {\n lastIndexMap[typeName] = 0;\n\n view.state.doc.descendants((node) => {\n if (node.type && node.type.name === typeName) {\n const idx = getAttrIndex(node);\n if (idx != null) {\n const n = parseInt(idx, 10);\n if (!Number.isNaN(n) && n > lastIndexMap[typeName]) {\n lastIndexMap[typeName] = n;\n }\n }\n }\n return true;\n });\n }\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n if (prevState.doc.eq(state.doc)) return;\n\n const currentList = collectNodesOfType(state.doc, typeName);\n const oldList = collectNodesOfType(prevState.doc, typeName);\n\n if (this.options.toolbar) {\n this.options.toolbar.disabled = currentList.length >= this.options.maxResponseAreas;\n }\n\n // Removed elements (same logic as Slate)\n if (oldList.length > currentList.length) {\n const currentIndexSet = new Set(currentList.map((x) => x.index));\n\n const removed = oldList.filter((x) => !currentIndexSet.has(x.index));\n\n if (removed.length && typeof this.options.onHandleAreaChange === 'function') {\n this.options.onHandleAreaChange(removed);\n }\n }\n },\n };\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n insertResponseArea:\n (type) =>\n ({ tr, state, dispatch, commands }) => {\n const typeName = normalizeType(type);\n\n // --- Slate: currentRespAreaList + max check ---\n const currentCount = countNodesOfType(state.doc, typeName);\n if (currentCount >= this.options.maxResponseAreas) {\n return false;\n }\n\n // --- Slate: indexing logic (kept identical) ---\n if (lastIndexMap[typeName] === undefined) lastIndexMap[typeName] = 0;\n\n const prevIndex = lastIndexMap[typeName];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n\n // Slate increments map even if newIndex === 0\n lastIndexMap[typeName] += 1;\n\n const newInline = getDefaultNode({\n schema: state.schema,\n typeName,\n index: newIndex,\n });\n\n if (!newInline) return false;\n\n // --- Insert logic ---\n const { selection } = state;\n let insertPos = selection.from;\n\n // If we're in a NodeSelection, insert before/after is ambiguous;\n // We'll insert at its \"from\" (like your current code).\n // If insertion fails, we fallback to end of doc.\n const tryInsertAt = (pos) => {\n try {\n tr.insert(pos, newInline);\n return pos;\n } catch (e) {\n return null;\n }\n };\n\n let usedPos = tryInsertAt(insertPos);\n\n // Slate branch: \"markup empty and there's no focus\"\n // ProseMirror doesn't expose \"no focus\" the same way, so the closest\n // equivalent fallback is inserting at end of document.\n if (usedPos == null) {\n usedPos = tryInsertAt(tr.doc.content.size);\n }\n if (usedPos == null) return false;\n\n // Optionally select the node you just inserted (like your original command)\n // tr.setSelection(NodeSelection.create(tr.doc, usedPos))\n\n // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---\n if (\n ['math_templated', 'inline_dropdown', 'drag_in_the_blank', 'explicit_constructed_response'].includes(\n typeName,\n )\n ) {\n tr.setSelection(NodeSelection.create(tr.doc, usedPos));\n } else {\n // Default: put cursor after inserted node\n const after = usedPos + newInline.nodeSize;\n tr.setSelection(selectionAfterPos(tr.doc, after));\n }\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n refreshResponseArea:\n () =>\n ({ tr, state, commands, dispatch }) => {\n const { selection } = state;\n const node = selection.$from.nodeAfter;\n const nodePos = selection.from;\n\n tr.setNodeMarkup(nodePos, undefined, { ...node.attrs, updated: `${Date.now()}` });\n tr.setSelection(NodeSelection.create(tr.doc, nodePos));\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n };\n },\n});\n\n/**\n * ExplicitConstructedResponse Node\n */\nexport const ExplicitConstructedResponseNode = Node.create({\n name: 'explicit_constructed_response',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"explicit_constructed_response\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'explicit_constructed_response',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ExplicitConstructedResponse {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * MathTemplated Node\n */\nexport const MathTemplatedNode = Node.create({\n name: 'math_templated',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"math_templated\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'math_templated',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer(() => <div></div>);\n },\n});\n\n/**\n * DragInTheBlank Node\n */\nexport const DragInTheBlankNode = Node.create({\n name: 'drag_in_the_blank',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n id: { default: null },\n value: { default: '' },\n inTable: { default: null },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"drag_in_the_blank\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'drag_in_the_blank',\n 'data-index': HTMLAttributes.index,\n 'data-id': HTMLAttributes.id,\n 'data-value': HTMLAttributes.value,\n 'data-in-table': HTMLAttributes.inTable,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <DragInTheBlank {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * InlineDropdown Node\n */\nexport const InlineDropdownNode = Node.create({\n name: 'inline_dropdown',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"inline_dropdown\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'inline_dropdown',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <InlineDropdown {...{ ...props, options: this.options }} />);\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"responseArea.js","names":["_react","_interopRequireDefault","require","_prosemirrorState","_core","_react2","_ExplicitConstructedResponse","_DragInTheBlank","_InlineDropdown","_MathTemplated","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","lastIndexMap","normalizeType","type","String","replace","getAttrIndex","node","attrs","index","collectNodesOfType","doc","typeName","results","descendants","pos","name","countNodesOfType","count","getDefaultNode","_ref","schema","nodeType","nodes","create","id","value","selectionAfterPos","$pos","resolve","Math","min","content","size","TextSelection","near","ResponseAreaExtension","exports","Extension","addOptions","maxResponseAreas","error","options","respAreaToolbar","onHandleAreaChange","addProseMirrorPlugins","_this","key","PluginKey","concat","Plugin","view","undefined","state","idx","n","parseInt","Number","isNaN","update","prevState","eq","currentList","oldList","toolbar","disabled","currentIndexSet","Set","map","x","removed","has","addCommands","_this2","insertResponseArea","_ref2","tr","dispatch","commands","currentCount","prevIndex","newIndex","newInline","selection","insertPos","from","tryInsertAt","insert","usedPos","includes","setSelection","NodeSelection","after","nodeSize","focus","refreshResponseArea","_ref3","$from","nodeAfter","nodePos","setNodeMarkup","updated","Date","now","ExplicitConstructedResponseNode","Node","group","inline","atom","addAttributes","parseHTML","tag","getAttrs","el","dataset","renderHTML","_ref4","HTMLAttributes","addNodeView","_this3","ReactNodeViewRenderer","props","createElement","MathTemplatedNode","_ref5","_this4","DragInTheBlankNode","inTable","_ref6","_this5","InlineDropdownNode","_ref7","_this6"],"sources":["../../src/extensions/responseArea.js"],"sourcesContent":["import React from 'react';\nimport { NodeSelection, Plugin, PluginKey, TextSelection } from 'prosemirror-state';\nimport { Extension } from '@tiptap/core';\nimport { Node, ReactNodeViewRenderer } from '@tiptap/react';\nimport ExplicitConstructedResponse from '../components/respArea/ExplicitConstructedResponse';\nimport DragInTheBlank from '../components/respArea/DragInTheBlank/DragInTheBlank';\nimport InlineDropdown from '../components/respArea/InlineDropdown';\nimport MathTemplated from '../components/respArea/MathTemplated';\n\nconst lastIndexMap = {};\n\nconst normalizeType = (type) => String(type || '').replace(/-/g, '_');\n\nconst getAttrIndex = (node) => (node && node.attrs && node.attrs.index != null ? String(node.attrs.index) : null);\n\nconst collectNodesOfType = (doc, typeName) => {\n const results = [];\n\n doc.descendants((node, pos) => {\n if (node.type && node.type.name === typeName) {\n const index = getAttrIndex(node);\n if (index != null) results.push({ index, pos, node });\n }\n return true;\n });\n\n return results;\n};\n\nconst countNodesOfType = (doc, typeName) => {\n let count = 0;\n doc.descendants((node) => {\n if (node.type && node.type.name === typeName) count += 1;\n return true;\n });\n return count;\n};\n\nconst getDefaultNode = ({ schema, typeName, index }) => {\n const nodeType = schema.nodes[typeName];\n if (!nodeType) return null;\n\n // mirror your Slate \"getDefaultElement(opts, newIndex)\"\n // customize attrs as needed:\n return nodeType.create({\n index: String(index),\n id: String(index),\n value: '',\n });\n};\n\n// Find a good cursor position *after* an inserted node.\nconst selectionAfterPos = (doc, pos) => {\n const $pos = doc.resolve(Math.min(pos, doc.content.size));\n return TextSelection.near($pos, 1);\n};\n\nexport const ResponseAreaExtension = Extension.create({\n name: 'responseArea',\n\n addOptions() {\n return {\n maxResponseAreas: null,\n error: null,\n options: null,\n respAreaToolbar: null,\n onHandleAreaChange: null,\n };\n },\n\n addProseMirrorPlugins() {\n if (!this.options.type) {\n return [];\n }\n\n const typeName = normalizeType(this.options.type);\n const key = new PluginKey(`response-area-watcher:${typeName}`);\n\n return [\n new Plugin({\n key,\n\n view: (view) => {\n // Lazy init lastIndexMap[typeName]\n if (lastIndexMap[typeName] === undefined) {\n lastIndexMap[typeName] = 0;\n\n view.state.doc.descendants((node) => {\n if (node.type && node.type.name === typeName) {\n const idx = getAttrIndex(node);\n if (idx != null) {\n const n = parseInt(idx, 10);\n if (!Number.isNaN(n) && n > lastIndexMap[typeName]) {\n lastIndexMap[typeName] = n;\n }\n }\n }\n return true;\n });\n }\n\n return {\n update: (view, prevState) => {\n const state = view.state;\n if (prevState.doc.eq(state.doc)) return;\n\n const currentList = collectNodesOfType(state.doc, typeName);\n const oldList = collectNodesOfType(prevState.doc, typeName);\n\n if (this.options.toolbar) {\n this.options.toolbar.disabled = currentList.length >= this.options.maxResponseAreas;\n }\n\n // Removed elements (same logic as Slate)\n if (oldList.length > currentList.length) {\n const currentIndexSet = new Set(currentList.map((x) => x.index));\n\n const removed = oldList.filter((x) => !currentIndexSet.has(x.index));\n\n if (removed.length && typeof this.options.onHandleAreaChange === 'function') {\n this.options.onHandleAreaChange(removed);\n }\n }\n },\n };\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n insertResponseArea:\n (type) =>\n ({ tr, state, dispatch, commands }) => {\n const typeName = normalizeType(type);\n\n // --- Slate: currentRespAreaList + max check ---\n const currentCount = countNodesOfType(state.doc, typeName);\n if (currentCount >= this.options.maxResponseAreas) {\n return false;\n }\n\n // --- Slate: indexing logic (kept identical) ---\n if (lastIndexMap[typeName] === undefined) lastIndexMap[typeName] = 0;\n\n const prevIndex = lastIndexMap[typeName];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n\n // Slate increments map even if newIndex === 0\n lastIndexMap[typeName] += 1;\n\n const newInline = getDefaultNode({\n schema: state.schema,\n typeName,\n index: newIndex,\n });\n\n if (!newInline) return false;\n\n // --- Insert logic ---\n const { selection } = state;\n let insertPos = selection.from;\n\n // If we're in a NodeSelection, insert before/after is ambiguous;\n // We'll insert at its \"from\" (like your current code).\n // If insertion fails, we fallback to end of doc.\n const tryInsertAt = (pos) => {\n try {\n tr.insert(pos, newInline);\n return pos;\n } catch (e) {\n return null;\n }\n };\n\n let usedPos = tryInsertAt(insertPos);\n\n // Slate branch: \"markup empty and there's no focus\"\n // ProseMirror doesn't expose \"no focus\" the same way, so the closest\n // equivalent fallback is inserting at end of document.\n if (usedPos == null) {\n usedPos = tryInsertAt(tr.doc.content.size);\n }\n if (usedPos == null) return false;\n\n // Optionally select the node you just inserted (like your original command)\n // tr.setSelection(NodeSelection.create(tr.doc, usedPos))\n\n // --- Cursor move behavior for certain types (Slate: moveFocusTo next text) ---\n if (['math_templated', 'inline_dropdown', 'explicit_constructed_response'].includes(typeName)) {\n tr.setSelection(NodeSelection.create(tr.doc, usedPos));\n } else {\n const after = usedPos + newInline.nodeSize;\n tr.setSelection(selectionAfterPos(tr.doc, after));\n }\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n refreshResponseArea:\n () =>\n ({ tr, state, commands, dispatch }) => {\n const { selection } = state;\n const node = selection.$from.nodeAfter;\n const nodePos = selection.from;\n\n tr.setNodeMarkup(nodePos, undefined, { ...node?.attrs, updated: `${Date.now()}` });\n tr.setSelection(NodeSelection.create(tr.doc, nodePos));\n\n if (dispatch) {\n commands.focus();\n dispatch(tr);\n }\n\n return true;\n },\n };\n },\n});\n\n/**\n * ExplicitConstructedResponse Node\n */\nexport const ExplicitConstructedResponseNode = Node.create({\n name: 'explicit_constructed_response',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"explicit_constructed_response\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'explicit_constructed_response',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ExplicitConstructedResponse {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * MathTemplated Node\n */\nexport const MathTemplatedNode = Node.create({\n name: 'math_templated',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"math_templated\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'math_templated',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MathTemplated {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * DragInTheBlank Node\n */\nexport const DragInTheBlankNode = Node.create({\n name: 'drag_in_the_blank',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n id: { default: null },\n value: { default: '' },\n inTable: { default: null },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"drag_in_the_blank\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'drag_in_the_blank',\n 'data-index': HTMLAttributes.index,\n 'data-id': HTMLAttributes.id,\n 'data-value': HTMLAttributes.value,\n 'data-in-table': HTMLAttributes.inTable,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <DragInTheBlank {...{ ...props, options: this.options }} />);\n },\n});\n\n/**\n * InlineDropdown Node\n */\nexport const InlineDropdownNode = Node.create({\n name: 'inline_dropdown',\n group: 'inline',\n inline: true,\n atom: true,\n addAttributes() {\n return {\n index: { default: null },\n value: { default: '' },\n updated: { default: '' },\n };\n },\n parseHTML() {\n return [\n {\n tag: 'span[data-type=\"inline_dropdown\"]',\n getAttrs: (el) => ({\n index: el.dataset.index,\n value: el.dataset.value,\n }),\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n 'span',\n {\n 'data-type': 'inline_dropdown',\n 'data-index': HTMLAttributes.index,\n 'data-value': HTMLAttributes.value,\n },\n ];\n },\n addNodeView() {\n return ReactNodeViewRenderer((props) => <InlineDropdown {...{ ...props, options: this.options }} />);\n },\n});\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js CHANGED
@@ -27,4 +27,4 @@ var _EditableHtml = _interopRequireWildcard(require("./components/EditableHtml")
27
27
  var _extensions = require("./extensions");
28
28
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
29
29
  var _default = exports["default"] = _EditableHtml["default"];
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRWRpdGFibGVIdG1sIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2V4dGVuc2lvbnMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIlN0eWxlZEVkaXRvciJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0eWxlZEVkaXRvciwgeyBFZGl0YWJsZUh0bWwgfSBmcm9tICcuL2NvbXBvbmVudHMvRWRpdGFibGVIdG1sJztcbmltcG9ydCB7IEFMTF9QTFVHSU5TLCBERUZBVUxUX1BMVUdJTlMgfSBmcm9tICcuL2V4dGVuc2lvbnMnO1xuXG5leHBvcnQgeyBFZGl0YWJsZUh0bWwsIEFMTF9QTFVHSU5TLCBERUZBVUxUX1BMVUdJTlMgfTtcbmV4cG9ydCBkZWZhdWx0IFN0eWxlZEVkaXRvcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGFBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUE0RCxTQUFBRCx3QkFBQUcsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUwsdUJBQUEsWUFBQUEsd0JBQUFHLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBTSxFQUFBLEVBQUFQLENBQUEsSUFBQUMsQ0FBQSxDQUFBTSxFQUFBLElBQUFkLENBQUEsQ0FBQWMsRUFBQSxXQUFBTixDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQTtBQUFBLElBQUFtQixRQUFBLEdBQUFDLE9BQUEsY0FHN0NDLHdCQUFZIiwiaWdub3JlTGlzdCI6W119
30
+ //# sourceMappingURL=index.js.map