@pie-lib/editable-html 11.18.6-esmbeta.0 → 11.19.0-mui-update.0

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 (136) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/lib/block-tags.js +2 -3
  3. package/lib/block-tags.js.map +1 -1
  4. package/lib/constants.js +3 -6
  5. package/lib/constants.js.map +1 -1
  6. package/lib/editor.js +302 -450
  7. package/lib/editor.js.map +1 -1
  8. package/lib/index.js +19 -77
  9. package/lib/index.js.map +1 -1
  10. package/lib/parse-html.js +7 -7
  11. package/lib/parse-html.js.map +1 -1
  12. package/lib/plugins/characters/custom-popper.js +24 -44
  13. package/lib/plugins/characters/custom-popper.js.map +1 -1
  14. package/lib/plugins/characters/index.js +9 -60
  15. package/lib/plugins/characters/index.js.map +1 -1
  16. package/lib/plugins/characters/utils.js +3 -6
  17. package/lib/plugins/characters/utils.js.map +1 -1
  18. package/lib/plugins/css/icons/index.js +13 -25
  19. package/lib/plugins/css/icons/index.js.map +1 -1
  20. package/lib/plugins/css/index.js +22 -88
  21. package/lib/plugins/css/index.js.map +1 -1
  22. package/lib/plugins/customPlugin/index.js +10 -26
  23. package/lib/plugins/customPlugin/index.js.map +1 -1
  24. package/lib/plugins/html/icons/index.js +14 -26
  25. package/lib/plugins/html/icons/index.js.map +1 -1
  26. package/lib/plugins/html/index.js +4 -13
  27. package/lib/plugins/html/index.js.map +1 -1
  28. package/lib/plugins/image/alt-dialog.js +20 -49
  29. package/lib/plugins/image/alt-dialog.js.map +1 -1
  30. package/lib/plugins/image/component.js +119 -190
  31. package/lib/plugins/image/component.js.map +1 -1
  32. package/lib/plugins/image/image-toolbar.js +44 -86
  33. package/lib/plugins/image/image-toolbar.js.map +1 -1
  34. package/lib/plugins/image/index.js +6 -46
  35. package/lib/plugins/image/index.js.map +1 -1
  36. package/lib/plugins/image/insert-image-handler.js +10 -31
  37. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  38. package/lib/plugins/index.js +44 -106
  39. package/lib/plugins/index.js.map +1 -1
  40. package/lib/plugins/list/index.js +27 -73
  41. package/lib/plugins/list/index.js.map +1 -1
  42. package/lib/plugins/math/index.js +64 -116
  43. package/lib/plugins/math/index.js.map +1 -1
  44. package/lib/plugins/media/index.js +23 -81
  45. package/lib/plugins/media/index.js.map +1 -1
  46. package/lib/plugins/media/media-dialog.js +192 -307
  47. package/lib/plugins/media/media-dialog.js.map +1 -1
  48. package/lib/plugins/media/media-toolbar.js +40 -65
  49. package/lib/plugins/media/media-toolbar.js.map +1 -1
  50. package/lib/plugins/media/media-wrapper.js +20 -49
  51. package/lib/plugins/media/media-wrapper.js.map +1 -1
  52. package/lib/plugins/rendering/index.js +5 -15
  53. package/lib/plugins/rendering/index.js.map +1 -1
  54. package/lib/plugins/respArea/drag-in-the-blank/choice.js +175 -249
  55. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  56. package/lib/plugins/respArea/drag-in-the-blank/index.js +39 -29
  57. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  58. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -10
  59. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  60. package/lib/plugins/respArea/icons/index.js +22 -45
  61. package/lib/plugins/respArea/icons/index.js.map +1 -1
  62. package/lib/plugins/respArea/index.js +5 -59
  63. package/lib/plugins/respArea/index.js.map +1 -1
  64. package/lib/plugins/respArea/inline-dropdown/index.js +2 -10
  65. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  66. package/lib/plugins/respArea/math-templated/index.js +92 -109
  67. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  68. package/lib/plugins/respArea/utils.js +8 -40
  69. package/lib/plugins/respArea/utils.js.map +1 -1
  70. package/lib/plugins/table/CustomTablePlugin.js +24 -41
  71. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  72. package/lib/plugins/table/icons/index.js +19 -35
  73. package/lib/plugins/table/icons/index.js.map +1 -1
  74. package/lib/plugins/table/index.js +41 -118
  75. package/lib/plugins/table/index.js.map +1 -1
  76. package/lib/plugins/table/table-toolbar.js +37 -87
  77. package/lib/plugins/table/table-toolbar.js.map +1 -1
  78. package/lib/plugins/textAlign/icons/index.js +18 -64
  79. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  80. package/lib/plugins/textAlign/index.js +1 -6
  81. package/lib/plugins/textAlign/index.js.map +1 -1
  82. package/lib/plugins/toolbar/default-toolbar.js +30 -79
  83. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  84. package/lib/plugins/toolbar/done-button.js +16 -34
  85. package/lib/plugins/toolbar/done-button.js.map +1 -1
  86. package/lib/plugins/toolbar/editor-and-toolbar.js +174 -201
  87. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  88. package/lib/plugins/toolbar/index.js +0 -5
  89. package/lib/plugins/toolbar/index.js.map +1 -1
  90. package/lib/plugins/toolbar/toolbar-buttons.js +57 -107
  91. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  92. package/lib/plugins/toolbar/toolbar.js +95 -161
  93. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  94. package/lib/plugins/utils.js +5 -25
  95. package/lib/plugins/utils.js.map +1 -1
  96. package/lib/serialization.js +44 -150
  97. package/lib/serialization.js.map +1 -1
  98. package/lib/shared/alert-dialog.js +23 -42
  99. package/lib/theme.js +1 -2
  100. package/lib/theme.js.map +1 -1
  101. package/package.json +15 -21
  102. package/src/__tests__/utils.js +1 -1
  103. package/src/editor.jsx +110 -108
  104. package/src/plugins/characters/custom-popper.js +20 -25
  105. package/src/plugins/css/icons/index.jsx +11 -13
  106. package/src/plugins/css/index.jsx +3 -5
  107. package/src/plugins/html/icons/index.jsx +12 -14
  108. package/src/plugins/image/alt-dialog.jsx +9 -8
  109. package/src/plugins/image/component.jsx +67 -87
  110. package/src/plugins/image/image-toolbar.jsx +26 -26
  111. package/src/plugins/image/index.jsx +1 -1
  112. package/src/plugins/index.jsx +10 -10
  113. package/src/plugins/math/index.jsx +1 -1
  114. package/src/plugins/media/index.jsx +2 -2
  115. package/src/plugins/media/media-dialog.js +65 -76
  116. package/src/plugins/media/media-toolbar.jsx +32 -33
  117. package/src/plugins/media/media-wrapper.jsx +10 -13
  118. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +193 -180
  119. package/src/plugins/respArea/drag-in-the-blank/index.jsx +58 -22
  120. package/src/plugins/respArea/icons/index.jsx +16 -16
  121. package/src/plugins/respArea/math-templated/index.jsx +88 -89
  122. package/src/plugins/respArea/utils.jsx +1 -1
  123. package/src/plugins/table/icons/index.jsx +14 -16
  124. package/src/plugins/table/index.jsx +27 -19
  125. package/src/plugins/table/table-toolbar.jsx +17 -19
  126. package/src/plugins/textAlign/icons/index.jsx +3 -3
  127. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +1 -1
  128. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +1 -1
  129. package/src/plugins/toolbar/default-toolbar.jsx +18 -21
  130. package/src/plugins/toolbar/done-button.jsx +16 -22
  131. package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -157
  132. package/src/plugins/toolbar/toolbar-buttons.jsx +29 -46
  133. package/src/plugins/toolbar/toolbar.jsx +60 -78
  134. package/esm/index.js +0 -111560
  135. package/esm/index.js.map +0 -1
  136. package/esm/package.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/index.jsx"],"names":["log","SuperscriptIcon","SubscriptIcon","HeadingIcon","width","height","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","length","hasMark","sameMark","forEach","t","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","node","data","jsonData","toJSON","K","additionalStyles","attributes","style","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","DEFAULT_PLUGINS","filter","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","mathPlugin","math","respAreaPlugin","responseArea","cssPlugin","extraCSSRules","languageCharactersPlugins","languageCharacters","map","config","keyPadCharacterRef","setKeypadInteraction","tablePlugins","push","builtCustomPlugins","customPlugin","iconType","iconAlt","isValidEventName","eventName","regex","test","console","error","table","media","plugin","textAlign","shift","html"],"mappings":"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","sourcesContent":["import Hotkeys from 'slate-hotkeys';\nimport { IS_IOS } from 'slate-dev-environment';\nimport { Mark } from 'slate';\nimport Bold from '@material-ui/icons/FormatBold';\nimport FormatQuote from '@material-ui/icons/FormatQuote';\n//import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport Redo from '@material-ui/icons/Redo';\nimport Undo from '@material-ui/icons/Undo';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@material-ui/icons/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@material-ui/icons/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@material-ui/icons/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 console.error(`The event name: ${event} is not a valid event name!`);\n return;\n }\n\n if (!icon && !iconType && !iconAlt) {\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"],"file":"index.js"}
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 console.error(`The event name: ${event} is not a valid event name!`);\n return;\n }\n\n if (!icon && !iconType && !iconAlt) {\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,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.serialization = exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var _slate = require("slate");
13
-
14
10
  var _immutable = _interopRequireDefault(require("immutable"));
15
-
16
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
-
18
12
  var _slateEditList = _interopRequireDefault(require("slate-edit-list"));
19
-
20
13
  var _options = _interopRequireDefault(require("slate-edit-list/dist/options"));
21
-
22
14
  var _debug = _interopRequireDefault(require("debug"));
23
-
24
15
  var _this = void 0;
25
-
26
16
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:list');
27
-
28
17
  var b = function b(type, next, childNodes) {
29
18
  return {
30
19
  object: 'block',
@@ -32,62 +21,53 @@ var b = function b(type, next, childNodes) {
32
21
  nodes: next(childNodes)
33
22
  };
34
23
  };
35
-
36
- var serialization = {
24
+ var serialization = exports.serialization = {
37
25
  deserialize: function deserialize(el, next) {
38
26
  var name = el.tagName.toLowerCase();
39
-
40
27
  if (name === 'li') {
41
28
  return b('list_item', next, el.childNodes);
42
29
  }
43
-
44
30
  if (name === 'ul') {
45
31
  return b('ul_list', next, el.children.length ? Array.from(el.children) : el.childNodes);
46
32
  }
47
-
48
33
  if (name === 'ol') {
49
34
  return b('ol_list', next, el.children.length ? Array.from(el.children) : el.childNodes);
50
35
  }
51
36
  },
52
37
  serialize: function serialize(object, children) {
53
38
  if (object.object !== 'block') return;
54
-
55
39
  if (object.type === 'list_item') {
56
40
  return /*#__PURE__*/_react["default"].createElement("li", null, children);
57
41
  }
58
-
59
42
  if (object.type === 'ul_list') {
60
43
  return /*#__PURE__*/_react["default"].createElement("ul", null, children);
61
44
  }
62
-
63
45
  if (object.type === 'ol_list') {
64
46
  return /*#__PURE__*/_react["default"].createElement("ol", null, children);
65
47
  }
66
48
  }
67
49
  };
68
- exports.serialization = serialization;
69
-
70
50
  var createEditList = function createEditList() {
71
51
  var core = (0, _slateEditList["default"])({
72
52
  typeDefault: 'span'
73
53
  });
74
54
  var listOptions = new _options["default"]({
75
55
  typeDefault: 'span'
76
- }); // fix outdated schema
56
+ });
77
57
 
58
+ // fix outdated schema
78
59
  if (core.schema && core.schema.blocks) {
79
60
  Object.keys(core.schema.blocks).forEach(function (key) {
80
61
  var block = core.schema.blocks[key];
81
-
82
62
  if (block.parent) {
83
63
  return;
84
64
  }
85
-
86
65
  block.nodes[0] = {
87
66
  type: block.nodes[0].types[0]
88
67
  };
89
68
  });
90
69
  }
70
+
91
71
  /**
92
72
  * This override of the core.changes.wrapInList is needed because the version
93
73
  * of immutable that we have does not support getting the element at a specific
@@ -97,39 +77,36 @@ var createEditList = function createEditList() {
97
77
  /**
98
78
  * Returns the highest list of blocks that cover the current selection
99
79
  */
100
-
101
-
102
80
  var getHighestSelectedBlocks = function getHighestSelectedBlocks(value) {
103
81
  var range = value.selection;
104
82
  var document = value.document;
105
83
  var startBlock = document.getClosestBlock(range.startKey);
106
84
  var endBlock = document.getClosestBlock(range.endKey);
107
-
108
85
  if (startBlock === endBlock) {
109
86
  return _immutable["default"].List([startBlock]);
110
87
  }
111
-
112
88
  var ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);
113
89
  var startPath = ancestor.getPath(startBlock.key);
114
90
  var endPath = ancestor.getPath(endBlock.key);
115
91
  return ancestor.nodes.slice(startPath.get(0), endPath.get(0) + 1);
116
92
  };
93
+
117
94
  /**
118
95
  * Wrap the blocks in the current selection in a new list. Selected
119
96
  * lists are merged together.
120
97
  */
121
-
122
-
123
98
  core.changes.wrapInList = function (change, type, data) {
124
- var selectedBlocks = getHighestSelectedBlocks(change.value); // Wrap in container
99
+ var selectedBlocks = getHighestSelectedBlocks(change.value);
125
100
 
101
+ // Wrap in container
126
102
  change.wrapBlock({
127
103
  type: type,
128
104
  data: _slate.Data.create(data)
129
105
  }, {
130
106
  normalize: false
131
- }); // Wrap in list items
107
+ });
132
108
 
