@pie-lib/editable-html-tip-tap 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/CharacterPicker.js +221 -0
- package/lib/components/CharacterPicker.js.map +1 -0
- package/lib/components/EditableHtml.js +323 -0
- package/lib/components/EditableHtml.js.map +1 -0
- package/lib/components/MenuBar.js +694 -0
- package/lib/components/MenuBar.js.map +1 -0
- package/lib/components/TiptapContainer.js +90 -0
- package/lib/components/TiptapContainer.js.map +1 -0
- package/lib/components/buttons/done-button.js +53 -0
- package/lib/components/characters/characterUtils.js +112 -0
- package/lib/components/characters/characterUtils.js.map +1 -0
- package/lib/components/characters/custom-popper.js +73 -0
- package/lib/components/characters/custom-popper.js.map +1 -0
- package/lib/components/common/done-button.js +53 -0
- package/lib/components/common/done-button.js.map +1 -0
- package/lib/components/common/toolbar-buttons.js +194 -0
- package/lib/components/icons/CssIcon.js +37 -0
- package/lib/components/icons/CssIcon.js.map +1 -0
- package/lib/components/icons/RespArea.js +95 -0
- package/lib/components/icons/RespArea.js.map +1 -0
- package/lib/components/icons/TableIcons.js +69 -0
- package/lib/components/icons/TableIcons.js.map +1 -0
- package/lib/components/icons/TextAlign.js +194 -0
- package/lib/components/icons/TextAlign.js.map +1 -0
- package/lib/components/icons/index.js +194 -0
- package/lib/components/image/AltDialog.js +129 -0
- package/lib/components/image/ImageToolbar.js +177 -0
- package/lib/components/image/ImageToolbar.js.map +1 -0
- package/lib/components/image/InsertImageHandler.js +115 -0
- package/lib/components/image/InsertImageHandler.js.map +1 -0
- package/lib/components/image/alt-dialog.js +2 -0
- package/lib/components/media/MediaDialog.js +709 -0
- package/lib/components/media/MediaDialog.js.map +1 -0
- package/lib/components/media/MediaToolbar.js +101 -0
- package/lib/components/media/MediaToolbar.js.map +1 -0
- package/lib/components/media/MediaWrapper.js +93 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +94 -0
- package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/choice.js +289 -0
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank.js +94 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js +120 -0
- package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -0
- package/lib/components/respArea/InlineDropdown.js +126 -0
- package/lib/components/respArea/InlineDropdown.js.map +1 -0
- package/lib/components/respArea/ToolbarIcon.js +105 -0
- package/lib/components/respArea/ToolbarIcon.js.map +1 -0
- package/lib/components/respArea/choice.js +2 -0
- package/lib/constants.js.map +1 -0
- package/lib/extensions/component.js +5 -5
- package/lib/extensions/component.js.map +1 -0
- package/lib/extensions/css.js.map +1 -0
- package/lib/extensions/custom-toolbar-wrapper.js +2 -4
- package/lib/extensions/custom-toolbar-wrapper.js.map +1 -0
- package/lib/extensions/extended-table.js +30 -0
- package/lib/extensions/extended-table.js.map +1 -0
- package/lib/extensions/image.js +2 -8
- package/lib/extensions/image.js.map +1 -0
- package/lib/extensions/index.js +52 -0
- package/lib/extensions/index.js.map +1 -0
- package/lib/extensions/math.js.map +1 -0
- package/lib/extensions/media.js +7 -7
- package/lib/extensions/media.js.map +1 -0
- package/lib/extensions/responseArea.js +7 -7
- package/lib/extensions/responseArea.js.map +1 -0
- package/lib/index.js +16 -1481
- package/lib/index.js.map +1 -0
- package/lib/plugins/index.js +8 -80
- package/lib/styles/editorContainerStyles.js +200 -0
- package/lib/styles/editorContainerStyles.js.map +1 -0
- package/lib/theme.js.map +1 -0
- package/lib/utils/size.js +34 -0
- package/lib/utils/size.js.map +1 -0
- package/package.json +1 -1
- package/src/components/CharacterPicker.jsx +185 -0
- package/src/components/EditableHtml.jsx +306 -0
- package/src/components/MenuBar.jsx +630 -0
- package/src/components/TiptapContainer.jsx +96 -0
- package/src/components/characters/characterUtils.js +127 -0
- package/src/{plugins/image/image-toolbar.jsx → components/image/ImageToolbar.jsx} +2 -2
- package/src/{plugins/image/insert-image-handler.js → components/image/InsertImageHandler.js} +0 -1
- package/src/{plugins/media/media-dialog.js → components/media/MediaDialog.js} +2 -2
- package/src/{plugins/respArea/drag-in-the-blank → components/respArea/DragInTheBlank}/choice.jsx +1 -1
- package/src/{plugins/respArea/inline-dropdown/index.jsx → components/respArea/InlineDropdown.jsx} +1 -1
- package/src/components/respArea/ToolbarIcon.jsx +68 -0
- package/src/extensions/component.jsx +2 -2
- package/src/extensions/custom-toolbar-wrapper.jsx +6 -7
- package/src/extensions/extended-table.js +27 -0
- package/src/extensions/image.js +2 -2
- package/src/extensions/index.js +76 -0
- package/src/extensions/media.js +12 -7
- package/src/extensions/responseArea.js +7 -7
- package/src/index.jsx +3 -1440
- package/src/styles/editorContainerStyles.js +203 -0
- package/src/utils/size.js +32 -0
- package/src/__tests__/editor.test.jsx +0 -363
- package/src/__tests__/serialization.test.js +0 -291
- package/src/block-tags.js +0 -17
- package/src/editor.jsx +0 -1197
- package/src/extensions/characters.js +0 -46
- package/src/old-index.jsx +0 -162
- package/src/parse-html.js +0 -8
- package/src/plugins/README.md +0 -27
- package/src/plugins/characters/index.jsx +0 -284
- package/src/plugins/characters/utils.js +0 -447
- package/src/plugins/css/index.jsx +0 -340
- package/src/plugins/customPlugin/index.jsx +0 -85
- package/src/plugins/html/icons/index.jsx +0 -19
- package/src/plugins/html/index.jsx +0 -72
- package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
- package/src/plugins/image/__tests__/component.test.jsx +0 -41
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +0 -42
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +0 -11
- package/src/plugins/image/__tests__/index.test.js +0 -95
- package/src/plugins/image/__tests__/insert-image-handler.test.js +0 -113
- package/src/plugins/image/__tests__/mock-change.js +0 -15
- package/src/plugins/image/component.jsx +0 -343
- package/src/plugins/image/index.jsx +0 -227
- package/src/plugins/index.jsx +0 -377
- package/src/plugins/list/__tests__/index.test.js +0 -54
- package/src/plugins/list/index.jsx +0 -305
- package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
- package/src/plugins/math/__tests__/index.test.jsx +0 -245
- package/src/plugins/math/index.jsx +0 -379
- package/src/plugins/media/__tests__/index.test.js +0 -75
- package/src/plugins/media/index.jsx +0 -325
- package/src/plugins/rendering/index.js +0 -31
- package/src/plugins/respArea/index.jsx +0 -299
- package/src/plugins/respArea/math-templated/index.jsx +0 -104
- package/src/plugins/respArea/utils.jsx +0 -90
- package/src/plugins/table/CustomTablePlugin.js +0 -113
- package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
- package/src/plugins/table/__tests__/index.test.jsx +0 -401
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +0 -42
- package/src/plugins/table/index.jsx +0 -427
- package/src/plugins/table/table-toolbar.jsx +0 -136
- package/src/plugins/textAlign/index.jsx +0 -23
- package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
- package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +0 -94
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +0 -37
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +0 -51
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +0 -106
- package/src/plugins/toolbar/default-toolbar.jsx +0 -206
- package/src/plugins/toolbar/editor-and-toolbar.jsx +0 -257
- package/src/plugins/toolbar/index.jsx +0 -23
- package/src/plugins/toolbar/toolbar.jsx +0 -338
- package/src/plugins/utils.js +0 -31
- package/src/serialization.jsx +0 -621
- /package/src/{plugins → components}/characters/custom-popper.js +0 -0
- /package/src/{plugins/toolbar → components/common}/done-button.jsx +0 -0
- /package/src/{plugins/toolbar → components/common}/toolbar-buttons.jsx +0 -0
- /package/src/{plugins/css/icons/index.jsx → components/icons/CssIcon.jsx} +0 -0
- /package/src/{plugins/respArea/icons/index.jsx → components/icons/RespArea.jsx} +0 -0
- /package/src/{plugins/table/icons/index.jsx → components/icons/TableIcons.jsx} +0 -0
- /package/src/{plugins/textAlign/icons/index.jsx → components/icons/TextAlign.jsx} +0 -0
- /package/src/{plugins/image/alt-dialog.jsx → components/image/AltDialog.jsx} +0 -0
- /package/src/{plugins/media/media-toolbar.jsx → components/media/MediaToolbar.jsx} +0 -0
- /package/src/{plugins/media/media-wrapper.jsx → components/media/MediaWrapper.jsx} +0 -0
- /package/src/{plugins/respArea/drag-in-the-blank/index.jsx → components/respArea/DragInTheBlank/DragInTheBlank.jsx} +0 -0
- /package/src/{plugins/respArea/explicit-constructed-response/index.jsx → components/respArea/ExplicitConstructedResponse.jsx} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/EditableHtml.jsx"],"names":["defaultToolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","defaultResponseAreaProps","options","respAreaToolbar","onHandleAreaChange","DEFAULT_ACTIVE_PLUGINS","cssVariables","EditableHtml","props","pendingImages","setPendingImages","scheduled","setScheduled","classes","toolbarOpts","toolbarOptsToUse","activePluginsToUse","pluginProps","customPlugins","activePlugins","math","textAlign","html","extraCSSRules","image","toolbar","table","responseArea","type","responseAreaProps","languageCharacters","languageCharactersProps","keyPadCharacterRef","setKeypadInteraction","media","extensions","TextStyleKit","StarterKit","ExtendedTable","TableRow","TableHeader","TableCell","ResponseAreaExtension","ExplicitConstructedResponseNode","configure","DragInTheBlankNode","InlineDropdownNode","MathNode","SubScript","SuperScript","TextAlign","types","alignments","Image","ImageUploadNode","imageHandling","disableImageAlignmentButtons","onDone","editor","getHTML","onDelete","imageSupport","node","done","src","attrs","e","newPendingImages","filter","img","key","newState","length","insertImageRequested","addedImage","getHandler","onFinish","result","cb","onChange","callback","handler","add","maxImageWidth","maxImageHeight","limit","Media","uploadSoundSupport","CSSMark","immediatelyRender","editable","disabled","content","markup","onUpdate","transaction","isDone","onBlur","setEditable","commands","setContent","Object","entries","forEach","value","document","documentElement","style","setProperty","editorState","selector","ctx","isFocused","sizeStyle","minWidth","width","maxWidth","minHeight","height","maxHeight","root","StyledEditor","outline"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { EditorContent, useEditor, useEditorState } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { TextStyleKit } from '@tiptap/extension-text-style';\nimport SuperScript from '@tiptap/extension-superscript';\nimport SubScript from '@tiptap/extension-subscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport Image from '@tiptap/extension-image';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport ExtendedTable from '../extensions/extended-table';\nimport { TableRow } from '@tiptap/extension-table-row';\nimport { TableCell } from '@tiptap/extension-table-cell';\nimport { TableHeader } from '@tiptap/extension-table-header';\nimport {\n ExplicitConstructedResponseNode,\n DragInTheBlankNode,\n InlineDropdownNode,\n ResponseAreaExtension,\n} from '../extensions/responseArea';\nimport { MathNode } from '../extensions/math';\nimport { ImageUploadNode } from '../extensions/image';\nimport { Media } from '../extensions/media';\nimport { CSSMark } from '../extensions/css';\n\nimport EditorContainer from './TiptapContainer';\nimport { valueToSize } from '../utils/size';\nimport { buildExtensions } from '../extensions';\n\nconst defaultToolbarOpts = {\n position: 'bottom',\n alignment: 'left',\n alwaysVisible: false,\n showDone: true,\n doneOn: 'blur',\n};\n\nconst defaultResponseAreaProps = {\n options: {},\n respAreaToolbar: () => {},\n onHandleAreaChange: () => {},\n};\n\nconst DEFAULT_ACTIVE_PLUGINS = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough',\n 'code',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'text-align',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n 'superscript',\n 'subscript',\n 'css',\n 'h3',\n 'undo',\n 'redo',\n];\n\nconst cssVariables = {\n '--white': '#fff',\n '--black': '#2e2b29',\n '--black-contrast': '#110f0e',\n '--gray-1': 'rgba(61, 37, 20, .05)',\n '--gray-2': 'rgba(61, 37, 20, .08)',\n '--gray-3': 'rgba(61, 37, 20, .12)',\n '--gray-4': 'rgba(53, 38, 28, .3)',\n '--gray-5': 'rgba(28, 25, 23, .6)',\n '--green': '#22c55e',\n '--purple': '#6a00f5',\n '--purple-contrast': '#5800cc',\n '--purple-light': 'rgba(88, 5, 255, .05)',\n '--yellow-contrast': '#facc15',\n '--yellow': 'rgba(250, 204, 21, .4)',\n '--yellow-light': '#fffae5',\n '--red': '#ff5c33',\n '--red-light': '#ffebe5',\n '--shadow': `0px 12px 33px 0px rgba(0, 0, 0, .06),\n 0px 3.618px 9.949px 0px rgba(0, 0, 0, .04)`,\n};\n\nexport const EditableHtml = (props) => {\n const [pendingImages, setPendingImages] = useState([]);\n const [scheduled, setScheduled] = useState(false);\n const { classes, toolbarOpts } = props;\n\n const toolbarOptsToUse = {\n ...defaultToolbarOpts,\n ...toolbarOpts,\n };\n\n const activePluginsToUse = useMemo(() => {\n let { customPlugins } = props.pluginProps || {};\n\n customPlugins = customPlugins || [];\n\n return buildExtensions(props.activePlugins, customPlugins, {\n math: {},\n textAlign: {},\n html: {},\n extraCSSRules: props.extraCSSRules || {},\n image: {},\n toolbar: {},\n table: {},\n responseArea: {\n type: props.responseAreaProps?.type,\n },\n languageCharacters: props.languageCharactersProps,\n keyPadCharacterRef: {},\n setKeypadInteraction: {},\n media: {},\n });\n }, [props]);\n\n const extensions = [\n TextStyleKit,\n StarterKit,\n ExtendedTable,\n TableRow,\n TableHeader,\n TableCell,\n ResponseAreaExtension,\n ExplicitConstructedResponseNode.configure(props.responseAreaProps),\n DragInTheBlankNode.configure(props.responseAreaProps),\n InlineDropdownNode.configure(props.responseAreaProps),\n MathNode.configure({\n toolbarOpts: toolbarOptsToUse,\n }),\n SubScript,\n SuperScript,\n TextAlign.configure({\n types: ['heading', 'paragraph'],\n alignments: ['left', 'right', 'center'],\n }),\n Image,\n ImageUploadNode.configure({\n toolbarOpts: toolbarOptsToUse,\n imageHandling: {\n disableImageAlignmentButtons: props.disableImageAlignmentButtons,\n onDone: () => props.onDone?.(editor.getHTML()),\n onDelete:\n props.imageSupport &&\n props.imageSupport.delete &&\n ((node, done) => {\n const { src } = node.attrs;\n\n props.imageSupport.delete(src, (e) => {\n const newPendingImages = pendingImages.filter((img) => img.key !== node.key);\n const newState = {\n pendingImages: newPendingImages,\n scheduled: scheduled && newPendingImages.length === 0 ? false : scheduled,\n };\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n done();\n });\n }),\n insertImageRequested:\n props.imageSupport &&\n ((addedImage, getHandler) => {\n const onFinish = (result) => {\n let cb;\n\n if (scheduled && result) {\n // finish editing only on success\n cb = props.onChange;\n }\n\n const newPendingImages = pendingImages.filter((img) => img.key !== addedImage.key);\n const newState = {\n pendingImages: newPendingImages,\n };\n\n if (newPendingImages.length === 0) {\n newState.scheduled = false;\n }\n\n setPendingImages(newState.pendingImages);\n setScheduled(newState.scheduled);\n cb?.(editor.getHTML());\n };\n const callback = () => {\n /**\n * The handler is the object through which the outer context\n * communicates file upload events like: fileChosen, cancel, progress\n */\n const handler = getHandler(onFinish);\n props.imageSupport.add(handler);\n };\n\n setPendingImages([...pendingImages, addedImage]);\n callback();\n }),\n maxImageWidth: props.maxImageWidth,\n maxImageHeight: props.maxImageHeight,\n },\n limit: 3,\n }),\n Media.configure({\n uploadSoundSupport: props.uploadSoundSupport,\n }),\n CSSMark.configure({\n extraCSSRules: props.extraCSSRules,\n }),\n ];\n\n const editor = useEditor({\n extensions,\n immediatelyRender: false,\n editable: !props.disabled,\n content: props.markup,\n onUpdate: ({ editor, transaction }) => transaction.isDone && props.onChange?.(editor.getHTML()),\n onBlur: ({ editor }) => {\n if (toolbarOptsToUse.doneOn === 'blur') {\n props.onChange?.(editor.getHTML());\n } else {\n props.onDone?.(editor.getHTML());\n }\n },\n });\n\n useEffect(() => {\n editor?.setEditable(!props.disabled);\n }, [props.disabled, editor]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n\n if (props.markup !== editor.getHTML()) {\n editor.commands.setContent(props.markup, false); // false = don’t emit update\n }\n }, [props.markup, editor]);\n\n useEffect(() => {\n Object.entries(cssVariables).forEach(([key, value]) => {\n document.documentElement.style.setProperty(key, value);\n });\n }, []);\n\n const editorState = useEditorState({\n editor,\n selector: (ctx) => ({\n isFocused: ctx.editor?.isFocused,\n }),\n });\n\n const sizeStyle = useMemo(() => {\n const { minWidth, width, maxWidth, minHeight, height, maxHeight } = props;\n\n return {\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n };\n }, [props]);\n\n return (\n <EditorContainer\n {...{\n ...props,\n activePlugins: activePluginsToUse,\n toolbarOpts: toolbarOptsToUse,\n }}\n editorState={editorState}\n editor={editor}\n >\n {editor && (\n <EditorContent\n style={{\n minHeight: sizeStyle.minHeight,\n height: sizeStyle.height,\n maxHeight: sizeStyle.maxHeight,\n }}\n className={classes.root}\n editor={editor}\n />\n )}\n </EditorContainer>\n );\n};\n\nconst StyledEditor = withStyles({\n root: {\n outline: 'none !important',\n '& .ProseMirror': {\n outline: 'none !important',\n position: 'initial',\n },\n },\n})(EditableHtml);\n\nexport default StyledEditor;\n"],"file":"EditableHtml.js"}
|