@pie-element/categorize 12.1.2-next.2 → 12.1.2-next.4
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 +10 -0
- package/configure/CHANGELOG.md +4 -0
- package/configure/package.json +3 -3
- package/lib/categorize/choices.js +6 -3
- package/lib/categorize/choices.js.map +1 -1
- package/lib/categorize/droppable-placeholder.js +2 -2
- package/lib/categorize/droppable-placeholder.js.map +1 -1
- package/lib/categorize/index.js +2 -1
- package/lib/categorize/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
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.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
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **categorize:** category box border color fix PD-5546 ([d87a9a3](https://github.com/pie-framework/pie-elements/commit/d87a9a3a9f0587ca61e6a4104cee89cfd02bb017))
|
|
11
|
+
|
|
12
|
+
## [12.1.2-next.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.1.2-next.2...@pie-element/categorize@12.1.2-next.3) (2026-03-06)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @pie-element/categorize
|
|
15
|
+
|
|
6
16
|
## [12.1.2-next.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.1.2-next.1...@pie-element/categorize@12.1.2-next.2) (2026-03-05)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @pie-element/categorize
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
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.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
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/categorize-configure
|
|
9
|
+
|
|
6
10
|
## [10.1.1-next.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.1.1-next.1...@pie-element/categorize-configure@10.1.1-next.2) (2026-03-05)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package @pie-element/categorize-configure
|
package/configure/package.json
CHANGED
|
@@ -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.
|
|
6
|
+
"version": "10.1.1-next.3",
|
|
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.
|
|
19
|
+
"@pie-lib/config-ui": "12.2.0-next.13",
|
|
20
20
|
"@pie-lib/drag": "3.2.0-next.4",
|
|
21
|
-
"@pie-lib/editable-html-tip-tap": "1.2.0-next.
|
|
21
|
+
"@pie-lib/editable-html-tip-tap": "1.2.0-next.13",
|
|
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",
|
|
@@ -38,7 +38,8 @@ class Choices extends _react.default.Component {
|
|
|
38
38
|
disabled,
|
|
39
39
|
onDropChoice,
|
|
40
40
|
onRemoveChoice,
|
|
41
|
-
choicePosition
|
|
41
|
+
choicePosition,
|
|
42
|
+
correct
|
|
42
43
|
} = this.props;
|
|
43
44
|
let style = {
|
|
44
45
|
textAlign: 'center'
|
|
@@ -54,7 +55,8 @@ class Choices extends _react.default.Component {
|
|
|
54
55
|
style: {
|
|
55
56
|
background: 'none'
|
|
56
57
|
},
|
|
57
|
-
choiceBoard: true
|
|
58
|
+
choiceBoard: true,
|
|
59
|
+
correct: correct
|
|
58
60
|
}, model.choicesLabel && model.choicesLabel !== '' && /*#__PURE__*/_react.default.createElement(LabelHolder, {
|
|
59
61
|
dangerouslySetInnerHTML: {
|
|
60
62
|
__html: model.choicesLabel
|
|
@@ -84,7 +86,8 @@ exports.Choices = Choices;
|
|
|
84
86
|
disabled: _propTypes.default.bool,
|
|
85
87
|
choicePosition: _propTypes.default.string,
|
|
86
88
|
onDropChoice: _propTypes.default.func,
|
|
87
|
-
onRemoveChoice: _propTypes.default.func
|
|
89
|
+
onRemoveChoice: _propTypes.default.func,
|
|
90
|
+
correct: _propTypes.default.boolean
|
|
88
91
|
});
|
|
89
92
|
(0, _defineProperty2.default)(Choices, "defaultProps", {
|
|
90
93
|
model: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choices.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_interopRequireWildcard","_droppablePlaceholder","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Wrapper","styled","flex","touchAction","LabelHolder","theme","margin","textAlign","paddingTop","spacing","Choices","React","Component","render","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","props","style","direction","createElement","id","background","choiceBoard","choicesLabel","dangerouslySetInnerHTML","__html","map","c","index","empty","key","_extends2","extraStyle","maxWidth","categoriesPerRow","exports","_defineProperty2","PropTypes","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","func","_default"],"sources":["../../src/categorize/choices.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice, { ChoiceType } from './choice';\nimport DroppablePlaceholder from './droppable-placeholder';\nexport { ChoiceType };\n\nconst Wrapper = styled('div')({\n flex: 1,\n touchAction: 'none',\n});\n\nconst LabelHolder = styled('div')(({ theme }) => ({\n margin: '0 auto',\n textAlign: 'center',\n paddingTop: theme.spacing(1),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n choices: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(ChoiceType), PropTypes.shape({ empty: PropTypes.bool })]),\n ),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n choicesLabel: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n choicePosition: PropTypes.string,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n choicesLabel: '',\n },\n };\n\n render() {\n const { choices = [], model, disabled, onDropChoice, onRemoveChoice, choicePosition } = this.props;\n\n let style = {\n textAlign: 'center',\n };\n\n if (choicePosition === 'left') {\n style.direction = 'rtl';\n }\n\n return (\n <Wrapper>\n <DroppablePlaceholder\n id=\"choices-board\"\n onDropChoice={onDropChoice}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n style={{ background: 'none' }}\n choiceBoard={true}\n >\n {model.choicesLabel && model.choicesLabel !== '' && (\n <LabelHolder dangerouslySetInnerHTML={{ __html: model.choicesLabel }} />\n )}\n {choices.map((c, index) => {\n return c.empty ? (\n <div key={index} />\n ) : (\n <Choice\n disabled={disabled}\n key={index}\n extraStyle={{ maxWidth: `${95 / model.categoriesPerRow}%` }}\n {...c}\n />\n );\n })}\n </DroppablePlaceholder>\n </Wrapper>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAC,uBAAA,CAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA2D,SAAAI,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAG3D,MAAMkB,OAAO,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC;EAC5BC,IAAI,EAAE,CAAC;EACPC,WAAW,EAAE;AACf,CAAC,CAAC;AAEF,MAAMC,WAAW,GAAG,IAAAH,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEI;AAAM,CAAC,MAAM;EAChDC,MAAM,EAAE,QAAQ;EAChBC,SAAS,EAAE,QAAQ;EACnBC,UAAU,EAAEH,KAAK,CAACI,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEI,MAAMC,OAAO,SAASC,cAAK,CAACC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"choices.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_interopRequireWildcard","_droppablePlaceholder","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Wrapper","styled","flex","touchAction","LabelHolder","theme","margin","textAlign","paddingTop","spacing","Choices","React","Component","render","choices","model","disabled","onDropChoice","onRemoveChoice","choicePosition","correct","props","style","direction","createElement","id","background","choiceBoard","choicesLabel","dangerouslySetInnerHTML","__html","map","c","index","empty","key","_extends2","extraStyle","maxWidth","categoriesPerRow","exports","_defineProperty2","PropTypes","arrayOf","oneOfType","shape","ChoiceType","bool","number","string","func","boolean","_default"],"sources":["../../src/categorize/choices.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice, { ChoiceType } from './choice';\nimport DroppablePlaceholder from './droppable-placeholder';\nexport { ChoiceType };\n\nconst Wrapper = styled('div')({\n flex: 1,\n touchAction: 'none',\n});\n\nconst LabelHolder = styled('div')(({ theme }) => ({\n margin: '0 auto',\n textAlign: 'center',\n paddingTop: theme.spacing(1),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n choices: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.shape(ChoiceType), PropTypes.shape({ empty: PropTypes.bool })]),\n ),\n model: PropTypes.shape({\n categoriesPerRow: PropTypes.number,\n choicesLabel: PropTypes.string,\n }),\n disabled: PropTypes.bool,\n choicePosition: PropTypes.string,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n correct: PropTypes.boolean,\n };\n\n static defaultProps = {\n model: {\n categoriesPerRow: 1,\n choicesLabel: '',\n },\n };\n\n render() {\n const { choices = [], model, disabled, onDropChoice, onRemoveChoice, choicePosition, correct } = this.props;\n\n let style = {\n textAlign: 'center',\n };\n\n if (choicePosition === 'left') {\n style.direction = 'rtl';\n }\n\n return (\n <Wrapper>\n <DroppablePlaceholder\n id=\"choices-board\"\n onDropChoice={onDropChoice}\n onRemoveChoice={onRemoveChoice}\n disabled={disabled}\n style={{ background: 'none' }}\n choiceBoard={true}\n correct={correct}\n >\n {model.choicesLabel && model.choicesLabel !== '' && (\n <LabelHolder dangerouslySetInnerHTML={{ __html: model.choicesLabel }} />\n )}\n {choices.map((c, index) => {\n return c.empty ? (\n <div key={index} />\n ) : (\n <Choice\n disabled={disabled}\n key={index}\n extraStyle={{ maxWidth: `${95 / model.categoriesPerRow}%` }}\n {...c}\n />\n );\n })}\n </DroppablePlaceholder>\n </Wrapper>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,10 +46,10 @@ const DroppablePlaceholder = ({
|
|
|
46
46
|
alignContent: 'flex-start',
|
|
47
47
|
width: '100%',
|
|
48
48
|
height: '100%',
|
|
49
|
-
...(correct === false && {
|
|
49
|
+
...(correct === false && !choiceBoard && {
|
|
50
50
|
border: `solid 2px ${_renderUi.color.incorrect()}`
|
|
51
51
|
}),
|
|
52
|
-
...(correct === true && {
|
|
52
|
+
...(correct === true && !choiceBoard && {
|
|
53
53
|
border: `solid 2px ${_renderUi.color.correct()}`
|
|
54
54
|
})
|
|
55
55
|
};
|
|
@@ -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 && {\n border: `solid 2px ${color.incorrect()}`,\n }),\n ...(correct === true && {\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;
|
|
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":[]}
|
package/lib/categorize/index.js
CHANGED
|
@@ -251,7 +251,8 @@ class Categorize extends _react.default.Component {
|
|
|
251
251
|
choices: choices,
|
|
252
252
|
choicePosition: choicePosition,
|
|
253
253
|
onDropChoice: this.dropChoice,
|
|
254
|
-
onRemoveChoice: this.removeChoice
|
|
254
|
+
onRemoveChoice: this.removeChoice,
|
|
255
|
+
correct: correct
|
|
255
256
|
})), displayNote && /*#__PURE__*/_react.default.createElement(StyledNote, {
|
|
256
257
|
dangerouslySetInnerHTML: {
|
|
257
258
|
__html: note
|
|
@@ -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 />\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","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":[]}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "12.1.2-next.
|
|
7
|
+
"version": "12.1.2-next.4",
|
|
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.
|
|
19
|
+
"@pie-lib/config-ui": "12.2.0-next.13",
|
|
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": "
|
|
31
|
+
"gitHead": "a8b257ceb051bf973d80b1ae19138ae99117346b",
|
|
32
32
|
"scripts": {
|
|
33
33
|
"postpublish": "../../scripts/postpublish"
|
|
34
34
|
},
|