@pie-lib/editable-html 12.1.1-next.0 → 12.1.1-next.1

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 (134) hide show
  1. package/lib/block-tags.js +0 -1
  2. package/lib/block-tags.js.map +1 -1
  3. package/lib/constants.js +0 -1
  4. package/lib/constants.js.map +1 -1
  5. package/lib/editor.js +6 -37
  6. package/lib/editor.js.map +1 -1
  7. package/lib/index.js +0 -16
  8. package/lib/index.js.map +1 -1
  9. package/lib/parse-html.js +0 -3
  10. package/lib/parse-html.js.map +1 -1
  11. package/lib/plugins/characters/custom-popper.js +0 -1
  12. package/lib/plugins/characters/custom-popper.js.map +1 -1
  13. package/lib/plugins/characters/index.js +6 -21
  14. package/lib/plugins/characters/index.js.map +1 -1
  15. package/lib/plugins/characters/utils.js +0 -2
  16. package/lib/plugins/characters/utils.js.map +1 -1
  17. package/lib/plugins/css/icons/index.js +0 -1
  18. package/lib/plugins/css/icons/index.js.map +1 -1
  19. package/lib/plugins/css/index.js +0 -12
  20. package/lib/plugins/css/index.js.map +1 -1
  21. package/lib/plugins/customPlugin/index.js +0 -11
  22. package/lib/plugins/customPlugin/index.js.map +1 -1
  23. package/lib/plugins/html/icons/index.js +0 -1
  24. package/lib/plugins/html/icons/index.js.map +1 -1
  25. package/lib/plugins/html/index.js +0 -1
  26. package/lib/plugins/html/index.js.map +1 -1
  27. package/lib/plugins/image/alt-dialog.js +0 -5
  28. package/lib/plugins/image/alt-dialog.js.map +1 -1
  29. package/lib/plugins/image/component.js +0 -14
  30. package/lib/plugins/image/component.js.map +1 -1
  31. package/lib/plugins/image/image-toolbar.js +0 -3
  32. package/lib/plugins/image/image-toolbar.js.map +1 -1
  33. package/lib/plugins/image/index.js +0 -14
  34. package/lib/plugins/image/index.js.map +1 -1
  35. package/lib/plugins/image/insert-image-handler.js +0 -1
  36. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  37. package/lib/plugins/index.js +4 -22
  38. package/lib/plugins/index.js.map +1 -1
  39. package/lib/plugins/list/index.js +0 -12
  40. package/lib/plugins/list/index.js.map +1 -1
  41. package/lib/plugins/math/index.js +3 -18
  42. package/lib/plugins/math/index.js.map +1 -1
  43. package/lib/plugins/media/index.js +0 -13
  44. package/lib/plugins/media/index.js.map +1 -1
  45. package/lib/plugins/media/media-dialog.js +0 -18
  46. package/lib/plugins/media/media-dialog.js.map +1 -1
  47. package/lib/plugins/media/media-toolbar.js +0 -2
  48. package/lib/plugins/media/media-toolbar.js.map +1 -1
  49. package/lib/plugins/media/media-wrapper.js +0 -2
  50. package/lib/plugins/media/media-wrapper.js.map +1 -1
  51. package/lib/plugins/rendering/index.js +0 -10
  52. package/lib/plugins/rendering/index.js.map +1 -1
  53. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -17
  54. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  55. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -1
  56. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  57. package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -10
  58. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -1
  59. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -1
  60. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  61. package/lib/plugins/respArea/icons/index.js +0 -10
  62. package/lib/plugins/respArea/icons/index.js.map +1 -1
  63. package/lib/plugins/respArea/index.js +2 -13
  64. package/lib/plugins/respArea/index.js.map +1 -1
  65. package/lib/plugins/respArea/inline-dropdown/index.js +0 -1
  66. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  67. package/lib/plugins/respArea/math-templated/index.js +0 -1
  68. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  69. package/lib/plugins/respArea/utils.js +0 -6
  70. package/lib/plugins/respArea/utils.js.map +1 -1
  71. package/lib/plugins/table/CustomTablePlugin.js +0 -7
  72. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  73. package/lib/plugins/table/icons/index.js +0 -2
  74. package/lib/plugins/table/icons/index.js.map +1 -1
  75. package/lib/plugins/table/index.js +0 -18
  76. package/lib/plugins/table/index.js.map +1 -1
  77. package/lib/plugins/table/table-toolbar.js +0 -15
  78. package/lib/plugins/table/table-toolbar.js.map +1 -1
  79. package/lib/plugins/textAlign/icons/index.js +0 -15
  80. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  81. package/lib/plugins/textAlign/index.js +0 -1
  82. package/lib/plugins/textAlign/index.js.map +1 -1
  83. package/lib/plugins/toolbar/default-toolbar.js +0 -14
  84. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  85. package/lib/plugins/toolbar/done-button.js +0 -1
  86. package/lib/plugins/toolbar/done-button.js.map +1 -1
  87. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -12
  88. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  89. package/lib/plugins/toolbar/index.js +0 -1
  90. package/lib/plugins/toolbar/index.js.map +1 -1
  91. package/lib/plugins/toolbar/toolbar-buttons.js +0 -12
  92. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  93. package/lib/plugins/toolbar/toolbar.js +2 -16
  94. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  95. package/lib/plugins/utils.js +0 -3
  96. package/lib/plugins/utils.js.map +1 -1
  97. package/lib/serialization.js +5 -29
  98. package/lib/serialization.js.map +1 -1
  99. package/lib/shared/alert-dialog.js +0 -1
  100. package/lib/theme.js +0 -1
  101. package/lib/theme.js.map +1 -1
  102. package/package.json +8 -8
  103. package/src/__tests__/editor-utils.test.js +1 -1
  104. package/src/editor.jsx +18 -22
  105. package/src/index.jsx +2 -2
  106. package/src/plugins/characters/index.jsx +2 -2
  107. package/src/plugins/html/icons/index.jsx +1 -3
  108. package/src/plugins/html/index.jsx +2 -10
  109. package/src/plugins/image/__tests__/component.test.jsx +1 -1
  110. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +1 -5
  111. package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -1
  112. package/src/plugins/image/__tests__/index.test.js +0 -3
  113. package/src/plugins/image/alt-dialog.jsx +4 -3
  114. package/src/plugins/index.jsx +1 -2
  115. package/src/plugins/list/__tests__/index.test.js +0 -2
  116. package/src/plugins/list/index.jsx +6 -6
  117. package/src/plugins/math/__tests__/index.test.jsx +1 -1
  118. package/src/plugins/math/index.jsx +2 -2
  119. package/src/plugins/media/media-dialog.js +6 -23
  120. package/src/plugins/media/media-toolbar.jsx +2 -8
  121. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +11 -33
  122. package/src/plugins/respArea/drag-in-the-blank/index.jsx +26 -26
  123. package/src/plugins/respArea/index.jsx +1 -1
  124. package/src/plugins/table/__tests__/index.test.jsx +5 -5
  125. package/src/plugins/table/index.jsx +1 -6
  126. package/src/plugins/table/table-toolbar.jsx +1 -1
  127. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +2 -6
  128. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +2 -2
  129. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +1 -1
  130. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +1 -1
  131. package/src/plugins/toolbar/done-button.jsx +1 -6
  132. package/src/plugins/toolbar/editor-and-toolbar.jsx +2 -7
  133. package/src/plugins/toolbar/toolbar.jsx +4 -3
  134. package/src/serialization.jsx +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_slateHotkeys","_interopRequireDefault","require","_slateDevEnvironment","_slate","_FormatBold","_FormatQuote","_FormatListBulleted","_FormatListNumbered","_Redo","_Undo","_image","_media","_characters","_FormatItalic","_math","_react","_FormatStrikethrough","_toolbar","_FormatUnderlined","_compact","_isEmpty","_slateSoftBreak","_debug","_list","_table","_respArea","_html","_css","_customPlugin","_rendering","_textAlign","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","SuperscriptIcon","createElement","xmlns","height","viewBox","width","fill","d","SubscriptIcon","HeadingIcon","style","STYLES_MAP","h3","fontSize","fontWeight","blockquote","background","borderLeft","margin","padding","MarkHotkey","options","type","key","icon","tag","name","toolbar","isMark","onToggle","change","selection","value","includes","texts","document","getTextsAtRangeAsArray","onlyOneText","hasMark","sameMark","marks","getMarksAsArray","markIsThere","find","m","shouldContinue","startKey","endKey","anchorOffset","focusOffset","textNode","getNode","moveFocusTo","moveAnchorTo","text","activeMarks","entry","removeMark","newMark","Mark","create","addMark","toggleMark","renderMark","props","mark","_ref","node","data","jsonData","toJSON","K","additionalStyles","attributes","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","exports","DEFAULT_PLUGINS","plug","ICON_MAP","undo","Undo","redo","Redo","UndoRedo","IconToUse","ariaLabel","onClick","onChange","EnterHandlingPlugin","Hotkeys","isSplitBlock","IS_IOS","isInVoid","collapseToStartOfNextText","splitBlock","range","newBlock","getClosestBlock","setNodeByKey","undefined","buildPlugins","activePlugins","customPlugins","opts","addIf","p","imagePlugin","image","onDelete","ImagePlugin","mathPlugin","MathPlugin","math","respAreaPlugin","responseArea","RespAreaPlugin","compact","cssPlugin","isEmpty","extraCSSRules","CSSPlugin","languageCharactersPlugins","languageCharacters","map","config","CharactersPlugin","keyPadCharacterRef","setKeypadInteraction","tablePlugins","concat","_toConsumableArray2","builtCustomPlugins","customPlugin","_ref2","iconType","iconAlt","isValidEventName","eventName","regex","test","console","error","CustomPlugin","TablePlugin","table","MediaPlugin","media","plugin","TextAlign","textAlign","List","ToolbarPlugin","SoftBreakPlugin","shift","HtmlPlugin","html","RenderingPlugin"],"sources":["../../src/plugins/index.jsx"],"sourcesContent":["import Hotkeys from 'slate-hotkeys';\nimport { IS_IOS } from 'slate-dev-environment';\nimport { Mark } from 'slate';\nimport Bold from '@mui/icons-material/FormatBold';\nimport FormatQuote from '@mui/icons-material/FormatQuote';\n//import Code from '@mui/icons-material/Code';\nimport BulletedListIcon from '@mui/icons-material/FormatListBulleted';\nimport NumberedListIcon from '@mui/icons-material/FormatListNumbered';\nimport Redo from '@mui/icons-material/Redo';\nimport Undo from '@mui/icons-material/Undo';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@mui/icons-material/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@mui/icons-material/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@mui/icons-material/FormatUnderlined';\nimport compact from 'lodash/compact';\nimport isEmpty from 'lodash/isEmpty';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\nimport HtmlPlugin from './html';\nimport CSSPlugin from './css';\nimport CustomPlugin from './customPlugin';\nimport RenderingPlugin from './rendering';\nimport TextAlign from './textAlign';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nconst SuperscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst SubscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst HeadingIcon = () => (\n <svg\n width=\"30\"\n height=\"28\"\n viewBox=\"0 0 30 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: '20px', height: '18px' }}\n >\n <path\n d=\"M27 4V24H29C29.5 24 30 24.5 30 25V27C30 27.5625 29.5 28 29 28H19C18.4375 28 18 27.5625 18 27V25C18 24.5 18.4375 24 19 24H21V16H9V24H11C11.5 24 12 24.5 12 25V27C12 27.5625 11.5 28 11 28H1C0.4375 28 0 27.5625 0 27V25C0 24.5 0.4375 24 1 24H3V4H1C0.4375 4 0 3.5625 0 3V1C0 0.5 0.4375 0 1 0H11C11.5 0 12 0.5 12 1V3C12 3.5625 11.5 4 11 4H9V12H21V4H19C18.4375 4 18 3.5625 18 3V1C18 0.5 18.4375 0 19 0H29C29.5 0 30 0.5 30 1V3C30 3.5625 29.5 4 29 4H27Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nconst STYLES_MAP = {\n h3: {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n blockquote: {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n};\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n name: type,\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: (change) => {\n log('[onToggleMark] type: ', type);\n const { selection } = change.value;\n\n if (['blockquote', 'h3'].includes(type)) {\n const texts = change.value.document.getTextsAtRangeAsArray(selection);\n const onlyOneText = texts.length === 1;\n let hasMark = false;\n let sameMark = true;\n\n texts.forEach((t) => {\n const marks = t.getMarksAsArray();\n const markIsThere = marks.find((m) => m.type === type);\n\n if (!markIsThere) {\n // not all texts have this mark\n sameMark = false;\n } else {\n // at least one mark\n hasMark = true;\n }\n });\n\n const shouldContinue = onlyOneText || sameMark || !hasMark;\n\n if (!shouldContinue) {\n return change;\n }\n\n if (selection.startKey === selection.endKey && selection.anchorOffset === selection.focusOffset) {\n const textNode = change.value.document.getNode(selection.startKey);\n\n // select the whole line if there is no selection\n change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length);\n\n // remove toggle\n const hasMark = change.value.activeMarks.find((entry) => {\n return entry.type === type;\n });\n\n if (hasMark) {\n change.removeMark(hasMark);\n } else {\n const newMark = Mark.create(type);\n\n change.addMark(newMark);\n }\n\n // move focus to end of text\n return change\n .moveFocusTo(textNode.key, textNode.text.length)\n .moveAnchorTo(textNode.key, textNode.text.length);\n }\n }\n\n return change.toggleMark(type);\n },\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const { data } = props.node || {};\n const jsonData = data?.toJSON() || {};\n const K = tag || type;\n const additionalStyles = STYLES_MAP[K];\n\n if (additionalStyles) {\n if (!jsonData.attributes) {\n jsonData.attributes = {};\n }\n\n jsonData.attributes.style = {\n ...jsonData.attributes.style,\n ...additionalStyles,\n };\n }\n\n return <K {...jsonData.attributes}>{props.children}</K>;\n }\n },\n onKeyDown(event, change) {\n // Check that the key pressed matches our `key` option.\n if (!event.metaKey || event.key != key) return;\n\n // Prevent the default characters from being inserted.\n event.preventDefault();\n\n // Toggle the mark `type`.\n change.toggleMark(type);\n return true;\n },\n };\n}\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nconst ICON_MAP = {\n undo: Undo,\n redo: Redo,\n};\nfunction UndoRedo(type) {\n const IconToUse = ICON_MAP[type];\n\n return {\n name: type,\n toolbar: {\n type,\n icon: <IconToUse />,\n ariaLabel: type === 'undo' ? 'Undo (revert the last action)' : 'Redo (reapply the last undone action)',\n onClick: (value, onChange) => {\n const change = value.change();\n\n onChange(change[type]());\n },\n },\n };\n}\n\nfunction EnterHandlingPlugin() {\n return {\n name: 'enterHandling',\n onKeyDown: (event, change) => {\n if (Hotkeys.isSplitBlock(event) && !IS_IOS) {\n if (change.value.isInVoid) {\n return change.collapseToStartOfNextText();\n }\n\n change.splitBlock();\n\n const range = change.value.selection;\n const newBlock = change.value.document.getClosestBlock(range.startKey);\n\n if (newBlock.type !== 'paragraph') {\n change.setNodeByKey(newBlock.key, {\n type: 'paragraph',\n });\n }\n\n return change;\n }\n\n return undefined;\n },\n };\n}\n\nexport const buildPlugins = (activePlugins, customPlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea && opts.responseArea.type && RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n const cssPlugin = !isEmpty(opts.extraCSSRules) && CSSPlugin(opts.extraCSSRules);\n\n const languageCharactersPlugins = (opts?.languageCharacters || []).map((config) =>\n CharactersPlugin({\n ...config,\n keyPadCharacterRef: opts.keyPadCharacterRef,\n setKeypadInteraction: opts.setKeypadInteraction,\n }),\n );\n\n const tablePlugins = [imagePlugin, mathPlugin, respAreaPlugin, ...languageCharactersPlugins];\n\n if (opts.responseArea && opts.responseArea.type === 'math-templated') {\n tablePlugins.push(respAreaPlugin);\n }\n\n let builtCustomPlugins = [];\n\n customPlugins.forEach((customPlugin) => {\n const { event, icon, iconType, iconAlt } = customPlugin || {};\n\n function isValidEventName(eventName) {\n // Check if eventName is a non-empty string\n if (typeof eventName !== 'string' || eventName.length === 0) {\n return false;\n }\n\n // Regular expression to match valid event names (only alphanumeric characters and underscore)\n const regex = /^[a-zA-Z0-9_]+$/;\n\n // Check if the eventName matches the regular expression\n return regex.test(eventName);\n }\n\n if (!isValidEventName(event)) {\n // eslint-disable-next-line no-console\n console.error(`The event name: ${event} is not a valid event name!`);\n return;\n }\n\n if (!icon && !iconType && !iconAlt) {\n // eslint-disable-next-line no-console\n console.error('Your custom button requires icon, iconType and iconAlt');\n return;\n }\n\n builtCustomPlugins.push(CustomPlugin('custom-plugin', customPlugin));\n });\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact(tablePlugins))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del',\n }),\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n // icon should be modifies accordingly\n addIf('superscript', MarkHotkey({ type: 'sup', icon: <SuperscriptIcon />, tag: 'sup' })),\n // icon should be modifies accordingly\n addIf('subscript', MarkHotkey({ type: 'sub', icon: <SubscriptIcon />, tag: 'sub' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align', TextAlign(opts.textAlign)),\n addIf('blockquote', MarkHotkey({ key: 'q', type: 'blockquote', icon: <FormatQuote />, tag: 'blockquote' })),\n addIf('h3', MarkHotkey({ key: 'h3', type: 'h3', icon: <HeadingIcon />, tag: 'h3' })),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n addIf('undo', UndoRedo('undo')),\n addIf('redo', UndoRedo('redo')),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n ...builtCustomPlugins,\n addIf('responseArea', respAreaPlugin),\n cssPlugin,\n addIf('html', HtmlPlugin(opts.html)),\n EnterHandlingPlugin(),\n RenderingPlugin(),\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_slateHotkeys","_interopRequireDefault","require","_slateDevEnvironment","_slate","_FormatBold","_FormatQuote","_FormatListBulleted","_FormatListNumbered","_Redo","_Undo","_image","_media","_characters","_FormatItalic","_math","_react","_FormatStrikethrough","_toolbar","_FormatUnderlined","_lodashEs","_slateSoftBreak","_debug","_list","_table","_respArea","_html","_css","_customPlugin","_rendering","_textAlign","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","SuperscriptIcon","createElement","xmlns","height","viewBox","width","fill","d","SubscriptIcon","HeadingIcon","style","STYLES_MAP","h3","fontSize","fontWeight","blockquote","background","borderLeft","margin","padding","MarkHotkey","options","type","key","icon","tag","name","toolbar","isMark","onToggle","change","selection","value","includes","texts","document","getTextsAtRangeAsArray","onlyOneText","hasMark","sameMark","marks","getMarksAsArray","markIsThere","find","m","shouldContinue","startKey","endKey","anchorOffset","focusOffset","textNode","getNode","moveFocusTo","moveAnchorTo","text","activeMarks","entry","removeMark","newMark","Mark","create","addMark","toggleMark","renderMark","props","mark","_ref","node","data","jsonData","toJSON","K","additionalStyles","attributes","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","exports","DEFAULT_PLUGINS","plug","ICON_MAP","undo","Undo","redo","Redo","UndoRedo","IconToUse","ariaLabel","onClick","onChange","EnterHandlingPlugin","Hotkeys","isSplitBlock","IS_IOS","isInVoid","collapseToStartOfNextText","splitBlock","range","newBlock","getClosestBlock","setNodeByKey","undefined","buildPlugins","activePlugins","customPlugins","opts","addIf","p","imagePlugin","image","onDelete","ImagePlugin","mathPlugin","MathPlugin","math","respAreaPlugin","responseArea","RespAreaPlugin","compact","cssPlugin","isEmpty","extraCSSRules","CSSPlugin","languageCharactersPlugins","languageCharacters","map","config","CharactersPlugin","keyPadCharacterRef","setKeypadInteraction","tablePlugins","concat","_toConsumableArray2","builtCustomPlugins","customPlugin","_ref2","iconType","iconAlt","isValidEventName","eventName","regex","test","console","error","CustomPlugin","TablePlugin","table","MediaPlugin","media","plugin","TextAlign","textAlign","List","ToolbarPlugin","SoftBreakPlugin","shift","HtmlPlugin","html","RenderingPlugin"],"sources":["../../src/plugins/index.jsx"],"sourcesContent":["import Hotkeys from 'slate-hotkeys';\nimport { IS_IOS } from 'slate-dev-environment';\nimport { Mark } from 'slate';\nimport Bold from '@mui/icons-material/FormatBold';\nimport FormatQuote from '@mui/icons-material/FormatQuote';\n//import Code from '@mui/icons-material/Code';\nimport BulletedListIcon from '@mui/icons-material/FormatListBulleted';\nimport NumberedListIcon from '@mui/icons-material/FormatListNumbered';\nimport Redo from '@mui/icons-material/Redo';\nimport Undo from '@mui/icons-material/Undo';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@mui/icons-material/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@mui/icons-material/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@mui/icons-material/FormatUnderlined';\nimport { compact, isEmpty } from 'lodash-es';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\nimport HtmlPlugin from './html';\nimport CSSPlugin from './css';\nimport CustomPlugin from './customPlugin';\nimport RenderingPlugin from './rendering';\nimport TextAlign from './textAlign';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nconst SuperscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst SubscriptIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"none\">\n <path\n d=\"M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nconst HeadingIcon = () => (\n <svg\n width=\"30\"\n height=\"28\"\n viewBox=\"0 0 30 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ width: '20px', height: '18px' }}\n >\n <path\n d=\"M27 4V24H29C29.5 24 30 24.5 30 25V27C30 27.5625 29.5 28 29 28H19C18.4375 28 18 27.5625 18 27V25C18 24.5 18.4375 24 19 24H21V16H9V24H11C11.5 24 12 24.5 12 25V27C12 27.5625 11.5 28 11 28H1C0.4375 28 0 27.5625 0 27V25C0 24.5 0.4375 24 1 24H3V4H1C0.4375 4 0 3.5625 0 3V1C0 0.5 0.4375 0 1 0H11C11.5 0 12 0.5 12 1V3C12 3.5625 11.5 4 11 4H9V12H21V4H19C18.4375 4 18 3.5625 18 3V1C18 0.5 18.4375 0 19 0H29C29.5 0 30 0.5 30 1V3C30 3.5625 29.5 4 29 4H27Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\nconst STYLES_MAP = {\n h3: {\n fontSize: 'inherit',\n fontWeight: 'inherit',\n },\n blockquote: {\n background: '#f9f9f9',\n borderLeft: '5px solid #ccc',\n margin: '1.5em 10px',\n padding: '.5em 10px',\n },\n};\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n name: type,\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: (change) => {\n log('[onToggleMark] type: ', type);\n const { selection } = change.value;\n\n if (['blockquote', 'h3'].includes(type)) {\n const texts = change.value.document.getTextsAtRangeAsArray(selection);\n const onlyOneText = texts.length === 1;\n let hasMark = false;\n let sameMark = true;\n\n texts.forEach((t) => {\n const marks = t.getMarksAsArray();\n const markIsThere = marks.find((m) => m.type === type);\n\n if (!markIsThere) {\n // not all texts have this mark\n sameMark = false;\n } else {\n // at least one mark\n hasMark = true;\n }\n });\n\n const shouldContinue = onlyOneText || sameMark || !hasMark;\n\n if (!shouldContinue) {\n return change;\n }\n\n if (selection.startKey === selection.endKey && selection.anchorOffset === selection.focusOffset) {\n const textNode = change.value.document.getNode(selection.startKey);\n\n // select the whole line if there is no selection\n change.moveFocusTo(textNode.key, 0).moveAnchorTo(textNode.key, textNode.text.length);\n\n // remove toggle\n const hasMark = change.value.activeMarks.find((entry) => {\n return entry.type === type;\n });\n\n if (hasMark) {\n change.removeMark(hasMark);\n } else {\n const newMark = Mark.create(type);\n\n change.addMark(newMark);\n }\n\n // move focus to end of text\n return change\n .moveFocusTo(textNode.key, textNode.text.length)\n .moveAnchorTo(textNode.key, textNode.text.length);\n }\n }\n\n return change.toggleMark(type);\n },\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const { data } = props.node || {};\n const jsonData = data?.toJSON() || {};\n const K = tag || type;\n const additionalStyles = STYLES_MAP[K];\n\n if (additionalStyles) {\n if (!jsonData.attributes) {\n jsonData.attributes = {};\n }\n\n jsonData.attributes.style = {\n ...jsonData.attributes.style,\n ...additionalStyles,\n };\n }\n\n return <K {...jsonData.attributes}>{props.children}</K>;\n }\n },\n onKeyDown(event, change) {\n // Check that the key pressed matches our `key` option.\n if (!event.metaKey || event.key != key) return;\n\n // Prevent the default characters from being inserted.\n event.preventDefault();\n\n // Toggle the mark `type`.\n change.toggleMark(type);\n return true;\n },\n };\n}\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'html',\n 'extraCSSRules',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'blockquote',\n 'h3',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'redo',\n 'undo',\n 'superscript',\n 'subscript',\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nconst ICON_MAP = {\n undo: Undo,\n redo: Redo,\n};\nfunction UndoRedo(type) {\n const IconToUse = ICON_MAP[type];\n\n return {\n name: type,\n toolbar: {\n type,\n icon: <IconToUse />,\n ariaLabel: type === 'undo' ? 'Undo (revert the last action)' : 'Redo (reapply the last undone action)',\n onClick: (value, onChange) => {\n const change = value.change();\n\n onChange(change[type]());\n },\n },\n };\n}\n\nfunction EnterHandlingPlugin() {\n return {\n name: 'enterHandling',\n onKeyDown: (event, change) => {\n if (Hotkeys.isSplitBlock(event) && !IS_IOS) {\n if (change.value.isInVoid) {\n return change.collapseToStartOfNextText();\n }\n\n change.splitBlock();\n\n const range = change.value.selection;\n const newBlock = change.value.document.getClosestBlock(range.startKey);\n\n if (newBlock.type !== 'paragraph') {\n change.setNodeByKey(newBlock.key, {\n type: 'paragraph',\n });\n }\n\n return change;\n }\n\n return undefined;\n },\n };\n}\n\nexport const buildPlugins = (activePlugins, customPlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea && opts.responseArea.type && RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n const cssPlugin = !isEmpty(opts.extraCSSRules) && CSSPlugin(opts.extraCSSRules);\n\n const languageCharactersPlugins = (opts?.languageCharacters || []).map((config) =>\n CharactersPlugin({\n ...config,\n keyPadCharacterRef: opts.keyPadCharacterRef,\n setKeypadInteraction: opts.setKeypadInteraction,\n }),\n );\n\n const tablePlugins = [imagePlugin, mathPlugin, respAreaPlugin, ...languageCharactersPlugins];\n\n if (opts.responseArea && opts.responseArea.type === 'math-templated') {\n tablePlugins.push(respAreaPlugin);\n }\n\n let builtCustomPlugins = [];\n\n customPlugins.forEach((customPlugin) => {\n const { event, icon, iconType, iconAlt } = customPlugin || {};\n\n function isValidEventName(eventName) {\n // Check if eventName is a non-empty string\n if (typeof eventName !== 'string' || eventName.length === 0) {\n return false;\n }\n\n // Regular expression to match valid event names (only alphanumeric characters and underscore)\n const regex = /^[a-zA-Z0-9_]+$/;\n\n // Check if the eventName matches the regular expression\n return regex.test(eventName);\n }\n\n if (!isValidEventName(event)) {\n // eslint-disable-next-line no-console\n console.error(`The event name: ${event} is not a valid event name!`);\n return;\n }\n\n if (!icon && !iconType && !iconAlt) {\n // eslint-disable-next-line no-console\n console.error('Your custom button requires icon, iconType and iconAlt');\n return;\n }\n\n builtCustomPlugins.push(CustomPlugin('custom-plugin', customPlugin));\n });\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact(tablePlugins))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del',\n }),\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n // icon should be modifies accordingly\n addIf('superscript', MarkHotkey({ type: 'sup', icon: <SuperscriptIcon />, tag: 'sup' })),\n // icon should be modifies accordingly\n addIf('subscript', MarkHotkey({ type: 'sub', icon: <SubscriptIcon />, tag: 'sub' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align', TextAlign(opts.textAlign)),\n addIf('blockquote', MarkHotkey({ key: 'q', type: 'blockquote', icon: <FormatQuote />, tag: 'blockquote' })),\n addIf('h3', MarkHotkey({ key: 'h3', type: 'h3', icon: <HeadingIcon />, tag: 'h3' })),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n addIf('undo', UndoRedo('undo')),\n addIf('redo', UndoRedo('redo')),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n ...builtCustomPlugins,\n addIf('responseArea', respAreaPlugin),\n cssPlugin,\n addIf('html', HtmlPlugin(opts.html)),\n EnterHandlingPlugin(),\n RenderingPlugin(),\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,22 +1,10 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.object.define-property.js");
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.serialization = exports["default"] = void 0;
9
- require("core-js/modules/es.array.find-index.js");
10
- require("core-js/modules/es.array.for-each.js");
11
- require("core-js/modules/es.array.from.js");
12
- require("core-js/modules/es.array.slice.js");
13
- require("core-js/modules/es.date.to-json.js");
14
- require("core-js/modules/es.function.bind.js");
15
- require("core-js/modules/es.function.name.js");
16
- require("core-js/modules/es.object.keys.js");
17
- require("core-js/modules/es.object.to-string.js");
18
- require("core-js/modules/es.string.iterator.js");
19
- require("core-js/modules/web.dom-collections.for-each.js");
20
8
  var _react = _interopRequireDefault(require("react"));
