@pie-lib/editable-html 13.0.7 → 13.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -22
- package/lib/__tests__/editor-utils.test.js +164 -0
- package/lib/__tests__/editor-utils.test.js.map +1 -0
- package/lib/__tests__/serialization.test.js +241 -0
- package/lib/__tests__/serialization.test.js.map +1 -0
- package/lib/__tests__/utils.js +79 -0
- package/lib/__tests__/utils.js.map +1 -0
- package/lib/plugins/image/__tests__/component.test.js +96 -0
- package/lib/plugins/image/__tests__/component.test.js.map +1 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +131 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js.map +1 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js +21 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js.map +1 -0
- package/lib/plugins/image/__tests__/index.test.js +86 -0
- package/lib/plugins/image/__tests__/index.test.js.map +1 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +112 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js.map +1 -0
- package/lib/plugins/image/__tests__/mock-change.js +22 -0
- package/lib/plugins/image/__tests__/mock-change.js.map +1 -0
- package/lib/plugins/list/__tests__/index.test.js +63 -0
- package/lib/plugins/list/__tests__/index.test.js.map +1 -0
- package/lib/plugins/math/__tests__/index.test.js +284 -0
- package/lib/plugins/math/__tests__/index.test.js.map +1 -0
- package/lib/plugins/media/__tests__/index.test.js +69 -0
- package/lib/plugins/media/__tests__/index.test.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +93 -0
- package/lib/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js.map +1 -0
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +3 -0
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/math-templated/index.js +2 -2
- package/lib/plugins/respArea/math-templated/index.js.map +1 -1
- package/lib/plugins/table/__tests__/index.test.js +416 -0
- package/lib/plugins/table/__tests__/index.test.js.map +1 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js +81 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +153 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +47 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +112 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js.map +1 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +118 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js.map +1 -0
- package/lib/shared/alert-dialog.js +68 -0
- package/package.json +7 -7
- package/src/__tests__/utils.js +1 -1
- package/src/plugins/respArea/drag-in-the-blank/__tests__/choice.test.js +71 -0
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +3 -0
- package/src/plugins/respArea/math-templated/index.jsx +1 -1
- package/LICENSE.md +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_core","_renderUi","_mathRendering","_styles","_icons","_utils","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","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","minWidth","color","correct","error","primaryDark","BlankContent","_ref2","_dragItem$value2","_dragItem$value3","children","isDragging","isOver","dragItem","value","externalStyle","style","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","_dragItem$value","currentContent","renderMath","id","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","hasContent","containsHTML","test","spanProps","key","createElement","ref","display","minHeight","background","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","boxSizing","borderRadius","overflow","position","padding","undefined","contentEditable","GripIcon","top","left","_extends2","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","func","bool","disabled","DragDropChoice","_ref3","_dragItem$data","instanceId","nodeProps","opts","_useDraggable","useDraggable","data","type","fromChoice","onRemove","draggedData","onRemoveResponse","onDrop","dropData","isValidBlank","onValueChange","options","duplicates","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","content","className","classnames","string","isRequired","shape","_default","exports"],"sources":["../../../../src/plugins/respArea/drag-in-the-blank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\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';\n\nimport { GripIcon } from '../icons';\nimport { onRemoveResponse, onValueChange } from './utils';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n '&.chip': {\n minWidth: '90px',\n },\n '&.correct': {\n border: `solid 1px ${color.correct()}`,\n },\n '&.incorrect': {\n border: `solid 1px ${theme.palette.error.main}`,\n },\n '&.selected': {\n border: `2px solid ${color.primaryDark()} !important`,\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, style: externalStyle }) {\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 // Render math for the current value or preview\n const currentContent = (isOver && dragItem?.value?.value) || value?.value;\n\n if (!currentContent) return;\n\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.id, value?.value, isOver, dragItem?.value?.id, 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 && dragItem.value && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n const hasContent = finalLabel !== '\\u00A0';\n const containsHTML = hasContent && /<[^>]+>/.test(finalLabel);\n\n const spanProps = {\n key: `${n.key}-${isPreview ? 'preview' : 'value'}`,\n ...(hasContent && { 'data-latex': '', 'data-raw': finalLabel }),\n };\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 ...externalStyle,\n }}\n data-key={n.key}\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 {containsHTML ? (\n <span {...spanProps} dangerouslySetInnerHTML={{ __html: finalLabel }} />\n ) : (\n <span {...spanProps}>{finalLabel}</span>\n )}\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n disabled: PropTypes.bool,\n style: PropTypes.object,\n};\n\nfunction DragDropChoice({ value, disabled, instanceId, children, n, nodeProps, opts }) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.key}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.key}`,\n value,\n instanceId,\n nodeProps,\n n,\n opts,\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => onRemoveResponse(nodeProps, draggedData.value),\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 onValueChange(nodeProps, n, draggedData.value);\n\n if (!opts.options.duplicates && draggedData.fromChoice) {\n onRemoveResponse(nodeProps, draggedData.value);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.key}`,\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.key}`,\n nodeProps,\n n,\n opts,\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 onValueChange(nodeProps, n, draggedData.value);\n\n if (!opts.options.duplicates && draggedData.fromChoice) {\n onRemoveResponse(nodeProps, draggedData.value);\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 onRemoveResponse(nodeProps, dropData.value);\n\n // set new blank value\n onValueChange(nodeProps, n, draggedData.value);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => onRemoveResponse(nodeProps, draggedData.value), 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 disabled={disabled}\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 nodeProps: PropTypes.object.isRequired,\n opts: PropTypes.shape({\n options: PropTypes.shape({\n duplicates: PropTypes.bool,\n }),\n }).isRequired,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"choice.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_core","_renderUi","_mathRendering","_styles","_icons","_utils","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","StyledContent","styled","_ref","theme","border","concat","palette","primary","main","fontSize","minWidth","color","correct","error","primaryDark","BlankContent","_ref2","_dragItem$value2","_dragItem$value3","children","isDragging","isOver","dragItem","value","externalStyle","style","_useState","useState","_useState2","_slicedToArray2","hoveredElementSize","setHoveredElementSize","elementRef","useRef","handleClick","event","current","contains","target","classList","add","remove","useEffect","document","addEventListener","removeEventListener","_dragItem$value","currentContent","renderMath","id","node","width","offsetWidth","height","offsetHeight","label","finalLabel","hasGrip","isPreview","hasContent","containsHTML","test","spanProps","key","createElement","ref","display","minHeight","background","defaults","BORDER_LIGHT","WHITE","BORDER_DARK","boxSizing","borderRadius","overflow","position","padding","undefined","contentEditable","GripIcon","top","left","_extends2","dangerouslySetInnerHTML","__html","propTypes","PropTypes","object","func","bool","disabled","DragDropChoice","_ref3","_dragItem$data","instanceId","nodeProps","opts","_useDraggable","useDraggable","data","type","fromChoice","onRemove","draggedData","onRemoveResponse","onDrop","dropData","isValidBlank","onValueChange","options","duplicates","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setTimeout","setDropNodeRef","active","dragContent","dragEl","content","className","classnames","string","isRequired","shape","_default","exports"],"sources":["../../../../src/plugins/respArea/drag-in-the-blank/choice.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\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';\n\nimport { GripIcon } from '../icons';\nimport { onRemoveResponse, onValueChange } from './utils';\n\nconst StyledContent = styled('span')(({ theme }) => ({\n border: `solid 0px ${theme.palette.primary.main}`,\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n '& mjx-mn:has(~ mjx-mfrac), mjx-mfrac ~ mjx-mn': {\n fontSize: '120% !important',\n },\n '&.chip': {\n minWidth: '90px',\n },\n '&.correct': {\n border: `solid 1px ${color.correct()}`,\n },\n '&.incorrect': {\n border: `solid 1px ${theme.palette.error.main}`,\n },\n '&.selected': {\n border: `2px solid ${color.primaryDark()} !important`,\n },\n}));\n\nexport function BlankContent({ n, children, isDragging, isOver, dragItem, value, style: externalStyle }) {\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 // Render math for the current value or preview\n const currentContent = (isOver && dragItem?.value?.value) || value?.value;\n\n if (!currentContent) return;\n\n if (elementRef.current && typeof renderMath === 'function') {\n renderMath(elementRef.current);\n }\n }, [value?.id, value?.value, isOver, dragItem?.value?.id, 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 && dragItem.value && isOver ? dragItem.value.value : value.value || '\\u00A0';\n const finalLabel = isDragging ? '\\u00A0' : label;\n const hasGrip = finalLabel !== '\\u00A0';\n const isPreview = dragItem && isOver;\n const hasContent = finalLabel !== '\\u00A0';\n const containsHTML = hasContent && /<[^>]+>/.test(finalLabel);\n\n const spanProps = {\n key: `${n.key}-${isPreview ? 'preview' : 'value'}`,\n ...(hasContent && { 'data-latex': '', 'data-raw': finalLabel }),\n };\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 ...externalStyle,\n }}\n data-key={n.key}\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 {containsHTML ? (\n <span {...spanProps} dangerouslySetInnerHTML={{ __html: finalLabel }} />\n ) : (\n <span {...spanProps}>{finalLabel}</span>\n )}\n {children}\n </div>\n );\n}\n\nBlankContent.propTypes = {\n n: PropTypes.object,\n children: PropTypes.func,\n isDragging: PropTypes.bool,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n value: PropTypes.object,\n disabled: PropTypes.bool,\n style: PropTypes.object,\n};\n\nfunction DragDropChoice({ value, disabled, instanceId, children, n, nodeProps, opts }) {\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `drag-${n.key}`,\n disabled: disabled || !value?.value,\n data: {\n id: `drag-${n.key}`,\n value,\n instanceId,\n nodeProps,\n n,\n opts,\n type: 'drag-in-the-blank-placed-choice',\n fromChoice: !value,\n onRemove: (draggedData) => onRemoveResponse(nodeProps, draggedData.value),\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 onValueChange(nodeProps, n, draggedData.value);\n\n if (!opts.options.duplicates && draggedData.fromChoice) {\n onRemoveResponse(nodeProps, draggedData.value);\n }\n },\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `drop-${n.key}`,\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.key}`,\n nodeProps,\n n,\n opts,\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 onValueChange(nodeProps, n, draggedData.value);\n\n if (!opts.options.duplicates && draggedData.fromChoice) {\n onRemoveResponse(nodeProps, draggedData.value);\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 onRemoveResponse(nodeProps, dropData.value);\n\n // set new blank value\n onValueChange(nodeProps, n, draggedData.value);\n\n // clear original blank - slight delay to ensure state updates correctly\n setTimeout(() => onRemoveResponse(nodeProps, draggedData.value), 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 disabled={disabled}\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 nodeProps: PropTypes.object.isRequired,\n opts: PropTypes.shape({\n options: PropTypes.shape({\n duplicates: PropTypes.bool,\n }),\n }).isRequired,\n};\n\nexport default DragDropChoice;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _styles = require("@mui/material/styles");
|
|
11
|
-
var
|
|
11
|
+
var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
|
|
12
12
|
var StyledSpanContainer = (0, _styles.styled)('span')(function () {
|
|
13
13
|
return {
|
|
14
14
|
display: 'inline-flex',
|
|
@@ -99,7 +99,7 @@ var MathTemplated = function MathTemplated(_ref2) {
|
|
|
99
99
|
var attributes = _ref2.attributes,
|
|
100
100
|
value = _ref2.value,
|
|
101
101
|
keyToDisplay = _ref2.keyToDisplay;
|
|
102
|
-
return /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(
|
|
102
|
+
return /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(_mathInputMathlive.mq.Static, {
|
|
103
103
|
latex: value
|
|
104
104
|
})));
|
|
105
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_mathInputMathlive","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","_ref2","attributes","value","keyToDisplay","createElement","mq","Static","latex","propTypes","PropTypes","object","string","_default","exports"],"sources":["../../../../src/plugins/respArea/math-templated/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { mq } from '@pie-lib/math-input-mathlive';\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}));\n\nconst MathTemplated = ({ attributes, value, keyToDisplay }) => (\n <StyledSpanContainer {...attributes}>\n <StyledResponseBox>{keyToDisplay}</StyledResponseBox>\n <StyledMathBlock>\n <mq.Static latex={value} />\n </StyledMathBlock>\n </StyledSpanContainer>\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":[]}
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
var _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
|
|
6
|
+
var _index = _interopRequireWildcard(require("../index"));
|
|
7
|
+
var _slate = require("slate");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
+
jest.mock('slate-edit-table', function () {
|
|
11
|
+
var mock = {
|
|
12
|
+
"default": jest.fn().mockReturnThis(),
|
|
13
|
+
utils: {
|
|
14
|
+
isSelectionInTable: jest.fn().mockReturnValue(true),
|
|
15
|
+
createTable: jest.fn(function (c) {
|
|
16
|
+
return {
|
|
17
|
+
toJSON: jest.fn().mockReturnValue({
|
|
18
|
+
object: 'block',
|
|
19
|
+
type: 'table'
|
|
20
|
+
})
|
|
21
|
+
};
|
|
22
|
+
})
|
|
23
|
+
},
|
|
24
|
+
changes: {
|
|
25
|
+
insertTable: jest.fn(function (c) {
|
|
26
|
+
return c;
|
|
27
|
+
})
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
return jest.fn().mockReturnValue(mock);
|
|
31
|
+
});
|
|
32
|
+
describe('table', function () {
|
|
33
|
+
describe('toolbar', function () {
|
|
34
|
+
describe('onClick', function () {
|
|
35
|
+
var plugin;
|
|
36
|
+
var onChange;
|
|
37
|
+
var findDescendant;
|
|
38
|
+
var insertBlock;
|
|
39
|
+
var changeMock;
|
|
40
|
+
beforeEach(function () {
|
|
41
|
+
plugin = (0, _index["default"])();
|
|
42
|
+
onChange = jest.fn();
|
|
43
|
+
insertBlock = jest.fn();
|
|
44
|
+
findDescendant = jest.fn();
|
|
45
|
+
changeMock = jest.fn().mockReturnValue({
|
|
46
|
+
insertBlock: insertBlock,
|
|
47
|
+
value: {
|
|
48
|
+
document: {
|
|
49
|
+
findDescendant: findDescendant
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it('calls utils.createTable', function () {
|
|
55
|
+
plugin.toolbar.onClick({
|
|
56
|
+
change: changeMock
|
|
57
|
+
}, onChange);
|
|
58
|
+
expect((0, _slateEditTable["default"])().utils.createTable).toHaveBeenCalledWith(2, 2);
|
|
59
|
+
});
|
|
60
|
+
it('creates table with border: 1 as default', function () {
|
|
61
|
+
plugin.toolbar.onClick({
|
|
62
|
+
change: changeMock
|
|
63
|
+
}, onChange);
|
|
64
|
+
expect(insertBlock).toHaveBeenCalledWith(_slate.Block.create({
|
|
65
|
+
key: '2',
|
|
66
|
+
type: 'table',
|
|
67
|
+
data: {
|
|
68
|
+
border: '1',
|
|
69
|
+
newTable: true
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
});
|
|
73
|
+
it('moves cursor to first cell of the table and removes the newTable property', function () {
|
|
74
|
+
var dataRemoveFn = jest.fn().mockReturnValue({
|
|
75
|
+
border: '1'
|
|
76
|
+
});
|
|
77
|
+
var setNodeByKey = jest.fn();
|
|
78
|
+
var newTableBlock = {
|
|
79
|
+
key: '2',
|
|
80
|
+
data: {
|
|
81
|
+
remove: dataRemoveFn
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var collapseToStartOf = jest.fn();
|
|
85
|
+
changeMock = jest.fn().mockReturnValue({
|
|
86
|
+
insertBlock: insertBlock,
|
|
87
|
+
collapseToStartOf: collapseToStartOf,
|
|
88
|
+
setNodeByKey: setNodeByKey,
|
|
89
|
+
value: {
|
|
90
|
+
document: {
|
|
91
|
+
findDescendant: jest.fn().mockReturnValue(newTableBlock)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
plugin.toolbar.onClick({
|
|
96
|
+
change: changeMock
|
|
97
|
+
}, onChange);
|
|
98
|
+
expect(collapseToStartOf).toHaveBeenCalledWith(newTableBlock);
|
|
99
|
+
expect(dataRemoveFn).toHaveBeenCalledWith('newTable');
|
|
100
|
+
expect(setNodeByKey).toHaveBeenCalledWith('2', {
|
|
101
|
+
data: {
|
|
102
|
+
border: '1'
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('supports', function () {
|
|
108
|
+
var assertSupports = function assertSupports(inTable, object, expected) {
|
|
109
|
+
it("inTable: ".concat(inTable, ", type: ").concat(object, " => ").concat(expected), function () {
|
|
110
|
+
(0, _slateEditTable["default"])().utils.isSelectionInTable.mockReturnValue(inTable);
|
|
111
|
+
var plugin = (0, _index["default"])();
|
|
112
|
+
var supports = plugin.toolbar.supports({
|
|
113
|
+
object: object
|
|
114
|
+
});
|
|
115
|
+
expect(supports).toEqual(expected);
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
assertSupports(true, 'block', true);
|
|
119
|
+
assertSupports(false, 'block', false);
|
|
120
|
+
assertSupports(true, 'inline', false);
|
|
121
|
+
assertSupports(false, 'inline', false);
|
|
122
|
+
});
|
|
123
|
+
describe('customToolbar', function () {
|
|
124
|
+
describe('toggleBorder', function () {
|
|
125
|
+
var assertToggle = function assertToggle(border, expectedBorder) {
|
|
126
|
+
describe("with initial border of ".concat(border), function () {
|
|
127
|
+
var change;
|
|
128
|
+
var done;
|
|
129
|
+
beforeEach(function () {
|
|
130
|
+
var plugin = (0, _index["default"])();
|
|
131
|
+
change = {
|
|
132
|
+
setNodeByKey: jest.fn().mockReturnThis()
|
|
133
|
+
};
|
|
134
|
+
plugin.utils.getTableBlock = jest.fn().mockReturnValue({
|
|
135
|
+
key: 'tableKey',
|
|
136
|
+
data: _slate.Data.create({
|
|
137
|
+
border: border
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
var node = {
|
|
141
|
+
key: 'nodeKey'
|
|
142
|
+
};
|
|
143
|
+
var value = {
|
|
144
|
+
change: jest.fn().mockReturnValue(change)
|
|
145
|
+
};
|
|
146
|
+
done = jest.fn();
|
|
147
|
+
var Comp = plugin.toolbar.customToolbar(node, value, done);
|
|
148
|
+
var c = Comp();
|
|
149
|
+
c.props.onToggleBorder();
|
|
150
|
+
});
|
|
151
|
+
it("calls setNodeByKey with ".concat(expectedBorder), function () {
|
|
152
|
+
expect(change.setNodeByKey).toHaveBeenCalledWith('tableKey', {
|
|
153
|
+
data: _slate.Data.create({
|
|
154
|
+
border: expectedBorder
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
it('calls onToolbarDone', function () {
|
|
159
|
+
expect(done).toHaveBeenCalledWith(change, false);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
assertToggle(null, '1');
|
|
164
|
+
assertToggle(undefined, '1');
|
|
165
|
+
assertToggle('0', '1');
|
|
166
|
+
assertToggle('1', '0');
|
|
167
|
+
assertToggle('2', '0');
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('normalizeNode', function () {
|
|
171
|
+
it('should exit the function if the node is not of type document', function () {
|
|
172
|
+
var tablePlugin = (0, _index["default"])();
|
|
173
|
+
var returnValue = tablePlugin.normalizeNode({
|
|
174
|
+
object: 'table'
|
|
175
|
+
});
|
|
176
|
+
expect(returnValue).toEqual(undefined);
|
|
177
|
+
});
|
|
178
|
+
it('should exit there are no changes needed', function () {
|
|
179
|
+
var tablePlugin = (0, _index["default"])();
|
|
180
|
+
var nodes = {
|
|
181
|
+
size: 3,
|
|
182
|
+
findLastIndex: jest.fn().mockReturnValue(1)
|
|
183
|
+
};
|
|
184
|
+
var returnValue = tablePlugin.normalizeNode({
|
|
185
|
+
object: 'document',
|
|
186
|
+
nodes: nodes,
|
|
187
|
+
findDescendant: jest.fn().mockReturnValue({
|
|
188
|
+
object: 'block',
|
|
189
|
+
type: 'table'
|
|
190
|
+
}),
|
|
191
|
+
getParent: jest.fn().mockReturnValue(undefined)
|
|
192
|
+
});
|
|
193
|
+
expect(returnValue).toEqual(undefined);
|
|
194
|
+
});
|
|
195
|
+
it('should return a function if a table does not have a node before or after it', function () {
|
|
196
|
+
var tablePlugin = (0, _index["default"])();
|
|
197
|
+
var nodes = [{
|
|
198
|
+
object: 'block',
|
|
199
|
+
type: 'table',
|
|
200
|
+
key: '99',
|
|
201
|
+
data: _slate.Data.create({
|
|
202
|
+
newTable: true
|
|
203
|
+
})
|
|
204
|
+
}];
|
|
205
|
+
var findDescendant = jest.fn(function (callback) {
|
|
206
|
+
nodes.forEach(function (n) {
|
|
207
|
+
return callback(n);
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
var change = {
|
|
211
|
+
insertNodeByPath: jest.fn(),
|
|
212
|
+
value: {
|
|
213
|
+
document: {
|
|
214
|
+
getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0]))
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
var returnValue = tablePlugin.normalizeNode({
|
|
219
|
+
object: 'document',
|
|
220
|
+
findDescendant: findDescendant,
|
|
221
|
+
getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0])),
|
|
222
|
+
getPreviousNode: jest.fn().mockReturnValue(undefined),
|
|
223
|
+
getNextNode: jest.fn().mockReturnValue(undefined)
|
|
224
|
+
});
|
|
225
|
+
expect(returnValue).toEqual(expect.any(Function));
|
|
226
|
+
returnValue(change);
|
|
227
|
+
expect(change.insertNodeByPath).toHaveBeenCalledWith([0], 0, {
|
|
228
|
+
object: 'block',
|
|
229
|
+
type: 'div'
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
describe('parseStyleString', function () {
|
|
236
|
+
var parses = function parses(s, expected) {
|
|
237
|
+
it("parses ".concat(s, " -> ").concat(JSON.stringify(expected)), function () {
|
|
238
|
+
var result = (0, _index.parseStyleString)(s);
|
|
239
|
+
expect(result).toEqual(expected);
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
parses(' width: 10px ', {
|
|
243
|
+
width: '10px'
|
|
244
|
+
});
|
|
245
|
+
parses(' width: 10px; ', {
|
|
246
|
+
width: '10px'
|
|
247
|
+
});
|
|
248
|
+
parses(' border-width: 10px; ', {
|
|
249
|
+
'border-width': '10px'
|
|
250
|
+
});
|
|
251
|
+
parses(' border: solid 1px red; height: 1px', {
|
|
252
|
+
border: 'solid 1px red',
|
|
253
|
+
height: '1px'
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
describe('toStyleString', function () {
|
|
257
|
+
var styleString = function styleString(o, expected) {
|
|
258
|
+
it("".concat(JSON.stringify(s), " -> ").concat(expected), function () {
|
|
259
|
+
var result = toStyleString(o);
|
|
260
|
+
expect(result).toEqual(expected);
|
|
261
|
+
});
|
|
262
|
+
};
|
|
263
|
+
});
|
|
264
|
+
describe('reactAttributes', function () {
|
|
265
|
+
var attributes = function attributes(o, expected) {
|
|
266
|
+
it("".concat(JSON.stringify(o), " -> ").concat(JSON.stringify(expected)), function () {
|
|
267
|
+
var result = (0, _index.reactAttributes)(o);
|
|
268
|
+
expect(result).toEqual(expected);
|
|
269
|
+
});
|
|
270
|
+
};
|
|
271
|
+
attributes({
|
|
272
|
+
'border-width': '10px',
|
|
273
|
+
'line-height': 1.56
|
|
274
|
+
}, {
|
|
275
|
+
borderWidth: '10px',
|
|
276
|
+
lineHeight: '1.56'
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
describe('serialization', function () {
|
|
280
|
+
describe('deserialize', function () {
|
|
281
|
+
var next;
|
|
282
|
+
beforeEach(function () {
|
|
283
|
+
next = jest.fn().mockReturnValue([]);
|
|
284
|
+
});
|
|
285
|
+
describe('table', function () {
|
|
286
|
+
var el;
|
|
287
|
+
var out;
|
|
288
|
+
beforeEach(function () {
|
|
289
|
+
el = {
|
|
290
|
+
tagName: 'table',
|
|
291
|
+
children: [],
|
|
292
|
+
getAttribute: jest.fn(function (name) {
|
|
293
|
+
switch (name) {
|
|
294
|
+
case 'border':
|
|
295
|
+
return '1';
|
|
296
|
+
case 'cellspacing':
|
|
297
|
+
return '2';
|
|
298
|
+
case 'cellpadding':
|
|
299
|
+
return '3';
|
|
300
|
+
case 'class':
|
|
301
|
+
return 'table-class';
|
|
302
|
+
case 'style':
|
|
303
|
+
return 'width: 10px';
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
};
|
|
307
|
+
out = _index.serialization.deserialize(el, next);
|
|
308
|
+
});
|
|
309
|
+
var assertData = function assertData(name, value) {
|
|
310
|
+
it("data.".concat(name, " should eql ").concat(value), function () {
|
|
311
|
+
expect(out.data[name]).toEqual(value);
|
|
312
|
+
});
|
|
313
|
+
};
|
|
314
|
+
assertData('border', '1');
|
|
315
|
+
assertData('cellspacing', '2');
|
|
316
|
+
assertData('cellpadding', '3');
|
|
317
|
+
assertData('class', 'table-class');
|
|
318
|
+
assertData('style', {
|
|
319
|
+
width: '10px'
|
|
320
|
+
});
|
|
321
|
+
it('returns a table block', function () {
|
|
322
|
+
expect(out).toMatchObject({
|
|
323
|
+
object: 'block',
|
|
324
|
+
type: 'table',
|
|
325
|
+
nodes: []
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
});
|
|
329
|
+
it('deserializes tr', function () {
|
|
330
|
+
var el = {
|
|
331
|
+
tagName: 'tr',
|
|
332
|
+
children: []
|
|
333
|
+
};
|
|
334
|
+
var out = _index.serialization.deserialize(el, next);
|
|
335
|
+
expect(out).toEqual({
|
|
336
|
+
object: 'block',
|
|
337
|
+
type: 'table_row',
|
|
338
|
+
nodes: []
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
it('deserializes td', function () {
|
|
342
|
+
var el = {
|
|
343
|
+
tagName: 'td',
|
|
344
|
+
childNodes: [],
|
|
345
|
+
getAttribute: jest.fn(function (name) {
|
|
346
|
+
var o = {
|
|
347
|
+
"class": 'class name',
|
|
348
|
+
colspan: '1',
|
|
349
|
+
rowspan: '1'
|
|
350
|
+
};
|
|
351
|
+
return o[name];
|
|
352
|
+
})
|
|
353
|
+
};
|
|
354
|
+
var out = _index.serialization.deserialize(el, next);
|
|
355
|
+
expect(out).toEqual({
|
|
356
|
+
object: 'block',
|
|
357
|
+
type: 'table_cell',
|
|
358
|
+
nodes: [],
|
|
359
|
+
data: {
|
|
360
|
+
colspan: '1',
|
|
361
|
+
rowspan: '1',
|
|
362
|
+
"class": 'class name',
|
|
363
|
+
header: false
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
describe('serialize', function () {
|
|
369
|
+
it('serializes table', function () {
|
|
370
|
+
var el = _index.serialization.serialize({
|
|
371
|
+
object: 'block',
|
|
372
|
+
type: 'table',
|
|
373
|
+
nodes: [],
|
|
374
|
+
data: _slate.Data.create({
|
|
375
|
+
border: '1',
|
|
376
|
+
cellpadding: '2',
|
|
377
|
+
cellspacing: '3'
|
|
378
|
+
})
|
|
379
|
+
});
|
|
380
|
+
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("table", {
|
|
381
|
+
border: "1",
|
|
382
|
+
cellPadding: "2",
|
|
383
|
+
cellSpacing: "3"
|
|
384
|
+
}, /*#__PURE__*/_react["default"].createElement("tbody", null)));
|
|
385
|
+
});
|
|
386
|
+
it('serializes table_row', function () {
|
|
387
|
+
var el = _index.serialization.serialize({
|
|
388
|
+
object: 'block',
|
|
389
|
+
type: 'table_row',
|
|
390
|
+
nodes: []
|
|
391
|
+
});
|
|
392
|
+
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("tr", null));
|
|
393
|
+
});
|
|
394
|
+
it('serializes table_cell', function () {
|
|
395
|
+
var el = _index.serialization.serialize({
|
|
396
|
+
object: 'block',
|
|
397
|
+
type: 'table_cell',
|
|
398
|
+
nodes: [],
|
|
399
|
+
data: _slate.Data.create({
|
|
400
|
+
header: false,
|
|
401
|
+
style: {
|
|
402
|
+
width: '10px'
|
|
403
|
+
},
|
|
404
|
+
"class": 'foo'
|
|
405
|
+
})
|
|
406
|
+
});
|
|
407
|
+
expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("td", {
|
|
408
|
+
style: {
|
|
409
|
+
width: '10px'
|
|
410
|
+
},
|
|
411
|
+
className: 'foo'
|
|
412
|
+
}));
|
|
413
|
+
});
|
|
414
|
+
});
|
|
415
|
+
});
|
|
416
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","names":["_slateEditTable","_interopRequireDefault","require","_index","_interopRequireWildcard","_slate","_react","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","jest","mock","fn","mockReturnThis","utils","isSelectionInTable","mockReturnValue","createTable","c","toJSON","object","type","changes","insertTable","describe","plugin","onChange","findDescendant","insertBlock","changeMock","beforeEach","TablePlugin","value","document","it","toolbar","onClick","change","expect","EditTable","toHaveBeenCalledWith","Block","create","key","data","border","newTable","dataRemoveFn","setNodeByKey","newTableBlock","remove","collapseToStartOf","assertSupports","inTable","expected","concat","supports","toEqual","assertToggle","expectedBorder","done","getTableBlock","Data","node","Comp","customToolbar","props","onToggleBorder","undefined","tablePlugin","returnValue","normalizeNode","nodes","size","findLastIndex","getParent","callback","forEach","insertNodeByPath","getPath","PathUtils","getPreviousNode","getNextNode","any","Function","parses","s","JSON","stringify","result","parseStyleString","width","height","styleString","toStyleString","attributes","reactAttributes","borderWidth","lineHeight","next","el","out","tagName","children","getAttribute","name","serialization","deserialize","assertData","toMatchObject","childNodes","colspan","rowspan","header","serialize","cellpadding","cellspacing","createElement","cellPadding","cellSpacing","style","className"],"sources":["../../../../src/plugins/table/__tests__/index.test.jsx"],"sourcesContent":["import EditTable from 'slate-edit-table';\nimport TablePlugin, { parseStyleString, reactAttributes, serialization } from '../index';\nimport { Block, Data, PathUtils } from 'slate';\nimport React from 'react';\n\njest.mock('slate-edit-table', () => {\n const mock = {\n default: jest.fn().mockReturnThis(),\n utils: {\n isSelectionInTable: jest.fn().mockReturnValue(true),\n createTable: jest.fn(function (c) {\n return {\n toJSON: jest.fn().mockReturnValue({ object: 'block', type: 'table' }),\n };\n }),\n },\n changes: {\n insertTable: jest.fn(function (c) {\n return c;\n }),\n },\n };\n\n return jest.fn().mockReturnValue(mock);\n});\n\ndescribe('table', () => {\n describe('toolbar', () => {\n describe('onClick', () => {\n let plugin;\n let onChange;\n let findDescendant;\n let insertBlock;\n let changeMock;\n\n beforeEach(() => {\n plugin = TablePlugin();\n onChange = jest.fn();\n insertBlock = jest.fn();\n findDescendant = jest.fn();\n changeMock = jest.fn().mockReturnValue({\n insertBlock,\n value: {\n document: {\n findDescendant,\n },\n },\n });\n });\n\n it('calls utils.createTable', () => {\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(EditTable().utils.createTable).toHaveBeenCalledWith(2, 2);\n });\n\n it('creates table with border: 1 as default', () => {\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(insertBlock).toHaveBeenCalledWith(\n Block.create({ key: '2', type: 'table', data: { border: '1', newTable: true } }),\n );\n });\n\n it('moves cursor to first cell of the table and removes the newTable property', () => {\n const dataRemoveFn = jest.fn().mockReturnValue({ border: '1' });\n const setNodeByKey = jest.fn();\n const newTableBlock = {\n key: '2',\n data: {\n remove: dataRemoveFn,\n },\n };\n const collapseToStartOf = jest.fn();\n\n changeMock = jest.fn().mockReturnValue({\n insertBlock,\n collapseToStartOf,\n setNodeByKey,\n value: {\n document: {\n findDescendant: jest.fn().mockReturnValue(newTableBlock),\n },\n },\n });\n plugin.toolbar.onClick({ change: changeMock }, onChange);\n\n expect(collapseToStartOf).toHaveBeenCalledWith(newTableBlock);\n expect(dataRemoveFn).toHaveBeenCalledWith('newTable');\n expect(setNodeByKey).toHaveBeenCalledWith('2', { data: { border: '1' } });\n });\n });\n\n describe('supports', () => {\n const assertSupports = (inTable, object, expected) => {\n it(`inTable: ${inTable}, type: ${object} => ${expected}`, () => {\n EditTable().utils.isSelectionInTable.mockReturnValue(inTable);\n const plugin = TablePlugin();\n const supports = plugin.toolbar.supports({ object });\n expect(supports).toEqual(expected);\n });\n };\n\n assertSupports(true, 'block', true);\n assertSupports(false, 'block', false);\n assertSupports(true, 'inline', false);\n assertSupports(false, 'inline', false);\n });\n\n describe('customToolbar', () => {\n describe('toggleBorder', () => {\n const assertToggle = (border, expectedBorder) => {\n describe(`with initial border of ${border}`, () => {\n let change;\n let done;\n\n beforeEach(() => {\n const plugin = TablePlugin();\n change = {\n setNodeByKey: jest.fn().mockReturnThis(),\n };\n plugin.utils.getTableBlock = jest.fn().mockReturnValue({\n key: 'tableKey',\n data: Data.create({ border }),\n });\n const node = { key: 'nodeKey' };\n const value = {\n change: jest.fn().mockReturnValue(change),\n };\n done = jest.fn();\n const Comp = plugin.toolbar.customToolbar(node, value, done);\n const c = Comp();\n c.props.onToggleBorder();\n });\n\n it(`calls setNodeByKey with ${expectedBorder}`, () => {\n expect(change.setNodeByKey).toHaveBeenCalledWith('tableKey', {\n data: Data.create({ border: expectedBorder }),\n });\n });\n\n it('calls onToolbarDone', () => {\n expect(done).toHaveBeenCalledWith(change, false);\n });\n });\n };\n\n assertToggle(null, '1');\n assertToggle(undefined, '1');\n assertToggle('0', '1');\n assertToggle('1', '0');\n assertToggle('2', '0');\n });\n });\n\n describe('normalizeNode', () => {\n it('should exit the function if the node is not of type document', () => {\n const tablePlugin = TablePlugin();\n const returnValue = tablePlugin.normalizeNode({ object: 'table' });\n\n expect(returnValue).toEqual(undefined);\n });\n\n it('should exit there are no changes needed', () => {\n const tablePlugin = TablePlugin();\n const nodes = {\n size: 3,\n findLastIndex: jest.fn().mockReturnValue(1),\n };\n const returnValue = tablePlugin.normalizeNode({\n object: 'document',\n nodes,\n findDescendant: jest.fn().mockReturnValue({ object: 'block', type: 'table' }),\n getParent: jest.fn().mockReturnValue(undefined),\n });\n expect(returnValue).toEqual(undefined);\n });\n\n it('should return a function if a table does not have a node before or after it', () => {\n const tablePlugin = TablePlugin();\n const nodes = [\n {\n object: 'block',\n type: 'table',\n key: '99',\n data: Data.create({\n newTable: true,\n }),\n },\n ];\n const findDescendant = jest.fn((callback) => {\n nodes.forEach((n) => callback(n));\n });\n const change = {\n insertNodeByPath: jest.fn(),\n value: {\n document: {\n getPath: jest.fn().mockReturnValue(PathUtils.create([0, 0])),\n },\n },\n };\n\n const returnValue = tablePlugin.normalizeNode({\n object: 'document',\n findDescendant,\n getPath: jest.fn().mockReturnValue(PathUtils.create([0, 0])),\n getPreviousNode: jest.fn().mockReturnValue(undefined),\n getNextNode: jest.fn().mockReturnValue(undefined),\n });\n\n expect(returnValue).toEqual(expect.any(Function));\n\n returnValue(change);\n\n expect(change.insertNodeByPath).toHaveBeenCalledWith([0], 0, {\n object: 'block',\n type: 'div',\n });\n });\n });\n });\n});\n\ndescribe('parseStyleString', () => {\n const parses = (s, expected) => {\n it(`parses ${s} -> ${JSON.stringify(expected)}`, () => {\n const result = parseStyleString(s);\n expect(result).toEqual(expected);\n });\n };\n parses(' width: 10px ', { width: '10px' });\n parses(' width: 10px; ', { width: '10px' });\n parses(' border-width: 10px; ', { 'border-width': '10px' });\n parses(' border: solid 1px red; height: 1px', {\n border: 'solid 1px red',\n height: '1px',\n });\n});\n\ndescribe('toStyleString', () => {\n const styleString = (o, expected) => {\n it(`${JSON.stringify(s)} -> ${expected}`, () => {\n const result = toStyleString(o);\n expect(result).toEqual(expected);\n });\n };\n});\n\ndescribe('reactAttributes', () => {\n const attributes = (o, expected) => {\n it(`${JSON.stringify(o)} -> ${JSON.stringify(expected)}`, () => {\n const result = reactAttributes(o);\n expect(result).toEqual(expected);\n });\n };\n attributes({ 'border-width': '10px', 'line-height': 1.56 }, { borderWidth: '10px', lineHeight: '1.56' });\n});\n\ndescribe('serialization', () => {\n describe('deserialize', () => {\n let next;\n\n beforeEach(() => {\n next = jest.fn().mockReturnValue([]);\n });\n\n describe('table', () => {\n let el;\n let out;\n beforeEach(() => {\n el = {\n tagName: 'table',\n children: [],\n getAttribute: jest.fn((name) => {\n switch (name) {\n case 'border':\n return '1';\n case 'cellspacing':\n return '2';\n case 'cellpadding':\n return '3';\n case 'class':\n return 'table-class';\n case 'style':\n return 'width: 10px';\n }\n }),\n };\n out = serialization.deserialize(el, next);\n });\n\n const assertData = (name, value) => {\n it(`data.${name} should eql ${value}`, () => {\n expect(out.data[name]).toEqual(value);\n });\n };\n\n assertData('border', '1');\n assertData('cellspacing', '2');\n assertData('cellpadding', '3');\n assertData('class', 'table-class');\n assertData('style', { width: '10px' });\n it('returns a table block', () => {\n expect(out).toMatchObject({\n object: 'block',\n type: 'table',\n nodes: [],\n });\n });\n });\n\n it('deserializes tr', () => {\n const el = {\n tagName: 'tr',\n children: [],\n };\n\n const out = serialization.deserialize(el, next);\n\n expect(out).toEqual({\n object: 'block',\n type: 'table_row',\n nodes: [],\n });\n });\n\n it('deserializes td', () => {\n const el = {\n tagName: 'td',\n childNodes: [],\n getAttribute: jest.fn(function (name) {\n const o = {\n class: 'class name',\n colspan: '1',\n rowspan: '1',\n };\n return o[name];\n }),\n };\n\n const out = serialization.deserialize(el, next);\n\n expect(out).toEqual({\n object: 'block',\n type: 'table_cell',\n nodes: [],\n data: {\n colspan: '1',\n rowspan: '1',\n class: 'class name',\n header: false,\n },\n });\n });\n });\n\n describe('serialize', () => {\n it('serializes table', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table',\n nodes: [],\n data: Data.create({\n border: '1',\n cellpadding: '2',\n cellspacing: '3',\n }),\n });\n\n expect(el).toEqual(\n <table border=\"1\" cellPadding=\"2\" cellSpacing=\"3\">\n <tbody />\n </table>,\n );\n });\n\n it('serializes table_row', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table_row',\n nodes: [],\n });\n\n expect(el).toEqual(<tr />);\n });\n it('serializes table_cell', () => {\n const el = serialization.serialize({\n object: 'block',\n type: 'table_cell',\n nodes: [],\n data: Data.create({\n header: false,\n style: { width: '10px' },\n class: 'foo',\n }),\n });\n\n expect(el).toEqual(<td style={{ width: '10px' }} className={'foo'} />);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|