@pie-lib/mask-markup 3.0.4-next.70 → 3.0.4-next.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/components/blank.js
CHANGED
|
@@ -121,6 +121,7 @@ function BlankContent(_ref2) {
|
|
|
121
121
|
var rootRef = (0, _react.useRef)(null);
|
|
122
122
|
var spanRef = (0, _react.useRef)(null);
|
|
123
123
|
var frozenRef = (0, _react.useRef)(null); // to use during dragging to prevent flickering
|
|
124
|
+
var measuringRef = (0, _react.useRef)(false); // guard against ResizeObserver feedback loops
|
|
124
125
|
var _useState = (0, _react.useState)({
|
|
125
126
|
height: 0,
|
|
126
127
|
width: 0
|
|
@@ -151,7 +152,8 @@ function BlankContent(_ref2) {
|
|
|
151
152
|
return spanRef.current;
|
|
152
153
|
};
|
|
153
154
|
var updateDimensions = function updateDimensions() {
|
|
154
|
-
if (spanRef.current && rootRef.current) {
|
|
155
|
+
if (spanRef.current && rootRef.current && !measuringRef.current) {
|
|
156
|
+
measuringRef.current = true;
|
|
155
157
|
// Temporarily set rootRef width to 'auto' for natural measurement
|
|
156
158
|
rootRef.current.style.width = 'auto';
|
|
157
159
|
rootRef.current.style.height = 'auto';
|
|
@@ -174,8 +176,15 @@ function BlankContent(_ref2) {
|
|
|
174
176
|
height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height
|
|
175
177
|
};
|
|
176
178
|
});
|
|
177
|
-
|
|
178
|
-
|
|
179
|
+
var nextWidth = "".concat(adjustedWidth, "px");
|
|
180
|
+
var nextHeight = "".concat(adjustedHeight, "px");
|
|
181
|
+
if (rootRef.current.style.width !== nextWidth) {
|
|
182
|
+
rootRef.current.style.width = nextWidth;
|
|
183
|
+
}
|
|
184
|
+
if (rootRef.current.style.height !== nextHeight) {
|
|
185
|
+
rootRef.current.style.height = nextHeight;
|
|
186
|
+
}
|
|
187
|
+
measuringRef.current = false;
|
|
179
188
|
}
|
|
180
189
|
};
|
|
181
190
|
var getRootDimensions = function getRootDimensions() {
|
|
@@ -198,6 +207,23 @@ function BlankContent(_ref2) {
|
|
|
198
207
|
handleElements();
|
|
199
208
|
}, []);
|
|
200
209
|
|
|
210
|
+
// Re-measure when the element first becomes visible — covers the tabbed-view case
|
|
211
|
+
// where the initial measurement happened while the tab was hidden (size 0).
|
|
212
|
+
(0, _react.useEffect)(function () {
|
|
213
|
+
if (typeof IntersectionObserver === 'undefined' || !rootRef.current) return undefined;
|
|
214
|
+
var io = new IntersectionObserver(function (entries) {
|
|
215
|
+
if (entries.some(function (e) {
|
|
216
|
+
return e.isIntersecting;
|
|
217
|
+
})) updateDimensions();
|
|
218
|
+
}, {
|
|
219
|
+
threshold: 0
|
|
220
|
+
});
|
|
221
|
+
io.observe(rootRef.current);
|
|
222
|
+
return function () {
|
|
223
|
+
return io.disconnect();
|
|
224
|
+
};
|
|
225
|
+
}, []);
|
|
226
|
+
|
|
201
227
|
// Render math for the placeholder/preview when dragging over
|
|
202
228
|
(0, _react.useEffect)(function () {
|
|
203
229
|
if (rootRef.current) {
|
|
@@ -213,7 +239,7 @@ function BlankContent(_ref2) {
|
|
|
213
239
|
return;
|
|
214
240
|
}
|
|
215
241
|
handleElements();
|
|
216
|
-
}, [choice]);
|
|
242
|
+
}, [choice === null || choice === void 0 ? void 0 : choice.value]);
|
|
217
243
|
(0, _react.useEffect)(function () {
|
|
218
244
|
if (!isOver && !isDragging) {
|
|
219
245
|
frozenRef.current = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blank.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_mathRendering","_debug","_core","_utilities","_styles","_Chip","_classnames","_renderUi","_colors","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","StyledContent","styled","_ref","dragged","over","border","concat","color","primary","minWidth","touchAction","overflow","whiteSpace","opacity","StyledChip","Chip","backgroundColor","background","text","fontSize","maxWidth","position","borderRadius","grey","correct","incorrect","StyledChipLabel","pointerEvents","display","padding","marginTop","marginBottom","left","top","transform","BlankContent","_ref2","_dragItem$choice","_frozenRef$current","_frozenRef$current2","disabled","choice","isOver","isDragging","dragItem","emptyResponseAreaWidth","emptyResponseAreaHeight","rootRef","useRef","spanRef","frozenRef","_useState","useState","height","width","_useState2","_slicedToArray2","dimensions","setDimensions","handleImageLoad","updateDimensions","handleElements","_spanRef$current","imageElement","current","querySelector","onload","setTimeout","getMeasureNode","mjx","parentElement","img","style","offsetHeight","measureNode","node","rect","getBoundingClientRect","offsetWidth","Math","max","scrollHeight","widthWithPadding","heightWithPadding","responseAreaWidth","parseFloat","responseAreaHeight","adjustedWidth","adjustedHeight","prevState","getRootDimensions","isNaN","rootStyle","minHeight","useEffect","renderMath","value","draggedLabel","label","createElement","clickable","ref","component","Fragment","draggable","className","classnames","hidden","dangerouslySetInnerHTML","__html","parentOver","undefined","variant","defaultProps","propTypes","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","instanceId","DragDropBlank","_ref3","_dragItem$data","_useDraggable","useDraggable","data","fromChoice","type","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setDropNodeRef","active","CSS","Translate","toString","_extends2","_default","exports"],"sources":["../../src/components/blank.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { CSS } from '@dnd-kit/utilities';\nimport { styled } from '@mui/material/styles';\nimport Chip from '@mui/material/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { grey } from '@mui/material/colors';\n\nconst log = debug('pie-lib:mask-markup:blank');\n\nconst StyledContent = styled('span')(({ dragged, over }) => ({\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n opacity: 1,\n ...(over && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n }),\n ...(dragged && {\n opacity: 0.5,\n }),\n}));\n\nconst StyledChip = styled(Chip)(() => ({\n backgroundColor: color.background(),\n border: `2px dashed ${color.text()}`,\n touchAction: 'none',\n color: color.text(),\n fontSize: 'inherit',\n maxWidth: '374px',\n position: 'relative',\n borderRadius: '3px',\n '&.over': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n '&.parentOver': {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n '&.correct': {\n border: `solid 1px ${color.correct()}`,\n },\n '&.incorrect': {\n border: `solid 1px ${color.incorrect()}`,\n },\n '&.Mui-disabled': {\n opacity: 1,\n },\n}));\n\nconst StyledChipLabel = styled('span')(() => ({\n whiteSpace: 'normal',\n // Added for touch devices, for image content.\n // This will prevent the context menu from appearing and not allowing other interactions with the image.\n // If interactions with the image in the token will be requested we should handle only the context Menu.\n pointerEvents: 'none',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n // Remove default <p> margins to ensure consistent spacing across all wrapped content (p, span, div, math)\n // Padding for top and bottom will instead be controlled by the container for consistent layout\n // Ensures consistent behavior with pie-api-browser, where marginTop is already removed by a Bootstrap stylesheet\n '& p': {\n marginTop: '0',\n marginBottom: '0',\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n '&.over': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n '&.hidden': {\n color: 'transparent',\n opacity: 0,\n },\n '&.dragged': {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n top: '50%',\n transform: 'translateY(-50%)',\n },\n}));\n\nfunction BlankContent({\n disabled,\n choice,\n isOver,\n isDragging,\n dragItem,\n correct,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n}) {\n const rootRef = useRef(null);\n const spanRef = useRef(null);\n const frozenRef = useRef(null); // to use during dragging to prevent flickering\n const [dimensions, setDimensions] = useState({ height: 0, width: 0 });\n\n const handleImageLoad = () => {\n updateDimensions();\n };\n\n const handleElements = () => {\n const imageElement = spanRef.current?.querySelector('img');\n if (imageElement) {\n imageElement.onload = handleImageLoad;\n } else {\n setTimeout(() => {\n updateDimensions();\n }, 300);\n }\n };\n\n const getMeasureNode = () => {\n if (!spanRef.current) return null;\n const mjx = spanRef.current.querySelector('mjx-container');\n if (mjx && spanRef.current.parentElement) return spanRef.current.parentElement;\n const img = spanRef.current.querySelector('img');\n if (img) return img;\n return spanRef.current;\n };\n\n const updateDimensions = () => {\n if (spanRef.current && rootRef.current) {\n // Temporarily set rootRef width to 'auto' for natural measurement\n rootRef.current.style.width = 'auto';\n rootRef.current.style.height = 'auto';\n rootRef.current.offsetHeight;\n\n const measureNode = getMeasureNode();\n const node = measureNode || spanRef.current;\n const rect = node.getBoundingClientRect();\n const width = rect.width || node.offsetWidth || 0;\n const height = Math.max(\n rect.height || 0,\n node.offsetHeight || 0,\n node.scrollHeight || 0,\n spanRef.current.scrollHeight || 0,\n );\n\n const widthWithPadding = width + 24; // 12px padding on each side\n const heightWithPadding = height + 24; // 12px padding on top and bottom\n\n const responseAreaWidth = parseFloat(emptyResponseAreaWidth) || 0;\n const responseAreaHeight = parseFloat(emptyResponseAreaHeight) || 0;\n\n const adjustedWidth = widthWithPadding <= responseAreaWidth ? responseAreaWidth : widthWithPadding;\n const adjustedHeight = heightWithPadding <= responseAreaHeight ? responseAreaHeight : heightWithPadding;\n\n setDimensions((prevState) => ({\n width: adjustedWidth > responseAreaWidth ? adjustedWidth : prevState.width,\n height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,\n }));\n\n rootRef.current.style.width = `${adjustedWidth}px`;\n rootRef.current.style.height = `${adjustedHeight}px`;\n }\n };\n\n const getRootDimensions = () => {\n // Handle potential non-numeric values\n const responseAreaWidth = !isNaN(parseFloat(emptyResponseAreaWidth)) ? parseFloat(emptyResponseAreaWidth) : 0;\n const responseAreaHeight = !isNaN(parseFloat(emptyResponseAreaHeight)) ? parseFloat(emptyResponseAreaHeight) : 0;\n\n const rootStyle = {\n height: dimensions.height || responseAreaHeight,\n width: dimensions.width || responseAreaWidth,\n };\n\n // add minWidth, minHeight if width and height are not defined\n return {\n ...rootStyle,\n ...(responseAreaWidth ? {} : { minWidth: 90 }),\n ...(responseAreaHeight ? {} : { minHeight: 32 }),\n };\n };\n\n useEffect(() => {\n handleElements();\n }, []);\n\n // Render math for the placeholder/preview when dragging over\n useEffect(() => {\n if (rootRef.current) {\n renderMath(rootRef.current);\n }\n }, [correct, isOver, dragItem?.choice?.value]);\n\n useEffect(() => {\n if (!choice) {\n setDimensions({ height: 0, width: 0 });\n return;\n }\n handleElements();\n }, [choice]);\n\n useEffect(() => {\n if (!isOver && !isDragging) {\n frozenRef.current = {\n width: rootRef.current.offsetWidth,\n height: rootRef.current.offsetHeight,\n };\n }\n }, [choice, isOver, isDragging]);\n\n const draggedLabel = dragItem && isOver && dragItem.choice && dragItem.choice.value;\n const label = choice && choice.value;\n const style =\n isOver || isDragging\n ? {\n width: frozenRef.current?.width,\n height: frozenRef.current?.height,\n }\n : getRootDimensions();\n\n return (\n <StyledChip\n clickable={false}\n disabled={disabled}\n ref={rootRef}\n component=\"span\"\n label={\n <React.Fragment>\n <StyledChipLabel\n ref={spanRef}\n draggable={true}\n className={classnames({\n over: isOver,\n hidden: draggedLabel,\n })}\n dangerouslySetInnerHTML={{ __html: label || '' }}\n />\n {draggedLabel && (\n <StyledChipLabel\n draggable={true}\n className={classnames({\n over: isOver,\n dragged: true,\n })}\n dangerouslySetInnerHTML={{ __html: draggedLabel || '' }}\n />\n )}\n </React.Fragment>\n }\n className={classnames({\n over: isOver,\n parentOver: isOver,\n correct: correct !== undefined && correct,\n incorrect: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={style}\n />\n );\n}\n\nBlankContent.defaultProps = {\n emptyResponseAreaWidth: 0,\n emptyResponseAreaHeight: 0,\n};\n\nBlankContent.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n instanceId: PropTypes.string,\n};\n\n// New functional component using @dnd-kit hooks\nfunction DragDropBlank({\n id,\n disabled,\n duplicates,\n choice,\n correct,\n onChange,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n instanceId,\n}) {\n // Setup draggable functionality\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n transform,\n isDragging,\n } = useDraggable({\n id: `mask-blank-drag-${id}`,\n disabled: disabled || !choice,\n data: {\n id: id,\n choice: choice,\n instanceId: instanceId,\n fromChoice: false, // This is from a blank, not from choices\n type: 'MaskBlank',\n },\n });\n\n // Setup droppable functionality\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `mask-blank-drop-${id}`,\n data: {\n id: id,\n accepts: ['MaskBlank'],\n instanceId: instanceId,\n },\n });\n\n // Combine refs for both drag and drop\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const style = {\n transform: CSS.Translate.toString(transform),\n };\n\n return (\n <StyledContent\n ref={setNodeRef}\n style={style}\n dragged={isDragging}\n over={isOver}\n {...dragAttributes}\n {...dragListeners}\n >\n <BlankContent\n id={id}\n disabled={disabled}\n duplicates={duplicates}\n choice={choice}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n correct={correct}\n onChange={onChange}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n instanceId={instanceId}\n />\n </StyledContent>\n );\n}\n\nDragDropBlank.defaultProps = {\n emptyResponseAreaWidth: 0,\n emptyResponseAreaHeight: 0,\n};\n\nDragDropBlank.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n instanceId: PropTypes.string,\n};\n\nexport default DragDropBlank;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"blank.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_mathRendering","_debug","_core","_utilities","_styles","_Chip","_classnames","_renderUi","_colors","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","StyledContent","styled","_ref","dragged","over","border","concat","color","primary","minWidth","touchAction","overflow","whiteSpace","opacity","StyledChip","Chip","backgroundColor","background","text","fontSize","maxWidth","position","borderRadius","grey","correct","incorrect","StyledChipLabel","pointerEvents","display","padding","marginTop","marginBottom","left","top","transform","BlankContent","_ref2","_dragItem$choice","_frozenRef$current","_frozenRef$current2","disabled","choice","isOver","isDragging","dragItem","emptyResponseAreaWidth","emptyResponseAreaHeight","rootRef","useRef","spanRef","frozenRef","measuringRef","_useState","useState","height","width","_useState2","_slicedToArray2","dimensions","setDimensions","handleImageLoad","updateDimensions","handleElements","_spanRef$current","imageElement","current","querySelector","onload","setTimeout","getMeasureNode","mjx","parentElement","img","style","offsetHeight","measureNode","node","rect","getBoundingClientRect","offsetWidth","Math","max","scrollHeight","widthWithPadding","heightWithPadding","responseAreaWidth","parseFloat","responseAreaHeight","adjustedWidth","adjustedHeight","prevState","nextWidth","nextHeight","getRootDimensions","isNaN","rootStyle","minHeight","useEffect","IntersectionObserver","undefined","io","entries","some","isIntersecting","threshold","observe","disconnect","renderMath","value","draggedLabel","label","createElement","clickable","ref","component","Fragment","draggable","className","classnames","hidden","dangerouslySetInnerHTML","__html","parentOver","variant","defaultProps","propTypes","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","instanceId","DragDropBlank","_ref3","_dragItem$data","_useDraggable","useDraggable","data","fromChoice","type","dragAttributes","attributes","dragListeners","listeners","setDragNodeRef","setNodeRef","_useDroppable","useDroppable","accepts","setDropNodeRef","active","CSS","Translate","toString","_extends2","_default","exports"],"sources":["../../src/components/blank.jsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { CSS } from '@dnd-kit/utilities';\nimport { styled } from '@mui/material/styles';\nimport Chip from '@mui/material/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { grey } from '@mui/material/colors';\n\nconst log = debug('pie-lib:mask-markup:blank');\n\nconst StyledContent = styled('span')(({ dragged, over }) => ({\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n opacity: 1,\n ...(over && {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n }),\n ...(dragged && {\n opacity: 0.5,\n }),\n}));\n\nconst StyledChip = styled(Chip)(() => ({\n backgroundColor: color.background(),\n border: `2px dashed ${color.text()}`,\n touchAction: 'none',\n color: color.text(),\n fontSize: 'inherit',\n maxWidth: '374px',\n position: 'relative',\n borderRadius: '3px',\n '&.over': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n '&.parentOver': {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n '&.correct': {\n border: `solid 1px ${color.correct()}`,\n },\n '&.incorrect': {\n border: `solid 1px ${color.incorrect()}`,\n },\n '&.Mui-disabled': {\n opacity: 1,\n },\n}));\n\nconst StyledChipLabel = styled('span')(() => ({\n whiteSpace: 'normal',\n // Added for touch devices, for image content.\n // This will prevent the context menu from appearing and not allowing other interactions with the image.\n // If interactions with the image in the token will be requested we should handle only the context Menu.\n pointerEvents: 'none',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n // Remove default <p> margins to ensure consistent spacing across all wrapped content (p, span, div, math)\n // Padding for top and bottom will instead be controlled by the container for consistent layout\n // Ensures consistent behavior with pie-api-browser, where marginTop is already removed by a Bootstrap stylesheet\n '& p': {\n marginTop: '0',\n marginBottom: '0',\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n '&.over': {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n '&.hidden': {\n color: 'transparent',\n opacity: 0,\n },\n '&.dragged': {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n top: '50%',\n transform: 'translateY(-50%)',\n },\n}));\n\nfunction BlankContent({\n disabled,\n choice,\n isOver,\n isDragging,\n dragItem,\n correct,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n}) {\n const rootRef = useRef(null);\n const spanRef = useRef(null);\n const frozenRef = useRef(null); // to use during dragging to prevent flickering\n const measuringRef = useRef(false); // guard against ResizeObserver feedback loops\n const [dimensions, setDimensions] = useState({ height: 0, width: 0 });\n\n const handleImageLoad = () => {\n updateDimensions();\n };\n\n const handleElements = () => {\n const imageElement = spanRef.current?.querySelector('img');\n if (imageElement) {\n imageElement.onload = handleImageLoad;\n } else {\n setTimeout(() => {\n updateDimensions();\n }, 300);\n }\n };\n\n const getMeasureNode = () => {\n if (!spanRef.current) return null;\n const mjx = spanRef.current.querySelector('mjx-container');\n if (mjx && spanRef.current.parentElement) return spanRef.current.parentElement;\n const img = spanRef.current.querySelector('img');\n if (img) return img;\n return spanRef.current;\n };\n\n const updateDimensions = () => {\n if (spanRef.current && rootRef.current && !measuringRef.current) {\n measuringRef.current = true;\n // Temporarily set rootRef width to 'auto' for natural measurement\n rootRef.current.style.width = 'auto';\n rootRef.current.style.height = 'auto';\n rootRef.current.offsetHeight;\n\n const measureNode = getMeasureNode();\n const node = measureNode || spanRef.current;\n const rect = node.getBoundingClientRect();\n const width = rect.width || node.offsetWidth || 0;\n const height = Math.max(\n rect.height || 0,\n node.offsetHeight || 0,\n node.scrollHeight || 0,\n spanRef.current.scrollHeight || 0,\n );\n\n const widthWithPadding = width + 24; // 12px padding on each side\n const heightWithPadding = height + 24; // 12px padding on top and bottom\n\n const responseAreaWidth = parseFloat(emptyResponseAreaWidth) || 0;\n const responseAreaHeight = parseFloat(emptyResponseAreaHeight) || 0;\n\n const adjustedWidth = widthWithPadding <= responseAreaWidth ? responseAreaWidth : widthWithPadding;\n const adjustedHeight = heightWithPadding <= responseAreaHeight ? responseAreaHeight : heightWithPadding;\n\n setDimensions((prevState) => ({\n width: adjustedWidth > responseAreaWidth ? adjustedWidth : prevState.width,\n height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,\n }));\n\n const nextWidth = `${adjustedWidth}px`;\n const nextHeight = `${adjustedHeight}px`;\n if (rootRef.current.style.width !== nextWidth) {\n rootRef.current.style.width = nextWidth;\n }\n if (rootRef.current.style.height !== nextHeight) {\n rootRef.current.style.height = nextHeight;\n }\n measuringRef.current = false;\n }\n };\n\n const getRootDimensions = () => {\n // Handle potential non-numeric values\n const responseAreaWidth = !isNaN(parseFloat(emptyResponseAreaWidth)) ? parseFloat(emptyResponseAreaWidth) : 0;\n const responseAreaHeight = !isNaN(parseFloat(emptyResponseAreaHeight)) ? parseFloat(emptyResponseAreaHeight) : 0;\n\n const rootStyle = {\n height: dimensions.height || responseAreaHeight,\n width: dimensions.width || responseAreaWidth,\n };\n\n // add minWidth, minHeight if width and height are not defined\n return {\n ...rootStyle,\n ...(responseAreaWidth ? {} : { minWidth: 90 }),\n ...(responseAreaHeight ? {} : { minHeight: 32 }),\n };\n };\n\n useEffect(() => {\n handleElements();\n }, []);\n\n // Re-measure when the element first becomes visible — covers the tabbed-view case\n // where the initial measurement happened while the tab was hidden (size 0).\n useEffect(() => {\n if (typeof IntersectionObserver === 'undefined' || !rootRef.current) return undefined;\n const io = new IntersectionObserver(\n (entries) => {\n if (entries.some((e) => e.isIntersecting)) updateDimensions();\n },\n { threshold: 0 },\n );\n io.observe(rootRef.current);\n return () => io.disconnect();\n }, []);\n\n // Render math for the placeholder/preview when dragging over\n useEffect(() => {\n if (rootRef.current) {\n renderMath(rootRef.current);\n }\n }, [correct, isOver, dragItem?.choice?.value]);\n\n useEffect(() => {\n if (!choice) {\n setDimensions({ height: 0, width: 0 });\n return;\n }\n handleElements();\n }, [choice?.value]);\n\n useEffect(() => {\n if (!isOver && !isDragging) {\n frozenRef.current = {\n width: rootRef.current.offsetWidth,\n height: rootRef.current.offsetHeight,\n };\n }\n }, [choice, isOver, isDragging]);\n\n const draggedLabel = dragItem && isOver && dragItem.choice && dragItem.choice.value;\n const label = choice && choice.value;\n const style =\n isOver || isDragging\n ? {\n width: frozenRef.current?.width,\n height: frozenRef.current?.height,\n }\n : getRootDimensions();\n\n return (\n <StyledChip\n clickable={false}\n disabled={disabled}\n ref={rootRef}\n component=\"span\"\n label={\n <React.Fragment>\n <StyledChipLabel\n ref={spanRef}\n draggable={true}\n className={classnames({\n over: isOver,\n hidden: draggedLabel,\n })}\n dangerouslySetInnerHTML={{ __html: label || '' }}\n />\n {draggedLabel && (\n <StyledChipLabel\n draggable={true}\n className={classnames({\n over: isOver,\n dragged: true,\n })}\n dangerouslySetInnerHTML={{ __html: draggedLabel || '' }}\n />\n )}\n </React.Fragment>\n }\n className={classnames({\n over: isOver,\n parentOver: isOver,\n correct: correct !== undefined && correct,\n incorrect: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={style}\n />\n );\n}\n\nBlankContent.defaultProps = {\n emptyResponseAreaWidth: 0,\n emptyResponseAreaHeight: 0,\n};\n\nBlankContent.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n isOver: PropTypes.bool,\n dragItem: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n instanceId: PropTypes.string,\n};\n\n// New functional component using @dnd-kit hooks\nfunction DragDropBlank({\n id,\n disabled,\n duplicates,\n choice,\n correct,\n onChange,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n instanceId,\n}) {\n // Setup draggable functionality\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n transform,\n isDragging,\n } = useDraggable({\n id: `mask-blank-drag-${id}`,\n disabled: disabled || !choice,\n data: {\n id: id,\n choice: choice,\n instanceId: instanceId,\n fromChoice: false, // This is from a blank, not from choices\n type: 'MaskBlank',\n },\n });\n\n // Setup droppable functionality\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n active: dragItem,\n } = useDroppable({\n id: `mask-blank-drop-${id}`,\n data: {\n id: id,\n accepts: ['MaskBlank'],\n instanceId: instanceId,\n },\n });\n\n // Combine refs for both drag and drop\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n };\n\n const style = {\n transform: CSS.Translate.toString(transform),\n };\n\n return (\n <StyledContent\n ref={setNodeRef}\n style={style}\n dragged={isDragging}\n over={isOver}\n {...dragAttributes}\n {...dragListeners}\n >\n <BlankContent\n id={id}\n disabled={disabled}\n duplicates={duplicates}\n choice={choice}\n isOver={isOver}\n dragItem={dragItem?.data?.current}\n correct={correct}\n onChange={onChange}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n instanceId={instanceId}\n />\n </StyledContent>\n );\n}\n\nDragDropBlank.defaultProps = {\n emptyResponseAreaWidth: 0,\n emptyResponseAreaHeight: 0,\n};\n\nDragDropBlank.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disabled: PropTypes.bool,\n duplicates: PropTypes.bool,\n choice: PropTypes.object,\n correct: PropTypes.bool,\n onChange: PropTypes.func,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n instanceId: PropTypes.string,\n};\n\nexport default DragDropBlank;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/mask-markup",
|
|
3
|
-
"version": "3.0.4-next.
|
|
3
|
+
"version": "3.0.4-next.72+0ace89789",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@mui/icons-material": "^7.3.4",
|
|
15
15
|
"@mui/material": "^7.3.4",
|
|
16
16
|
"@pie-lib/drag": "^4.0.2",
|
|
17
|
-
"@pie-lib/editable-html-tip-tap": "^2.1.
|
|
17
|
+
"@pie-lib/editable-html-tip-tap": "^2.1.1",
|
|
18
18
|
"@pie-lib/math-rendering": "^5.0.2",
|
|
19
19
|
"@pie-lib/render-ui": "^6.1.0",
|
|
20
20
|
"classnames": "^2.2.6",
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"keywords": [],
|
|
29
29
|
"author": "",
|
|
30
30
|
"license": "ISC",
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "0ace897898ae221f77a3e5602e3d8770ce16c423"
|
|
32
32
|
}
|
package/src/components/blank.jsx
CHANGED
|
@@ -106,6 +106,7 @@ function BlankContent({
|
|
|
106
106
|
const rootRef = useRef(null);
|
|
107
107
|
const spanRef = useRef(null);
|
|
108
108
|
const frozenRef = useRef(null); // to use during dragging to prevent flickering
|
|
109
|
+
const measuringRef = useRef(false); // guard against ResizeObserver feedback loops
|
|
109
110
|
const [dimensions, setDimensions] = useState({ height: 0, width: 0 });
|
|
110
111
|
|
|
111
112
|
const handleImageLoad = () => {
|
|
@@ -133,7 +134,8 @@ function BlankContent({
|
|
|
133
134
|
};
|
|
134
135
|
|
|
135
136
|
const updateDimensions = () => {
|
|
136
|
-
if (spanRef.current && rootRef.current) {
|
|
137
|
+
if (spanRef.current && rootRef.current && !measuringRef.current) {
|
|
138
|
+
measuringRef.current = true;
|
|
137
139
|
// Temporarily set rootRef width to 'auto' for natural measurement
|
|
138
140
|
rootRef.current.style.width = 'auto';
|
|
139
141
|
rootRef.current.style.height = 'auto';
|
|
@@ -164,8 +166,15 @@ function BlankContent({
|
|
|
164
166
|
height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,
|
|
165
167
|
}));
|
|
166
168
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
+
const nextWidth = `${adjustedWidth}px`;
|
|
170
|
+
const nextHeight = `${adjustedHeight}px`;
|
|
171
|
+
if (rootRef.current.style.width !== nextWidth) {
|
|
172
|
+
rootRef.current.style.width = nextWidth;
|
|
173
|
+
}
|
|
174
|
+
if (rootRef.current.style.height !== nextHeight) {
|
|
175
|
+
rootRef.current.style.height = nextHeight;
|
|
176
|
+
}
|
|
177
|
+
measuringRef.current = false;
|
|
169
178
|
}
|
|
170
179
|
};
|
|
171
180
|
|
|
@@ -191,6 +200,20 @@ function BlankContent({
|
|
|
191
200
|
handleElements();
|
|
192
201
|
}, []);
|
|
193
202
|
|
|
203
|
+
// Re-measure when the element first becomes visible — covers the tabbed-view case
|
|
204
|
+
// where the initial measurement happened while the tab was hidden (size 0).
|
|
205
|
+
useEffect(() => {
|
|
206
|
+
if (typeof IntersectionObserver === 'undefined' || !rootRef.current) return undefined;
|
|
207
|
+
const io = new IntersectionObserver(
|
|
208
|
+
(entries) => {
|
|
209
|
+
if (entries.some((e) => e.isIntersecting)) updateDimensions();
|
|
210
|
+
},
|
|
211
|
+
{ threshold: 0 },
|
|
212
|
+
);
|
|
213
|
+
io.observe(rootRef.current);
|
|
214
|
+
return () => io.disconnect();
|
|
215
|
+
}, []);
|
|
216
|
+
|
|
194
217
|
// Render math for the placeholder/preview when dragging over
|
|
195
218
|
useEffect(() => {
|
|
196
219
|
if (rootRef.current) {
|
|
@@ -204,7 +227,7 @@ function BlankContent({
|
|
|
204
227
|
return;
|
|
205
228
|
}
|
|
206
229
|
handleElements();
|
|
207
|
-
}, [choice]);
|
|
230
|
+
}, [choice?.value]);
|
|
208
231
|
|
|
209
232
|
useEffect(() => {
|
|
210
233
|
if (!isOver && !isDragging) {
|