109
+ // Wrap in list items
133
110
  selectedBlocks.forEach(function (node) {
134
111
  if (core.utils.isList(node)) {
135
112
  // Merge its items with the created list
@@ -147,27 +124,27 @@ var createEditList = function createEditList() {
147
124
  });
148
125
  return change.normalize();
149
126
  };
150
-
151
127
  core.changes.unwrapList = function unwrapList(opts, change) {
152
128
  var items = core.utils.getItemsAtRange(change.value);
153
-
154
129
  if (items.isEmpty()) {
155
130
  return change;
156
- } // Unwrap the items from their list
157
-
131
+ }
158
132
 
133
+ // Unwrap the items from their list
159
134
  items.forEach(function (item) {
160
135
  return change.unwrapNodeByKey(item.key, {
161
136
  normalize: false
162
137
  });
163
- }); // Parent of the list of the items
138
+ });
164
139
 
140
+ // Parent of the list of the items
165
141
  var firstItem = items.first();
166
142
  var parent = change.value.document.getParent(firstItem.key);
167
143
  var index = parent.nodes.findIndex(function (node) {
168
144
  return node.key === firstItem.key;
169
- }); // Unwrap the items' children
145
+ });
170
146
 
147
+ // Unwrap the items' children
171
148
  items.forEach(function (item) {
172
149
  item.nodes.forEach(function (node) {
173
150
  change.moveNodeByKey(node.key, parent.key, index, {
@@ -175,8 +152,9 @@ var createEditList = function createEditList() {
175
152
  });
176
153
  index += 1;
177
154
  });
178
- }); // Finally, remove the now empty items
155
+ });
179
156
 
