@pie-element/categorize 12.1.2-next.4 → 12.1.2-next.5

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 CHANGED
@@ -3,6 +3,14 @@
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
+ ## [12.1.2-next.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.1.2-next.4...@pie-element/categorize@12.1.2-next.5) (2026-03-12)
7
+
8
+ ### Bug Fixes
9
+
10
+ - add touchAction none to various styled components for improved touch handling drag and drop PD-5811 ([bc5a8af](https://github.com/pie-framework/pie-elements/commit/bc5a8afab27ee254608c55ecc7e7c7130a191f38))
11
+ - bump libs, update mathquill, switch interface PD-5791 ([686a7c0](https://github.com/pie-framework/pie-elements/commit/686a7c0d41ff82f5ddad7cecd93cc0c18324a81b))
12
+ - **categorize:** add missing prop validation ([847df67](https://github.com/pie-framework/pie-elements/commit/847df67bf234bbecb5c5f17f29d84bdd25c2e0d5))
13
+
6
14
  ## [12.1.2-next.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.1.2-next.3...@pie-element/categorize@12.1.2-next.4) (2026-03-09)
7
15
 
8
16
  ### Bug Fixes
@@ -3,6 +3,13 @@
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
+ ## [10.1.1-next.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.1.1-next.3...@pie-element/categorize-configure@10.1.1-next.4) (2026-03-12)
7
+
8
+ ### Bug Fixes
9
+
10
+ - add touchAction none to various styled components for improved touch handling drag and drop PD-5811 ([bc5a8af](https://github.com/pie-framework/pie-elements/commit/bc5a8afab27ee254608c55ecc7e7c7130a191f38))
11
+ - bump libs, update mathquill, switch interface PD-5791 ([686a7c0](https://github.com/pie-framework/pie-elements/commit/686a7c0d41ff82f5ddad7cecd93cc0c18324a81b))
12
+
6
13
  ## [10.1.1-next.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.1.1-next.2...@pie-element/categorize-configure@10.1.1-next.3) (2026-03-06)
7
14
 
8
15
  **Note:** Version bump only for package @pie-element/categorize-configure
@@ -15,7 +15,8 @@ var _RemoveCircleOutline = _interopRequireDefault(require("@mui/icons-material/R
15
15
  var _renderUi = require("@pie-lib/render-ui");
16
16
  const ChoicePreviewContainer = (0, _styles.styled)('div')({
17
17
  position: 'relative',
18
- overflow: 'auto'
18
+ overflow: 'auto',
19
+ touchAction: 'none'
19
20
  });
20
21
  const DeleteIconButton = (0, _styles.styled)(_IconButton.default)({
21
22
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"file":"choice-preview.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_drag","_IconButton","_RemoveCircleOutline","_renderUi","ChoicePreviewContainer","styled","position","overflow","DeleteIconButton","IconButton","right","top","color","tertiary","ChoicePreview","React","Component","constructor","args","_defineProperty2","default","onDelete","choice","props","render","alternateResponseIndex","category","choiceIndex","categoryId","id","uniqueId","undefined","createElement","DraggableChoice","onRemoveChoice","delete","type","HtmlAndMath","html","content","onClick","size","exports","PropTypes","number","object","isRequired","func","_default"],"sources":["../../../src/design/categories/choice-preview.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { DraggableChoice } from '@pie-lib/drag';\nimport IconButton from '@mui/material/IconButton';\nimport RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';\nimport { HtmlAndMath } from '@pie-lib/render-ui';\nimport { color } from '@pie-lib/render-ui';\n\nconst ChoicePreviewContainer = styled('div')({\n position: 'relative',\n overflow: 'auto',\n});\n\nconst DeleteIconButton = styled(IconButton)({\n position: 'absolute',\n right: 0,\n top: 0,\n color: `${color.tertiary()} !important`,\n});\n\nexport class ChoicePreview extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choice: PropTypes.object.isRequired,\n choiceIndex: PropTypes.number,\n onDelete: PropTypes.func,\n };\n static defaultProps = {\n onDelete: () => {},\n };\n\n delete = () => {\n const { onDelete, choice } = this.props;\n onDelete(choice);\n };\n\n render() {\n const { alternateResponseIndex, category, choice, choiceIndex } = this.props;\n\n // Generate unique ID for each instance to distinguish multiple instances of the same choice\n const categoryId = category && category.id;\n const uniqueId =\n alternateResponseIndex !== undefined\n ? `${choice.id}-${categoryId}-${choiceIndex}-alt-${alternateResponseIndex}`\n : `${choice.id}-${categoryId}-${choiceIndex}`;\n\n return (\n <ChoicePreviewContainer>\n {choice ? (\n <DraggableChoice\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={choice}\n choiceIndex={choiceIndex}\n onRemoveChoice={this.delete}\n type={'choice-preview'}\n id={uniqueId}\n categoryId={categoryId}\n >\n <HtmlAndMath html={choice?.content} />\n </DraggableChoice>\n ) : null}\n <DeleteIconButton aria-label=\"delete\" onClick={this.delete} size=\"large\">\n <RemoveCircleOutlineIcon />\n </DeleteIconButton>\n </ChoicePreviewContainer>\n );\n }\n}\n\nexport default ChoicePreview;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"choice-preview.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_drag","_IconButton","_RemoveCircleOutline","_renderUi","ChoicePreviewContainer","styled","position","overflow","touchAction","DeleteIconButton","IconButton","right","top","color","tertiary","ChoicePreview","React","Component","constructor","args","_defineProperty2","default","onDelete","choice","props","render","alternateResponseIndex","category","choiceIndex","categoryId","id","uniqueId","undefined","createElement","DraggableChoice","onRemoveChoice","delete","type","HtmlAndMath","html","content","onClick","size","exports","PropTypes","number","object","isRequired","func","_default"],"sources":["../../../src/design/categories/choice-preview.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { DraggableChoice } from '@pie-lib/drag';\nimport IconButton from '@mui/material/IconButton';\nimport RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';\nimport { HtmlAndMath } from '@pie-lib/render-ui';\nimport { color } from '@pie-lib/render-ui';\n\nconst ChoicePreviewContainer = styled('div')({\n position: 'relative',\n overflow: 'auto',\n touchAction: 'none',\n});\n\nconst DeleteIconButton = styled(IconButton)({\n position: 'absolute',\n right: 0,\n top: 0,\n color: `${color.tertiary()} !important`,\n});\n\nexport class ChoicePreview extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choice: PropTypes.object.isRequired,\n choiceIndex: PropTypes.number,\n onDelete: PropTypes.func,\n };\n static defaultProps = {\n onDelete: () => {},\n };\n\n delete = () => {\n const { onDelete, choice } = this.props;\n onDelete(choice);\n };\n\n render() {\n const { alternateResponseIndex, category, choice, choiceIndex } = this.props;\n\n // Generate unique ID for each instance to distinguish multiple instances of the same choice\n const categoryId = category && category.id;\n const uniqueId =\n alternateResponseIndex !== undefined\n ? `${choice.id}-${categoryId}-${choiceIndex}-alt-${alternateResponseIndex}`\n : `${choice.id}-${categoryId}-${choiceIndex}`;\n\n return (\n <ChoicePreviewContainer>\n {choice ? (\n <DraggableChoice\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={choice}\n choiceIndex={choiceIndex}\n onRemoveChoice={this.delete}\n type={'choice-preview'}\n id={uniqueId}\n categoryId={categoryId}\n >\n <HtmlAndMath html={choice?.content} />\n </DraggableChoice>\n ) : null}\n <DeleteIconButton aria-label=\"delete\" onClick={this.delete} size=\"large\">\n <RemoveCircleOutlineIcon />\n </DeleteIconButton>\n </ChoicePreviewContainer>\n );\n }\n}\n\nexport default ChoicePreview;\n"],"mappings":"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","ignoreList":[]}
@@ -47,7 +47,8 @@ const DragHandleContainer = (0, _styles.styled)('span', {
47
47
  })(({
48
48
  draggable
49
49
  }) => ({
50
- cursor: draggable ? 'move' : 'inherit'
50
+ cursor: draggable ? 'move' : 'inherit',
51
+ touchAction: 'none'
51
52
  }));
52
53
  const ErrorText = (0, _styles.styled)('div')(({
53
54
  theme
@@ -1 +1 @@
1
- {"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_configUi","_buttons","_DragHandle","_core","_debug","_drag","_utils","log","debug","canDrag","props","lockChoiceOrder","count","choice","categoryCount","correctResponseCount","StyledCard","styled","Card","theme","minWidth","padding","spacing","overflow","StyledCardActions","CardActions","justifyContent","DragHandleContainer","shouldForwardProp","prop","draggable","cursor","ErrorText","fontSize","typography","color","palette","error","main","paddingBottom","Choice","allowMultiplePlacements","configuration","deleteFocusedEl","focusedEl","index","onDelete","onChange","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","attributes","dragAttributes","listeners","dragListeners","setNodeRef","setDragNodeRef","isDragging","useDraggable","id","data","type","disabled","setDropNodeRef","useDroppable","changeContent","content","changeCategoryCount","isCheckboxShown","multiplePlacements","perChoice","showRemoveAfterPlacing","element","default","createElement","ref","style","opacity","_extends2","label","DeleteButton","onClick","Checkbox","mini","checked","propTypes","PropTypes","string","object","isRequired","func","number","bool","shape","add","delete","rearrangeChoices","_default","exports","uid","withUid"],"sources":["../../../src/design/choices/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Card from '@mui/material/Card';\nimport CardActions from '@mui/material/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@mui/icons-material/DragHandle';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\nimport { multiplePlacements } from '../../utils';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = (props) => {\n if (props.lockChoiceOrder) {\n return true;\n }\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nconst StyledCard = styled(Card)(({ theme }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n}));\n\nconst StyledCardActions = styled(CardActions)({\n padding: 0,\n justifyContent: 'space-between',\n});\n\nconst DragHandleContainer = styled('span', {\n shouldForwardProp: (prop) => prop !== 'draggable',\n})(({ draggable }) => ({\n cursor: draggable ? 'move' : 'inherit',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nconst Choice = ({\n allowMultiplePlacements,\n configuration,\n choice,\n deleteFocusedEl,\n focusedEl,\n index,\n onDelete,\n onChange,\n correctResponseCount,\n lockChoiceOrder,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n}) => {\n const draggable = canDrag({ choice, correctResponseCount, lockChoiceOrder });\n\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `choice-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n disabled: !draggable,\n });\n\n const {\n setNodeRef: setDropNodeRef,\n } = useDroppable({\n id: `choice-drop-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n });\n\n const changeContent = (content) => {\n choice.content = content;\n onChange(choice);\n };\n\n const changeCategoryCount = () => {\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n const isCheckboxShown = (allowMultiplePlacements) => allowMultiplePlacements === multiplePlacements.perChoice;\n\n const showRemoveAfterPlacing = isCheckboxShown(allowMultiplePlacements);\n\n const setNodeRef = (element) => {\n setDragNodeRef(element);\n setDropNodeRef(element);\n };\n\n return (\n <StyledCard ref={setNodeRef} style={{ opacity: isDragging ? 0.5 : 1 }}>\n <StyledCardActions>\n <DragHandleContainer draggable={draggable} {...dragAttributes} {...dragListeners}>\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </DragHandleContainer>\n </StyledCardActions>\n <InputHeader\n imageSupport={imageSupport}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n label={choice.content}\n onChange={changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n {error && <ErrorText>{error}</ErrorText>}\n\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n {showRemoveAfterPlacing && (\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={changeCategoryCount}\n />\n )}\n </StyledCardActions>\n </StyledCard>\n );\n};\n\nChoice.propTypes = {\n allowMultiplePlacements: PropTypes.string,\n configuration: PropTypes.object.isRequired,\n choice: PropTypes.object.isRequired,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n lockChoiceOrder: PropTypes.bool,\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n spellCheck: PropTypes.bool,\n rearrangeChoices: PropTypes.func,\n};\n\nexport default uid.withUid(Choice);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_configUi","_buttons","_DragHandle","_core","_debug","_drag","_utils","log","debug","canDrag","props","lockChoiceOrder","count","choice","categoryCount","correctResponseCount","StyledCard","styled","Card","theme","minWidth","padding","spacing","overflow","StyledCardActions","CardActions","justifyContent","DragHandleContainer","shouldForwardProp","prop","draggable","cursor","touchAction","ErrorText","fontSize","typography","color","palette","error","main","paddingBottom","Choice","allowMultiplePlacements","configuration","deleteFocusedEl","focusedEl","index","onDelete","onChange","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","attributes","dragAttributes","listeners","dragListeners","setNodeRef","setDragNodeRef","isDragging","useDraggable","id","data","type","disabled","setDropNodeRef","useDroppable","changeContent","content","changeCategoryCount","isCheckboxShown","multiplePlacements","perChoice","showRemoveAfterPlacing","element","default","createElement","ref","style","opacity","_extends2","label","DeleteButton","onClick","Checkbox","mini","checked","propTypes","PropTypes","string","object","isRequired","func","number","bool","shape","add","delete","rearrangeChoices","_default","exports","uid","withUid"],"sources":["../../../src/design/choices/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Card from '@mui/material/Card';\nimport CardActions from '@mui/material/CardActions';\nimport InputHeader from '../input-header';\nimport { Checkbox } from '@pie-lib/config-ui';\nimport { DeleteButton } from '../buttons';\nimport DragHandle from '@mui/icons-material/DragHandle';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport debug from 'debug';\nimport { uid } from '@pie-lib/drag';\nimport { multiplePlacements } from '../../utils';\n\nconst log = debug('@pie-element:categorize:configure:choice');\n\nconst canDrag = (props) => {\n if (props.lockChoiceOrder) {\n return true;\n }\n const count = props.choice.categoryCount || 0;\n if (count === 0) {\n return true;\n } else {\n return props.correctResponseCount < count;\n }\n};\n\nconst StyledCard = styled(Card)(({ theme }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n}));\n\nconst StyledCardActions = styled(CardActions)({\n padding: 0,\n justifyContent: 'space-between',\n});\n\nconst DragHandleContainer = styled('span', {\n shouldForwardProp: (prop) => prop !== 'draggable',\n})(({ draggable }) => ({\n cursor: draggable ? 'move' : 'inherit',\n touchAction: 'none',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingBottom: theme.spacing(1),\n}));\n\nconst Choice = ({\n allowMultiplePlacements,\n configuration,\n choice,\n deleteFocusedEl,\n focusedEl,\n index,\n onDelete,\n onChange,\n correctResponseCount,\n lockChoiceOrder,\n imageSupport,\n spellCheck,\n toolbarOpts,\n error,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n}) => {\n const draggable = canDrag({ choice, correctResponseCount, lockChoiceOrder });\n\n const {\n attributes: dragAttributes,\n listeners: dragListeners,\n setNodeRef: setDragNodeRef,\n isDragging,\n } = useDraggable({\n id: `choice-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n disabled: !draggable,\n });\n\n const {\n setNodeRef: setDropNodeRef,\n } = useDroppable({\n id: `choice-drop-${choice.id}`,\n data: {\n id: choice.id,\n index,\n type: 'choice',\n },\n });\n\n const changeContent = (content) => {\n choice.content = content;\n onChange(choice);\n };\n\n const changeCategoryCount = () => {\n if (choice.categoryCount === 1) {\n choice.categoryCount = 0;\n } else {\n choice.categoryCount = 1;\n }\n onChange(choice);\n };\n\n const isCheckboxShown = (allowMultiplePlacements) => allowMultiplePlacements === multiplePlacements.perChoice;\n\n const showRemoveAfterPlacing = isCheckboxShown(allowMultiplePlacements);\n\n const setNodeRef = (element) => {\n setDragNodeRef(element);\n setDropNodeRef(element);\n };\n\n return (\n <StyledCard ref={setNodeRef} style={{ opacity: isDragging ? 0.5 : 1 }}>\n <StyledCardActions>\n <DragHandleContainer draggable={draggable} {...dragAttributes} {...dragListeners}>\n <DragHandle color={draggable ? 'primary' : 'disabled'} />\n </DragHandleContainer>\n </StyledCardActions>\n <InputHeader\n imageSupport={imageSupport}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n label={choice.content}\n onChange={changeContent}\n onDelete={onDelete}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={error}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n {error && <ErrorText>{error}</ErrorText>}\n\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n {showRemoveAfterPlacing && (\n <Checkbox\n mini\n label={'Remove after placing'}\n checked={choice.categoryCount === 1}\n onChange={changeCategoryCount}\n />\n )}\n </StyledCardActions>\n </StyledCard>\n );\n};\n\nChoice.propTypes = {\n allowMultiplePlacements: PropTypes.string,\n configuration: PropTypes.object.isRequired,\n choice: PropTypes.object.isRequired,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n lockChoiceOrder: PropTypes.bool,\n maxImageHeight: PropTypes.object,\n maxImageWidth: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n correctResponseCount: PropTypes.number.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n error: PropTypes.string,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n spellCheck: PropTypes.bool,\n rearrangeChoices: PropTypes.func,\n};\n\nexport default uid.withUid(Choice);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,KAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,KAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AAEA,MAAMa,GAAG,GAAG,IAAAC,cAAK,EAAC,0CAA0C,CAAC;AAE7D,MAAMC,OAAO,GAAIC,KAAK,IAAK;EACzB,IAAIA,KAAK,CAACC,eAAe,EAAE;IACzB,OAAO,IAAI;EACb;EACA,MAAMC,KAAK,GAAGF,KAAK,CAACG,MAAM,CAACC,aAAa,IAAI,CAAC;EAC7C,IAAIF,KAAK,KAAK,CAAC,EAAE;IACf,OAAO,IAAI;EACb,CAAC,MAAM;IACL,OAAOF,KAAK,CAACK,oBAAoB,GAAGH,KAAK;EAC3C;AACF,CAAC;AAED,MAAMI,UAAU,GAAG,IAAAC,cAAM,EAACC,aAAI,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC9CC,QAAQ,EAAE,OAAO;EACjBC,OAAO,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC,CAAC;EACzBC,QAAQ,EAAE;AACZ,CAAC,CAAC,CAAC;AAEH,MAAMC,iBAAiB,GAAG,IAAAP,cAAM,EAACQ,oBAAW,CAAC,CAAC;EAC5CJ,OAAO,EAAE,CAAC;EACVK,cAAc,EAAE;AAClB,CAAC,CAAC;AAEF,MAAMC,mBAAmB,GAAG,IAAAV,cAAM,EAAC,MAAM,EAAE;EACzCW,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAC,CAAC;EAAEC;AAAU,CAAC,MAAM;EACrBC,MAAM,EAAED,SAAS,GAAG,MAAM,GAAG,SAAS;EACtCE,WAAW,EAAE;AACf,CAAC,CAAC,CAAC;AAEH,MAAMC,SAAS,GAAG,IAAAhB,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEE;AAAM,CAAC,MAAM;EAC9Ce,QAAQ,EAAEf,KAAK,CAACgB,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCE,KAAK,EAAEjB,KAAK,CAACkB,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BC,aAAa,EAAErB,KAAK,CAACG,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,MAAMmB,MAAM,GAAGA,CAAC;EACdC,uBAAuB;EACvBC,aAAa;EACb9B,MAAM;EACN+B,eAAe;EACfC,SAAS;EACTC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRjC,oBAAoB;EACpBJ,eAAe;EACfsC,YAAY;EACZC,UAAU;EACVC,WAAW;EACXb,KAAK;EACLc,aAAa;EACbC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAMxB,SAAS,GAAGrB,OAAO,CAAC;IAAEI,MAAM;IAAEE,oBAAoB;IAAEJ;EAAgB,CAAC,CAAC;EAE5E,MAAM;IACJ4C,UAAU,EAAEC,cAAc;IAC1BC,SAAS,EAAEC,aAAa;IACxBC,UAAU,EAAEC,cAAc;IAC1BC;EACF,CAAC,GAAG,IAAAC,kBAAY,EAAC;IACfC,EAAE,EAAE,UAAUlD,MAAM,CAACkD,EAAE,EAAE;IACzBC,IAAI,EAAE;MACJD,EAAE,EAAElD,MAAM,CAACkD,EAAE;MACbjB,KAAK;MACLmB,IAAI,EAAE;IACR,CAAC;IACDC,QAAQ,EAAE,CAACpC;EACb,CAAC,CAAC;EAEF,MAAM;IACJ6B,UAAU,EAAEQ;EACd,CAAC,GAAG,IAAAC,kBAAY,EAAC;IACfL,EAAE,EAAE,eAAelD,MAAM,CAACkD,EAAE,EAAE;IAC9BC,IAAI,EAAE;MACJD,EAAE,EAAElD,MAAM,CAACkD,EAAE;MACbjB,KAAK;MACLmB,IAAI,EAAE;IACR;EACF,CAAC,CAAC;EAEF,MAAMI,aAAa,GAAIC,OAAO,IAAK;IACjCzD,MAAM,CAACyD,OAAO,GAAGA,OAAO;IACxBtB,QAAQ,CAACnC,MAAM,CAAC;EAClB,CAAC;EAED,MAAM0D,mBAAmB,GAAGA,CAAA,KAAM;IAChC,IAAI1D,MAAM,CAACC,aAAa,KAAK,CAAC,EAAE;MAC9BD,MAAM,CAACC,aAAa,GAAG,CAAC;IAC1B,CAAC,MAAM;MACLD,MAAM,CAACC,aAAa,GAAG,CAAC;IAC1B;IACAkC,QAAQ,CAACnC,MAAM,CAAC;EAClB,CAAC;EAED,MAAM2D,eAAe,GAAI9B,uBAAuB,IAAKA,uBAAuB,KAAK+B,yBAAkB,CAACC,SAAS;EAE7G,MAAMC,sBAAsB,GAAGH,eAAe,CAAC9B,uBAAuB,CAAC;EAEvE,MAAMiB,UAAU,GAAIiB,OAAO,IAAK;IAC9BhB,cAAc,CAACgB,OAAO,CAAC;IACvBT,cAAc,CAACS,OAAO,CAAC;EACzB,CAAC;EAED,oBACEpF,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC9D,UAAU;IAAC+D,GAAG,EAAEpB,UAAW;IAACqB,KAAK,EAAE;MAAEC,OAAO,EAAEpB,UAAU,GAAG,GAAG,GAAG;IAAE;EAAE,gBACpErE,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAACtD,iBAAiB,qBAChBhC,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAACnD,mBAAmB,MAAAuD,SAAA,CAAAL,OAAA;IAAC/C,SAAS,EAAEA;EAAU,GAAK0B,cAAc,EAAME,aAAa,gBAC9ElE,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC5E,WAAA,CAAA2E,OAAU;IAACzC,KAAK,EAAEN,SAAS,GAAG,SAAS,GAAG;EAAW,CAAE,CACrC,CACJ,CAAC,eACpBtC,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC/E,YAAA,CAAA8E,OAAW;IACV5B,YAAY,EAAEA,YAAa;IAC3BJ,SAAS,EAAEA,SAAU;IACrBD,eAAe,EAAEA,eAAgB;IACjCE,KAAK,EAAEA,KAAM;IACbqC,KAAK,EAAEtE,MAAM,CAACyD,OAAQ;IACtBtB,QAAQ,EAAEqB,aAAc;IACxBtB,QAAQ,EAAEA,QAAS;IACnBI,WAAW,EAAEA,WAAY;IACzBD,UAAU,EAAEA,UAAW;IACvBZ,KAAK,EAAEA,KAAM;IACbc,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCX,aAAa,EAAEA;EAAc,CAC9B,CAAC,EACDL,KAAK,iBAAI9C,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC7C,SAAS,QAAEK,KAAiB,CAAC,eAExC9C,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAACtD,iBAAiB,qBAChBhC,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC7E,QAAA,CAAAmF,YAAY;IAACD,KAAK,EAAE,QAAS;IAACE,OAAO,EAAEtC;EAAS,CAAE,CAAC,EACnD4B,sBAAsB,iBACrBnF,MAAA,CAAAqF,OAAA,CAAAC,aAAA,CAAC9E,SAAA,CAAAsF,QAAQ;IACPC,IAAI;IACJJ,KAAK,EAAE,sBAAuB;IAC9BK,OAAO,EAAE3E,MAAM,CAACC,aAAa,KAAK,CAAE;IACpCkC,QAAQ,EAAEuB;EAAoB,CAC/B,CAEc,CACT,CAAC;AAEjB,CAAC;AAED9B,MAAM,CAACgD,SAAS,GAAG;EACjB/C,uBAAuB,EAAEgD,kBAAS,CAACC,MAAM;EACzChD,aAAa,EAAE+C,kBAAS,CAACE,MAAM,CAACC,UAAU;EAC1ChF,MAAM,EAAE6E,kBAAS,CAACE,MAAM,CAACC,UAAU;EACnCjD,eAAe,EAAE8C,kBAAS,CAACI,IAAI;EAC/BjD,SAAS,EAAE6C,kBAAS,CAACK,MAAM;EAC3BjD,KAAK,EAAE4C,kBAAS,CAACK,MAAM;EACvBpF,eAAe,EAAE+E,kBAAS,CAACM,IAAI;EAC/B3C,cAAc,EAAEqC,kBAAS,CAACE,MAAM;EAChCxC,aAAa,EAAEsC,kBAAS,CAACE,MAAM;EAC/B5C,QAAQ,EAAE0C,kBAAS,CAACI,IAAI,CAACD,UAAU;EACnC9C,QAAQ,EAAE2C,kBAAS,CAACI,IAAI,CAACD,UAAU;EACnC9E,oBAAoB,EAAE2E,kBAAS,CAACK,MAAM,CAACF,UAAU;EACjD5C,YAAY,EAAEyC,kBAAS,CAACO,KAAK,CAAC;IAC5BC,GAAG,EAAER,kBAAS,CAACI,IAAI,CAACD,UAAU;IAC9BM,MAAM,EAAET,kBAAS,CAACI,IAAI,CAACD;EACzB,CAAC,CAAC;EACF1C,WAAW,EAAEuC,kBAAS,CAACE,MAAM;EAC7BtD,KAAK,EAAEoD,kBAAS,CAACC,MAAM;EACvBrC,kBAAkB,EAAEoC,kBAAS,CAACO,KAAK,CAAC;IAClCC,GAAG,EAAER,kBAAS,CAACI,IAAI,CAACD,UAAU;IAC9BM,MAAM,EAAET,kBAAS,CAACI,IAAI,CAACD;EACzB,CAAC,CAAC;EACF3C,UAAU,EAAEwC,kBAAS,CAACM,IAAI;EAC1BI,gBAAgB,EAAEV,kBAAS,CAACI;AAC9B,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAzB,OAAA,GAEa0B,SAAG,CAACC,OAAO,CAAC/D,MAAM,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  "private": true,
4
4
  "main": "lib/index.js",
5
5
  "module": "src/index.js",
6
- "version": "10.1.1-next.3",
6
+ "version": "10.1.1-next.4",
7
7
  "description": "",
8
8
  "scripts": {},
9
9
  "author": "pie framework developers",
@@ -16,9 +16,9 @@
16
16
  "@mui/material": "^7.3.4",
17
17
  "@pie-framework/pie-configure-events": "^1.3.0",
18
18
  "@pie-lib/categorize": "1.2.0-next.3",
19
- "@pie-lib/config-ui": "12.2.0-next.13",
19
+ "@pie-lib/config-ui": "12.2.0-next.17",
20
20
  "@pie-lib/drag": "3.2.0-next.4",
21
- "@pie-lib/editable-html-tip-tap": "1.2.0-next.13",
21
+ "@pie-lib/editable-html-tip-tap": "1.2.0-next.16",
22
22
  "@pie-lib/math-rendering": "4.2.0-next.3",
23
23
  "@pie-lib/render-ui": "5.2.0-next.4",
24
24
  "@pie-lib/translator": "3.2.0-next.3",
@@ -58,7 +58,8 @@ const DroppablePlaceholder = ({
58
58
  style: {
59
59
  flex: 1,
60
60
  minHeight: minRowHeight || '80px',
61
- position: 'relative'
61
+ position: 'relative',
62
+ touchAction: 'none'
62
63
  }
63
64
  }, /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
64
65
  isOver: isOver,
@@ -1 +1 @@
1
- {"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_core","_drag","_renderUi","log","debug","DroppablePlaceholder","children","grid","disabled","choiceBoard","minRowHeight","id","correct","theme","useTheme","setNodeRef","isOver","useDroppable","data","itemType","categoryId","extraStyles","padding","spacing","borderRadius","gridColumnGap","gridRowGap","display","flexWrap","justifyContent","alignItems","alignContent","width","height","border","color","incorrect","default","createElement","ref","style","flex","minHeight","position","PlaceHolder","isCategorize","propTypes","PropTypes","bool","node","isRequired","object","string","onDropChoice","func","_default","exports"],"sources":["../../src/categorize/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useTheme } from '@mui/material/styles';\nimport { useDroppable } from '@dnd-kit/core';\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('@pie-ui:categorize:droppable-placeholder');\n\nconst DroppablePlaceholder = ({\n children,\n grid,\n disabled,\n choiceBoard,\n minRowHeight,\n id,\n correct\n}) => {\n const theme = useTheme();\n const { setNodeRef, isOver } = useDroppable({\n id,\n data: {\n itemType: 'categorize',\n categoryId: id\n },\n disabled,\n });\n\n const extraStyles = {\n padding: theme.spacing(0.5),\n borderRadius: theme.spacing(0.5),\n gridColumnGap: 0,\n gridRowGap: 0,\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center',\n alignContent: 'flex-start',\n width: '100%',\n height: '100%',\n ...(correct === false && !choiceBoard && {\n border: `solid 2px ${color.incorrect()}`,\n }),\n ...(correct === true && !choiceBoard && {\n border: `solid 2px ${color.correct()}`,\n }),\n };\n\n return (\n <div\n ref={setNodeRef}\n style={{\n flex: 1,\n minHeight: minRowHeight || '80px',\n position: 'relative'\n }}\n >\n <PlaceHolder\n isOver={isOver}\n grid={grid}\n disabled={disabled}\n choiceBoard={choiceBoard}\n isCategorize\n extraStyles={extraStyles}\n >\n {children}\n </PlaceHolder>\n </div>\n );\n};\n\nDroppablePlaceholder.propTypes = {\n choiceBoard: PropTypes.bool,\n children: PropTypes.node.isRequired,\n grid: PropTypes.object,\n disabled: PropTypes.bool,\n minRowHeight: PropTypes.string,\n onDropChoice: PropTypes.func,\n id: PropTypes.string.isRequired,\n correct: PropTypes.bool\n};\n\nexport default DroppablePlaceholder;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAEA,MAAMO,GAAG,GAAG,IAAAC,cAAK,EAAC,0CAA0C,CAAC;AAE7D,MAAMC,oBAAoB,GAAGA,CAAC;EAC5BC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,WAAW;EACXC,YAAY;EACZC,EAAE;EACFC;AACF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,gBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAY,EAAC;IAC1CN,EAAE;IACFO,IAAI,EAAE;MACJC,QAAQ,EAAE,YAAY;MACtBC,UAAU,EAAET;IACd,CAAC;IACDH;EACF,CAAC,CAAC;EAEF,MAAMa,WAAW,GAAG;IAClBC,OAAO,EAAET,KAAK,CAACU,OAAO,CAAC,GAAG,CAAC;IAC3BC,YAAY,EAAEX,KAAK,CAACU,OAAO,CAAC,GAAG,CAAC;IAChCE,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE,CAAC;IACbC,OAAO,EAAE,MAAM;IACfC,QAAQ,EAAE,MAAM;IAChBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,YAAY;IAC1BC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACd,IAAIrB,OAAO,KAAK,KAAK,IAAI,CAACH,WAAW,IAAI;MACvCyB,MAAM,EAAE,aAAaC,eAAK,CAACC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,IAAIxB,OAAO,KAAK,IAAI,IAAI,CAACH,WAAW,IAAI;MACtCyB,MAAM,EAAE,aAAaC,eAAK,CAACvB,OAAO,CAAC,CAAC;IACtC,CAAC;EACH,CAAC;EAED,oBACElB,MAAA,CAAA2C,OAAA,CAAAC,aAAA;IACEC,GAAG,EAAExB,UAAW;IAChByB,KAAK,EAAE;MACLC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAEhC,YAAY,IAAI,MAAM;MACjCiC,QAAQ,EAAE;IACZ;EAAE,gBAEFjD,MAAA,CAAA2C,OAAA,CAAAC,aAAA,CAACrC,KAAA,CAAA2C,WAAW;IACV5B,MAAM,EAAEA,MAAO;IACfT,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBoC,YAAY;IACZxB,WAAW,EAAEA;EAAY,GAExBf,QACU,CACV,CAAC;AAEV,CAAC;AAEDD,oBAAoB,CAACyC,SAAS,GAAG;EAC/BrC,WAAW,EAAEsC,kBAAS,CAACC,IAAI;EAC3B1C,QAAQ,EAAEyC,kBAAS,CAACE,IAAI,CAACC,UAAU;EACnC3C,IAAI,EAAEwC,kBAAS,CAACI,MAAM;EACtB3C,QAAQ,EAAEuC,kBAAS,CAACC,IAAI;EACxBtC,YAAY,EAAEqC,kBAAS,CAACK,MAAM;EAC9BC,YAAY,EAAEN,kBAAS,CAACO,IAAI;EAC5B3C,EAAE,EAAEoC,kBAAS,CAACK,MAAM,CAACF,UAAU;EAC/BtC,OAAO,EAAEmC,kBAAS,CAACC;AACrB,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEahC,oBAAoB","ignoreList":[]}
1
+ {"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_core","_drag","_renderUi","log","debug","DroppablePlaceholder","children","grid","disabled","choiceBoard","minRowHeight","id","correct","theme","useTheme","setNodeRef","isOver","useDroppable","data","itemType","categoryId","extraStyles","padding","spacing","borderRadius","gridColumnGap","gridRowGap","display","flexWrap","justifyContent","alignItems","alignContent","width","height","border","color","incorrect","default","createElement","ref","style","flex","minHeight","position","touchAction","PlaceHolder","isCategorize","propTypes","PropTypes","bool","node","isRequired","object","string","onDropChoice","func","_default","exports"],"sources":["../../src/categorize/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useTheme } from '@mui/material/styles';\nimport { useDroppable } from '@dnd-kit/core';\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('@pie-ui:categorize:droppable-placeholder');\n\nconst DroppablePlaceholder = ({\n children,\n grid,\n disabled,\n choiceBoard,\n minRowHeight,\n id,\n correct\n}) => {\n const theme = useTheme();\n const { setNodeRef, isOver } = useDroppable({\n id,\n data: {\n itemType: 'categorize',\n categoryId: id\n },\n disabled,\n });\n\n const extraStyles = {\n padding: theme.spacing(0.5),\n borderRadius: theme.spacing(0.5),\n gridColumnGap: 0,\n gridRowGap: 0,\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignItems: 'center',\n alignContent: 'flex-start',\n width: '100%',\n height: '100%',\n ...(correct === false && !choiceBoard && {\n border: `solid 2px ${color.incorrect()}`,\n }),\n ...(correct === true && !choiceBoard && {\n border: `solid 2px ${color.correct()}`,\n }),\n };\n\n return (\n <div\n ref={setNodeRef}\n style={{\n flex: 1,\n minHeight: minRowHeight || '80px',\n position: 'relative',\n touchAction: 'none',\n }}\n >\n <PlaceHolder\n isOver={isOver}\n grid={grid}\n disabled={disabled}\n choiceBoard={choiceBoard}\n isCategorize\n extraStyles={extraStyles}\n >\n {children}\n </PlaceHolder>\n </div>\n );\n};\n\nDroppablePlaceholder.propTypes = {\n choiceBoard: PropTypes.bool,\n children: PropTypes.node.isRequired,\n grid: PropTypes.object,\n disabled: PropTypes.bool,\n minRowHeight: PropTypes.string,\n onDropChoice: PropTypes.func,\n id: PropTypes.string.isRequired,\n correct: PropTypes.bool\n};\n\nexport default DroppablePlaceholder;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAEA,MAAMO,GAAG,GAAG,IAAAC,cAAK,EAAC,0CAA0C,CAAC;AAE7D,MAAMC,oBAAoB,GAAGA,CAAC;EAC5BC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,WAAW;EACXC,YAAY;EACZC,EAAE;EACFC;AACF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG,IAAAC,gBAAQ,EAAC,CAAC;EACxB,MAAM;IAAEC,UAAU;IAAEC;EAAO,CAAC,GAAG,IAAAC,kBAAY,EAAC;IAC1CN,EAAE;IACFO,IAAI,EAAE;MACJC,QAAQ,EAAE,YAAY;MACtBC,UAAU,EAAET;IACd,CAAC;IACDH;EACF,CAAC,CAAC;EAEF,MAAMa,WAAW,GAAG;IAClBC,OAAO,EAAET,KAAK,CAACU,OAAO,CAAC,GAAG,CAAC;IAC3BC,YAAY,EAAEX,KAAK,CAACU,OAAO,CAAC,GAAG,CAAC;IAChCE,aAAa,EAAE,CAAC;IAChBC,UAAU,EAAE,CAAC;IACbC,OAAO,EAAE,MAAM;IACfC,QAAQ,EAAE,MAAM;IAChBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,YAAY;IAC1BC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACd,IAAIrB,OAAO,KAAK,KAAK,IAAI,CAACH,WAAW,IAAI;MACvCyB,MAAM,EAAE,aAAaC,eAAK,CAACC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,IAAIxB,OAAO,KAAK,IAAI,IAAI,CAACH,WAAW,IAAI;MACtCyB,MAAM,EAAE,aAAaC,eAAK,CAACvB,OAAO,CAAC,CAAC;IACtC,CAAC;EACH,CAAC;EAED,oBACElB,MAAA,CAAA2C,OAAA,CAAAC,aAAA;IACEC,GAAG,EAAExB,UAAW;IAChByB,KAAK,EAAE;MACLC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAEhC,YAAY,IAAI,MAAM;MACjCiC,QAAQ,EAAE,UAAU;MACpBC,WAAW,EAAE;IACf;EAAE,gBAEFlD,MAAA,CAAA2C,OAAA,CAAAC,aAAA,CAACrC,KAAA,CAAA4C,WAAW;IACV7B,MAAM,EAAEA,MAAO;IACfT,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBqC,YAAY;IACZzB,WAAW,EAAEA;EAAY,GAExBf,QACU,CACV,CAAC;AAEV,CAAC;AAEDD,oBAAoB,CAAC0C,SAAS,GAAG;EAC/BtC,WAAW,EAAEuC,kBAAS,CAACC,IAAI;EAC3B3C,QAAQ,EAAE0C,kBAAS,CAACE,IAAI,CAACC,UAAU;EACnC5C,IAAI,EAAEyC,kBAAS,CAACI,MAAM;EACtB5C,QAAQ,EAAEwC,kBAAS,CAACC,IAAI;EACxBvC,YAAY,EAAEsC,kBAAS,CAACK,MAAM;EAC9BC,YAAY,EAAEN,kBAAS,CAACO,IAAI;EAC5B5C,EAAE,EAAEqC,kBAAS,CAACK,MAAM,CAACF,UAAU;EAC/BvC,OAAO,EAAEoC,kBAAS,CAACC;AACrB,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAApB,OAAA,GAEahC,oBAAoB","ignoreList":[]}
@@ -42,6 +42,9 @@ class DragPreviewWrapper extends _react.default.Component {
42
42
  }, this.props.children);
43
43
  }
44
44
  }
45
+ (0, _defineProperty2.default)(DragPreviewWrapper, "propTypes", {
46
+ children: _propTypes.default.node
47
+ });
45
48
  class Categorize extends _react.default.Component {
46
49
  constructor(props) {
47
50
  super(props);
@@ -402,6 +405,19 @@ class CategorizeProvider extends _react.default.Component {
402
405
  }, /*#__PURE__*/_react.default.createElement(DragPreviewWrapper, null, this.renderDragOverlay()))));
403
406
  }
404
407
  }
408
+ (0, _defineProperty2.default)(CategorizeProvider, "propTypes", {
409
+ model: _propTypes.default.object,
410
+ session: _propTypes.default.shape({
411
+ answers: _propTypes.default.arrayOf(_propTypes.default.shape({
412
+ choice: _propTypes.default.string,
413
+ category: _propTypes.default.string
414
+ }))
415
+ }),
416
+ onAnswersChange: _propTypes.default.func.isRequired,
417
+ onShowCorrectToggle: _propTypes.default.func.isRequired,
418
+ pauseMathObserver: _propTypes.default.func,
419
+ resumeMathObserver: _propTypes.default.func
420
+ });
405
421
  const StyledUiLayout = (0, _styles.styled)(_renderUi.UiLayout)({
406
422
  color: _renderUi.color.text(),
407
423
  backgroundColor: _renderUi.color.background(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_core","_correctAnswerToggle","_categorize","_drag","_renderUi","_mathRendering","_translator","_configUi","_choices","_choice","_categories","translator","Translator","log","debug","DragPreviewWrapper","React","Component","constructor","args","_defineProperty2","default","createRef","componentDidMount","containerRef","current","renderMath","render","createElement","ref","props","children","Categorize","c","onAnswersChange","session","answers","removeChoiceFromCategory","id","categoryId","choiceIndex","draggedChoice","model","maxChoicesPerCategory","newAnswers","undefined","answer","find","category","choices","length","moveChoiceToCategory","setState","showMaxChoiceAlert","removeChoice","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","UNSAFE_componentWillReceiveProps","nextProps","nextModel","note","language","t","lng","choicesPosition","extraCSSRules","showNote","env","autoplayAudioEnabled","customAudioButton","mode","role","style","getPositionDirection","gap","categories","correct","buildState","disabled","rowLabels","categoriesPerRow","fontSizeFactor","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","alertMessage","alertTitle","onCloseText","showRationale","rationale","hasText","hasMedia","showTeacherInstructions","teacherInstructions","StyledUiLayout","Fragment","StyledCollapsible","labels","hidden","visible","PreviewPrompt","prompt","show","toggled","onToggle","toggleShowCorrect","StyledCategorize","display","flex","onDropChoice","dropChoice","onRemoveChoice","slice","StyledNote","dangerouslySetInnerHTML","__html","correctness","feedback","Feedback","AlertDialog","title","text","open","onClose","exports","PropTypes","object","shape","arrayOf","choice","string","func","isRequired","pauseMathObserver","resumeMathObserver","CategorizeProvider","event","active","data","activeDragItem","isValidDrop","over","draggedItem","overData","type","itemType","choiceData","value","categorizeRef","_extends2","key","uid","generateId","dropAnimation","DragProvider","onDragStart","onDragEnd","Provider","DragOverlay","renderDragOverlay","styled","UiLayout","color","backgroundColor","background","position","theme","marginBottom","spacing","Collapsible","paddingBottom","_default"],"sources":["../../src/categorize/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport { DragOverlay } from '@dnd-kit/core';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { buildState, removeChoiceFromCategory, moveChoiceToCategory } from '@pie-lib/categorize';\nimport { DragProvider, uid } from '@pie-lib/drag';\nimport { color, Feedback, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport Translator from '@pie-lib/translator';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Choices from './choices';\nimport Choice from './choice';\nimport Categories from './categories';\n\nconst { translator } = Translator;\nconst log = debug('@pie-ui:categorize');\n\nclass DragPreviewWrapper extends React.Component {\n containerRef = React.createRef();\n\n componentDidMount() {\n if (this.containerRef.current) {\n renderMath(this.containerRef.current);\n }\n }\n\n render() {\n return <div ref={this.containerRef}>{this.props.children}</div>;\n }\n}\n\nexport class Categorize extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n pauseMathObserver: PropTypes.func,\n resumeMathObserver: PropTypes.func,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n showMaxChoiceAlert: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(c.id, c.categoryId, c.choiceIndex, session.answers);\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange, model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const { answers = [] } = session || {};\n let newAnswers;\n if (draggedChoice) {\n log('[dropChoice] category: ', draggedChoice.categoryId, 'choice: ', draggedChoice);\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answer = answers.find((answer) => answer.category === categoryId);\n\n // treat special case to replace the existing choice with the new one when maxChoicesPerCategory = 1\n if (draggedChoice && maxChoicesPerCategory === 1 && answer && answer.choices && answer.choices.length === 1) {\n // First, move the dragged choice to the target category (this will also remove it from source if allowMultiplePlacements is disabled)\n newAnswers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n );\n // Then, remove the existing choice from the target category (use newAnswers, not answers)\n newAnswers = removeChoiceFromCategory(answer.choices[0], categoryId, 0, newAnswers);\n }\n\n // treat special case when there are as many choices as maxChoicesPerCategory is\n else if (\n draggedChoice &&\n maxChoicesPerCategory > 1 &&\n answer &&\n answer.choices &&\n answer.choices.length === maxChoicesPerCategory\n ) {\n newAnswers = draggedChoice.categoryId\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n draggedChoice.categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : removeChoiceFromCategory(draggedChoice.id, draggedChoice.categoryId, draggedChoice.choiceIndex, answers);\n this.setState({ showMaxChoiceAlert: true });\n }\n\n // treat special case when there are more choices that maxChoicesPerCategory is (testing purpose in pits)\n else if (maxChoicesPerCategory !== 0 && answer && answer.choices && answer.choices.length > maxChoicesPerCategory) {\n newAnswers = answers;\n this.setState({ showMaxChoiceAlert: true });\n } else {\n newAnswers = draggedChoice\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : this.removeChoice(categoryId);\n }\n\n if (draggedChoice) {\n onAnswersChange(newAnswers);\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel } = nextProps;\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n model.note &&\n model.language &&\n model.language !== nextModel.language &&\n model.note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: model.language })\n ) {\n model.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextModel.language });\n }\n\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) =>\n correctResponse?.some((correctRes) => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { model, session } = this.props;\n const { showCorrect, showMaxChoiceAlert } = this.state;\n const {\n choicesPosition,\n extraCSSRules,\n note,\n showNote,\n env,\n language,\n maxChoicesPerCategory,\n autoplayAudioEnabled,\n customAudioButton,\n } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n gap: '8px',\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse,\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow, correctResponse, fontSizeFactor } = model;\n const nbOfRows = (categories && Math.ceil(categories.length / categoriesPerRow)) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote =\n (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note && existAlternate;\n const alertMessage = translator.t('translation:categorize:limitMaxChoicesPerCategory', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n const alertTitle = translator.t('common:warning', {\n lng: model.language,\n });\n\n const onCloseText = translator.t('common:cancel', {\n lng: model.language,\n });\n\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n\n return (\n <StyledUiLayout extraCSSRules={extraCSSRules} id={'main-container'} fontSizeFactor={fontSizeFactor}>\n {showTeacherInstructions && (\n <React.Fragment>\n <StyledCollapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </StyledCollapsible>\n </React.Fragment>\n )}\n\n {model.prompt && (\n <PreviewPrompt\n prompt={model.prompt}\n autoplayAudioEnabled={autoplayAudioEnabled}\n customAudioButton={customAudioButton}\n />\n )}\n\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n\n <StyledCategorize style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n rowLabels={(rowLabels || []).slice(0, nbOfRows)}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n correct={correct}\n />\n </StyledCategorize>\n {displayNote && (\n <StyledNote\n dangerouslySetInnerHTML={{\n __html: note,\n }}\n />\n )}\n\n {showRationale && (\n <StyledCollapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={model.rationale} />\n </StyledCollapsible>\n )}\n\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n <AlertDialog\n title={alertTitle}\n text={alertMessage}\n open={showMaxChoiceAlert}\n onCloseText={onCloseText}\n onClose={() => this.setState({ showMaxChoiceAlert: false })}\n ></AlertDialog>\n </StyledUiLayout>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n this.state = {\n activeDragItem: null,\n isValidDrop: false,\n };\n }\n\n onDragStart = (event) => {\n const { active } = event;\n const { pauseMathObserver } = this.props;\n\n if (pauseMathObserver) {\n pauseMathObserver();\n }\n\n if (active?.data?.current) {\n this.setState({\n activeDragItem: active.data.current,\n isValidDrop: false,\n });\n }\n };\n\n onDragEnd = (event) => {\n const { active, over } = event;\n const { resumeMathObserver } = this.props;\n\n // Check if drop is valid\n const draggedItem = active?.data?.current;\n const overData = over?.data?.current;\n const isValidDrop = \n over && \n active && \n draggedItem && \n draggedItem.type === 'choice' && \n overData && \n overData.itemType === 'categorize';\n\n this.setState({ \n activeDragItem: null,\n isValidDrop: isValidDrop,\n });\n\n if (resumeMathObserver) {\n resumeMathObserver();\n }\n\n if (!over || !active) {\n return;\n }\n\n if (draggedItem && draggedItem.type === 'choice') {\n const choiceData = {\n id: draggedItem.id,\n categoryId: draggedItem.categoryId,\n choiceIndex: draggedItem.choiceIndex,\n value: draggedItem.value,\n itemType: draggedItem.itemType,\n };\n\n if (over.id === 'choices-board') {\n if (this.categorizeRef && this.categorizeRef.removeChoice && draggedItem.categoryId) {\n this.categorizeRef.removeChoice(choiceData);\n }\n } else {\n const categoryId = over.id;\n\n if (this.categorizeRef && this.categorizeRef.dropChoice) {\n this.categorizeRef.dropChoice(categoryId, choiceData);\n }\n }\n }\n };\n\n renderDragOverlay = () => {\n const { activeDragItem } = this.state;\n const { model } = this.props;\n\n if (!activeDragItem) return null;\n\n if (activeDragItem.type === 'choice') {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (choice) {\n return <Choice key={choice.id} id={choice.id} {...choice} />;\n }\n }\n\n return null;\n };\n\n render() {\n const { isValidDrop } = this.state;\n // Disable drop animation for valid drops to prevent visual snap-back\n // Keep default animation for invalid drops to show visual feedback\n const dropAnimation = isValidDrop ? null : undefined;\n \n return (\n <DragProvider onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>\n <uid.Provider value={this.uid}>\n <Categorize ref={(ref) => (this.categorizeRef = ref)} {...this.props} />\n <DragOverlay dropAnimation={dropAnimation}>\n <DragPreviewWrapper>{this.renderDragOverlay()}</DragPreviewWrapper>\n </DragOverlay>\n </uid.Provider>\n </DragProvider>\n );\n }\n}\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n position: 'relative',\n});\n\nconst StyledNote = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledCategorize = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n display: 'flex',\n flexDirection: 'column',\n}));\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}));\n\nexport default CategorizeProvider;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_debug","_styles","_core","_correctAnswerToggle","_categorize","_drag","_renderUi","_mathRendering","_translator","_configUi","_choices","_choice","_categories","translator","Translator","log","debug","DragPreviewWrapper","React","Component","constructor","args","_defineProperty2","default","createRef","componentDidMount","containerRef","current","renderMath","render","createElement","ref","props","children","PropTypes","node","Categorize","c","onAnswersChange","session","answers","removeChoiceFromCategory","id","categoryId","choiceIndex","draggedChoice","model","maxChoicesPerCategory","newAnswers","undefined","answer","find","category","choices","length","moveChoiceToCategory","setState","showMaxChoiceAlert","removeChoice","showCorrect","state","onShowCorrectToggle","choicePosition","flexDirection","correctResponse","some","correctRes","alternateResponses","UNSAFE_componentWillReceiveProps","nextProps","nextModel","note","language","t","lng","choicesPosition","extraCSSRules","showNote","env","autoplayAudioEnabled","customAudioButton","mode","role","style","getPositionDirection","gap","categories","correct","buildState","disabled","rowLabels","categoriesPerRow","fontSizeFactor","nbOfRows","Math","ceil","existAlternate","existAlternateResponse","displayNote","alertMessage","alertTitle","onCloseText","showRationale","rationale","hasText","hasMedia","showTeacherInstructions","teacherInstructions","StyledUiLayout","Fragment","StyledCollapsible","labels","hidden","visible","PreviewPrompt","prompt","show","toggled","onToggle","toggleShowCorrect","StyledCategorize","display","flex","onDropChoice","dropChoice","onRemoveChoice","slice","StyledNote","dangerouslySetInnerHTML","__html","correctness","feedback","Feedback","AlertDialog","title","text","open","onClose","exports","object","shape","arrayOf","choice","string","func","isRequired","pauseMathObserver","resumeMathObserver","CategorizeProvider","event","active","data","activeDragItem","isValidDrop","over","draggedItem","overData","type","itemType","choiceData","value","categorizeRef","_extends2","key","uid","generateId","dropAnimation","DragProvider","onDragStart","onDragEnd","Provider","DragOverlay","renderDragOverlay","styled","UiLayout","color","backgroundColor","background","position","theme","marginBottom","spacing","Collapsible","paddingBottom","_default"],"sources":["../../src/categorize/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { styled } from '@mui/material/styles';\nimport { DragOverlay } from '@dnd-kit/core';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { buildState, removeChoiceFromCategory, moveChoiceToCategory } from '@pie-lib/categorize';\nimport { DragProvider, uid } from '@pie-lib/drag';\nimport { color, Feedback, Collapsible, hasText, hasMedia, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport Translator from '@pie-lib/translator';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Choices from './choices';\nimport Choice from './choice';\nimport Categories from './categories';\n\nconst { translator } = Translator;\nconst log = debug('@pie-ui:categorize');\n\nclass DragPreviewWrapper extends React.Component {\n static propTypes = {\n children: PropTypes.node,\n };\n \n containerRef = React.createRef();\n\n componentDidMount() {\n if (this.containerRef.current) {\n renderMath(this.containerRef.current);\n }\n }\n\n render() {\n return <div ref={this.containerRef}>{this.props.children}</div>;\n }\n}\n\nexport class Categorize extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n pauseMathObserver: PropTypes.func,\n resumeMathObserver: PropTypes.func,\n };\n\n static defaultProps = {\n disabled: false,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: false,\n showMaxChoiceAlert: false,\n };\n }\n\n removeChoice = (c) => {\n log('[removeChoice]: ', c);\n const { onAnswersChange, session } = this.props;\n const answers = removeChoiceFromCategory(c.id, c.categoryId, c.choiceIndex, session.answers);\n onAnswersChange(answers);\n };\n\n dropChoice = (categoryId, draggedChoice) => {\n const { session, onAnswersChange, model } = this.props;\n const { maxChoicesPerCategory = 0 } = model || {};\n const { answers = [] } = session || {};\n let newAnswers;\n if (draggedChoice) {\n log('[dropChoice] category: ', draggedChoice.categoryId, 'choice: ', draggedChoice);\n } else {\n log('[dropChoice] category: ', undefined, 'choice: ', undefined);\n }\n\n const answer = answers.find((answer) => answer.category === categoryId);\n\n // treat special case to replace the existing choice with the new one when maxChoicesPerCategory = 1\n if (draggedChoice && maxChoicesPerCategory === 1 && answer && answer.choices && answer.choices.length === 1) {\n // First, move the dragged choice to the target category (this will also remove it from source if allowMultiplePlacements is disabled)\n newAnswers = moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n );\n // Then, remove the existing choice from the target category (use newAnswers, not answers)\n newAnswers = removeChoiceFromCategory(answer.choices[0], categoryId, 0, newAnswers);\n }\n\n // treat special case when there are as many choices as maxChoicesPerCategory is\n else if (\n draggedChoice &&\n maxChoicesPerCategory > 1 &&\n answer &&\n answer.choices &&\n answer.choices.length === maxChoicesPerCategory\n ) {\n newAnswers = draggedChoice.categoryId\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n draggedChoice.categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : removeChoiceFromCategory(draggedChoice.id, draggedChoice.categoryId, draggedChoice.choiceIndex, answers);\n this.setState({ showMaxChoiceAlert: true });\n }\n\n // treat special case when there are more choices that maxChoicesPerCategory is (testing purpose in pits)\n else if (maxChoicesPerCategory !== 0 && answer && answer.choices && answer.choices.length > maxChoicesPerCategory) {\n newAnswers = answers;\n this.setState({ showMaxChoiceAlert: true });\n } else {\n newAnswers = draggedChoice\n ? moveChoiceToCategory(\n draggedChoice.id,\n draggedChoice.categoryId,\n categoryId,\n draggedChoice.choiceIndex,\n answers,\n )\n : this.removeChoice(categoryId);\n }\n\n if (draggedChoice) {\n onAnswersChange(newAnswers);\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model } = this.props;\n const { model: nextModel } = nextProps;\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (\n model.note &&\n model.language &&\n model.language !== nextModel.language &&\n model.note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: model.language })\n ) {\n model.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextModel.language });\n }\n\n this.setState({ showCorrect: false });\n }\n\n toggleShowCorrect = () =>\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n this.props.onShowCorrectToggle();\n });\n\n getPositionDirection = (choicePosition) => {\n let flexDirection;\n\n switch (choicePosition) {\n case 'left':\n flexDirection = 'row-reverse';\n break;\n case 'right':\n flexDirection = 'row';\n break;\n case 'below':\n flexDirection = 'column';\n break;\n default:\n // above\n flexDirection = 'column-reverse';\n break;\n }\n\n return flexDirection;\n };\n\n existAlternateResponse = (correctResponse) =>\n correctResponse?.some((correctRes) => correctRes.alternateResponses?.length > 0);\n\n render() {\n const { model, session } = this.props;\n const { showCorrect, showMaxChoiceAlert } = this.state;\n const {\n choicesPosition,\n extraCSSRules,\n note,\n showNote,\n env,\n language,\n maxChoicesPerCategory,\n autoplayAudioEnabled,\n customAudioButton,\n } = model;\n const { mode, role } = env || {};\n const choicePosition = choicesPosition || 'above';\n\n const style = {\n flexDirection: this.getPositionDirection(choicePosition),\n gap: '8px',\n };\n\n const { categories, choices, correct } = buildState(\n model.categories,\n model.choices,\n showCorrect ? model.correctResponse : session.answers,\n model.correctResponse,\n );\n\n log('[render] disabled: ', model.disabled);\n\n const { rowLabels, categoriesPerRow, correctResponse, fontSizeFactor } = model;\n const nbOfRows = (categories && Math.ceil(categories.length / categoriesPerRow)) || 0;\n const existAlternate = this.existAlternateResponse(correctResponse) || false;\n const displayNote =\n (showCorrect || (mode === 'view' && role === 'instructor')) && showNote && note && existAlternate;\n const alertMessage = translator.t('translation:categorize:limitMaxChoicesPerCategory', {\n lng: model.language,\n maxChoicesPerCategory,\n });\n\n const alertTitle = translator.t('common:warning', {\n lng: model.language,\n });\n\n const onCloseText = translator.t('common:cancel', {\n lng: model.language,\n });\n\n const showRationale = model.rationale && (hasText(model.rationale) || hasMedia(model.rationale));\n const showTeacherInstructions =\n model.teacherInstructions && (hasText(model.teacherInstructions) || hasMedia(model.teacherInstructions));\n\n return (\n <StyledUiLayout extraCSSRules={extraCSSRules} id={'main-container'} fontSizeFactor={fontSizeFactor}>\n {showTeacherInstructions && (\n <React.Fragment>\n <StyledCollapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n <PreviewPrompt prompt={model.teacherInstructions} />\n </StyledCollapsible>\n </React.Fragment>\n )}\n\n {model.prompt && (\n <PreviewPrompt\n prompt={model.prompt}\n autoplayAudioEnabled={autoplayAudioEnabled}\n customAudioButton={customAudioButton}\n />\n )}\n\n <CorrectAnswerToggle\n show={showCorrect || correct === false}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n language={language}\n />\n\n <StyledCategorize style={style}>\n <div style={{ display: 'flex', flex: 1 }}>\n <Categories\n model={model}\n disabled={model.disabled}\n categories={categories}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n rowLabels={(rowLabels || []).slice(0, nbOfRows)}\n />\n </div>\n <Choices\n disabled={model.disabled}\n model={model}\n choices={choices}\n choicePosition={choicePosition}\n onDropChoice={this.dropChoice}\n onRemoveChoice={this.removeChoice}\n correct={correct}\n />\n </StyledCategorize>\n {displayNote && (\n <StyledNote\n dangerouslySetInnerHTML={{\n __html: note,\n }}\n />\n )}\n\n {showRationale && (\n <StyledCollapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={model.rationale} />\n </StyledCollapsible>\n )}\n\n {model.correctness && model.feedback && !showCorrect && (\n <Feedback correctness={model.correctness} feedback={model.feedback} />\n )}\n <AlertDialog\n title={alertTitle}\n text={alertMessage}\n open={showMaxChoiceAlert}\n onCloseText={onCloseText}\n onClose={() => this.setState({ showMaxChoiceAlert: false })}\n ></AlertDialog>\n </StyledUiLayout>\n );\n }\n}\n\nclass CategorizeProvider extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.shape({\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n choice: PropTypes.string,\n category: PropTypes.string,\n }),\n ),\n }),\n onAnswersChange: PropTypes.func.isRequired,\n onShowCorrectToggle: PropTypes.func.isRequired,\n pauseMathObserver: PropTypes.func,\n resumeMathObserver: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.uid = uid.generateId();\n this.state = {\n activeDragItem: null,\n isValidDrop: false,\n };\n }\n\n onDragStart = (event) => {\n const { active } = event;\n const { pauseMathObserver } = this.props;\n\n if (pauseMathObserver) {\n pauseMathObserver();\n }\n\n if (active?.data?.current) {\n this.setState({\n activeDragItem: active.data.current,\n isValidDrop: false,\n });\n }\n };\n\n onDragEnd = (event) => {\n const { active, over } = event;\n const { resumeMathObserver } = this.props;\n\n // Check if drop is valid\n const draggedItem = active?.data?.current;\n const overData = over?.data?.current;\n const isValidDrop = \n over && \n active && \n draggedItem && \n draggedItem.type === 'choice' && \n overData && \n overData.itemType === 'categorize';\n\n this.setState({ \n activeDragItem: null,\n isValidDrop: isValidDrop,\n });\n\n if (resumeMathObserver) {\n resumeMathObserver();\n }\n\n if (!over || !active) {\n return;\n }\n\n if (draggedItem && draggedItem.type === 'choice') {\n const choiceData = {\n id: draggedItem.id,\n categoryId: draggedItem.categoryId,\n choiceIndex: draggedItem.choiceIndex,\n value: draggedItem.value,\n itemType: draggedItem.itemType,\n };\n\n if (over.id === 'choices-board') {\n if (this.categorizeRef && this.categorizeRef.removeChoice && draggedItem.categoryId) {\n this.categorizeRef.removeChoice(choiceData);\n }\n } else {\n const categoryId = over.id;\n\n if (this.categorizeRef && this.categorizeRef.dropChoice) {\n this.categorizeRef.dropChoice(categoryId, choiceData);\n }\n }\n }\n };\n\n renderDragOverlay = () => {\n const { activeDragItem } = this.state;\n const { model } = this.props;\n\n if (!activeDragItem) return null;\n\n if (activeDragItem.type === 'choice') {\n const choice = model.choices?.find((c) => c.id === activeDragItem.id);\n if (choice) {\n return <Choice key={choice.id} id={choice.id} {...choice} />;\n }\n }\n\n return null;\n };\n\n render() {\n const { isValidDrop } = this.state;\n // Disable drop animation for valid drops to prevent visual snap-back\n // Keep default animation for invalid drops to show visual feedback\n const dropAnimation = isValidDrop ? null : undefined;\n \n return (\n <DragProvider onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>\n <uid.Provider value={this.uid}>\n <Categorize ref={(ref) => (this.categorizeRef = ref)} {...this.props} />\n <DragOverlay dropAnimation={dropAnimation}>\n <DragPreviewWrapper>{this.renderDragOverlay()}</DragPreviewWrapper>\n </DragOverlay>\n </uid.Provider>\n </DragProvider>\n );\n }\n}\n\nconst StyledUiLayout = styled(UiLayout)({\n color: color.text(),\n backgroundColor: color.background(),\n position: 'relative',\n});\n\nconst StyledNote = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst StyledCategorize = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(1),\n display: 'flex',\n flexDirection: 'column',\n}));\n\nconst StyledCollapsible = styled(Collapsible)(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}));\n\nexport default CategorizeProvider;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "12.1.2-next.4",
7
+ "version": "12.1.2-next.5",
8
8
  "description": "",
9
9
  "author": "pie framework developers",
10
10
  "license": "ISC",
@@ -16,7 +16,7 @@
16
16
  "@mui/material": "^7.3.4",
17
17
  "@pie-framework/pie-player-events": "^0.1.0",
18
18
  "@pie-lib/categorize": "1.2.0-next.3",
19
- "@pie-lib/config-ui": "12.2.0-next.13",
19
+ "@pie-lib/config-ui": "12.2.0-next.17",
20
20
  "@pie-lib/correct-answer-toggle": "3.2.0-next.4",
21
21
  "@pie-lib/drag": "3.2.0-next.4",
22
22
  "@pie-lib/math-rendering": "4.2.0-next.3",
@@ -28,7 +28,7 @@
28
28
  "react": "18.3.1",
29
29
  "react-dom": "18.3.1"
30
30
  },
31
- "gitHead": "a8b257ceb051bf973d80b1ae19138ae99117346b",
31
+ "gitHead": "40a7ed35e8d7ede93ebb571fff94e0539294403f",
32
32
  "scripts": {
33
33
  "postpublish": "../../scripts/postpublish"
34
34
  },