@pie-lib/mask-markup 1.28.0 → 1.29.0-hotfix.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/lib/choices/choice.js +2 -2
- package/lib/choices/choice.js.map +1 -1
- package/lib/components/blank.js +2 -2
- package/lib/components/blank.js.map +1 -1
- package/lib/components/dropdown.js +4 -4
- package/lib/components/dropdown.js.map +1 -1
- package/lib/drag-in-the-blank.js +3 -3
- package/lib/drag-in-the-blank.js.map +1 -1
- package/package.json +6 -6
- package/src/choices/choice.jsx +1 -1
- package/src/components/blank.jsx +1 -1
- package/src/components/dropdown.jsx +1 -1
- package/src/drag-in-the-blank.jsx +1 -1
- package/LICENSE.md +0 -5
- package/NEXT.CHANGELOG.json +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.29.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@1.13.46...@pie-lib/mask-markup@1.29.0) (2025-09-25)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
# [1.28.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/mask-markup@1.27.0...@pie-lib/mask-markup@1.28.0) (2025-09-18)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @pie-lib/mask-markup
|
package/lib/choices/choice.js
CHANGED
|
@@ -33,7 +33,7 @@ var _Chip = _interopRequireDefault(require("@material-ui/core/Chip"));
|
|
|
33
33
|
|
|
34
34
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _renderMathBundled = require("@pie-lib/render-math-bundled");
|
|
37
37
|
|
|
38
38
|
var _renderUi = require("@pie-lib/render-ui");
|
|
39
39
|
|
|
@@ -108,7 +108,7 @@ var BlankContentComp = /*#__PURE__*/function (_React$Component) {
|
|
|
108
108
|
}, {
|
|
109
109
|
key: "componentDidUpdate",
|
|
110
110
|
value: function componentDidUpdate() {
|
|
111
|
-
(0,
|
|
111
|
+
(0, _renderMathBundled.renderMath)(this.rootRef);
|
|
112
112
|
}
|
|
113
113
|
}, {
|
|
114
114
|
key: "render",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/choices/choice.jsx"],"names":["DRAG_TYPE","BlankContentComp","props","connectDragSource","disabled","dragContainerRef","e","preventDefault","longPressTimer","setTimeout","startDrag","clearTimeout","addEventListener","handleTouchStart","passive","handleTouchEnd","handleTouchMove","removeEventListener","rootRef","choice","classes","ref","ReactDOM","findDOMNode","chip","chipLabel","innerHTML","value","undefined","React","Component","PropTypes","bool","object","func","BlankContent","theme","border","palette","primary","main","borderRadius","spacing","unit","margin","transform","backgroundColor","color","white","text","alignItems","display","height","minHeight","fontSize","whiteSpace","maxWidth","pointerEvents","paddingTop","paddingBottom","padding","opacity","tileSource","canDrag","beginDrag","instanceId","DragDropTile","connect","monitor","dragSource","isDragging"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEO,IAAMA,SAAS,GAAG,WAAlB;;;IAEDC,gB;;;;;;;;;;;;;;;kGAQQ,YAAM;AAChB,wBAAwC,MAAKC,KAA7C;AAAA,UAAQC,iBAAR,eAAQA,iBAAR;AAAA,UAA2BC,QAA3B,eAA2BA,QAA3B;;AACA,UAAI,CAACA,QAAL,EAAe;AACbD,QAAAA,iBAAiB,CAAC,MAAKE,gBAAN,CAAjB;AACD;AACF,K;yGAGkB,UAACC,CAAD,EAAO;AACxBA,MAAAA,CAAC,CAACC,cAAF;AACA,YAAKC,cAAL,GAAsBC,UAAU,CAAC,YAAM;AACrC,cAAKC,SAAL,CAAeJ,CAAf;AACD,OAF+B,EAE7B,GAF6B,CAAhC;AAGD,K;uGAEgB,YAAM;AACrBK,MAAAA,YAAY,CAAC,MAAKH,cAAN,CAAZ;AACD,K;wGAEiB,YAAM;AACtBG,MAAAA,YAAY,CAAC,MAAKH,cAAN,CAAZ;AACD,K;;;;;;WAED,6BAAoB;AAClB,UAAI,KAAKH,gBAAT,EAA2B;AACzB,aAAKA,gBAAL,CAAsBO,gBAAtB,CAAuC,YAAvC,EAAqD,KAAKC,gBAA1D,EAA4E;AAAEC,UAAAA,OAAO,EAAE;AAAX,SAA5E;AACA,aAAKT,gBAAL,CAAsBO,gBAAtB,CAAuC,UAAvC,EAAmD,KAAKG,cAAxD;AACA,aAAKV,gBAAL,CAAsBO,gBAAtB,CAAuC,WAAvC,EAAoD,KAAKI,eAAzD;AACD;AACF;;;WAED,gCAAuB;AACrB,UAAI,KAAKX,gBAAT,EAA2B;AACzB,aAAKA,gBAAL,CAAsBY,mBAAtB,CAA0C,YAA1C,EAAwD,KAAKJ,gBAA7D;AACA,aAAKR,gBAAL,CAAsBY,mBAAtB,CAA0C,UAA1C,EAAsD,KAAKF,cAA3D;AACA,aAAKV,gBAAL,CAAsBY,mBAAtB,CAA0C,WAA1C,EAAuD,KAAKD,eAA5D;AACD;AACF;;;WAED,8BAAqB;AACnB,
|
|
1
|
+
{"version":3,"sources":["../../src/choices/choice.jsx"],"names":["DRAG_TYPE","BlankContentComp","props","connectDragSource","disabled","dragContainerRef","e","preventDefault","longPressTimer","setTimeout","startDrag","clearTimeout","addEventListener","handleTouchStart","passive","handleTouchEnd","handleTouchMove","removeEventListener","rootRef","choice","classes","ref","ReactDOM","findDOMNode","chip","chipLabel","innerHTML","value","undefined","React","Component","PropTypes","bool","object","func","BlankContent","theme","border","palette","primary","main","borderRadius","spacing","unit","margin","transform","backgroundColor","color","white","text","alignItems","display","height","minHeight","fontSize","whiteSpace","maxWidth","pointerEvents","paddingTop","paddingBottom","padding","opacity","tileSource","canDrag","beginDrag","instanceId","DragDropTile","connect","monitor","dragSource","isDragging"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\n\nimport { renderMath } from '@pie-lib/render-math-bundled';\nimport { color } from '@pie-lib/render-ui';\nimport { DragSource } from '@pie-lib/drag';\n\nexport const DRAG_TYPE = 'MaskBlank';\n\nclass BlankContentComp extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n choice: PropTypes.object,\n classes: PropTypes.object,\n connectDragSource: PropTypes.func,\n };\n\n startDrag = () => {\n const { connectDragSource, disabled } = this.props;\n if (!disabled) {\n connectDragSource(this.dragContainerRef);\n }\n };\n\n // start drag after 500ms (touch and hold duration) for chromebooks and other touch devices PD-4888\n handleTouchStart = (e) => {\n e.preventDefault();\n this.longPressTimer = setTimeout(() => {\n this.startDrag(e);\n }, 500);\n };\n\n handleTouchEnd = () => {\n clearTimeout(this.longPressTimer);\n };\n\n handleTouchMove = () => {\n clearTimeout(this.longPressTimer);\n };\n\n componentDidMount() {\n if (this.dragContainerRef) {\n this.dragContainerRef.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n this.dragContainerRef.addEventListener('touchend', this.handleTouchEnd);\n this.dragContainerRef.addEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n componentWillUnmount() {\n if (this.dragContainerRef) {\n this.dragContainerRef.removeEventListener('touchstart', this.handleTouchStart);\n this.dragContainerRef.removeEventListener('touchend', this.handleTouchEnd);\n this.dragContainerRef.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n componentDidUpdate() {\n renderMath(this.rootRef);\n }\n\n render() {\n const { connectDragSource, choice, classes, disabled } = this.props;\n\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n\n return connectDragSource(\n <span\n className={classnames(classes.choice, disabled && classes.disabled)}\n ref={(ref) => {\n //eslint-disable-next-line\n this.dragContainerRef = ReactDOM.findDOMNode(ref);\n }}\n >\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n className={classes.chip}\n label={\n <span\n className={classes.chipLabel}\n ref={(ref) => {\n if (ref) {\n ref.innerHTML = choice.value || ' ';\n }\n }}\n >\n {' '}\n </span>\n }\n variant={disabled ? 'outlined' : undefined}\n />\n </span>,\n {},\n );\n }\n}\n\nexport const BlankContent = withStyles((theme) => ({\n choice: {\n border: `solid 0px ${theme.palette.primary.main}`,\n borderRadius: theme.spacing.unit * 2,\n margin: theme.spacing.unit / 2,\n transform: 'translate(0, 0)',\n },\n chip: {\n backgroundColor: color.white(),\n border: `1px solid ${color.text()}`,\n color: color.text(),\n alignItems: 'center',\n display: 'inline-flex',\n height: 'initial',\n minHeight: '32px',\n fontSize: 'inherit',\n whiteSpace: 'pre-wrap',\n maxWidth: '374px',\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 borderRadius: '3px',\n paddingTop: '12px',\n paddingBottom: '12px',\n },\n chipLabel: {\n whiteSpace: 'normal',\n '& img': {\n display: 'block',\n padding: '2px 0',\n },\n '& mjx-frac': {\n fontSize: '120% !important',\n },\n },\n disabled: {\n opacity: 0.6,\n },\n}))(BlankContentComp);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled;\n },\n beginDrag(props) {\n return {\n choice: props.choice,\n instanceId: props.instanceId,\n };\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(BlankContent);\n\nexport default DragDropTile;\n"],"file":"choice.js"}
|
package/lib/components/blank.js
CHANGED
|
@@ -31,7 +31,7 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
31
31
|
|
|
32
32
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _renderMathBundled = require("@pie-lib/render-math-bundled");
|
|
35
35
|
|
|
36
36
|
var _debug = _interopRequireDefault(require("debug"));
|
|
37
37
|
|
|
@@ -189,7 +189,7 @@ var BlankContent = /*#__PURE__*/function (_React$Component) {
|
|
|
189
189
|
}, {
|
|
190
190
|
key: "componentDidUpdate",
|
|
191
191
|
value: function componentDidUpdate(prevProps) {
|
|
192
|
-
(0,
|
|
192
|
+
(0, _renderMathBundled.renderMath)(this.rootRef);
|
|
193
193
|
var currentChoice = this.props.choice;
|
|
194
194
|
var prevChoice = prevProps.choice;
|
|
195
195
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/blank.jsx"],"names":["log","DRAG_TYPE","useStyles","content","border","color","primary","minWidth","touchAction","overflow","whiteSpace","chip","backgroundColor","background","text","fontSize","maxWidth","position","borderRadius","chipLabel","pointerEvents","display","padding","marginTop","marginBottom","hidden","opacity","dragged","left","correct","incorrect","over","parentOver","grey","BlankContent","updateDimensions","e","preventDefault","touchStartTimer","setTimeout","startDrag","props","connectDragSource","disabled","rootRef","state","height","width","imageElement","spanRef","querySelector","onload","handleImageLoad","handleElements","addEventListener","handleTouchStart","passive","prevProps","currentChoice","choice","prevChoice","JSON","stringify","setState","removeEventListener","style","offsetWidth","offsetHeight","widthWithPadding","heightWithPadding","responseAreaWidth","parseFloat","emptyResponseAreaWidth","responseAreaHeight","emptyResponseAreaHeight","adjustedWidth","adjustedHeight","prevState","parent","childNodes","forEach","elem","Element","HTMLDocument","setAttribute","isNaN","rootStyle","minHeight","classes","isOver","dragItem","draggedLabel","value","label","ref","ReactDOM","findDOMNode","innerHTML","addDraggableFalseAttributes","undefined","getRootDimensions","React","Component","defaultProps","propTypes","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","StyledBlankContent","connectedBlankContent","connectDropTarget","tileTarget","drop","monitor","draggedItem","getItem","instanceId","dropped","canDrop","DropTile","connect","dropTarget","tileSource","canDrag","beginDrag","fromChoice","endDrag","dropResult","getDropResult","DragDropTile","dragSource","isDragging"],"mappings":"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","sourcesContent":["import grey from '@material-ui/core/colors/grey';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-lib:mask-markup:blank');\nexport const DRAG_TYPE = 'MaskBlank';\n\nconst useStyles = withStyles(() => ({\n content: {\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap', // Prevent line wrapping\n },\n chip: {\n backgroundColor: color.background(),\n border: `2px dashed ${color.text()}`,\n color: color.text(),\n fontSize: 'inherit',\n maxWidth: '374px',\n position: 'relative',\n borderRadius: '3px',\n },\n chipLabel: {\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 },\n hidden: {\n color: 'transparent',\n opacity: 0,\n },\n dragged: {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${color.incorrect()}`,\n },\n over: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n parentOver: {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n constructor() {\n super();\n this.state = {\n height: 0,\n width: 0,\n };\n }\n\n handleImageLoad = () => {\n this.updateDimensions();\n };\n\n handleElements() {\n const imageElement = this.spanRef?.querySelector('img');\n\n if (imageElement) {\n imageElement.onload = this.handleImageLoad;\n } else {\n setTimeout(() => {\n this.updateDimensions();\n }, 300);\n }\n }\n\n componentDidMount() {\n this.handleElements();\n if (this.rootRef) {\n this.rootRef.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n }\n }\n\n componentDidUpdate(prevProps) {\n renderMath(this.rootRef);\n const { choice: currentChoice } = this.props;\n const { choice: prevChoice } = prevProps;\n\n if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {\n if (!currentChoice) {\n this.setState({\n height: 0,\n width: 0,\n });\n return;\n }\n this.handleElements();\n }\n }\n\n componentWillUnmount() {\n if (this.rootRef) {\n this.rootRef.removeEventListener('touchstart', this.handleTouchStart);\n }\n }\n\n handleTouchStart = (e) => {\n e.preventDefault();\n this.touchStartTimer = setTimeout(() => {\n this.startDrag();\n }, 300); // Start drag after 300ms (touch and hold duration)\n };\n\n startDrag = () => {\n const { connectDragSource, disabled } = this.props;\n if (!disabled) {\n connectDragSource(this.rootRef);\n }\n };\n\n updateDimensions() {\n if (this.spanRef && this.rootRef) {\n // Temporarily set rootRef width to 'auto' for natural measurement\n this.rootRef.style.width = 'auto';\n\n // Get the natural dimensions of the content\n const width = this.spanRef.offsetWidth || 0;\n const height = this.spanRef.offsetHeight || 0;\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(this.props.emptyResponseAreaWidth) || 0;\n const responseAreaHeight = parseFloat(this.props.emptyResponseAreaHeight) || 0;\n\n const adjustedWidth = widthWithPadding <= responseAreaWidth ? responseAreaWidth : widthWithPadding;\n const adjustedHeight = heightWithPadding <= responseAreaHeight ? responseAreaHeight : heightWithPadding;\n\n this.setState((prevState) => ({\n width: adjustedWidth > responseAreaWidth ? adjustedWidth : prevState.width,\n height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,\n }));\n\n this.rootRef.style.width = `${adjustedWidth}px`;\n this.rootRef.style.height = `${adjustedHeight}px`;\n }\n }\n\n addDraggableFalseAttributes(parent) {\n parent.childNodes.forEach((elem) => {\n if (elem instanceof Element || elem instanceof HTMLDocument) {\n elem.setAttribute('draggable', false);\n }\n });\n }\n\n getRootDimensions() {\n // Handle potential non-numeric values\n const responseAreaWidth = !isNaN(parseFloat(this.props.emptyResponseAreaWidth))\n ? parseFloat(this.props.emptyResponseAreaWidth)\n : 0;\n const responseAreaHeight = !isNaN(parseFloat(this.props.emptyResponseAreaHeight))\n ? parseFloat(this.props.emptyResponseAreaHeight)\n : 0;\n\n const rootStyle = {\n height: this.state.height || responseAreaHeight,\n width: this.state.width || responseAreaWidth,\n };\n\n // add minWidth, minHeight if width and height are not defined\n // minWidth, minHeight will be also in model in the future\n return {\n ...rootStyle,\n ...(responseAreaWidth ? {} : { minWidth: 90 }),\n ...(responseAreaHeight ? {} : { minHeight: 32 }),\n };\n }\n\n render() {\n const { disabled, choice, classes, isOver, dragItem, correct } = this.props;\n const draggedLabel = dragItem && isOver && dragItem.choice.value;\n const label = choice && choice.value;\n\n return (\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n component=\"span\"\n label={\n <React.Fragment>\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, {\n [classes.hidden]: draggedLabel,\n })}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = label || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n {draggedLabel && (\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, classes.dragged)}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = draggedLabel || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n )}\n </React.Fragment>\n }\n className={classnames(classes.chip, isOver && classes.over, isOver && classes.parentOver, {\n [classes.correct]: correct !== undefined && correct,\n [classes.incorrect]: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={{\n ...this.getRootDimensions(),\n }}\n />\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 classes: 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};\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDragSource, connectDropTarget, ...props }) => {\n const { classes, isOver } = props;\n\n return connectDropTarget(\n connectDragSource(\n <span className={classnames(classes.content, isOver && classes.over)}>\n <StyledBlankContent {...props} />\n </span>,\n ),\n );\n});\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n\n if (draggedItem.id !== props.id) {\n props.onChange(props.id, draggedItem.choice.id);\n }\n\n return {\n dropped: draggedItem.id !== props.id,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget(DRAG_TYPE, tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.choice;\n },\n beginDrag(props) {\n return {\n id: props.id,\n choice: props.choice,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || dropResult.dropped) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.onChange(props.id, undefined);\n }\n }\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n\nexport default DragDropTile;\n"],"file":"blank.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/components/blank.jsx"],"names":["log","DRAG_TYPE","useStyles","content","border","color","primary","minWidth","touchAction","overflow","whiteSpace","chip","backgroundColor","background","text","fontSize","maxWidth","position","borderRadius","chipLabel","pointerEvents","display","padding","marginTop","marginBottom","hidden","opacity","dragged","left","correct","incorrect","over","parentOver","grey","BlankContent","updateDimensions","e","preventDefault","touchStartTimer","setTimeout","startDrag","props","connectDragSource","disabled","rootRef","state","height","width","imageElement","spanRef","querySelector","onload","handleImageLoad","handleElements","addEventListener","handleTouchStart","passive","prevProps","currentChoice","choice","prevChoice","JSON","stringify","setState","removeEventListener","style","offsetWidth","offsetHeight","widthWithPadding","heightWithPadding","responseAreaWidth","parseFloat","emptyResponseAreaWidth","responseAreaHeight","emptyResponseAreaHeight","adjustedWidth","adjustedHeight","prevState","parent","childNodes","forEach","elem","Element","HTMLDocument","setAttribute","isNaN","rootStyle","minHeight","classes","isOver","dragItem","draggedLabel","value","label","ref","ReactDOM","findDOMNode","innerHTML","addDraggableFalseAttributes","undefined","getRootDimensions","React","Component","defaultProps","propTypes","id","PropTypes","oneOfType","string","number","bool","duplicates","object","onChange","func","StyledBlankContent","connectedBlankContent","connectDropTarget","tileTarget","drop","monitor","draggedItem","getItem","instanceId","dropped","canDrop","DropTile","connect","dropTarget","tileSource","canDrag","beginDrag","fromChoice","endDrag","dropResult","getDropResult","DragDropTile","dragSource","isDragging"],"mappings":"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","sourcesContent":["import grey from '@material-ui/core/colors/grey';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/render-math-bundled';\nimport debug from 'debug';\nimport { DragSource, DropTarget } from '@pie-lib/drag';\nimport { withStyles } from '@material-ui/core/styles';\nimport Chip from '@material-ui/core/Chip';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-lib:mask-markup:blank');\nexport const DRAG_TYPE = 'MaskBlank';\n\nconst useStyles = withStyles(() => ({\n content: {\n border: `solid 0px ${color.primary()}`,\n minWidth: '200px',\n touchAction: 'none',\n overflow: 'hidden',\n whiteSpace: 'nowrap', // Prevent line wrapping\n },\n chip: {\n backgroundColor: color.background(),\n border: `2px dashed ${color.text()}`,\n color: color.text(),\n fontSize: 'inherit',\n maxWidth: '374px',\n position: 'relative',\n borderRadius: '3px',\n },\n chipLabel: {\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 },\n hidden: {\n color: 'transparent',\n opacity: 0,\n },\n dragged: {\n position: 'absolute',\n left: 16,\n maxWidth: '60px',\n },\n correct: {\n border: `solid 1px ${color.correct()}`,\n },\n incorrect: {\n border: `solid 1px ${color.incorrect()}`,\n },\n over: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n parentOver: {\n border: `1px solid ${grey[500]}`,\n backgroundColor: `${grey[300]}`,\n },\n}));\n\nexport class BlankContent extends React.Component {\n constructor() {\n super();\n this.state = {\n height: 0,\n width: 0,\n };\n }\n\n handleImageLoad = () => {\n this.updateDimensions();\n };\n\n handleElements() {\n const imageElement = this.spanRef?.querySelector('img');\n\n if (imageElement) {\n imageElement.onload = this.handleImageLoad;\n } else {\n setTimeout(() => {\n this.updateDimensions();\n }, 300);\n }\n }\n\n componentDidMount() {\n this.handleElements();\n if (this.rootRef) {\n this.rootRef.addEventListener('touchstart', this.handleTouchStart, { passive: false });\n }\n }\n\n componentDidUpdate(prevProps) {\n renderMath(this.rootRef);\n const { choice: currentChoice } = this.props;\n const { choice: prevChoice } = prevProps;\n\n if (JSON.stringify(currentChoice) !== JSON.stringify(prevChoice)) {\n if (!currentChoice) {\n this.setState({\n height: 0,\n width: 0,\n });\n return;\n }\n this.handleElements();\n }\n }\n\n componentWillUnmount() {\n if (this.rootRef) {\n this.rootRef.removeEventListener('touchstart', this.handleTouchStart);\n }\n }\n\n handleTouchStart = (e) => {\n e.preventDefault();\n this.touchStartTimer = setTimeout(() => {\n this.startDrag();\n }, 300); // Start drag after 300ms (touch and hold duration)\n };\n\n startDrag = () => {\n const { connectDragSource, disabled } = this.props;\n if (!disabled) {\n connectDragSource(this.rootRef);\n }\n };\n\n updateDimensions() {\n if (this.spanRef && this.rootRef) {\n // Temporarily set rootRef width to 'auto' for natural measurement\n this.rootRef.style.width = 'auto';\n\n // Get the natural dimensions of the content\n const width = this.spanRef.offsetWidth || 0;\n const height = this.spanRef.offsetHeight || 0;\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(this.props.emptyResponseAreaWidth) || 0;\n const responseAreaHeight = parseFloat(this.props.emptyResponseAreaHeight) || 0;\n\n const adjustedWidth = widthWithPadding <= responseAreaWidth ? responseAreaWidth : widthWithPadding;\n const adjustedHeight = heightWithPadding <= responseAreaHeight ? responseAreaHeight : heightWithPadding;\n\n this.setState((prevState) => ({\n width: adjustedWidth > responseAreaWidth ? adjustedWidth : prevState.width,\n height: adjustedHeight > responseAreaHeight ? adjustedHeight : prevState.height,\n }));\n\n this.rootRef.style.width = `${adjustedWidth}px`;\n this.rootRef.style.height = `${adjustedHeight}px`;\n }\n }\n\n addDraggableFalseAttributes(parent) {\n parent.childNodes.forEach((elem) => {\n if (elem instanceof Element || elem instanceof HTMLDocument) {\n elem.setAttribute('draggable', false);\n }\n });\n }\n\n getRootDimensions() {\n // Handle potential non-numeric values\n const responseAreaWidth = !isNaN(parseFloat(this.props.emptyResponseAreaWidth))\n ? parseFloat(this.props.emptyResponseAreaWidth)\n : 0;\n const responseAreaHeight = !isNaN(parseFloat(this.props.emptyResponseAreaHeight))\n ? parseFloat(this.props.emptyResponseAreaHeight)\n : 0;\n\n const rootStyle = {\n height: this.state.height || responseAreaHeight,\n width: this.state.width || responseAreaWidth,\n };\n\n // add minWidth, minHeight if width and height are not defined\n // minWidth, minHeight will be also in model in the future\n return {\n ...rootStyle,\n ...(responseAreaWidth ? {} : { minWidth: 90 }),\n ...(responseAreaHeight ? {} : { minHeight: 32 }),\n };\n }\n\n render() {\n const { disabled, choice, classes, isOver, dragItem, correct } = this.props;\n const draggedLabel = dragItem && isOver && dragItem.choice.value;\n const label = choice && choice.value;\n\n return (\n // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.\n <Chip\n clickable={false}\n disabled={true}\n ref={(ref) => {\n //eslint-disable-next-line\n this.rootRef = ReactDOM.findDOMNode(ref);\n }}\n component=\"span\"\n label={\n <React.Fragment>\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, {\n [classes.hidden]: draggedLabel,\n })}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = label || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n {draggedLabel && (\n <span\n className={classnames(classes.chipLabel, isOver && classes.over, classes.dragged)}\n ref={(ref) => {\n if (ref) {\n //eslint-disable-next-line\n this.spanRef = ReactDOM.findDOMNode(ref);\n ref.innerHTML = draggedLabel || '';\n this.addDraggableFalseAttributes(ref);\n }\n }}\n >\n {' '}\n </span>\n )}\n </React.Fragment>\n }\n className={classnames(classes.chip, isOver && classes.over, isOver && classes.parentOver, {\n [classes.correct]: correct !== undefined && correct,\n [classes.incorrect]: correct !== undefined && !correct,\n })}\n variant={disabled ? 'outlined' : undefined}\n style={{\n ...this.getRootDimensions(),\n }}\n />\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 classes: 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};\n\nconst StyledBlankContent = useStyles(BlankContent);\n\nconst connectedBlankContent = useStyles(({ connectDragSource, connectDropTarget, ...props }) => {\n const { classes, isOver } = props;\n\n return connectDropTarget(\n connectDragSource(\n <span className={classnames(classes.content, isOver && classes.over)}>\n <StyledBlankContent {...props} />\n </span>,\n ),\n );\n});\n\nconst tileTarget = {\n drop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n log('props.instanceId', props.instanceId, 'draggedItem.instanceId:', draggedItem.instanceId);\n\n if (draggedItem.id !== props.id) {\n props.onChange(props.id, draggedItem.choice.id);\n }\n\n return {\n dropped: draggedItem.id !== props.id,\n };\n },\n canDrop(props, monitor) {\n const draggedItem = monitor.getItem();\n\n return draggedItem.instanceId === props.instanceId;\n },\n};\n\nconst DropTile = DropTarget(DRAG_TYPE, tileTarget, (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n dragItem: monitor.getItem(),\n}))(connectedBlankContent);\n\nconst tileSource = {\n canDrag(props) {\n return !props.disabled && !!props.choice;\n },\n beginDrag(props) {\n return {\n id: props.id,\n choice: props.choice,\n instanceId: props.instanceId,\n fromChoice: true,\n };\n },\n endDrag(props, monitor) {\n // this will be null if it did not drop\n const dropResult = monitor.getDropResult();\n\n if (!dropResult || dropResult.dropped) {\n const draggedItem = monitor.getItem();\n\n if (draggedItem.fromChoice) {\n props.onChange(props.id, undefined);\n }\n }\n },\n};\n\nconst DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n}))(DropTile);\n\nexport default DragDropTile;\n"],"file":"blank.js"}
|
|
@@ -47,7 +47,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
47
47
|
|
|
48
48
|
var _renderUi = require("@pie-lib/render-ui");
|
|
49
49
|
|
|
50
|
-
var
|
|
50
|
+
var _renderMathBundled = require("@pie-lib/render-math-bundled");
|
|
51
51
|
|
|
52
52
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
53
|
|
|
@@ -162,7 +162,7 @@ var Dropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
162
162
|
var mathHandled = ref.querySelector('[data-math-handled="true"]');
|
|
163
163
|
|
|
164
164
|
if (containsLatex && (!mathHandled || !hasMathJax)) {
|
|
165
|
-
(0,
|
|
165
|
+
(0, _renderMathBundled.renderMath)(ref);
|
|
166
166
|
}
|
|
167
167
|
});
|
|
168
168
|
}
|
|
@@ -172,9 +172,9 @@ var Dropdown = /*#__PURE__*/function (_React$Component) {
|
|
|
172
172
|
|
|
173
173
|
if (newWidth !== this.state.menuWidth) {
|
|
174
174
|
this.elementRefs.forEach(function (ref) {
|
|
175
|
-
if (ref) (0,
|
|
175
|
+
if (ref) (0, _renderMathBundled.renderMath)(ref);
|
|
176
176
|
});
|
|
177
|
-
(0,
|
|
177
|
+
(0, _renderMathBundled.renderMath)(hiddenEl);
|
|
178
178
|
this.setState({
|
|
179
179
|
menuWidth: newWidth
|
|
180
180
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/dropdown.jsx"],"names":["Dropdown","props","event","setState","anchorEl","currentTarget","value","previewValue","highlightedOptionId","previewRef","current","innerHTML","index","id","stateUpdate","choices","onChange","handleHighlight","handleClose","selectedValue","state","ref","elementRefs","preview","menuWidth","hiddenRef","React","createRef","buttonRef","clientWidth","prevProps","prevState","hiddenEl","dropdownJustOpened","forEach","containsLatex","querySelector","hasMathJax","mathHandled","newWidth","found","find","choice","label","trim","undefined","classes","correct","disabled","showCorrectAnswer","singleQuery","correctValue","open","Boolean","buttonId","menuId","valueDisplayId","disabledClass","disabledCorrect","disabledIncorrect","incrementedId","parseInt","labelId","labelText","correctnessIcon","correctnessIndicatorIcon","correctIcon","incorrectIcon","position","visibility","top","left","map","c","root","menuRoot","selected","__html","srOnly","minWidth","borderWidth","transition","handleClick","getLabel","selectMenu","vertical","horizontal","style","padding","role","disablePadding","optionId","handleSelect","handleHover","selectedIndicator","Component","PropTypes","string","bool","func","object","arrayOf","shape","styles","color","text","border","borderGray","borderRadius","justifyContent","backgroundColor","background","height","width","margin","textTransform","paddingRight","right","pointerEvents","marginLeft","outline","tertiary","outlineOffset","borderColor","incorrectWithIcon","dropdownBackground","boxSizing","fontSize","overflow","white"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport Close from '@material-ui/icons/Close';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nclass Dropdown extends React.Component {\n static propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n correct: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, label: PropTypes.string })),\n showCorrectAnswer: PropTypes.bool,\n singleQuery: PropTypes.bool,\n correctValue: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n anchorEl: null,\n highlightedOptionId: null,\n menuWidth: null,\n previewValue: null,\n };\n this.hiddenRef = React.createRef();\n this.buttonRef = React.createRef();\n this.previewRef = React.createRef();\n this.elementRefs = [];\n }\n\n componentDidMount() {\n // measure hidden menu width once\n if (this.hiddenRef.current && this.state.menuWidth === null) {\n this.setState({ menuWidth: this.hiddenRef.current.clientWidth });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const hiddenEl = this.hiddenRef.current;\n\n const dropdownJustOpened = !prevState.anchorEl && this.state.anchorEl;\n if (dropdownJustOpened) {\n this.elementRefs.forEach((ref) => {\n if (!ref) return;\n\n const containsLatex = ref.querySelector('[data-latex], [data-raw]');\n const hasMathJax = ref.querySelector('mjx-container');\n const mathHandled = ref.querySelector('[data-math-handled=\"true\"]');\n\n if (containsLatex && (!mathHandled || !hasMathJax)) {\n renderMath(ref);\n }\n });\n }\n\n if (hiddenEl) {\n const newWidth = hiddenEl.clientWidth;\n if (newWidth !== this.state.menuWidth) {\n this.elementRefs.forEach((ref) => {\n if (ref) renderMath(ref);\n });\n\n renderMath(hiddenEl);\n this.setState({ menuWidth: newWidth });\n }\n }\n }\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => {\n const { value } = this.props;\n this.setState({ anchorEl: null, previewValue: null, highlightedOptionId: null });\n // clear displayed preview if no selection\n if (!value && this.previewRef.current) {\n this.previewRef.current.innerHTML = '';\n }\n };\n\n handleHighlight = (index) => {\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n\n // preview on hover if nothing selected\n const stateUpdate = { highlightedOptionId };\n if (!this.props.value) {\n stateUpdate.previewValue = this.props.choices[index].value;\n }\n this.setState(stateUpdate);\n };\n\n handleSelect = (value, index) => {\n this.props.onChange(this.props.id, value);\n this.handleHighlight(index);\n this.handleClose();\n };\n\n handleHover = (index) => {\n const selectedValue = this.props.value;\n\n if (selectedValue) return;\n\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n const previewValue = this.state.previewValue;\n\n this.setState({ highlightedOptionId, previewValue }, () => {\n // On hover, preview the math-rendered content inside the button if no value is selected.\n const ref = this.elementRefs[index];\n const preview = this.previewRef.current;\n\n if (ref && preview) {\n preview.innerHTML = ref.innerHTML;\n }\n });\n };\n\n getLabel(choices, value) {\n const found = (choices || []).find((choice) => choice.value === value);\n\n return found ? found.label.trim() : undefined;\n }\n\n render() {\n const { classes, id, correct, disabled, value, choices, showCorrectAnswer, singleQuery, correctValue } = this.props;\n const { anchorEl } = this.state;\n const open = Boolean(anchorEl);\n const buttonId = `dropdown-button-${id}`;\n const menuId = `dropdown-menu-${id}`;\n const valueDisplayId = `dropdown-value-${id}`;\n\n // Determine the class for disabled state, view mode and evaluate mode\n let disabledClass;\n // Reset elementRefs before each render to avoid stale references\n this.elementRefs = [];\n\n if (disabled && correct !== undefined) {\n disabledClass = correct || showCorrectAnswer ? classes.disabledCorrect : classes.disabledIncorrect;\n }\n\n // Create distinct, visually hidden labels for each dropdown\n const incrementedId = parseInt(id, 10) + 1;\n const labelId = singleQuery ? 'Query-label' : `Query-label-${incrementedId}`;\n const labelText = singleQuery ? 'Query' : `Query ${incrementedId}`;\n\n // Changed from Select to Button for dropdown to enhance accessibility. This modification offers explicit control over aria attributes and focuses management, ensuring the dropdown is compliant with accessibility standards. The use of Button and Menu components allows for better handling of keyboard interactions and provides accessible labels and menus, aligning with WCAG guidelines and improving usability for assistive technology users.\n let correctnessIcon = null;\n if (disabled && correct !== undefined) {\n correctnessIcon =\n correct || showCorrectAnswer ? (\n <Check className={classNames(classes.correctnessIndicatorIcon, classes.correctIcon)} />\n ) : (\n <Close className={classNames(classes.correctnessIndicatorIcon, classes.incorrectIcon)} />\n );\n }\n\n return (\n <>\n <div\n ref={this.hiddenRef}\n style={{ position: 'absolute', visibility: 'hidden', top: 0, left: 0 }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n {(choices || []).map((c, index) => (\n <MenuItem\n key={index}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n <span className={classes.label} dangerouslySetInnerHTML={{ __html: c.label }} />\n </MenuItem>\n ))}\n </div>\n <InputLabel className={classes.srOnly} id={labelId} tabIndex={-1} aria-hidden=\"true\">\n {labelText}\n </InputLabel>\n <Button\n ref={this.buttonRef}\n style={{\n ...(this.state.menuWidth && { minWidth: `calc(${this.state.menuWidth}px + 8px)` }),\n borderWidth: open ? '2px' : '1px',\n transition: 'border-width 0.2s ease-in-out',\n }}\n aria-controls={open ? menuId : undefined}\n aria-haspopup=\"listbox\"\n aria-expanded={open ? 'true' : undefined}\n aria-activedescendant={this.state.highlightedOptionId}\n onClick={this.handleClick}\n classes={{\n root: classes.root,\n disabled: disabledClass,\n }}\n disabled={disabled}\n id={buttonId}\n role=\"combobox\"\n aria-label={`Select an option for ${labelText}`}\n aria-labelledby={valueDisplayId}\n >\n {correctnessIcon}\n <span\n id={valueDisplayId}\n ref={this.previewRef}\n className={classes.label}\n dangerouslySetInnerHTML={{\n __html: correctValue\n ? correctValue\n : open && this.state.previewValue\n ? this.getLabel(choices, this.state.previewValue)\n : this.getLabel(choices, value) || '',\n }}\n />\n {open ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}\n </Button>\n <Menu\n id={menuId}\n anchorEl={anchorEl}\n className={classes.selectMenu}\n keepMounted\n open={open}\n onClose={this.handleClose}\n getContentAnchorEl={null}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n PaperProps={this.state.menuWidth ? { style: { minWidth: this.state.menuWidth, padding: '4px' } } : undefined}\n MenuListProps={{\n 'aria-labelledby': buttonId,\n role: 'listbox',\n disablePadding: true,\n }}\n >\n {(choices || []).map((c, index) => {\n const optionId = `dropdown-option-${id}-${index}`;\n\n return (\n <MenuItem\n id={optionId}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n key={`${c.label}-${index}`}\n value={c.value}\n onClick={() => this.handleSelect(c.value, index)}\n role=\"option\"\n aria-selected={this.state.highlightedOptionId === optionId ? 'true' : undefined}\n onMouseOver={() => this.handleHover(index)}\n >\n <span\n ref={(ref) => (this.elementRefs[index] = ref)}\n className={classes.label}\n dangerouslySetInnerHTML={{ __html: c.label }}\n />\n <span\n className={classes.selectedIndicator}\n dangerouslySetInnerHTML={{ __html: c.value === value ? ' ✓' : '' }}\n />\n </MenuItem>\n );\n })}\n </Menu>\n </>\n );\n }\n}\n\nconst styles = () => ({\n root: {\n color: color.text(),\n border: `1px solid ${color.borderGray()}`,\n borderRadius: '4px',\n justifyContent: 'space-between',\n backgroundColor: color.background(),\n position: 'relative',\n height: '45px',\n width: 'fit-content',\n margin: '2px',\n textTransform: 'none',\n '& span': {\n paddingRight: '5px',\n },\n '& svg': {\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 12px)',\n pointerEvents: 'none',\n color: color.text(),\n marginLeft: '5px',\n },\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '2px',\n borderWidth: '3px',\n },\n },\n disabledCorrect: {\n borderWidth: '2px',\n borderColor: color.correct(),\n color: `${color.text()} !important`,\n },\n disabledIncorrect: {\n borderWidth: '2px',\n borderColor: color.incorrectWithIcon(),\n color: `${color.text()} !important`,\n },\n selectMenu: {\n backgroundColor: color.background(),\n border: `1px solid ${color.correct()} !important`,\n '&:hover': {\n border: `1px solid ${color.text()} `,\n borderColor: 'initial',\n },\n '&:focus': {\n border: `1px solid ${color.text()}`,\n borderColor: 'initial',\n },\n // remove default padding on the inner list\n '& .MuiList-root': {\n padding: 0,\n },\n },\n selected: {\n color: `${color.text()} !important`,\n backgroundColor: `${color.background()} !important`,\n '&:hover': {\n color: color.text(),\n backgroundColor: `${color.dropdownBackground()} !important`,\n },\n },\n menuRoot: {\n color: color.text(),\n backgroundColor: color.background(),\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '-1px', // keeps it inside the item\n },\n '&:focus': {\n color: color.text(),\n backgroundColor: color.background(),\n },\n '&:hover': {\n color: color.text(),\n backgroundColor: color.dropdownBackground(),\n },\n boxSizing: 'border-box',\n padding: '25px',\n borderRadius: '4px',\n },\n label: {\n fontSize: 'max(1rem, 14px)',\n },\n selectedIndicator: {\n fontSize: 'max(1rem, 14px)',\n position: 'absolute',\n right: '10px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n correctnessIndicatorIcon: {\n color: `${color.white()} !important`,\n position: 'absolute',\n top: '-8px !important',\n left: '-8px',\n marginLeft: '0 !important',\n borderRadius: '50%',\n fontSize: '16px',\n padding: '2px',\n },\n correctIcon: {\n backgroundColor: color.correct(),\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n});\n\nexport default withStyles(styles)(Dropdown);\n"],"file":"dropdown.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/components/dropdown.jsx"],"names":["Dropdown","props","event","setState","anchorEl","currentTarget","value","previewValue","highlightedOptionId","previewRef","current","innerHTML","index","id","stateUpdate","choices","onChange","handleHighlight","handleClose","selectedValue","state","ref","elementRefs","preview","menuWidth","hiddenRef","React","createRef","buttonRef","clientWidth","prevProps","prevState","hiddenEl","dropdownJustOpened","forEach","containsLatex","querySelector","hasMathJax","mathHandled","newWidth","found","find","choice","label","trim","undefined","classes","correct","disabled","showCorrectAnswer","singleQuery","correctValue","open","Boolean","buttonId","menuId","valueDisplayId","disabledClass","disabledCorrect","disabledIncorrect","incrementedId","parseInt","labelId","labelText","correctnessIcon","correctnessIndicatorIcon","correctIcon","incorrectIcon","position","visibility","top","left","map","c","root","menuRoot","selected","__html","srOnly","minWidth","borderWidth","transition","handleClick","getLabel","selectMenu","vertical","horizontal","style","padding","role","disablePadding","optionId","handleSelect","handleHover","selectedIndicator","Component","PropTypes","string","bool","func","object","arrayOf","shape","styles","color","text","border","borderGray","borderRadius","justifyContent","backgroundColor","background","height","width","margin","textTransform","paddingRight","right","pointerEvents","marginLeft","outline","tertiary","outlineOffset","borderColor","incorrectWithIcon","dropdownBackground","boxSizing","fontSize","overflow","white"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport Close from '@material-ui/icons/Close';\nimport Check from '@material-ui/icons/Check';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/render-math-bundled';\n\nclass Dropdown extends React.Component {\n static propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n correct: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape({ value: PropTypes.string, label: PropTypes.string })),\n showCorrectAnswer: PropTypes.bool,\n singleQuery: PropTypes.bool,\n correctValue: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n anchorEl: null,\n highlightedOptionId: null,\n menuWidth: null,\n previewValue: null,\n };\n this.hiddenRef = React.createRef();\n this.buttonRef = React.createRef();\n this.previewRef = React.createRef();\n this.elementRefs = [];\n }\n\n componentDidMount() {\n // measure hidden menu width once\n if (this.hiddenRef.current && this.state.menuWidth === null) {\n this.setState({ menuWidth: this.hiddenRef.current.clientWidth });\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const hiddenEl = this.hiddenRef.current;\n\n const dropdownJustOpened = !prevState.anchorEl && this.state.anchorEl;\n if (dropdownJustOpened) {\n this.elementRefs.forEach((ref) => {\n if (!ref) return;\n\n const containsLatex = ref.querySelector('[data-latex], [data-raw]');\n const hasMathJax = ref.querySelector('mjx-container');\n const mathHandled = ref.querySelector('[data-math-handled=\"true\"]');\n\n if (containsLatex && (!mathHandled || !hasMathJax)) {\n renderMath(ref);\n }\n });\n }\n\n if (hiddenEl) {\n const newWidth = hiddenEl.clientWidth;\n if (newWidth !== this.state.menuWidth) {\n this.elementRefs.forEach((ref) => {\n if (ref) renderMath(ref);\n });\n\n renderMath(hiddenEl);\n this.setState({ menuWidth: newWidth });\n }\n }\n }\n\n handleClick = (event) => this.setState({ anchorEl: event.currentTarget });\n\n handleClose = () => {\n const { value } = this.props;\n this.setState({ anchorEl: null, previewValue: null, highlightedOptionId: null });\n // clear displayed preview if no selection\n if (!value && this.previewRef.current) {\n this.previewRef.current.innerHTML = '';\n }\n };\n\n handleHighlight = (index) => {\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n\n // preview on hover if nothing selected\n const stateUpdate = { highlightedOptionId };\n if (!this.props.value) {\n stateUpdate.previewValue = this.props.choices[index].value;\n }\n this.setState(stateUpdate);\n };\n\n handleSelect = (value, index) => {\n this.props.onChange(this.props.id, value);\n this.handleHighlight(index);\n this.handleClose();\n };\n\n handleHover = (index) => {\n const selectedValue = this.props.value;\n\n if (selectedValue) return;\n\n const highlightedOptionId = `dropdown-option-${this.props.id}-${index}`;\n const previewValue = this.state.previewValue;\n\n this.setState({ highlightedOptionId, previewValue }, () => {\n // On hover, preview the math-rendered content inside the button if no value is selected.\n const ref = this.elementRefs[index];\n const preview = this.previewRef.current;\n\n if (ref && preview) {\n preview.innerHTML = ref.innerHTML;\n }\n });\n };\n\n getLabel(choices, value) {\n const found = (choices || []).find((choice) => choice.value === value);\n\n return found ? found.label.trim() : undefined;\n }\n\n render() {\n const { classes, id, correct, disabled, value, choices, showCorrectAnswer, singleQuery, correctValue } = this.props;\n const { anchorEl } = this.state;\n const open = Boolean(anchorEl);\n const buttonId = `dropdown-button-${id}`;\n const menuId = `dropdown-menu-${id}`;\n const valueDisplayId = `dropdown-value-${id}`;\n\n // Determine the class for disabled state, view mode and evaluate mode\n let disabledClass;\n // Reset elementRefs before each render to avoid stale references\n this.elementRefs = [];\n\n if (disabled && correct !== undefined) {\n disabledClass = correct || showCorrectAnswer ? classes.disabledCorrect : classes.disabledIncorrect;\n }\n\n // Create distinct, visually hidden labels for each dropdown\n const incrementedId = parseInt(id, 10) + 1;\n const labelId = singleQuery ? 'Query-label' : `Query-label-${incrementedId}`;\n const labelText = singleQuery ? 'Query' : `Query ${incrementedId}`;\n\n // Changed from Select to Button for dropdown to enhance accessibility. This modification offers explicit control over aria attributes and focuses management, ensuring the dropdown is compliant with accessibility standards. The use of Button and Menu components allows for better handling of keyboard interactions and provides accessible labels and menus, aligning with WCAG guidelines and improving usability for assistive technology users.\n let correctnessIcon = null;\n if (disabled && correct !== undefined) {\n correctnessIcon =\n correct || showCorrectAnswer ? (\n <Check className={classNames(classes.correctnessIndicatorIcon, classes.correctIcon)} />\n ) : (\n <Close className={classNames(classes.correctnessIndicatorIcon, classes.incorrectIcon)} />\n );\n }\n\n return (\n <>\n <div\n ref={this.hiddenRef}\n style={{ position: 'absolute', visibility: 'hidden', top: 0, left: 0 }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n {(choices || []).map((c, index) => (\n <MenuItem\n key={index}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n tabIndex={-1}\n aria-hidden=\"true\"\n >\n <span className={classes.label} dangerouslySetInnerHTML={{ __html: c.label }} />\n </MenuItem>\n ))}\n </div>\n <InputLabel className={classes.srOnly} id={labelId} tabIndex={-1} aria-hidden=\"true\">\n {labelText}\n </InputLabel>\n <Button\n ref={this.buttonRef}\n style={{\n ...(this.state.menuWidth && { minWidth: `calc(${this.state.menuWidth}px + 8px)` }),\n borderWidth: open ? '2px' : '1px',\n transition: 'border-width 0.2s ease-in-out',\n }}\n aria-controls={open ? menuId : undefined}\n aria-haspopup=\"listbox\"\n aria-expanded={open ? 'true' : undefined}\n aria-activedescendant={this.state.highlightedOptionId}\n onClick={this.handleClick}\n classes={{\n root: classes.root,\n disabled: disabledClass,\n }}\n disabled={disabled}\n id={buttonId}\n role=\"combobox\"\n aria-label={`Select an option for ${labelText}`}\n aria-labelledby={valueDisplayId}\n >\n {correctnessIcon}\n <span\n id={valueDisplayId}\n ref={this.previewRef}\n className={classes.label}\n dangerouslySetInnerHTML={{\n __html: correctValue\n ? correctValue\n : open && this.state.previewValue\n ? this.getLabel(choices, this.state.previewValue)\n : this.getLabel(choices, value) || '',\n }}\n />\n {open ? <ArrowDropUpIcon /> : <ArrowDropDownIcon />}\n </Button>\n <Menu\n id={menuId}\n anchorEl={anchorEl}\n className={classes.selectMenu}\n keepMounted\n open={open}\n onClose={this.handleClose}\n getContentAnchorEl={null}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n PaperProps={this.state.menuWidth ? { style: { minWidth: this.state.menuWidth, padding: '4px' } } : undefined}\n MenuListProps={{\n 'aria-labelledby': buttonId,\n role: 'listbox',\n disablePadding: true,\n }}\n >\n {(choices || []).map((c, index) => {\n const optionId = `dropdown-option-${id}-${index}`;\n\n return (\n <MenuItem\n id={optionId}\n classes={{ root: classes.menuRoot, selected: classes.selected }}\n key={`${c.label}-${index}`}\n value={c.value}\n onClick={() => this.handleSelect(c.value, index)}\n role=\"option\"\n aria-selected={this.state.highlightedOptionId === optionId ? 'true' : undefined}\n onMouseOver={() => this.handleHover(index)}\n >\n <span\n ref={(ref) => (this.elementRefs[index] = ref)}\n className={classes.label}\n dangerouslySetInnerHTML={{ __html: c.label }}\n />\n <span\n className={classes.selectedIndicator}\n dangerouslySetInnerHTML={{ __html: c.value === value ? ' ✓' : '' }}\n />\n </MenuItem>\n );\n })}\n </Menu>\n </>\n );\n }\n}\n\nconst styles = () => ({\n root: {\n color: color.text(),\n border: `1px solid ${color.borderGray()}`,\n borderRadius: '4px',\n justifyContent: 'space-between',\n backgroundColor: color.background(),\n position: 'relative',\n height: '45px',\n width: 'fit-content',\n margin: '2px',\n textTransform: 'none',\n '& span': {\n paddingRight: '5px',\n },\n '& svg': {\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 12px)',\n pointerEvents: 'none',\n color: color.text(),\n marginLeft: '5px',\n },\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '2px',\n borderWidth: '3px',\n },\n },\n disabledCorrect: {\n borderWidth: '2px',\n borderColor: color.correct(),\n color: `${color.text()} !important`,\n },\n disabledIncorrect: {\n borderWidth: '2px',\n borderColor: color.incorrectWithIcon(),\n color: `${color.text()} !important`,\n },\n selectMenu: {\n backgroundColor: color.background(),\n border: `1px solid ${color.correct()} !important`,\n '&:hover': {\n border: `1px solid ${color.text()} `,\n borderColor: 'initial',\n },\n '&:focus': {\n border: `1px solid ${color.text()}`,\n borderColor: 'initial',\n },\n // remove default padding on the inner list\n '& .MuiList-root': {\n padding: 0,\n },\n },\n selected: {\n color: `${color.text()} !important`,\n backgroundColor: `${color.background()} !important`,\n '&:hover': {\n color: color.text(),\n backgroundColor: `${color.dropdownBackground()} !important`,\n },\n },\n menuRoot: {\n color: color.text(),\n backgroundColor: color.background(),\n '&:focus, &:focus-visible': {\n outline: `3px solid ${color.tertiary()}`,\n outlineOffset: '-1px', // keeps it inside the item\n },\n '&:focus': {\n color: color.text(),\n backgroundColor: color.background(),\n },\n '&:hover': {\n color: color.text(),\n backgroundColor: color.dropdownBackground(),\n },\n boxSizing: 'border-box',\n padding: '25px',\n borderRadius: '4px',\n },\n label: {\n fontSize: 'max(1rem, 14px)',\n },\n selectedIndicator: {\n fontSize: 'max(1rem, 14px)',\n position: 'absolute',\n right: '10px',\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n correctnessIndicatorIcon: {\n color: `${color.white()} !important`,\n position: 'absolute',\n top: '-8px !important',\n left: '-8px',\n marginLeft: '0 !important',\n borderRadius: '50%',\n fontSize: '16px',\n padding: '2px',\n },\n correctIcon: {\n backgroundColor: color.correct(),\n },\n incorrectIcon: {\n backgroundColor: color.incorrectWithIcon(),\n },\n});\n\nexport default withStyles(styles)(Dropdown);\n"],"file":"dropdown.js"}
|
package/lib/drag-in-the-blank.js
CHANGED
|
@@ -25,7 +25,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
25
25
|
|
|
26
26
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _renderMathBundled = require("@pie-lib/render-math-bundled");
|
|
29
29
|
|
|
30
30
|
var _choices = _interopRequireDefault(require("./choices"));
|
|
31
31
|
|
|
@@ -130,13 +130,13 @@ var DragInTheBlank = /*#__PURE__*/function (_React$Component) {
|
|
|
130
130
|
key: "UNSAFE_componentWillReceiveProps",
|
|
131
131
|
value: function UNSAFE_componentWillReceiveProps() {
|
|
132
132
|
if (this.rootRef) {
|
|
133
|
-
(0,
|
|
133
|
+
(0, _renderMathBundled.renderMath)(this.rootRef);
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
}, {
|
|
137
137
|
key: "componentDidUpdate",
|
|
138
138
|
value: function componentDidUpdate() {
|
|
139
|
-
(0,
|
|
139
|
+
(0, _renderMathBundled.renderMath)(this.rootRef);
|
|
140
140
|
}
|
|
141
141
|
}, {
|
|
142
142
|
key: "render",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/drag-in-the-blank.jsx"],"names":["Masked","props","node","data","onChange","dataset","component","disabled","duplicates","correctResponse","feedback","showCorrectAnswer","emptyResponseAreaWidth","emptyResponseAreaHeight","choiceId","id","choice","choices","find","c","type","DragInTheBlank","choicePosition","flexDirection","justifyContent","alignItems","rootRef","markup","layout","value","choicesPosition","style","display","minWidth","getPositionDirection","ref","React","Component","PropTypes","string","object","arrayOf","shape","label","func","bool","oneOfType","number"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA;AACA,IAAMA,MAAM,GAAG,wBAAS,OAAT,EAAkB,UAACC,KAAD;AAAA,SAAW,UAACC,IAAD,EAAOC,IAAP,EAAaC,QAAb,EAA0B;AACpE,QAAMC,OAAO,GAAGH,IAAI,CAACC,IAAL,GAAYD,IAAI,CAACC,IAAL,CAAUE,OAAV,IAAqB,EAAjC,GAAsC,EAAtD;;AACA,QAAIA,OAAO,CAACC,SAAR,KAAsB,OAA1B,EAAmC;AACjC;AACA,UACEC,QADF,GAQIN,KARJ,CACEM,QADF;AAAA,UAEEC,UAFF,GAQIP,KARJ,CAEEO,UAFF;AAAA,UAGEC,eAHF,GAQIR,KARJ,CAGEQ,eAHF;AAAA,UAIEC,QAJF,GAQIT,KARJ,CAIES,QAJF;AAAA,UAKEC,iBALF,GAQIV,KARJ,CAKEU,iBALF;AAAA,UAMEC,sBANF,GAQIX,KARJ,CAMEW,sBANF;AAAA,UAOEC,uBAPF,GAQIZ,KARJ,CAOEY,uBAPF;AASA,UAAMC,QAAQ,GAAGH,iBAAiB,GAAGF,eAAe,CAACJ,OAAO,CAACU,EAAT,CAAlB,GAAiCZ,IAAI,CAACE,OAAO,CAACU,EAAT,CAAvE,CAXiC,CAYjC;;AACA,UAAMC,MAAM,GAAGF,QAAQ,IAAIb,KAAK,CAACgB,OAAN,CAAcC,IAAd,CAAmB,UAACC,CAAD;AAAA,eAAOA,CAAC,CAACJ,EAAF,KAASD,QAAhB;AAAA,OAAnB,CAA3B;AAEA,0BACE,gCAAC,iBAAD;AACE,QAAA,GAAG,YAAKZ,IAAI,CAACkB,IAAV,cAAkBf,OAAO,CAACU,EAA1B,CADL;AAEE,QAAA,OAAO,EAAEJ,iBAAiB,IAAKD,QAAQ,IAAIA,QAAQ,CAACL,OAAO,CAACU,EAAT,CAFrD;AAGE,QAAA,QAAQ,EAAER,QAHZ;AAIE,QAAA,UAAU,EAAEC,UAJd;AAKE,QAAA,MAAM,EAAEQ,MALV;AAME,QAAA,EAAE,EAAEX,OAAO,CAACU,EANd;AAOE,QAAA,sBAAsB,EAAEH,sBAP1B;AAQE,QAAA,uBAAuB,EAAEC,uBAR3B;AASE,QAAA,QAAQ,EAAET;AATZ,QADF;AAaD;AACF,GA/BgC;AAAA,CAAlB,CAAf;;IAiCqBiB,c;;;;;;;;;;;;;;;6GA2BI,UAACC,cAAD,EAAoB;AACzC,UAAIC,aAAJ;AACA,UAAIC,cAAJ;AACA,UAAIC,UAAJ;;AAEA,cAAQH,cAAR;AACE,aAAK,MAAL;AACEC,UAAAA,aAAa,GAAG,KAAhB;AACAE,UAAAA,UAAU,GAAG,QAAb;AACA;;AACF,aAAK,OAAL;AACEF,UAAAA,aAAa,GAAG,aAAhB;AACAC,UAAAA,cAAc,GAAG,UAAjB;AACAC,UAAAA,UAAU,GAAG,QAAb;AACA;;AACF,aAAK,OAAL;AACEF,UAAAA,aAAa,GAAG,gBAAhB;AACA;;AACF;AACE;AACAA,UAAAA,aAAa,GAAG,QAAhB;AACA;AAhBJ;;AAmBA,aAAO;AAAEA,QAAAA,aAAa,EAAbA,aAAF;AAAiBC,QAAAA,cAAc,EAAdA,cAAjB;AAAiCC,QAAAA,UAAU,EAAVA;AAAjC,OAAP;AACD,K;;;;;;WAnCD,4CAAmC;AACjC,UAAI,KAAKC,OAAT,EAAkB;AAChB,
|
|
1
|
+
{"version":3,"sources":["../src/drag-in-the-blank.jsx"],"names":["Masked","props","node","data","onChange","dataset","component","disabled","duplicates","correctResponse","feedback","showCorrectAnswer","emptyResponseAreaWidth","emptyResponseAreaHeight","choiceId","id","choice","choices","find","c","type","DragInTheBlank","choicePosition","flexDirection","justifyContent","alignItems","rootRef","markup","layout","value","choicesPosition","style","display","minWidth","getPositionDirection","ref","React","Component","PropTypes","string","object","arrayOf","shape","label","func","bool","oneOfType","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { renderMath } from '@pie-lib/render-math-bundled';\nimport Choices from './choices';\nimport Blank from './components/blank';\nimport { withMask } from './with-mask';\n\n// eslint-disable-next-line react/display-name\nconst Masked = withMask('blank', (props) => (node, data, onChange) => {\n const dataset = node.data ? node.data.dataset || {} : {};\n if (dataset.component === 'blank') {\n // eslint-disable-next-line react/prop-types\n const {\n disabled,\n duplicates,\n correctResponse,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n } = props;\n const choiceId = showCorrectAnswer ? correctResponse[dataset.id] : data[dataset.id];\n // eslint-disable-next-line react/prop-types\n const choice = choiceId && props.choices.find((c) => c.id === choiceId);\n\n return (\n <Blank\n key={`${node.type}-${dataset.id}`}\n correct={showCorrectAnswer || (feedback && feedback[dataset.id])}\n disabled={disabled}\n duplicates={duplicates}\n choice={choice}\n id={dataset.id}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n onChange={onChange}\n />\n );\n }\n});\n\nexport default class DragInTheBlank extends React.Component {\n static propTypes = {\n markup: PropTypes.string,\n layout: PropTypes.object,\n choicesPosition: PropTypes.string,\n choices: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })),\n value: PropTypes.object,\n onChange: PropTypes.func,\n duplicates: PropTypes.bool,\n disabled: PropTypes.bool,\n feedback: PropTypes.object,\n correctResponse: PropTypes.object,\n showCorrectAnswer: PropTypes.bool,\n emptyResponseAreaWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n emptyResponseAreaHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n\n UNSAFE_componentWillReceiveProps() {\n if (this.rootRef) {\n renderMath(this.rootRef);\n }\n }\n\n componentDidUpdate() {\n renderMath(this.rootRef);\n }\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n let justifyContent;\n let alignItems;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row';\n alignItems = 'center';\n break;\n case 'right':\n flexDirection = 'row-reverse';\n justifyContent = 'flex-end';\n alignItems = 'center';\n break;\n case 'below':\n flexDirection = 'column-reverse';\n break;\n default:\n // above\n flexDirection = 'column';\n break;\n }\n\n return { flexDirection, justifyContent, alignItems };\n };\n\n render() {\n const {\n markup,\n duplicates,\n layout,\n value,\n onChange,\n choicesPosition,\n choices,\n correctResponse,\n disabled,\n feedback,\n showCorrectAnswer,\n emptyResponseAreaWidth,\n emptyResponseAreaHeight,\n } = this.props;\n\n const choicePosition = choicesPosition || 'below';\n const style = {\n display: 'flex',\n minWidth: '100px',\n ...this.getPositionDirection(choicePosition),\n };\n\n return (\n <div ref={(ref) => ref && (this.rootRef = ref)} style={style}>\n <Choices\n choicePosition={choicePosition}\n duplicates={duplicates}\n choices={choices}\n value={value}\n disabled={disabled}\n />\n <Masked\n elementType={'drag-in-the-blank'}\n markup={markup}\n layout={layout}\n value={value}\n choices={choices}\n onChange={onChange}\n disabled={disabled}\n duplicates={duplicates}\n feedback={feedback}\n correctResponse={correctResponse}\n showCorrectAnswer={showCorrectAnswer}\n emptyResponseAreaWidth={emptyResponseAreaWidth}\n emptyResponseAreaHeight={emptyResponseAreaHeight}\n />\n </div>\n );\n }\n}\n"],"file":"drag-in-the-blank.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/mask-markup",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0-hotfix.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@material-ui/core": "^3.9.3",
|
|
12
12
|
"@material-ui/icons": "^3.0.2",
|
|
13
|
-
"@pie-lib/drag": "
|
|
14
|
-
"@pie-lib/editable-html": "
|
|
15
|
-
"@pie-lib/math-
|
|
16
|
-
"@pie-lib/render-ui": "
|
|
13
|
+
"@pie-lib/drag": "2.18.0-hotfix.0",
|
|
14
|
+
"@pie-lib/editable-html": "11.17.0-hotfix.0",
|
|
15
|
+
"@pie-lib/render-math-bundled": "3.18.0-hotfix.0",
|
|
16
|
+
"@pie-lib/render-ui": "4.31.0-hotfix.0",
|
|
17
17
|
"classnames": "^2.2.6",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
19
|
"immutable": "^4.0.0-rc.12",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"keywords": [],
|
|
32
32
|
"author": "",
|
|
33
33
|
"license": "ISC",
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "ff5ec2ebe11110b7652812a10c6dc230f08e12cb"
|
|
35
35
|
}
|
package/src/choices/choice.jsx
CHANGED
|
@@ -5,7 +5,7 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
5
5
|
import Chip from '@material-ui/core/Chip';
|
|
6
6
|
import classnames from 'classnames';
|
|
7
7
|
|
|
8
|
-
import { renderMath } from '@pie-lib/math-
|
|
8
|
+
import { renderMath } from '@pie-lib/render-math-bundled';
|
|
9
9
|
import { color } from '@pie-lib/render-ui';
|
|
10
10
|
import { DragSource } from '@pie-lib/drag';
|
|
11
11
|
|
package/src/components/blank.jsx
CHANGED
|
@@ -2,7 +2,7 @@ import grey from '@material-ui/core/colors/grey';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import ReactDOM from 'react-dom';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { renderMath } from '@pie-lib/math-
|
|
5
|
+
import { renderMath } from '@pie-lib/render-math-bundled';
|
|
6
6
|
import debug from 'debug';
|
|
7
7
|
import { DragSource, DropTarget } from '@pie-lib/drag';
|
|
8
8
|
import { withStyles } from '@material-ui/core/styles';
|
|
@@ -12,7 +12,7 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
12
12
|
import classNames from 'classnames';
|
|
13
13
|
|
|
14
14
|
import { color } from '@pie-lib/render-ui';
|
|
15
|
-
import { renderMath } from '@pie-lib/math-
|
|
15
|
+
import { renderMath } from '@pie-lib/render-math-bundled';
|
|
16
16
|
|
|
17
17
|
class Dropdown extends React.Component {
|
|
18
18
|
static propTypes = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { renderMath } from '@pie-lib/math-
|
|
3
|
+
import { renderMath } from '@pie-lib/render-math-bundled';
|
|
4
4
|
import Choices from './choices';
|
|
5
5
|
import Blank from './components/blank';
|
|
6
6
|
import { withMask } from './with-mask';
|
package/LICENSE.md
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
Copyright 2019 CoreSpring Inc
|
|
2
|
-
|
|
3
|
-
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
4
|
-
|
|
5
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/NEXT.CHANGELOG.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|