21
9
  var _slate = require("slate");
22
10
  var _immutable = _interopRequireDefault(require("immutable"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_slate","_immutable","_propTypes","_slateEditList","_options","_debug","_this","log","debug","b","type","next","childNodes","object","nodes","serialization","exports","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","createElement","createEditList","core","EditList","typeDefault","listOptions","ListOptions","schema","blocks","Object","keys","forEach","key","block","parent","types","getHighestSelectedBlocks","value","range","selection","document","startBlock","getClosestBlock","startKey","endBlock","endKey","Immutable","List","ancestor","getCommonAncestor","startPath","getPath","endPath","slice","get","changes","wrapInList","change","data","selectedBlocks","wrapBlock","Data","create","normalize","node","utils","isList","_ref","unwrapNodeByKey","wrapBlockByKey","unwrapList","opts","items","getItemsAtRange","isEmpty","item","firstItem","first","getParent","index","findIndex","moveNodeByKey","removeNodeByKey","bind","getCurrentItem","typeItem","getListForItem","isSelectionInList","_default","options","icon","renderNode","props","attributes","toolbar","isMark","ariaLabel","isActive","current","getCurrentList","onClick","onChange","inList","call","normalizeNode","undefined","response","validateNode","invalidListItems","forEachDescendant","d","size","push","withoutNormalization","textNode","wrappedBlock","toJSON","insertNodeByKey","propTypes","PropTypes","func"],"sources":["../../../src/plugins/list/index.jsx"],"sourcesContent":["import React from 'react';\nimport { Data } from 'slate';\nimport Immutable from 'immutable';\nimport PropTypes from 'prop-types';\nimport EditList from 'slate-edit-list';\nimport ListOptions from 'slate-edit-list/dist/options';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes),\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n\n if (name === 'li') {\n return b('list_item', next, el.childNodes);\n }\n\n if (name === 'ul') {\n return b('ul_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n\n if (name === 'ol') {\n return b('ol_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') return;\n\n if (object.type === 'list_item') {\n return <li>{children}</li>;\n }\n\n if (object.type === 'ul_list') {\n return <ul>{children}</ul>;\n }\n\n if (object.type === 'ol_list') {\n return <ol>{children}</ol>;\n }\n },\n};\n\nconst createEditList = () => {\n const core = EditList({\n typeDefault: 'span',\n });\n\n const listOptions = new ListOptions({\n typeDefault: 'span',\n });\n\n // fix outdated schema\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach((key) => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n return;\n }\n\n block.nodes[0] = { type: block.nodes[0].types[0] };\n });\n }\n\n /**\n * This override of the core.changes.wrapInList is needed because the version\n * of immutable that we have does not support getting the element at a specific\n * index with a square bracket (list[0]). We have to use the list.get function instead\n */\n\n /**\n * Returns the highest list of blocks that cover the current selection\n */\n const getHighestSelectedBlocks = (value) => {\n const range = value.selection;\n const document = value.document;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n return Immutable.List([startBlock]);\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n };\n\n /**\n * Wrap the blocks in the current selection in a new list. Selected\n * lists are merged together.\n */\n core.changes.wrapInList = function(change, type, data) {\n const selectedBlocks = getHighestSelectedBlocks(change.value);\n\n // Wrap in container\n change.wrapBlock({ type: type, data: Data.create(data) }, { normalize: false });\n\n // Wrap in list items\n selectedBlocks.forEach(function(node) {\n if (core.utils.isList(node)) {\n // Merge its items with the created list\n node.nodes.forEach(function(_ref) {\n const key = _ref.key;\n return change.unwrapNodeByKey(key, { normalize: false });\n });\n } else if (node.type !== 'list_item') {\n change.wrapBlockByKey(node.key, 'list_item', {\n normalize: false,\n });\n }\n });\n\n return change.normalize();\n };\n\n core.changes.unwrapList = function unwrapList(opts, change) {\n const items = core.utils.getItemsAtRange(change.value);\n\n if (items.isEmpty()) {\n return change;\n }\n\n // Unwrap the items from their list\n items.forEach((item) => change.unwrapNodeByKey(item.key, { normalize: false }));\n\n // Parent of the list of the items\n const firstItem = items.first();\n const parent = change.value.document.getParent(firstItem.key);\n\n let index = parent.nodes.findIndex((node) => node.key === firstItem.key);\n\n // Unwrap the items' children\n items.forEach((item) => {\n item.nodes.forEach((node) => {\n change.moveNodeByKey(node.key, parent.key, index, {\n normalize: false,\n });\n index += 1;\n });\n });\n\n // Finally, remove the now empty items\n items.forEach((item) => change.removeNodeByKey(item.key, { normalize: false }));\n\n return change;\n }.bind(this, listOptions);\n\n core.utils.getItemsAtRange = function(opts, value, range) {\n range = range || value.selection;\n\n if (!range.startKey) {\n return Immutable.List();\n }\n\n const { document } = value;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n const item = core.utils.getCurrentItem(value, startBlock);\n return item ? Immutable.List([item]) : Immutable.List();\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n\n if (core.utils.isList(ancestor)) {\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n } else if (ancestor.type === opts.typeItem) {\n // The ancestor is the highest list item that covers the range\n return Immutable.List([ancestor]);\n }\n // No list of items can cover the range\n return Immutable.List();\n }.bind(this, listOptions);\n\n core.utils.getListForItem = function(opts, value, item) {\n const { document } = value;\n const parent = document.getParent(item.key);\n return parent && core.utils.isList(parent) ? parent : null;\n }.bind(this, listOptions);\n\n core.utils.isSelectionInList = function(opts, value, type) {\n const items = core.utils.getItemsAtRange(value);\n return (\n !items.isEmpty() &&\n // Check the type of the list if needed\n (!type || core.utils.getListForItem(value, items.first()).get('type') === type)\n );\n }.bind(this, listOptions);\n\n return core;\n};\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n // eslint-disable-next-line react/display-name\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul_list':\n return <ul {...attributes}>{children}</ul>;\n case 'ol_list':\n return <ol {...attributes}>{children}</ol>;\n case 'list_item':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n ariaLabel: type == 'ul_list' ? 'bulleted list' : 'numbered-list',\n type,\n icon,\n isActive: (value, type) => {\n if (!core.utils.isSelectionInList(value)) {\n return false;\n }\n const current = core.utils.getCurrentList(value);\n return current ? current.type === type : false;\n },\n onClick: (value, onChange) => {\n log('[onClick]', value);\n const inList = core.utils.isSelectionInList(value);\n if (inList) {\n const change = value.change().call(core.changes.unwrapList);\n onChange(change);\n } else {\n const change = value.change().call(core.changes.wrapInList, type);\n onChange(change);\n }\n },\n };\n\n core.normalizeNode = (node) => {\n if (node.object !== 'document' && node.object !== 'block') {\n return undefined;\n }\n\n const response = core.validateNode(node);\n\n const invalidListItems = [];\n\n node.forEachDescendant((d) => {\n if (d.type === 'list_item' && d.nodes.size === 1 && d.nodes.first().object === 'text') {\n // if we have a list_item that has only a text inside, we need to add a block in it\n invalidListItems.push(d);\n }\n });\n\n if (!invalidListItems.length && !response) {\n return undefined;\n }\n\n return (change) => {\n if (response) {\n response(change);\n }\n\n if (invalidListItems.length) {\n change.withoutNormalization(() => {\n invalidListItems.forEach((node) => {\n const textNode = node.nodes.first();\n const wrappedBlock = {\n object: 'block',\n type: 'div',\n nodes: [textNode.toJSON()],\n };\n\n change.removeNodeByKey(textNode.key);\n\n change.insertNodeByKey(node.key, 0, wrappedBlock);\n });\n });\n }\n };\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n core.name = type;\n\n return core;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_slate","_immutable","_propTypes","_slateEditList","_options","_debug","_this","log","debug","b","type","next","childNodes","object","nodes","serialization","exports","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","createElement","createEditList","core","EditList","typeDefault","listOptions","ListOptions","schema","blocks","Object","keys","forEach","key","block","parent","types","getHighestSelectedBlocks","value","range","selection","document","startBlock","getClosestBlock","startKey","endBlock","endKey","Immutable","List","ancestor","getCommonAncestor","startPath","getPath","endPath","slice","get","changes","wrapInList","change","data","selectedBlocks","wrapBlock","Data","create","normalize","node","utils","isList","_ref","unwrapNodeByKey","wrapBlockByKey","unwrapList","opts","items","getItemsAtRange","isEmpty","item","firstItem","first","getParent","index","findIndex","moveNodeByKey","removeNodeByKey","bind","getCurrentItem","typeItem","getListForItem","isSelectionInList","_default","options","icon","renderNode","props","attributes","toolbar","isMark","ariaLabel","isActive","current","getCurrentList","onClick","onChange","inList","call","normalizeNode","undefined","response","validateNode","invalidListItems","forEachDescendant","d","size","push","withoutNormalization","textNode","wrappedBlock","toJSON","insertNodeByKey","propTypes","PropTypes","func"],"sources":["../../../src/plugins/list/index.jsx"],"sourcesContent":["import React from 'react';\nimport { Data } from 'slate';\nimport Immutable from 'immutable';\nimport PropTypes from 'prop-types';\nimport EditList from 'slate-edit-list';\nimport ListOptions from 'slate-edit-list/dist/options';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:list');\n\nconst b = (type, next, childNodes) => ({\n object: 'block',\n type,\n nodes: next(childNodes),\n});\n\nexport const serialization = {\n deserialize(el, next) {\n const name = el.tagName.toLowerCase();\n\n if (name === 'li') {\n return b('list_item', next, el.childNodes);\n }\n\n if (name === 'ul') {\n return b('ul_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n\n if (name === 'ol') {\n return b('ol_list', next, el.children.length ? Array.from(el.children) : el.childNodes);\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') return;\n\n if (object.type === 'list_item') {\n return <li>{children}</li>;\n }\n\n if (object.type === 'ul_list') {\n return <ul>{children}</ul>;\n }\n\n if (object.type === 'ol_list') {\n return <ol>{children}</ol>;\n }\n },\n};\n\nconst createEditList = () => {\n const core = EditList({\n typeDefault: 'span',\n });\n\n const listOptions = new ListOptions({\n typeDefault: 'span',\n });\n\n // fix outdated schema\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach((key) => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n return;\n }\n\n block.nodes[0] = { type: block.nodes[0].types[0] };\n });\n }\n\n /**\n * This override of the core.changes.wrapInList is needed because the version\n * of immutable that we have does not support getting the element at a specific\n * index with a square bracket (list[0]). We have to use the list.get function instead\n */\n\n /**\n * Returns the highest list of blocks that cover the current selection\n */\n const getHighestSelectedBlocks = (value) => {\n const range = value.selection;\n const document = value.document;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n return Immutable.List([startBlock]);\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n };\n\n /**\n * Wrap the blocks in the current selection in a new list. Selected\n * lists are merged together.\n */\n core.changes.wrapInList = function (change, type, data) {\n const selectedBlocks = getHighestSelectedBlocks(change.value);\n\n // Wrap in container\n change.wrapBlock({ type: type, data: Data.create(data) }, { normalize: false });\n\n // Wrap in list items\n selectedBlocks.forEach(function (node) {\n if (core.utils.isList(node)) {\n // Merge its items with the created list\n node.nodes.forEach(function (_ref) {\n const key = _ref.key;\n return change.unwrapNodeByKey(key, { normalize: false });\n });\n } else if (node.type !== 'list_item') {\n change.wrapBlockByKey(node.key, 'list_item', {\n normalize: false,\n });\n }\n });\n\n return change.normalize();\n };\n\n core.changes.unwrapList = function unwrapList(opts, change) {\n const items = core.utils.getItemsAtRange(change.value);\n\n if (items.isEmpty()) {\n return change;\n }\n\n // Unwrap the items from their list\n items.forEach((item) => change.unwrapNodeByKey(item.key, { normalize: false }));\n\n // Parent of the list of the items\n const firstItem = items.first();\n const parent = change.value.document.getParent(firstItem.key);\n\n let index = parent.nodes.findIndex((node) => node.key === firstItem.key);\n\n // Unwrap the items' children\n items.forEach((item) => {\n item.nodes.forEach((node) => {\n change.moveNodeByKey(node.key, parent.key, index, {\n normalize: false,\n });\n index += 1;\n });\n });\n\n // Finally, remove the now empty items\n items.forEach((item) => change.removeNodeByKey(item.key, { normalize: false }));\n\n return change;\n }.bind(this, listOptions);\n\n core.utils.getItemsAtRange = function (opts, value, range) {\n range = range || value.selection;\n\n if (!range.startKey) {\n return Immutable.List();\n }\n\n const { document } = value;\n\n const startBlock = document.getClosestBlock(range.startKey);\n const endBlock = document.getClosestBlock(range.endKey);\n\n if (startBlock === endBlock) {\n const item = core.utils.getCurrentItem(value, startBlock);\n return item ? Immutable.List([item]) : Immutable.List();\n }\n\n const ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);\n\n if (core.utils.isList(ancestor)) {\n const startPath = ancestor.getPath(startBlock.key);\n const endPath = ancestor.getPath(endBlock.key);\n\n return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);\n } else if (ancestor.type === opts.typeItem) {\n // The ancestor is the highest list item that covers the range\n return Immutable.List([ancestor]);\n }\n // No list of items can cover the range\n return Immutable.List();\n }.bind(this, listOptions);\n\n core.utils.getListForItem = function (opts, value, item) {\n const { document } = value;\n const parent = document.getParent(item.key);\n return parent && core.utils.isList(parent) ? parent : null;\n }.bind(this, listOptions);\n\n core.utils.isSelectionInList = function (opts, value, type) {\n const items = core.utils.getItemsAtRange(value);\n return (\n !items.isEmpty() &&\n // Check the type of the list if needed\n (!type || core.utils.getListForItem(value, items.first()).get('type') === type)\n );\n }.bind(this, listOptions);\n\n return core;\n};\n\nexport default (options) => {\n const { type, icon } = options;\n\n const core = createEditList();\n\n // eslint-disable-next-line react/display-name\n core.renderNode = (props) => {\n const { node, attributes, children } = props;\n\n switch (node.type) {\n case 'ul_list':\n return <ul {...attributes}>{children}</ul>;\n case 'ol_list':\n return <ol {...attributes}>{children}</ol>;\n case 'list_item':\n return <li {...attributes}>{children}</li>;\n }\n };\n\n core.toolbar = {\n isMark: false,\n ariaLabel: type == 'ul_list' ? 'bulleted list' : 'numbered-list',\n type,\n icon,\n isActive: (value, type) => {\n if (!core.utils.isSelectionInList(value)) {\n return false;\n }\n const current = core.utils.getCurrentList(value);\n return current ? current.type === type : false;\n },\n onClick: (value, onChange) => {\n log('[onClick]', value);\n const inList = core.utils.isSelectionInList(value);\n if (inList) {\n const change = value.change().call(core.changes.unwrapList);\n onChange(change);\n } else {\n const change = value.change().call(core.changes.wrapInList, type);\n onChange(change);\n }\n },\n };\n\n core.normalizeNode = (node) => {\n if (node.object !== 'document' && node.object !== 'block') {\n return undefined;\n }\n\n const response = core.validateNode(node);\n\n const invalidListItems = [];\n\n node.forEachDescendant((d) => {\n if (d.type === 'list_item' && d.nodes.size === 1 && d.nodes.first().object === 'text') {\n // if we have a list_item that has only a text inside, we need to add a block in it\n invalidListItems.push(d);\n }\n });\n\n if (!invalidListItems.length && !response) {\n return undefined;\n }\n\n return (change) => {\n if (response) {\n response(change);\n }\n\n if (invalidListItems.length) {\n change.withoutNormalization(() => {\n invalidListItems.forEach((node) => {\n const textNode = node.nodes.first();\n const wrappedBlock = {\n object: 'block',\n type: 'div',\n nodes: [textNode.toJSON()],\n };\n\n change.removeNodeByKey(textNode.key);\n\n change.insertNodeByKey(node.key, 0, wrappedBlock);\n });\n });\n }\n };\n };\n\n core.renderNode.propTypes = {\n node: PropTypes.object,\n attributes: PropTypes.object,\n children: PropTypes.func,\n };\n core.name = type;\n\n return core;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.array.filter.js");
5
- require("core-js/modules/es.array.for-each.js");
6
- require("core-js/modules/es.object.define-properties.js");
7
- require("core-js/modules/es.object.define-property.js");
8
- require("core-js/modules/es.object.get-own-property-descriptor.js");
9
- require("core-js/modules/es.object.get-own-property-descriptors.js");
10
- require("core-js/modules/es.object.keys.js");
11
- require("core-js/modules/web.dom-collections.for-each.js");
12
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
13
4
  Object.defineProperty(exports, "__esModule", {
14
5
  value: true
@@ -18,12 +9,6 @@ exports["default"] = MathPlugin;
18
9
  exports.serialization = exports.inlineMath = void 0;
19
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
20
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
- require("core-js/modules/es.array.concat.js");
22
- require("core-js/modules/es.array.map.js");
23
- require("core-js/modules/es.object.to-string.js");
24
- require("core-js/modules/es.regexp.exec.js");
25
- require("core-js/modules/es.string.replace.js");
26
- require("core-js/modules/esnext.string.replace-all.js");
27
12
  var _Functions = _interopRequireDefault(require("@mui/icons-material/Functions"));
28
13
  var _slate = require("slate");
29
14
  var _mathToolbar = require("@pie-lib/math-toolbar");
@@ -33,7 +18,7 @@ var _debug = _interopRequireDefault(require("debug"));
33
18
  var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
34
19
  var _propTypes = _interopRequireDefault(require("prop-types"));
35
20
  var _blockTags = require("../../block-tags");
36
- var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
21
+ var _lodashEs = require("lodash-es");
37
22
  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; }
38
23
  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; }
39
24
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:math');
@@ -259,7 +244,7 @@ var convertLatexToMathMl = function convertLatexToMathMl(_ref4) {
259
244
  });
260
245
 
261
246
  // if renderMath returned the exact same string that we sent, it just means that the conversion could not be done
262
- var conversionDidNotWork = (0, _isEqual["default"])(latexToConvert, mathMlFromLatex);
247
+ var conversionDidNotWork = (0, _lodashEs.isEqual)(latexToConvert, mathMlFromLatex);
263
248
  mathMlFromLatex = removeEmptyMos(mathMlFromLatex);
264
249
 
265
250
  // we convert resulted mathml to latex to check if the resulted mathMl can be converted back to latex if user wants to edit it later
@@ -271,7 +256,7 @@ var convertLatexToMathMl = function convertLatexToMathMl(_ref4) {
271
256
 
272
257
  // we check if the latex keeps his form after being converted to mathml and back to latex
273
258
  // if it does, we can safely convert it to mathml
274
- if (!(0, _isEqual["default"])(strippedL, strippedNewL)) {
259
+ if (!(0, _lodashEs.isEqual)(strippedL, strippedNewL)) {
275
260
  var correctedLatex = replaceLeftRight(latexFromMathMl);
276
261
 
277
262
  // As George requested in PD-3167, I will set the new mathML anyway, and also log differences
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Functions","_interopRequireDefault","require","_slate","_mathToolbar","_mathRendering","_react","_debug","_slatePropTypes","_propTypes","_blockTags","_isEqual","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","TEXT_NODE","generateAdditionalKeys","keyData","undefined","map","key","name","latex","write","label","CustomToolbarComp","exports","React","memo","props","node","value","onFocus","onBlur","onClick","_ref","pluginProps","_ref2","math","_ref3","keypadMode","customKeys","_ref3$controlledKeypa","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","createElement","MathToolbar","autoFocus","additionalKeys","prev","next","_prev$pluginProps","_prev$pluginProps2","_prev$pluginProps2$ma","_prev$pluginProps2$ma2","nodeNext","_next$pluginProps","_next$pluginProps2","_next$pluginProps2$ma","_next$pluginProps2$ma2","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","opts","mathMlOptions","mmlOutput","mmlEditing","toolbar","ariaLabel","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","MathPreview","html","_extends2","attributes","dangerouslySetInnerHTML","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","el","tagName","toLowerCase","arrowHandlingCase","replace","replaceLeftRight","latexInput","convertLatexToMathMl","_ref4","decoded","wrapper","removeEmptyMos","mmlFromLatex","regex","handled","latexToConvert","concat","wrapMath","mathMlFromLatex","renderMath","skipWaitForMathRenderingLib","conversionDidNotWork","isEqual","latexFromMathMl","mmlToLatex","strippedL","strippedNewL","correctedLatex","console","initialLatex","newLatex","mathML","convertMathMlToLatex","mathMl","htmlWithRemovedSpaces","replaceAll","htmlToUse","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","innerHTML","outerHTML","_unWrapMath","unWrapMath","unwrapped","wrapType","nodes","nodeType","hasLatex","hasAttribute","_unWrapMath2","serialize","_convertLatexToMathMl"],"sources":["../../../src/plugins/math/index.jsx"],"sourcesContent":["import Functions from '@mui/icons-material/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { wrapMath, unWrapMath, mmlToLatex, renderMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../block-tags';\nimport isEqual from 'lodash/isEqual';\n\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\n// eslint-disable-next-line react/display-name\nexport const CustomToolbarComp = React.memo(\n (props) => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = (latex) => {\n const update = {\n ...node.data.toObject(),\n latex,\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = (latex) => {\n const update = {\n ...node.data.toObject(),\n latex,\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: { math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {} } = {},\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n },\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nexport default function MathPlugin(opts) {\n MathPlugin.mathMlOptions = {\n mmlOutput: opts.mmlOutput,\n mmlEditing: opts.mmlEditing,\n };\n\n return {\n name: 'math',\n toolbar: {\n ariaLabel: 'Math Toolbar',\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: (node) => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp,\n },\n schema: {\n document: { match: [{ type: 'math' }] },\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial',\n };\n }\n },\n\n renderNode: (props) => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n },\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\nMathPlugin.mathMlOptions = {};\n\nMathPlugin.propTypes = {\n attributes: PropTypes.object,\n node: SlatePropTypes.node,\n};\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: '',\n },\n });\n\nconst htmlDecode = (input) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = (el) => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\n/**\n * Makes sure that strings that contain stuff like:\n * x<y are not transformed into x by the DOMParser because it thinks\n * that <y is the start of a dom element tag\n * @param input\n * @returns {*}\n */\nconst arrowHandlingCase = (input) => {\n /*\n If we have a < character followed by a letter\n we make sure to replace it with a &lt; sign instead\n */\n return input.replace(/<([a-zA-Z]*)/g, '&lt;$1');\n};\n\nfunction replaceLeftRight(latexInput) {\n // for some reason, mmlToLatex parses () incorrectly - or at least in a way that our interpreter can not use them\n // Replace '\\\\left.' and '\\\\right.' with an empty string\n return latexInput.replace(/\\\\left\\.\\s*|\\\\right\\.\\s*/g, '');\n}\n\nconst convertLatexToMathMl = ({ latex, decoded, wrapper }) => {\n const removeEmptyMos = (mmlFromLatex) => {\n // Regular expression to match <mo>&#x2061;</mo> and <mo ...>&#x2061;</mo>, which get added when using log with base\n // not sure why they get added, but they add an extra space which is not needed\n const regex = /<mo(?: [^>]*)?>&#x2061;<\\/mo>/g;\n\n // Replace all occurrences of the matched patterns\n return mmlFromLatex.replace(regex, '');\n };\n const handled = arrowHandlingCase(decoded);\n\n const latexToConvert = `<span data-latex=\"\" data-raw=\"${handled}\">${wrapMath(handled, wrapper)}</span>`;\n\n // use math rendering (MathJax) to convert latex to mathMl\n let mathMlFromLatex = renderMath(latexToConvert, {\n skipWaitForMathRenderingLib: true,\n });\n\n // if renderMath returned the exact same string that we sent, it just means that the conversion could not be done\n const conversionDidNotWork = isEqual(latexToConvert, mathMlFromLatex);\n\n mathMlFromLatex = removeEmptyMos(mathMlFromLatex);\n\n // we convert resulted mathml to latex to check if the resulted mathMl can be converted back to latex if user wants to edit it later\n const latexFromMathMl = mathMlFromLatex ? mmlToLatex(mathMlFromLatex) : '';\n\n // we need to remove all the spaces from the latex to be able to compare it\n const strippedL = latex.replace(/\\s/g, '');\n const strippedNewL = latexFromMathMl.replace(/\\s/g, '');\n\n // we check if the latex keeps his form after being converted to mathml and back to latex\n // if it does, we can safely convert it to mathml\n if (!isEqual(strippedL, strippedNewL)) {\n const correctedLatex = replaceLeftRight(latexFromMathMl);\n\n // As George requested in PD-3167, I will set the new mathML anyway, and also log differences\n // if it doesn't, we keep the latex version\n // eslint-disable-next-line no-console\n console.log('This latex can not be safely converted to mathml so we will keep the latex version!!!', {\n initialLatex: latex,\n newLatex: latexFromMathMl,\n correctedLatex,\n mathML: mathMlFromLatex,\n conversionDidNotWork,\n });\n }\n\n return { mathMlFromLatex, conversionDidNotWork };\n};\n\nconst convertMathMlToLatex = (mathMl) => {\n const htmlWithRemovedSpaces = mathMl.replaceAll('&nbsp;', ' ');\n const htmlToUse = mmlToLatex(htmlWithRemovedSpaces);\n const latex = htmlDecode(htmlToUse);\n\n // todo fix this in mathml-to-latex\n return replaceLeftRight(latex);\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild = BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const mathMl = hasMathChild ? el.innerHTML : el.outerHTML;\n\n if (MathPlugin.mathMlOptions.mmlEditing) {\n const { unwrapped, wrapType } = unWrapMath(convertMathMlToLatex(mathMl));\n\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType,\n },\n };\n }\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: mathMl,\n },\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType,\n },\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const latex = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n const decoded = htmlDecode(arrowHandlingCase(latex));\n\n log('[serialize] latex: ', latex);\n\n if (MathPlugin.mathMlOptions.mmlOutput) {\n const { mathMlFromLatex, conversionDidNotWork } = convertLatexToMathMl({ latex, decoded, wrapper });\n\n if (conversionDidNotWork) {\n // this means we could not convert latex to mathMl, so just return the latex version,\n // same as we would do if mmlOutput would not be enabled\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: mathMlFromLatex }} />;\n }\n\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_Functions","_interopRequireDefault","require","_slate","_mathToolbar","_mathRendering","_react","_debug","_slatePropTypes","_propTypes","_blockTags","_lodashEs","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","TEXT_NODE","generateAdditionalKeys","keyData","undefined","map","key","name","latex","write","label","CustomToolbarComp","exports","React","memo","props","node","value","onFocus","onBlur","onClick","_ref","pluginProps","_ref2","math","_ref3","keypadMode","customKeys","_ref3$controlledKeypa","controlledKeypadMode","onDone","update","data","toObject","change","setNodeByKey","nextText","document","getNextText","moveFocusTo","moveAnchorTo","onToolbarDone","onChange","onDataChange","get","createElement","MathToolbar","autoFocus","additionalKeys","prev","next","_prev$pluginProps","_prev$pluginProps2","_prev$pluginProps2$ma","_prev$pluginProps2$ma2","nodeNext","_next$pluginProps","_next$pluginProps2","_next$pluginProps2$ma","_next$pluginProps2$ma2","keypadModeNext","controlledKeypadModeNext","keypadModeChanged","controlledKeypadModeChanged","equal","equals","propTypes","SlatePropTypes","isRequired","PropTypes","func","MathPlugin","opts","mathMlOptions","mmlOutput","mmlEditing","toolbar","ariaLabel","icon","inlineMath","insertInline","supports","object","type","schema","match","pluginStyles","parentNode","p","position","top","renderNode","MathPreview","html","_extends2","attributes","dangerouslySetInnerHTML","__html","ROUND_BRACKETS","SQUARE_BRACKETS","DOLLAR","DOUBLE_DOLLAR","Inline","create","isVoid","htmlDecode","input","doc","DOMParser","parseFromString","documentElement","textContent","getTagName","el","tagName","toLowerCase","arrowHandlingCase","replace","replaceLeftRight","latexInput","convertLatexToMathMl","_ref4","decoded","wrapper","removeEmptyMos","mmlFromLatex","regex","handled","latexToConvert","concat","wrapMath","mathMlFromLatex","renderMath","skipWaitForMathRenderingLib","conversionDidNotWork","isEqual","latexFromMathMl","mmlToLatex","strippedL","strippedNewL","correctedLatex","console","initialLatex","newLatex","mathML","convertMathMlToLatex","mathMl","htmlWithRemovedSpaces","replaceAll","htmlToUse","serialization","deserialize","hasMathChild","BLOCK_TAGS","childNodes","firstChild","dataset","innerHTML","outerHTML","_unWrapMath","unWrapMath","unwrapped","wrapType","nodes","nodeType","hasLatex","hasAttribute","_unWrapMath2","serialize","_convertLatexToMathMl"],"sources":["../../../src/plugins/math/index.jsx"],"sourcesContent":["import Functions from '@mui/icons-material/Functions';\nimport { Inline } from 'slate';\nimport { MathPreview, MathToolbar } from '@pie-lib/math-toolbar';\nimport { mmlToLatex, renderMath, unWrapMath, wrapMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport PropTypes from 'prop-types';\n\nimport { BLOCK_TAGS } from '../../block-tags';\nimport { isEqual } from 'lodash-es';\n\nconst log = debug('@pie-lib:editable-html:plugins:math');\n\nconst TEXT_NODE = 3;\n\nfunction generateAdditionalKeys(keyData = []) {\n return keyData.map((key) => ({\n name: key,\n latex: key,\n write: key,\n label: key,\n }));\n}\n\n// eslint-disable-next-line react/display-name\nexport const CustomToolbarComp = React.memo(\n (props) => {\n const { node, value, onFocus, onBlur, onClick } = props;\n const { pluginProps } = props || {};\n const { math } = pluginProps || {};\n const { keypadMode, customKeys, controlledKeypadMode = true } = math || {};\n\n const onDone = (latex) => {\n const update = {\n ...node.data.toObject(),\n latex,\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n props.onToolbarDone(change, false);\n };\n\n const onChange = (latex) => {\n const update = {\n ...node.data.toObject(),\n latex,\n };\n const change = value.change().setNodeByKey(node.key, { data: update });\n log('call onToolbarChange:', change);\n props.onDataChange(node.key, update);\n };\n\n const latex = node.data.get('latex');\n\n return (\n <MathToolbar\n autoFocus\n additionalKeys={generateAdditionalKeys(customKeys)}\n latex={latex}\n onChange={onChange}\n onDone={onDone}\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClick}\n keypadMode={keypadMode}\n controlledKeypadMode={controlledKeypadMode}\n />\n );\n },\n (prev, next) => {\n const { node, pluginProps: { math: { keypadMode, controlledKeypadMode } = {} } = {} } = prev;\n const {\n node: nodeNext,\n pluginProps: { math: { keypadMode: keypadModeNext, controlledKeypadMode: controlledKeypadModeNext } = {} } = {},\n } = next;\n const keypadModeChanged = keypadMode !== keypadModeNext;\n const controlledKeypadModeChanged = controlledKeypadMode !== controlledKeypadModeNext;\n\n const equal = node.equals(nodeNext);\n return equal && !keypadModeChanged && !controlledKeypadModeChanged;\n },\n);\n\nCustomToolbarComp.propTypes = {\n node: SlatePropTypes.node.isRequired,\n value: SlatePropTypes.value,\n onToolbarDone: PropTypes.func,\n onDataChange: PropTypes.func,\n onFocus: PropTypes.func,\n onClick: PropTypes.func,\n onBlur: PropTypes.func,\n};\n\nexport default function MathPlugin(opts) {\n MathPlugin.mathMlOptions = {\n mmlOutput: opts.mmlOutput,\n mmlEditing: opts.mmlEditing,\n };\n\n return {\n name: 'math',\n toolbar: {\n ariaLabel: 'Math Toolbar',\n icon: <Functions />,\n onClick: (value, onChange) => {\n log('[insertMath]');\n const math = inlineMath();\n const change = value.change().insertInline(math);\n onChange(change);\n },\n supports: (node) => node && node.object === 'inline' && node.type === 'math',\n /**\n * Return a react component function\n * @param node {Slate.Node}\n * @param value {Slate.Value}\n * @param onDone {(change?: Slate.Change, finishEditing :boolea) => void} - a function to call once the toolbar\n * has made any changes, call with the node.key and a data object.\n */\n CustomToolbarComp,\n },\n schema: {\n document: { match: [{ type: 'math' }] },\n },\n\n pluginStyles: (node, parentNode, p) => {\n if (p) {\n return {\n position: 'absolute',\n top: 'initial',\n };\n }\n },\n\n renderNode: (props) => {\n if (props.node.type === 'math') {\n log('[renderNode]: data:', props.node.data);\n return <MathPreview {...props} />;\n }\n\n /**\n * Here for rendering mathml content\n */\n if (props.node.type === 'mathml') {\n const html = props.node.data.get('html');\n\n return <span {...props.attributes} dangerouslySetInnerHTML={{ __html: html }} />;\n }\n },\n };\n}\n\nMathPlugin.ROUND_BRACKETS = 'round_brackets';\nMathPlugin.SQUARE_BRACKETS = 'square_brackets';\nMathPlugin.DOLLAR = 'dollar';\nMathPlugin.DOUBLE_DOLLAR = 'double_dollar';\nMathPlugin.mathMlOptions = {};\n\nMathPlugin.propTypes = {\n attributes: PropTypes.object,\n node: SlatePropTypes.node,\n};\n\nexport const inlineMath = () =>\n Inline.create({\n object: 'inline',\n type: 'math',\n isVoid: true,\n data: {\n latex: '',\n },\n });\n\nconst htmlDecode = (input) => {\n const doc = new DOMParser().parseFromString(input, 'text/html');\n\n return doc.documentElement.textContent;\n};\n\nconst getTagName = (el) => {\n return ((el && el.tagName) || '').toLowerCase();\n};\n\n/**\n * Makes sure that strings that contain stuff like:\n * x<y are not transformed into x by the DOMParser because it thinks\n * that <y is the start of a dom element tag\n * @param input\n * @returns {*}\n */\nconst arrowHandlingCase = (input) => {\n /*\n If we have a < character followed by a letter\n we make sure to replace it with a &lt; sign instead\n */\n return input.replace(/<([a-zA-Z]*)/g, '&lt;$1');\n};\n\nfunction replaceLeftRight(latexInput) {\n // for some reason, mmlToLatex parses () incorrectly - or at least in a way that our interpreter can not use them\n // Replace '\\\\left.' and '\\\\right.' with an empty string\n return latexInput.replace(/\\\\left\\.\\s*|\\\\right\\.\\s*/g, '');\n}\n\nconst convertLatexToMathMl = ({ latex, decoded, wrapper }) => {\n const removeEmptyMos = (mmlFromLatex) => {\n // Regular expression to match <mo>&#x2061;</mo> and <mo ...>&#x2061;</mo>, which get added when using log with base\n // not sure why they get added, but they add an extra space which is not needed\n const regex = /<mo(?: [^>]*)?>&#x2061;<\\/mo>/g;\n\n // Replace all occurrences of the matched patterns\n return mmlFromLatex.replace(regex, '');\n };\n const handled = arrowHandlingCase(decoded);\n\n const latexToConvert = `<span data-latex=\"\" data-raw=\"${handled}\">${wrapMath(handled, wrapper)}</span>`;\n\n // use math rendering (MathJax) to convert latex to mathMl\n let mathMlFromLatex = renderMath(latexToConvert, {\n skipWaitForMathRenderingLib: true,\n });\n\n // if renderMath returned the exact same string that we sent, it just means that the conversion could not be done\n const conversionDidNotWork = isEqual(latexToConvert, mathMlFromLatex);\n\n mathMlFromLatex = removeEmptyMos(mathMlFromLatex);\n\n // we convert resulted mathml to latex to check if the resulted mathMl can be converted back to latex if user wants to edit it later\n const latexFromMathMl = mathMlFromLatex ? mmlToLatex(mathMlFromLatex) : '';\n\n // we need to remove all the spaces from the latex to be able to compare it\n const strippedL = latex.replace(/\\s/g, '');\n const strippedNewL = latexFromMathMl.replace(/\\s/g, '');\n\n // we check if the latex keeps his form after being converted to mathml and back to latex\n // if it does, we can safely convert it to mathml\n if (!isEqual(strippedL, strippedNewL)) {\n const correctedLatex = replaceLeftRight(latexFromMathMl);\n\n // As George requested in PD-3167, I will set the new mathML anyway, and also log differences\n // if it doesn't, we keep the latex version\n // eslint-disable-next-line no-console\n console.log('This latex can not be safely converted to mathml so we will keep the latex version!!!', {\n initialLatex: latex,\n newLatex: latexFromMathMl,\n correctedLatex,\n mathML: mathMlFromLatex,\n conversionDidNotWork,\n });\n }\n\n return { mathMlFromLatex, conversionDidNotWork };\n};\n\nconst convertMathMlToLatex = (mathMl) => {\n const htmlWithRemovedSpaces = mathMl.replaceAll('&nbsp;', ' ');\n const htmlToUse = mmlToLatex(htmlWithRemovedSpaces);\n const latex = htmlDecode(htmlToUse);\n\n // todo fix this in mathml-to-latex\n return replaceLeftRight(latex);\n};\n\nexport const serialization = {\n deserialize(el) {\n const tagName = getTagName(el);\n /**\n * This is used for when there's a wrapper over the mathml element.\n * Because of this slate rule: \"Only allow block nodes or inline and text nodes in blocks.\"\n * The element that contains only the mathml is removed (along with the math) because it has\n * an inline child and the block is of type block\n * This is for legacy content only since our math rendering is valid for the core slate rules\n */\n const hasMathChild = BLOCK_TAGS[tagName] && el.childNodes.length === 1 && getTagName(el.firstChild) === 'math';\n log('[deserialize] name: ', tagName);\n\n /**\n * This is here in order to be able to render mathml content\n */\n if (tagName === 'math' || (el.dataset && el.dataset.type === 'mathml') || hasMathChild) {\n const mathMl = hasMathChild ? el.innerHTML : el.outerHTML;\n\n if (MathPlugin.mathMlOptions.mmlEditing) {\n const { unwrapped, wrapType } = unWrapMath(convertMathMlToLatex(mathMl));\n\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType,\n },\n };\n }\n\n return {\n object: 'inline',\n isVoid: true,\n type: 'mathml',\n data: {\n html: mathMl,\n },\n };\n }\n\n if (el.nodeType === TEXT_NODE) {\n return;\n }\n\n if (tagName !== 'span') {\n return;\n }\n\n const hasLatex = el.hasAttribute('data-latex') || el.hasAttribute('latex');\n\n if (hasLatex) {\n const latex = htmlDecode(el.innerHTML);\n const { unwrapped, wrapType } = unWrapMath(latex);\n log('[deserialize]: noBrackets: ', unwrapped, wrapType);\n return {\n object: 'inline',\n type: 'math',\n isVoid: true,\n nodes: [],\n data: {\n latex: unwrapped,\n wrapper: wrapType,\n },\n };\n }\n },\n serialize(object) {\n if (object.type === 'math') {\n const latex = object.data.get('latex');\n const wrapper = object.data.get('wrapper');\n const decoded = htmlDecode(arrowHandlingCase(latex));\n\n log('[serialize] latex: ', latex);\n\n if (MathPlugin.mathMlOptions.mmlOutput) {\n const { mathMlFromLatex, conversionDidNotWork } = convertLatexToMathMl({ latex, decoded, wrapper });\n\n if (conversionDidNotWork) {\n // this means we could not convert latex to mathMl, so just return the latex version,\n // same as we would do if mmlOutput would not be enabled\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: mathMlFromLatex }} />;\n }\n\n return (\n <span data-latex=\"\" data-raw={decoded}>\n {wrapMath(decoded, wrapper)}\n </span>\n );\n }\n\n /**\n * Here for rendering mathml content\n */\n if (object.type === 'mathml') {\n const html = object.data.get('html');\n\n return <span data-type=\"mathml\" dangerouslySetInnerHTML={{ __html: html }} />;\n }\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.array.filter.js");
5
- require("core-js/modules/es.object.define-properties.js");
6
- require("core-js/modules/es.object.define-property.js");
7
- require("core-js/modules/es.object.get-own-property-descriptor.js");
8
- require("core-js/modules/es.object.get-own-property-descriptors.js");
9
- require("core-js/modules/es.object.keys.js");
10
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
11
4
  Object.defineProperty(exports, "__esModule", {
12
5
  value: true
@@ -16,12 +9,6 @@ exports.serialization = exports.insertDialog = void 0;
16
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
18
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
- require("core-js/modules/es.array.for-each.js");
20
- require("core-js/modules/es.array.index-of.js");
21
- require("core-js/modules/es.date.to-json.js");
22
- require("core-js/modules/es.object.to-string.js");
23
- require("core-js/modules/es.parse-int.js");
24
- require("core-js/modules/web.dom-collections.for-each.js");
25
12
  var _react = _interopRequireDefault(require("react"));
26
13
  var _client = require("react-dom/client");
27
14
  var _slate = require("slate");