@pie-lib/editable-html-tip-tap 1.2.0-next.0 → 1.2.0-next.12

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 (39) hide show
  1. package/CHANGELOG.md +61 -22
  2. package/lib/components/CharacterPicker.js +4 -4
  3. package/lib/components/CharacterPicker.js.map +1 -1
  4. package/lib/components/EditableHtml.js +22 -5
  5. package/lib/components/EditableHtml.js.map +1 -1
  6. package/lib/components/MenuBar.js +30 -12
  7. package/lib/components/MenuBar.js.map +1 -1
  8. package/lib/components/TiptapContainer.js +10 -5
  9. package/lib/components/TiptapContainer.js.map +1 -1
  10. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +8 -3
  11. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  12. package/lib/components/respArea/DragInTheBlank/choice.js +13 -6
  13. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  14. package/lib/components/respArea/MathTemplated.js +130 -0
  15. package/lib/components/respArea/MathTemplated.js.map +1 -0
  16. package/lib/extensions/image-component.js +4 -4
  17. package/lib/extensions/image-component.js.map +1 -1
  18. package/lib/extensions/index.js +7 -4
  19. package/lib/extensions/index.js.map +1 -1
  20. package/lib/extensions/media.js +14 -11
  21. package/lib/extensions/media.js.map +1 -1
  22. package/lib/extensions/responseArea.js +11 -8
  23. package/lib/extensions/responseArea.js.map +1 -1
  24. package/package.json +12 -14
  25. package/src/__tests__/EditableHtml.test.jsx +3 -0
  26. package/src/components/CharacterPicker.jsx +1 -1
  27. package/src/components/EditableHtml.jsx +28 -5
  28. package/src/components/MenuBar.jsx +37 -6
  29. package/src/components/TiptapContainer.jsx +6 -4
  30. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +7 -2
  31. package/src/components/respArea/DragInTheBlank/choice.jsx +31 -4
  32. package/src/components/respArea/MathTemplated.jsx +124 -0
  33. package/src/components/respArea/__tests__/MathTemplated.test.jsx +210 -0
  34. package/src/extensions/__tests__/media-node-view.test.jsx +296 -0
  35. package/src/extensions/__tests__/media.test.js +1 -0
  36. package/src/extensions/image-component.jsx +1 -1
  37. package/src/extensions/index.js +4 -1
  38. package/src/extensions/media.js +17 -14
  39. package/src/extensions/responseArea.js +3 -7
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","createElement","ref","style","display","minWidth","minHeight","background","color","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","boxSizing","borderRadius","overflow","position","padding","undefined","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","className","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n return (\n <div\n ref={elementRef}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: isPreview ? `1px solid ${color.defaults.BORDER_DARK}` : `1px solid ${color.defaults.BORDER_LIGHT}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.index}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n};\n\nfunction DragDropChoice({ value, disabled, instanceId, children, n, onChange, removeResponse, duplicates, pos }) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent n={n} isDragging={isDragging} isOver={isOver} dragItem={dragItem?.data?.current} value={value}>\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_core","_renderUi","_mathRendering","_styles","_classnames","_RespArea","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","BlankContent","_ref2","_dragItem$value","children","isDragging","isOver","dragItem","value","selected","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","renderMath","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","borderStyle","color","primaryDark","defaults","BORDER_DARK","BORDER_LIGHT","createElement","ref","className","undefined","style","display","minWidth","minHeight","background","WHITE","boxSizing","borderRadius","overflow","position","padding","index","contentEditable","GripIcon","top","left","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","bool","DragDropChoice","_ref3","_dragItem$data","disabled","instanceId","onChange","removeResponse","duplicates","pos","_useDraggable","useDraggable","id","data","opts","type","fromChoice","onRemove","draggedData","onDrop","dropData","isValidBlank","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","_extends2","content","classnames","string","isRequired","func","_default","exports"],"sources":["../../../../src/components/respArea/DragInTheBlank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { styled } from '@mui/material/styles';\nimport classnames from 'classnames';\n\nimport { GripIcon } from '../../icons/RespArea';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, selected }) {\n const [hoveredElementSize, setHoveredElementSize] = useState(null);\n const elementRef = useRef(null);\n\n const handleClick = (event) => {\n if (!elementRef.current) return;\n\n if (elementRef.current.contains(event.target)) {\n elementRef.current.classList.add('selected');\n } else {\n elementRef.current.classList.remove('selected');\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n useEffect(() => {\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.value, isOver, dragItem?.value?.value]);\n\n useEffect(() => {\n if (isOver && elementRef.current && !hoveredElementSize) {\n const node = elementRef.current;\n setHoveredElementSize({ width: node.offsetWidth, height: node.offsetHeight });\n } else if (!isOver && hoveredElementSize) {\n setHoveredElementSize(null);\n }\n }, [isOver, hoveredElementSize]);\n\n const label = dragItem && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n\n const borderStyle = selected\n ? `2px solid ${color.primaryDark()}`\n : isPreview\n ? `1px solid ${color.defaults.BORDER_DARK}`\n : `1px solid ${color.defaults.BORDER_LIGHT}`;\n\n return (\n <div\n ref={elementRef}\n className={selected ? 'selected' : undefined}\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n background: isPreview ? `${color.defaults.BORDER_LIGHT}` : `${color.defaults.WHITE}`,\n border: borderStyle,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n position: 'relative',\n padding: '8px 8px 8px 35px',\n width: hoveredElementSize ? hoveredElementSize.width : undefined,\n height: hoveredElementSize ? hoveredElementSize.height : undefined,\n }}\n data-key={n.index}\n contentEditable={false}\n >\n {hasGrip && (\n <GripIcon\n style={{\n position: 'absolute',\n top: '6px',\n left: '15px',\n color: '#9B9B9B',\n }}\n contentEditable={false}\n />\n )}\n <span\n dangerouslySetInnerHTML={{\n __html: finalLabel,\n }}\n />\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.node,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n selected: PropTypes.bool,\n};\n\nfunction DragDropChoice({\n value,\n disabled,\n instanceId,\n children,\n n,\n onChange,\n removeResponse,\n duplicates,\n pos,\n selected,\n}) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.index}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.index}`,\n value,\n instanceId,\n n,\n pos,\n opts: { duplicates },\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => removeResponse(draggedData),\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.index}`,\n data: {\n type: 'drag-in-the-blank-drop-choice',\n accepts: ['drag-in-the-blank-choice', 'drag-in-the-blank-placed-choice'],\n instanceId: instanceId,\n value: value,\n id: `drop-${n.index}`,\n pos,\n n,\n opts: { duplicates },\n onDrop: (draggedData, dropData) => {\n // check if we're dropping into a blank\n const isValidBlank = dropData?.type === 'drag-in-the-blank-drop-choice';\n\n if (!isValidBlank) return;\n\n // if the dragged and dropped data are the same, do nothing\n if (draggedData.value.id === dropData.value.id) return;\n\n if (draggedData.type === 'drag-in-the-blank-choice') {\n // place into blank\n onChange(draggedData);\n\n if (!duplicates && draggedData.fromChoice) {\n removeResponse(draggedData);\n }\n return;\n }\n\n // moving placed choice between blanks\n if (draggedData.type === 'drag-in-the-blank-placed-choice') {\n // clear target blank\n removeResponse(dropData);\n\n // set new blank value\n onChange(draggedData);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => removeResponse(draggedData), 10);\n }\n },\n },\n });\n\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const dragContent = (\n <BlankContent\n n={n}\n isDragging={isDragging}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n value={value}\n selected={selected}\n >\n {children}\n </BlankContent>\n );\n\n const dragEl = !value ? (\n <span ref={setDropNodeRef}>{dragContent}</span>\n ) : (\n <span ref={setNodeRef} {...dragAttributes} {...dragListeners}>\n {dragContent}\n </span>\n );\n\n const content = <StyledContent className={classnames(isOver && 'over')}>{dragEl}</StyledContent>;\n\n return content;\n}\n\nDragDropChoice.propTypes = {\n value: PropTypes.object,\n disabled: PropTypes.bool,\n instanceId: PropTypes.string,\n children: PropTypes.node,\n n: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n removeResponse: PropTypes.func.isRequired,\n duplicates: PropTypes.bool,\n selected: PropTypes.bool,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react2 = require("@tiptap/react");
11
+ var _mathInput = require("@pie-lib/math-input");
12
+ var _styles = require("@mui/material/styles");
13
+ var StyledSpanContainer = (0, _styles.styled)('span')(function () {
14
+ return {
15
+ display: 'inline-flex',
16
+ border: '1px solid #C0C3CF',
17
+ margin: '1px 5px',
18
+ cursor: 'pointer',
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ minWidth: '50px',
22
+ minHeight: '36px',
23
+ height: 'fit-content'
24
+ };
25
+ });
26
+ var StyledResponseBox = (0, _styles.styled)('div')(function (_ref) {
27
+ var theme = _ref.theme;
28
+ return {
29
+ background: theme.palette.grey['A100'],
30
+ color: theme.palette.grey['A700'],
31
+ display: 'inline-flex',
32
+ borderRight: '2px solid #C0C3CF',
33
+ boxSizing: 'border-box',
34
+ overflow: 'hidden',
35
+ fontSize: '12px',
36
+ minHeight: '36px',
37
+ height: '100%',
38
+ alignItems: 'center',
39
+ fontFamily: 'Symbola, Times New Roman, serif',
40
+ padding: '0 2px'
41
+ };
42
+ });
43
+ var StyledMathBlock = (0, _styles.styled)('div')(function () {
44
+ return {
45
+ flex: 8,
46
+ color: 'var(--pie-text, black)',
47
+ padding: '4px !important',
48
+ display: 'flex',
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',
52
+ '& > .mq-math-mode sup.mq-nthroot': {
53
+ fontSize: '70% !important',
54
+ verticalAlign: '1em !important'
55
+ },
56
+ '& > .mq-math-mode .mq-sqrt-stem': {
57
+ borderTop: '0.07em solid',
58
+ marginLeft: '-1.5px',
59
+ marginTop: '-2px !important',
60
+ paddingTop: '5px !important'
61
+ },
62
+ '& .mq-overarrow-inner': {
63
+ paddingTop: '0 !important',
64
+ border: 'none !important'
65
+ },
66
+ '& .mq-overarrow.mq-arrow-both': {
67
+ marginTop: '0px',
68
+ minWidth: '1.23em',
69
+ '& *': {
70
+ lineHeight: '1 !important'
71
+ },
72
+ '&:before': {
73
+ top: '-0.4em',
74
+ left: '-1px'
75
+ },
76
+ '&:after': {
77
+ top: '0px !important',
78
+ position: 'absolute !important',
79
+ right: '-2px'
80
+ },
81
+ '&.mq-empty:after': {
82
+ top: '-0.45em'
83
+ }
84
+ },
85
+ '& .mq-overarrow.mq-arrow-right': {
86
+ '&:before': {
87
+ top: '-0.4em',
88
+ right: '-1px'
89
+ }
90
+ },
91
+ '& .mq-overarrow-inner-right': {
92
+ display: 'none !important'
93
+ },
94
+ '& .mq-overarrow-inner-left': {
95
+ display: 'none !important'
96
+ }
97
+ };
98
+ });
99
+ var MathTemplated = function MathTemplated(props) {
100
+ var node = props.node,
101
+ options = props.options,
102
+ selected = props.selected;
103
+ var attributes = node.attrs;
104
+ var value = attributes.value,
105
+ index = attributes.index;
106
+
107
+ // add 1 to index to display R 1 instead of R 0
108
+ var keyToDisplay = "R ".concat(parseInt(index) + 1);
109
+
110
+ // console.log({nodeProps.children})
111
+ return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
112
+ className: "math-templated",
113
+ "data-selected": selected,
114
+ style: {
115
+ display: 'inline-flex',
116
+ minHeight: '36px',
117
+ minWidth: '50px',
118
+ cursor: 'pointer'
119
+ }
120
+ }, /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
121
+ latex: value
122
+ }))));
123
+ };
124
+ MathTemplated.propTypes = {
125
+ attributes: _propTypes["default"].object,
126
+ value: _propTypes["default"].string,
127
+ keyToDisplay: _propTypes["default"].string
128
+ };
129
+ var _default = exports["default"] = MathTemplated;
130
+ //# sourceMappingURL=MathTemplated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathTemplated.js","names":["_react","_interopRequireDefault","require","_propTypes","_react2","_mathInput","_styles","StyledSpanContainer","styled","display","border","margin","cursor","alignItems","justifyContent","minWidth","minHeight","height","StyledResponseBox","_ref","theme","background","palette","grey","color","borderRight","boxSizing","overflow","fontSize","fontFamily","padding","StyledMathBlock","flex","backgroundColor","verticalAlign","borderTop","marginLeft","marginTop","paddingTop","lineHeight","top","left","position","right","MathTemplated","props","node","options","selected","attributes","attrs","value","index","keyToDisplay","concat","parseInt","createElement","NodeViewWrapper","className","style","mq","Static","latex","propTypes","PropTypes","object","string","_default","exports"],"sources":["../../../src/components/respArea/MathTemplated.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport { mq } from '@pie-lib/math-input';\nimport { styled } from '@mui/material/styles';\n\nconst StyledSpanContainer = styled('span')(() => ({\n display: 'inline-flex',\n border: '1px solid #C0C3CF',\n margin: '1px 5px',\n cursor: 'pointer',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '50px',\n minHeight: '36px',\n height: 'fit-content',\n}));\n\nconst StyledResponseBox = styled('div')(({ theme }) => ({\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline-flex',\n borderRight: '2px solid #C0C3CF',\n boxSizing: 'border-box',\n overflow: 'hidden',\n fontSize: '12px',\n minHeight: '36px',\n height: '100%',\n alignItems: 'center',\n fontFamily: 'Symbola, Times New Roman, serif',\n padding: '0 2px',\n}));\n\nconst StyledMathBlock = styled('div')(() => ({\n flex: 8,\n color: 'var(--pie-text, black)',\n padding: '4px !important',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',\n '& > .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '1em !important',\n },\n '& > .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important',\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n}));\nconst MathTemplated = (props) => {\n const { node, options, selected } = props;\n const { attrs: attributes } = node;\n const { value, index } = attributes;\n\n // add 1 to index to display R 1 instead of R 0\n const keyToDisplay = `R ${parseInt(index) + 1}`;\n\n // console.log({nodeProps.children})\n return (\n <NodeViewWrapper\n className=\"math-templated\"\n data-selected={selected}\n style={{\n display: 'inline-flex',\n minHeight: '36px',\n minWidth: '50px',\n cursor: 'pointer',\n }}\n >\n <StyledSpanContainer {...attributes}>\n <StyledResponseBox>{keyToDisplay}</StyledResponseBox>\n <StyledMathBlock>\n <mq.Static latex={value} />\n </StyledMathBlock>\n </StyledSpanContainer>\n </NodeViewWrapper>\n );\n};\n\nMathTemplated.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string,\n keyToDisplay: PropTypes.string,\n};\n\nexport default MathTemplated;\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _lodashEs = require("lodash-es");
14
+ var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
15
15
  var _debug = _interopRequireDefault(require("debug"));
16
16
  var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
17
17
  var _styles = require("@mui/material/styles");
@@ -119,7 +119,7 @@ function ImageComponent(props) {
119
119
  var update = _objectSpread(_objectSpread({}, node.attrs), {}, {
120
120
  resizePercent: getPercentFromWidth(node.attrs.width)
121
121
  });
122
- if (!(0, _lodashEs.isEqual)(update, node.attrs)) {
122
+ if (!(0, _isEqual["default"])(update, node.attrs)) {
123
123
  editor.commands.updateAttributes('imageUploadNode', update);
124
124
  }
125
125
  }, [editor, node.attrs, getPercentFromWidth]);
@@ -170,7 +170,7 @@ function ImageComponent(props) {
170
170
  width: w,
171
171
  height: h
172
172
  };
173
- if (!(0, _lodashEs.isEqual)(update, node.attrs)) {
173
+ if (!(0, _isEqual["default"])(update, node.attrs)) {
174
174
  editor.commands.updateAttributes('imageUploadNode', update);
175
175
  }
176
176
  }
@@ -210,7 +210,7 @@ function ImageComponent(props) {
210
210
  width: next.width,
211
211
  height: next.height
212
212
  };
213
- if (!(0, _lodashEs.isEqual)(update, node.attrs)) {
213
+ if (!(0, _isEqual["default"])(update, node.attrs)) {
214
214
  editor.commands.updateAttributes('imageUploadNode', update);
215
215
  }
216
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"image-component.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_lodashEs","_debug","_LinearProgress","_styles","_react2","_InsertImageHandler","_ImageToolbar","_customToolbarWrapper","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","StyledProgress","styled","LinearProgress","shouldForwardProp","prop","_ref","hideProgress","position","left","width","top","transition","opacity","StyledRoot","includes","_ref2","theme","active","loading","pendingDelete","border","concat","palette","primary","main","common","white","display","StyledImageContainer","_ref3","alignItems","StyledResize","_ref4","backgroundColor","cursor","height","borderRadius","marginLeft","marginRight","sizePx","s","ImageComponent","props","node","editor","attributes","onFocus","selected","options","_props$maxImageWidth","maxImageWidth","_props$maxImageHeight","maxImageHeight","latex","handleChange","handleDone","alt","attrs","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","latestNodeRef","useRef","imgRef","resizeRef","toolbarRef","getPercentFromWidth","useCallback","floored","current","naturalWidth","parseInt","toFixed","applySizeData","update","resizePercent","isEqual","commands","updateAttributes","useEffect","selection","state","onlyThisNodeSelected","from","nodeSize","to","imageHandling","insertImageRequested","finish","InsertImageHandler","resizeHandle","addEventListener","initResize","removeEventListener","onDelete","loadImage","box","style","w","Math","min","h","naturalHeight","updateAspect","initial","next","keepAspect","undefined","resizeType","ratio","startResize","bounds","target","getBoundingClientRect","clientX","clientY","onChange","newValues","stopResize","window","objectFit","flexAlign","center","right","alignment","createElement","NodeViewWrapper","loaded","deleteStatus","justifyContent","mode","value","percent","_extends2","ref","src","onLoad","className","zIndex","background","boxShadow","showDone","onDone","_props$imageHandling","focus","disableImageAlignmentButtons","imageLoaded","propTypes","PropTypes","object","isRequired","func","number","_default","exports"],"sources":["../../src/extensions/image-component.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { isEqual } from 'lodash-es';\nimport debug from 'debug';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { styled } from '@mui/material/styles';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport InsertImageHandler from '../components/image/InsertImageHandler';\nimport ImageToolbar from '../components/image/ImageToolbar';\nimport CustomToolbarWrapper from './custom-toolbar-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst StyledProgress = styled(LinearProgress, {\n shouldForwardProp: (prop) => prop !== 'hideProgress',\n})(({ hideProgress }) => ({\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n ...(hideProgress && {\n opacity: 0,\n }),\n}));\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['active', 'loading', 'pendingDelete'].includes(prop),\n})(({ theme, active, loading, pendingDelete }) => ({\n position: 'relative',\n border: active ? `solid 1px ${theme.palette.primary.main}` : `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n ...(loading && {\n opacity: 0.3,\n }),\n ...(pendingDelete && {\n opacity: 0.3,\n }),\n}));\n\nconst StyledImageContainer = styled('div')(({ theme }) => ({\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n '&&:hover > .resize': {\n display: 'block',\n },\n}));\n\nconst StyledResize = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n}));\n\nconst sizePx = (s) => (s ? `${s}px` : 'calc(20px)');\n\nfunction ImageComponent(props) {\n const {\n node,\n editor,\n attributes,\n onFocus,\n selected,\n options,\n maxImageWidth = 700,\n maxImageHeight = 900,\n latex,\n handleChange,\n handleDone,\n } = props;\n const { alt } = node.attrs;\n\n const [showToolbar, setShowToolbar] = useState(false);\n\n const latestNodeRef = useRef(node);\n const imgRef = useRef(null);\n const resizeRef = useRef(null);\n const toolbarRef = useRef(null);\n\n const getPercentFromWidth = useCallback((width) => {\n const floored = (width / imgRef.current.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n }, []);\n\n const applySizeData = useCallback(() => {\n if (!node.attrs.width || !imgRef.current) return;\n\n const update = {\n ...node.attrs,\n resizePercent: getPercentFromWidth(node.attrs.width),\n };\n\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }, [editor, node.attrs, getPercentFromWidth]);\n\n // keep ref in sync with latest node\n useEffect(() => {\n latestNodeRef.current = node;\n }, [node]);\n\n useEffect(() => {\n const { selection } = editor.state;\n const onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;\n\n if (selected) {\n if (onlyThisNodeSelected) {\n setShowToolbar(selected);\n }\n } else {\n setShowToolbar(selected);\n }\n }, [editor, node, selected]);\n\n useEffect(() => {\n options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, node, finish));\n applySizeData();\n\n const resizeHandle = resizeRef.current;\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', initResize, false);\n }\n return () => {\n if (resizeHandle) {\n resizeHandle.removeEventListener('mousedown', initResize, false);\n }\n\n options.imageHandling.onDelete(latestNodeRef.current);\n };\n }, []);\n\n useEffect(() => {\n applySizeData();\n });\n\n const loadImage = useCallback(() => {\n const box = imgRef.current;\n if (!box) return;\n\n if (!box.style.width || box.style.width === 'calc(20px)') {\n const w = Math.min(box.naturalWidth, maxImageWidth);\n const h = Math.min(box.naturalHeight, maxImageHeight);\n\n box.style.width = `${w}px`;\n box.style.height = `${h}px`;\n\n const update = { width: w, height: h };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n }, [editor, node.attrs, maxImageWidth, maxImageHeight]);\n\n const updateAspect = (initial, next, keepAspect = true, resizeType) => {\n if (keepAspect) {\n const ratio = initial.width / initial.height;\n if (resizeType === 'height') return { width: next.height * ratio, height: next.height };\n return { width: next.width, height: next.width / ratio };\n }\n return next;\n };\n\n const startResize = useCallback(\n (e) => {\n const box = imgRef.current;\n if (!box) return;\n\n const bounds = e.target.getBoundingClientRect();\n const initial = { width: box.naturalWidth, height: box.naturalHeight };\n\n const next = updateAspect(initial, {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n });\n\n if (next.width > 50 && next.height > 50 && next.width <= 700 && next.height <= 900) {\n box.style.width = `${next.width}px`;\n box.style.height = `${next.height}px`;\n\n const update = { width: next.width, height: next.height };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n },\n [editor, node.attrs],\n );\n\n const onChange = useCallback(\n (newValues) => {\n editor.commands.updateAttributes('imageUploadNode', newValues);\n },\n [editor],\n );\n\n const stopResize = useCallback(() => {\n window.removeEventListener('mousemove', startResize);\n window.removeEventListener('mouseup', stopResize);\n }, [startResize]);\n\n const initResize = useCallback(() => {\n window.addEventListener('mousemove', startResize);\n window.addEventListener('mouseup', stopResize);\n }, [startResize, stopResize]);\n\n const style = {\n width: sizePx(node.attrs.width),\n height: sizePx(node.attrs.height),\n objectFit: 'contain',\n };\n\n const flexAlign = { left: 'flex-start', center: 'center', right: 'flex-end' }[node.attrs.alignment] || 'flex-start';\n\n return (\n <NodeViewWrapper>\n <StyledRoot\n onFocus={onFocus}\n active={selected}\n loading={!node.attrs.loaded}\n pendingDelete={node.attrs.deleteStatus === 'pending'}\n style={{ justifyContent: flexAlign }}\n >\n <StyledProgress mode=\"determinate\" value={node.attrs.percent || 0} hideProgress={node.attrs.loaded} />\n\n <StyledImageContainer>\n <img\n {...attributes}\n ref={imgRef}\n src={node.attrs.src}\n style={style}\n onLoad={loadImage}\n alt={node.attrs.alt}\n />\n <StyledResize ref={resizeRef} className=\"resize\" />\n </StyledImageContainer>\n </StyledRoot>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n width: '100%',\n }}\n >\n <CustomToolbarWrapper\n showDone\n {...options}\n onDone={() => {\n setShowToolbar(false);\n props.imageHandling?.onDone();\n props.editor.commands.focus('end');\n }}\n >\n <ImageToolbar\n disableImageAlignmentButtons={options.disableImageAlignmentButtons}\n alt={node.attrs.alt}\n imageLoaded={node.attrs.loaded}\n alignment={node.attrs.alignment || 'left'}\n onChange={onChange}\n />\n </CustomToolbarWrapper>\n </div>\n )}\n </NodeViewWrapper>\n );\n}\n\nImageComponent.propTypes = {\n node: PropTypes.object.isRequired,\n editor: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n};\n\nexport default ImageComponent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"image-component.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_isEqual","_debug","_LinearProgress","_styles","_react2","_InsertImageHandler","_ImageToolbar","_customToolbarWrapper","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","log","debug","StyledProgress","styled","LinearProgress","shouldForwardProp","prop","_ref","hideProgress","position","left","width","top","transition","opacity","StyledRoot","includes","_ref2","theme","active","loading","pendingDelete","border","concat","palette","primary","main","common","white","display","StyledImageContainer","_ref3","alignItems","StyledResize","_ref4","backgroundColor","cursor","height","borderRadius","marginLeft","marginRight","sizePx","s","ImageComponent","props","node","editor","attributes","onFocus","selected","options","_props$maxImageWidth","maxImageWidth","_props$maxImageHeight","maxImageHeight","latex","handleChange","handleDone","alt","attrs","_useState","useState","_useState2","_slicedToArray2","showToolbar","setShowToolbar","latestNodeRef","useRef","imgRef","resizeRef","toolbarRef","getPercentFromWidth","useCallback","floored","current","naturalWidth","parseInt","toFixed","applySizeData","update","resizePercent","isEqual","commands","updateAttributes","useEffect","selection","state","onlyThisNodeSelected","from","nodeSize","to","imageHandling","insertImageRequested","finish","InsertImageHandler","resizeHandle","addEventListener","initResize","removeEventListener","onDelete","loadImage","box","style","w","Math","min","h","naturalHeight","updateAspect","initial","next","keepAspect","undefined","resizeType","ratio","startResize","bounds","target","getBoundingClientRect","clientX","clientY","onChange","newValues","stopResize","window","objectFit","flexAlign","center","right","alignment","createElement","NodeViewWrapper","loaded","deleteStatus","justifyContent","mode","value","percent","_extends2","ref","src","onLoad","className","zIndex","background","boxShadow","showDone","onDone","_props$imageHandling","focus","disableImageAlignmentButtons","imageLoaded","propTypes","PropTypes","object","isRequired","func","number","_default","exports"],"sources":["../../src/extensions/image-component.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash-es/isEqual';\nimport debug from 'debug';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { styled } from '@mui/material/styles';\nimport { NodeViewWrapper } from '@tiptap/react';\nimport InsertImageHandler from '../components/image/InsertImageHandler';\nimport ImageToolbar from '../components/image/ImageToolbar';\nimport CustomToolbarWrapper from './custom-toolbar-wrapper';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst StyledProgress = styled(LinearProgress, {\n shouldForwardProp: (prop) => prop !== 'hideProgress',\n})(({ hideProgress }) => ({\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n ...(hideProgress && {\n opacity: 0,\n }),\n}));\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['active', 'loading', 'pendingDelete'].includes(prop),\n})(({ theme, active, loading, pendingDelete }) => ({\n position: 'relative',\n border: active ? `solid 1px ${theme.palette.primary.main}` : `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n ...(loading && {\n opacity: 0.3,\n }),\n ...(pendingDelete && {\n opacity: 0.3,\n }),\n}));\n\nconst StyledImageContainer = styled('div')(({ theme }) => ({\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n '&&:hover > .resize': {\n display: 'block',\n },\n}));\n\nconst StyledResize = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n}));\n\nconst sizePx = (s) => (s ? `${s}px` : 'calc(20px)');\n\nfunction ImageComponent(props) {\n const {\n node,\n editor,\n attributes,\n onFocus,\n selected,\n options,\n maxImageWidth = 700,\n maxImageHeight = 900,\n latex,\n handleChange,\n handleDone,\n } = props;\n const { alt } = node.attrs;\n\n const [showToolbar, setShowToolbar] = useState(false);\n\n const latestNodeRef = useRef(node);\n const imgRef = useRef(null);\n const resizeRef = useRef(null);\n const toolbarRef = useRef(null);\n\n const getPercentFromWidth = useCallback((width) => {\n const floored = (width / imgRef.current.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n }, []);\n\n const applySizeData = useCallback(() => {\n if (!node.attrs.width || !imgRef.current) return;\n\n const update = {\n ...node.attrs,\n resizePercent: getPercentFromWidth(node.attrs.width),\n };\n\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }, [editor, node.attrs, getPercentFromWidth]);\n\n // keep ref in sync with latest node\n useEffect(() => {\n latestNodeRef.current = node;\n }, [node]);\n\n useEffect(() => {\n const { selection } = editor.state;\n const onlyThisNodeSelected = selection.from + node.nodeSize === selection.to;\n\n if (selected) {\n if (onlyThisNodeSelected) {\n setShowToolbar(selected);\n }\n } else {\n setShowToolbar(selected);\n }\n }, [editor, node, selected]);\n\n useEffect(() => {\n options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, node, finish));\n applySizeData();\n\n const resizeHandle = resizeRef.current;\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', initResize, false);\n }\n return () => {\n if (resizeHandle) {\n resizeHandle.removeEventListener('mousedown', initResize, false);\n }\n\n options.imageHandling.onDelete(latestNodeRef.current);\n };\n }, []);\n\n useEffect(() => {\n applySizeData();\n });\n\n const loadImage = useCallback(() => {\n const box = imgRef.current;\n if (!box) return;\n\n if (!box.style.width || box.style.width === 'calc(20px)') {\n const w = Math.min(box.naturalWidth, maxImageWidth);\n const h = Math.min(box.naturalHeight, maxImageHeight);\n\n box.style.width = `${w}px`;\n box.style.height = `${h}px`;\n\n const update = { width: w, height: h };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n }, [editor, node.attrs, maxImageWidth, maxImageHeight]);\n\n const updateAspect = (initial, next, keepAspect = true, resizeType) => {\n if (keepAspect) {\n const ratio = initial.width / initial.height;\n if (resizeType === 'height') return { width: next.height * ratio, height: next.height };\n return { width: next.width, height: next.width / ratio };\n }\n return next;\n };\n\n const startResize = useCallback(\n (e) => {\n const box = imgRef.current;\n if (!box) return;\n\n const bounds = e.target.getBoundingClientRect();\n const initial = { width: box.naturalWidth, height: box.naturalHeight };\n\n const next = updateAspect(initial, {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n });\n\n if (next.width > 50 && next.height > 50 && next.width <= 700 && next.height <= 900) {\n box.style.width = `${next.width}px`;\n box.style.height = `${next.height}px`;\n\n const update = { width: next.width, height: next.height };\n if (!isEqual(update, node.attrs)) {\n editor.commands.updateAttributes('imageUploadNode', update);\n }\n }\n },\n [editor, node.attrs],\n );\n\n const onChange = useCallback(\n (newValues) => {\n editor.commands.updateAttributes('imageUploadNode', newValues);\n },\n [editor],\n );\n\n const stopResize = useCallback(() => {\n window.removeEventListener('mousemove', startResize);\n window.removeEventListener('mouseup', stopResize);\n }, [startResize]);\n\n const initResize = useCallback(() => {\n window.addEventListener('mousemove', startResize);\n window.addEventListener('mouseup', stopResize);\n }, [startResize, stopResize]);\n\n const style = {\n width: sizePx(node.attrs.width),\n height: sizePx(node.attrs.height),\n objectFit: 'contain',\n };\n\n const flexAlign = { left: 'flex-start', center: 'center', right: 'flex-end' }[node.attrs.alignment] || 'flex-start';\n\n return (\n <NodeViewWrapper>\n <StyledRoot\n onFocus={onFocus}\n active={selected}\n loading={!node.attrs.loaded}\n pendingDelete={node.attrs.deleteStatus === 'pending'}\n style={{ justifyContent: flexAlign }}\n >\n <StyledProgress mode=\"determinate\" value={node.attrs.percent || 0} hideProgress={node.attrs.loaded} />\n\n <StyledImageContainer>\n <img\n {...attributes}\n ref={imgRef}\n src={node.attrs.src}\n style={style}\n onLoad={loadImage}\n alt={node.attrs.alt}\n />\n <StyledResize ref={resizeRef} className=\"resize\" />\n </StyledImageContainer>\n </StyledRoot>\n\n {showToolbar && (\n <div\n ref={toolbarRef}\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n zIndex: 20,\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n width: '100%',\n }}\n >\n <CustomToolbarWrapper\n showDone\n {...options}\n onDone={() => {\n setShowToolbar(false);\n props.imageHandling?.onDone();\n props.editor.commands.focus('end');\n }}\n >\n <ImageToolbar\n disableImageAlignmentButtons={options.disableImageAlignmentButtons}\n alt={node.attrs.alt}\n imageLoaded={node.attrs.loaded}\n alignment={node.attrs.alignment || 'left'}\n onChange={onChange}\n />\n </CustomToolbarWrapper>\n </div>\n )}\n </NodeViewWrapper>\n );\n}\n\nImageComponent.propTypes = {\n node: PropTypes.object.isRequired,\n editor: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\n};\n\nexport default ImageComponent;\n"],"mappings":"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","ignoreList":[]}
@@ -6,14 +6,17 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.buildExtensions = exports.PLUGINS_MAP = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _lodashEs = require("lodash-es");
9
+ var _compact = _interopRequireDefault(require("lodash-es/compact"));
10
+ var _isEmpty = _interopRequireDefault(require("lodash-es/isEmpty"));
10
11
  var _debug = _interopRequireDefault(require("debug"));
11
12
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
12
13
  var ALL_PLUGINS = exports.ALL_PLUGINS = ['bold',
13
14
  // 'code',
14
15
  'html', 'extraCSSRules', 'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'text-align', 'blockquote', 'h3', 'table', 'video', 'audio', 'responseArea', 'redo', 'undo', 'superscript', 'subscript'];
15
16
  var PLUGINS_MAP = exports.PLUGINS_MAP = {
16
- 'text-align': 'textAlign'
17
+ 'text-align': 'textAlign',
18
+ 'bulleted-list': 'ul_list',
19
+ 'numbered-list': 'ol_list'
17
20
  };
18
21
  var DEFAULT_PLUGINS = exports.DEFAULT_PLUGINS = ALL_PLUGINS.filter(function (plug) {
19
22
  return !['responseArea', 'h3', 'blockquote'].includes(plug);
@@ -28,9 +31,9 @@ var buildExtensions = exports.buildExtensions = function buildExtensions(activeE
28
31
  var imagePlugin = opts.image && opts.image["delete"];
29
32
  var mathPlugin = opts.math;
30
33
  var respAreaPlugin = opts.responseArea && opts.responseArea.type;
31
- var cssPlugin = !(0, _lodashEs.isEmpty)(opts.extraCSSRules);
34
+ var cssPlugin = !(0, _isEmpty["default"])(opts.extraCSSRules);
32
35
  var languageCharactersPlugins = (opts === null || opts === void 0 ? void 0 : opts.languageCharacters) || [];
33
- return (0, _lodashEs.compact)([addIf('table'), addIf('bold'),
36
+ return (0, _compact["default"])([addIf('table'), addIf('bold'),
34
37
  // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
35
38
  addIf('italic'), addIf('strikethrough'), addIf('underline'),
36
39
  // icon should be modifies accordingly
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_lodashEs","require","_debug","_interopRequireDefault","log","debug","ALL_PLUGINS","exports","PLUGINS_MAP","DEFAULT_PLUGINS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","arguments","length","undefined","imagePlugin","image","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","isEmpty","extraCSSRules","languageCharactersPlugins","languageCharacters","compact","concat","_toConsumableArray2","map","plugin","html"],"sources":["../../src/extensions/index.js"],"sourcesContent":["import { compact, isEmpty } from 'lodash-es';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\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 PLUGINS_MAP = {\n 'text-align': 'textAlign',\n};\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_PLUGINS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.delete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', !!imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', !!mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', !!respAreaPlugin),\n addIf('css', !!cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_compact","_interopRequireDefault","require","_isEmpty","_debug","log","debug","ALL_PLUGINS","exports","PLUGINS_MAP","DEFAULT_PLUGINS","filter","plug","includes","buildExtensions","activeExtensions","customExtensions","opts","addIf","key","shouldAdd","arguments","length","undefined","imagePlugin","image","mathPlugin","math","respAreaPlugin","responseArea","type","cssPlugin","isEmpty","extraCSSRules","languageCharactersPlugins","languageCharacters","compact","concat","_toConsumableArray2","map","plugin","html"],"sources":["../../src/extensions/index.js"],"sourcesContent":["import compact from 'lodash-es/compact';\nimport isEmpty from 'lodash-es/isEmpty';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins');\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 PLUGINS_MAP = {\n 'text-align': 'textAlign',\n 'bulleted-list': 'ul_list',\n 'numbered-list': 'ol_list',\n};\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => !['responseArea', 'h3', 'blockquote'].includes(plug));\n\nexport const buildExtensions = (activeExtensions, customExtensions, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activeExtensions = activeExtensions || DEFAULT_PLUGINS;\n\n const addIf = (key, shouldAdd = true) => activeExtensions.includes(key) && shouldAdd && key;\n\n const imagePlugin = opts.image && opts.image.delete;\n const mathPlugin = opts.math;\n const respAreaPlugin = opts.responseArea && opts.responseArea.type;\n const cssPlugin = !isEmpty(opts.extraCSSRules);\n\n const languageCharactersPlugins = opts?.languageCharacters || [];\n\n return compact([\n addIf('table'),\n addIf('bold'),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic'),\n addIf('strikethrough'),\n addIf('underline'),\n // icon should be modifies accordingly\n addIf('superscript'),\n // icon should be modifies accordingly\n addIf('subscript'),\n addIf('image', !!imagePlugin),\n addIf('video'),\n addIf('audio'),\n addIf('math', !!mathPlugin),\n ...languageCharactersPlugins.map((plugin) => addIf('languageCharacters', plugin)),\n addIf('text-align'),\n addIf('blockquote'),\n addIf('h3'),\n addIf('bulleted-list'),\n addIf('numbered-list'),\n addIf('undo'),\n addIf('redo'),\n addIf('responseArea', !!respAreaPlugin),\n addIf('css', !!cssPlugin),\n addIf('html', !!opts.html),\n ]);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -201,18 +201,21 @@ function MediaNodeView(_ref4) {
201
201
  }));
202
202
  };
203
203
  (0, _react.useEffect)(function () {
204
- insertDialog(_objectSpread(_objectSpread({}, node.attrs), {}, {
205
- options: options,
206
- edit: true,
207
- callback: function callback(val, data) {
208
- if (val) {
209
- updateAttributes(data);
210
- } else {
211
- deleteNode();
204
+ // Only open dialog for newly inserted media without a src
205
+ if (!src) {
206
+ insertDialog(_objectSpread(_objectSpread({}, node.attrs), {}, {
207
+ options: options,
208
+ edit: true,
209
+ callback: function callback(val, data) {
210
+ if (val) {
211
+ updateAttributes(data);
212
+ } else {
213
+ deleteNode();
214
+ }
215
+ editor.chain().focus().run();
212
216
  }
213
- editor.chain().focus().run();
214
- }
215
- }));
217
+ }));
218
+ }
216
219
  }, []);
217
220
  return /*#__PURE__*/_react["default"].createElement(_react2.NodeViewWrapper, {
218
221
  "data-type": type,
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_MediaDialog","_MediaToolbar","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Media","exports","Node","create","name","group","inline","atom","addAttributes","type","src","width","height","title","starts","ends","editing","tag","url","parseHTML","getAttrs","el","getAttribute","dataset","_el$querySelector","querySelector","renderHTML","_ref","HTMLAttributes","controls","controlsList","mergeAttributes","frameborder","allow","allowfullscreen","addCommands","_this","insertMedia","attrs","_ref2","commands","insertContent","updateMedia","_ref3","updateAttributes","addNodeView","_this2","ReactNodeViewRenderer","props","createElement","MediaNodeView","options","removeDialogs","prevDialogs","document","querySelectorAll","s","remove","insertDialog","newEl","callback","rest","_objectWithoutProperties2","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","_extends2","uploadSoundSupport","disablePortal","open","ReactDOM","render","appendChild","_ref4","editor","node","deleteNode","_node$attrs","handleEdit","edit","chain","focus","run","useEffect","NodeViewWrapper","allowFullScreen","frameBorder","onEdit","onRemove"],"sources":["../../src/extensions/media.js"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { mergeAttributes, Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport MediaDialog from '../components/media/MediaDialog';\nimport MediaToolbar from '../components/media/MediaToolbar';\n\nexport const Media = Node.create({\n name: 'media',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n type: { default: 'video' },\n src: { default: null },\n width: { default: null },\n height: { default: null },\n title: { default: null },\n starts: { default: null },\n ends: { default: null },\n editing: { default: false },\n tag: { default: 'iframe' }, // 'iframe' or 'audio'\n url: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[data-type=\"video\"]',\n getAttrs: (el) => ({\n type: 'video',\n tag: 'iframe',\n src: el.getAttribute('src'),\n width: el.getAttribute('width'),\n height: el.getAttribute('height'),\n title: el.dataset.title,\n starts: el.dataset.starts,\n ends: el.dataset.ends,\n url: el.dataset.url,\n }),\n },\n {\n tag: 'audio',\n getAttrs: (el) => ({\n type: 'audio',\n tag: 'audio',\n src: el.querySelector('source')?.getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n const { tag, src, width, height } = HTMLAttributes;\n\n if (tag === 'audio') {\n return ['audio', { controls: 'controls', controlsList: 'nodownload' }, ['source', { src, type: 'audio/mp3' }]];\n }\n\n return [\n 'iframe',\n mergeAttributes(\n {\n 'data-type': 'video',\n frameborder: '0',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n allowfullscreen: '',\n src,\n },\n width ? { width } : {},\n height ? { height } : {},\n ),\n ];\n },\n\n addCommands() {\n return {\n insertMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContent({ type: this.name, attrs });\n },\n updateMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.updateAttributes(this.name, attrs);\n },\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MediaNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nexport const insertDialog = (props) => {\n const newEl = document.createElement('div');\n const { type, callback, options, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={options.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nexport default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }) {\n const { type, src, width, height, tag } = node.attrs;\n\n const handleEdit = () => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n }\n\n editor.chain().focus().run();\n },\n });\n };\n\n useEffect(() => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n } else {\n deleteNode();\n }\n\n editor.chain().focus().run();\n },\n });\n }, []);\n\n return (\n <NodeViewWrapper data-type={type} style={{ width, height }}>\n {tag === 'audio' ? (\n <audio controls controlsList=\"nodownload\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n ) : (\n <iframe src={src} allowFullScreen frameBorder=\"0\" />\n )}\n\n <MediaToolbar onEdit={handleEdit} onRemove={deleteNode} />\n </NodeViewWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"media.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_core","_react2","_MediaDialog","_MediaToolbar","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","Media","exports","Node","create","name","group","inline","atom","addAttributes","type","src","width","height","title","starts","ends","editing","tag","url","parseHTML","getAttrs","el","getAttribute","dataset","_el$querySelector","querySelector","renderHTML","_ref","HTMLAttributes","controls","controlsList","mergeAttributes","frameborder","allow","allowfullscreen","addCommands","_this","insertMedia","attrs","_ref2","commands","insertContent","updateMedia","_ref3","updateAttributes","addNodeView","_this2","ReactNodeViewRenderer","props","createElement","MediaNodeView","options","removeDialogs","prevDialogs","document","querySelectorAll","s","remove","insertDialog","newEl","callback","rest","_objectWithoutProperties2","initialBodyOverflow","body","style","overflow","className","handleClose","val","data","_extends2","uploadSoundSupport","disablePortal","open","ReactDOM","render","appendChild","_ref4","editor","node","deleteNode","_node$attrs","handleEdit","edit","chain","focus","run","useEffect","NodeViewWrapper","allowFullScreen","frameBorder","onEdit","onRemove"],"sources":["../../src/extensions/media.js"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { mergeAttributes, Node } from '@tiptap/core';\nimport { NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react';\nimport MediaDialog from '../components/media/MediaDialog';\nimport MediaToolbar from '../components/media/MediaToolbar';\n\nexport const Media = Node.create({\n name: 'media',\n group: 'inline',\n inline: true,\n atom: true,\n\n addAttributes() {\n return {\n type: { default: 'video' },\n src: { default: null },\n width: { default: null },\n height: { default: null },\n title: { default: null },\n starts: { default: null },\n ends: { default: null },\n editing: { default: false },\n tag: { default: 'iframe' }, // 'iframe' or 'audio'\n url: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'iframe[data-type=\"video\"]',\n getAttrs: (el) => ({\n type: 'video',\n tag: 'iframe',\n src: el.getAttribute('src'),\n width: el.getAttribute('width'),\n height: el.getAttribute('height'),\n title: el.dataset.title,\n starts: el.dataset.starts,\n ends: el.dataset.ends,\n url: el.dataset.url,\n }),\n },\n {\n tag: 'audio',\n getAttrs: (el) => ({\n type: 'audio',\n tag: 'audio',\n src: el.querySelector('source')?.getAttribute('src'),\n }),\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n const { tag, src, width, height } = HTMLAttributes;\n\n if (tag === 'audio') {\n return ['audio', { controls: 'controls', controlsList: 'nodownload' }, ['source', { src, type: 'audio/mp3' }]];\n }\n\n return [\n 'iframe',\n mergeAttributes(\n {\n 'data-type': 'video',\n frameborder: '0',\n allow: 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n allowfullscreen: '',\n src,\n },\n width ? { width } : {},\n height ? { height } : {},\n ),\n ];\n },\n\n addCommands() {\n return {\n insertMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContent({ type: this.name, attrs });\n },\n updateMedia:\n (attrs) =>\n ({ commands }) => {\n return commands.updateAttributes(this.name, attrs);\n },\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <MediaNodeView {...{ ...props, options: this.options }} />);\n },\n});\n\nconst removeDialogs = () => {\n const prevDialogs = document.querySelectorAll('.insert-media-dialog');\n\n prevDialogs.forEach((s) => s.remove());\n};\n\nexport const insertDialog = (props) => {\n const newEl = document.createElement('div');\n const { type, callback, options, ...rest } = props;\n const initialBodyOverflow = document.body.style.overflow;\n\n removeDialogs();\n\n newEl.className = 'insert-media-dialog';\n document.body.style.overflow = 'hidden';\n\n const handleClose = (val, data) => {\n callback(val, data);\n newEl.remove();\n document.body.style.overflow = initialBodyOverflow;\n };\n\n const el = (\n <MediaDialog\n {...rest}\n uploadSoundSupport={options.uploadSoundSupport}\n type={type}\n disablePortal={true}\n open={true}\n handleClose={handleClose}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n};\n\nexport default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }) {\n const { type, src, width, height, tag } = node.attrs;\n\n const handleEdit = () => {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n }\n\n editor.chain().focus().run();\n },\n });\n };\n\n useEffect(() => {\n // Only open dialog for newly inserted media without a src\n if (!src) {\n insertDialog({\n ...node.attrs,\n options: options,\n edit: true,\n callback: (val, data) => {\n if (val) {\n updateAttributes(data);\n } else {\n deleteNode();\n }\n\n editor.chain().focus().run();\n },\n });\n }\n }, []);\n\n return (\n <NodeViewWrapper data-type={type} style={{ width, height }}>\n {tag === 'audio' ? (\n <audio controls controlsList=\"nodownload\">\n <source type=\"audio/mp3\" src={src} />\n </audio>\n ) : (\n <iframe src={src} allowFullScreen frameBorder=\"0\" />\n )}\n\n <MediaToolbar onEdit={handleEdit} onRemove={deleteNode} />\n </NodeViewWrapper>\n );\n}\n"],"mappings":"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","ignoreList":[]}