157
+ // Finally, remove the now empty items
180
158
  items.forEach(function (item) {
181
159
  return change.removeNodeByKey(item.key, {
182
160
  normalize: false
@@ -184,25 +162,19 @@ var createEditList = function createEditList() {
184
162
  });
185
163
  return change;
186
164
  }.bind(_this, listOptions);
187
-
188
165
  core.utils.getItemsAtRange = function (opts, value, range) {
189
166
  range = range || value.selection;
190
-
191
167
  if (!range.startKey) {
192
168
  return _immutable["default"].List();
193
169
  }
194
-
195
170
  var document = value.document;
196
171
  var startBlock = document.getClosestBlock(range.startKey);
197
172
  var endBlock = document.getClosestBlock(range.endKey);
198
-
199
173
  if (startBlock === endBlock) {
200
174
  var item = core.utils.getCurrentItem(value, startBlock);
201
175
  return item ? _immutable["default"].List([item]) : _immutable["default"].List();
202
176
  }
203
-
204
177
  var ancestor = document.getCommonAncestor(startBlock.key, endBlock.key);
205
-
206
178
  if (core.utils.isList(ancestor)) {
207
179
  var startPath = ancestor.getPath(startBlock.key);
208
180
  var endPath = ancestor.getPath(endBlock.key);
@@ -210,49 +182,42 @@ var createEditList = function createEditList() {
210
182
  } else if (ancestor.type === opts.typeItem) {
211
183
  // The ancestor is the highest list item that covers the range
212
184
  return _immutable["default"].List([ancestor]);
213
- } // No list of items can cover the range
214
-
215
-
185
+ }
186
+ // No list of items can cover the range
216
187
  return _immutable["default"].List();
217
188
  }.bind(_this, listOptions);
218
-
219
189
  core.utils.getListForItem = function (opts, value, item) {
220
190
  var document = value.document;
221
191
  var parent = document.getParent(item.key);
222
192
  return parent && core.utils.isList(parent) ? parent : null;
223
193
  }.bind(_this, listOptions);
224
-
225
194
  core.utils.isSelectionInList = function (opts, value, type) {
226
195
  var items = core.utils.getItemsAtRange(value);
227
- return !items.isEmpty() && ( // Check the type of the list if needed
196
+ return !items.isEmpty() && (
197
+ // Check the type of the list if needed
228
198
  !type || core.utils.getListForItem(value, items.first()).get('type') === type);
229
199
  }.bind(_this, listOptions);
230
-
231
200
  return core;
232
201
  };
233
-
234
- var _default = function _default(options) {
202
+ var _default = exports["default"] = function _default(options) {
235
203
  var type = options.type,
236
- icon = options.icon;
237
- var core = createEditList(); // eslint-disable-next-line react/display-name
204
+ icon = options.icon;
205
+ var core = createEditList();
238
206
 
207
+ // eslint-disable-next-line react/display-name
239
208
  core.renderNode = function (props) {
240
209
  var node = props.node,
241
- attributes = props.attributes,
242
- children = props.children;
243
-
210
+ attributes = props.attributes,
211
+ children = props.children;
244
212
  switch (node.type) {
245
213
  case 'ul_list':
246
214
  return /*#__PURE__*/_react["default"].createElement("ul", attributes, children);
247
-
248
215
  case 'ol_list':
249
216
  return /*#__PURE__*/_react["default"].createElement("ol", attributes, children);
250
-
251
217
  case 'list_item':
252
218
  return /*#__PURE__*/_react["default"].createElement("li", attributes, children);
253
219
  }
254
220
  };
255
-
256
221
  core.toolbar = {
257
222
  isMark: false,
258
223
  ariaLabel: type == 'ul_list' ? 'bulleted list' : 'numbered-list',
@@ -262,30 +227,25 @@ var _default = function _default(options) {
262
227
  if (!core.utils.isSelectionInList(value)) {
263
228
  return false;
264
229
  }
265
-
266
230
  var current = core.utils.getCurrentList(value);
267
231
  return current ? current.type === type : false;
268
232
  },
269
233
  onClick: function onClick(value, onChange) {
270
234
  log('[onClick]', value);
271
235
  var inList = core.utils.isSelectionInList(value);
272
-
273
236
  if (inList) {
274
237
  var change = value.change().call(core.changes.unwrapList);
275
238
  onChange(change);
276
239
  } else {
277
240
  var _change = value.change().call(core.changes.wrapInList, type);
278
-
279
241
  onChange(_change);
280
242
  }
281
243
  }
282
244
  };
283
-
284
245
  core.normalizeNode = function (node) {
285
246
  if (node.object !== 'document' && node.object !== 'block') {
286
247
  return undefined;
287
248
  }
288
-
289
249
  var response = core.validateNode(node);
290
250
  var invalidListItems = [];
291
251
  node.forEachDescendant(function (d) {
@@ -294,16 +254,13 @@ var _default = function _default(options) {
294
254
  invalidListItems.push(d);
295
255
  }
296
256
  });
297
-
298
257
  if (!invalidListItems.length && !response) {
299
258
  return undefined;
300
259
  }
301
-
302
260
  return function (change) {
303
261
  if (response) {
304
262
  response(change);
305
263
  }
306
-
307
264
  if (invalidListItems.length) {
308
265
  change.withoutNormalization(function () {
309
266
  invalidListItems.forEach(function (node) {
@@ -320,7 +277,6 @@ var _default = function _default(options) {
320
277
  }
321
278
  };
322
279
  };
323
-
324
280
  core.renderNode.propTypes = {
325
281
  node: _propTypes["default"].object,
326
282
  attributes: _propTypes["default"].object,
@@ -329,6 +285,4 @@ var _default = function _default(options) {
329
285
  core.name = type;
330
286
  return core;
331
287
  };
332
-
333
- exports["default"] = _default;
334
288
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/list/index.jsx"],"names":["log","b","type","next","childNodes","object","nodes","serialization","deserialize","el","name","tagName","toLowerCase","children","length","Array","from","serialize","createEditList","core","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","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"],"mappings":"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","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"],"file":"index.js"}
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":[]}