@pie-element/categorize 12.2.0-next.1 → 12.2.0-next.11
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 +61 -0
- package/configure/CHANGELOG.md +58 -0
- package/configure/lib/design/categories/RowLabel.js +3 -2
- package/configure/lib/design/categories/RowLabel.js.map +1 -1
- package/configure/lib/design/categories/alternateResponses.js +2 -2
- package/configure/lib/design/categories/alternateResponses.js.map +1 -1
- package/configure/lib/design/categories/category.js +1 -3
- package/configure/lib/design/categories/category.js.map +1 -1
- package/configure/lib/design/categories/droppable-placeholder.js +3 -5
- package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
- package/configure/lib/design/categories/index.js +2 -2
- package/configure/lib/design/categories/index.js.map +1 -1
- package/configure/lib/design/choices/index.js +2 -2
- package/configure/lib/design/choices/index.js.map +1 -1
- package/configure/lib/design/index.js +66 -39
- package/configure/lib/design/index.js.map +1 -1
- package/configure/lib/design/input-header.js +8 -8
- package/configure/lib/design/input-header.js.map +1 -1
- package/configure/package.json +6 -6
- package/controller/CHANGELOG.md +4 -0
- package/controller/package.json +1 -1
- package/lib/categorize/choice.js +4 -1
- package/lib/categorize/choice.js.map +1 -1
- package/lib/categorize/index.js +24 -18
- package/lib/categorize/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,67 @@
|
|
|
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.2.0-next.11](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.10...@pie-element/categorize@12.2.0-next.11) (2026-04-24)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump dLl modules and libs PIE-171, PIE-133, PIE-151, PIE-130, PIE-147, PIE-168, PIE-425 ([6b02d2a](https://github.com/pie-framework/pie-elements/commit/6b02d2abfd4027569150d347ea9f7701ce634270))
|
|
11
|
+
|
|
12
|
+
# [12.2.0-next.10](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.9...@pie-element/categorize@12.2.0-next.10) (2026-04-17)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- bump libs PIE-129 ([cee3e10](https://github.com/pie-framework/pie-elements/commit/cee3e109a9c1d9a68ab592781c968f6b27209846))
|
|
17
|
+
|
|
18
|
+
# [12.2.0-next.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.8...@pie-element/categorize@12.2.0-next.9) (2026-04-16)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- bump libs PIE-46, PIE-25, PIE-54, PIE-44, PIE-29, PIE-13, PIE-129 ([5c17838](https://github.com/pie-framework/pie-elements/commit/5c17838a53483437e42dc679a4361e16b7ef5e31))
|
|
23
|
+
- missing spacing PD-5450 ([0d3d604](https://github.com/pie-framework/pie-elements/commit/0d3d604b73843bc0dfcd993a7a433c603f5dec52))
|
|
24
|
+
|
|
25
|
+
# [12.2.0-next.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.7...@pie-element/categorize@12.2.0-next.8) (2026-04-13)
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
- bump libs PIE-34 ([9f8b35a](https://github.com/pie-framework/pie-elements/commit/9f8b35a856ca1eba67d5630a358b96226cfca984))
|
|
30
|
+
|
|
31
|
+
# [12.2.0-next.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.6...@pie-element/categorize@12.2.0-next.7) (2026-04-10)
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
- **math-inline:** replace @pie-framework/mathquill with math-input helpers PIE-56, bump libs PIE-34, PIE-57, PIE-36, PIE-38, PIE-18 ([abd205e](https://github.com/pie-framework/pie-elements/commit/abd205e9c8335957b9fc2548822e4125bf1a7edb))
|
|
36
|
+
|
|
37
|
+
# [12.2.0-next.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.5...@pie-element/categorize@12.2.0-next.6) (2026-04-08)
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
- bump shared modules and libs PIE-53, PIE-48, PIE-114, PIE-74, PIE-35, PIE-40, PIE-27 ([3e6682d](https://github.com/pie-framework/pie-elements/commit/3e6682db1eb23414f3a4222abe13d2dd8ae5378e))
|
|
42
|
+
|
|
43
|
+
# [12.2.0-next.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.4...@pie-element/categorize@12.2.0-next.5) (2026-04-03)
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
- **categorize:** restore scroll position after drag and drop operation PIE-17 ([87d8433](https://github.com/pie-framework/pie-elements/commit/87d84330c4bbf322b98edc6a1a5175590d4b2401))
|
|
48
|
+
|
|
49
|
+
# [12.2.0-next.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.3...@pie-element/categorize@12.2.0-next.4) (2026-04-03)
|
|
50
|
+
|
|
51
|
+
**Note:** Version bump only for package @pie-element/categorize
|
|
52
|
+
|
|
53
|
+
# [12.2.0-next.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.2...@pie-element/categorize@12.2.0-next.3) (2026-03-25)
|
|
54
|
+
|
|
55
|
+
**Note:** Version bump only for package @pie-element/categorize
|
|
56
|
+
|
|
57
|
+
# [12.2.0-next.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.1...@pie-element/categorize@12.2.0-next.2) (2026-03-25)
|
|
58
|
+
|
|
59
|
+
### Bug Fixes
|
|
60
|
+
|
|
61
|
+
- **categorize:** unset margin for p in case of editor two lines PD-5669 ([4c774c5](https://github.com/pie-framework/pie-elements/commit/4c774c597288dea51118c6c16bc0951b0f744584))
|
|
62
|
+
- **categorize:** add tests for new onDrag extension, handle invalid target student PD-5514 ([6b6d151](https://github.com/pie-framework/pie-elements/commit/6b6d151a73d93199e57a08690ff4dfefe0189bc2))
|
|
63
|
+
- **categorize:** handle drag targets correctly PD-5514 ([34a4c98](https://github.com/pie-framework/pie-elements/commit/34a4c982b26f534eee21d800387761138aa0be8d))
|
|
64
|
+
- **categorize:** set back needed props PD-5669 ([9e2fe48](https://github.com/pie-framework/pie-elements/commit/9e2fe488118c04a2c0afd1360e7220a82e5ed7a9))
|
|
65
|
+
- **categorize:** set back old model from docs PD-5514 ([d08c28f](https://github.com/pie-framework/pie-elements/commit/d08c28fdc1aead7a4ed58a79309177467f1cacd0))
|
|
66
|
+
|
|
6
67
|
# [12.2.0-next.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize@12.2.0-next.0...@pie-element/categorize@12.2.0-next.1) (2026-03-19)
|
|
7
68
|
|
|
8
69
|
### Features
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,64 @@
|
|
|
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.2.0-next.10](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.9...@pie-element/categorize-configure@10.2.0-next.10) (2026-04-24)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump dLl modules and libs PIE-171, PIE-133, PIE-151, PIE-130, PIE-147, PIE-168, PIE-425 ([6b02d2a](https://github.com/pie-framework/pie-elements/commit/6b02d2abfd4027569150d347ea9f7701ce634270))
|
|
11
|
+
|
|
12
|
+
# [10.2.0-next.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.8...@pie-element/categorize-configure@10.2.0-next.9) (2026-04-17)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- bump libs PIE-129 ([cee3e10](https://github.com/pie-framework/pie-elements/commit/cee3e109a9c1d9a68ab592781c968f6b27209846))
|
|
17
|
+
|
|
18
|
+
# [10.2.0-next.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.7...@pie-element/categorize-configure@10.2.0-next.8) (2026-04-16)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- bump libs PIE-46, PIE-25, PIE-54, PIE-44, PIE-29, PIE-13, PIE-129 ([5c17838](https://github.com/pie-framework/pie-elements/commit/5c17838a53483437e42dc679a4361e16b7ef5e31))
|
|
23
|
+
- missing spacing PD-5450 ([0d3d604](https://github.com/pie-framework/pie-elements/commit/0d3d604b73843bc0dfcd993a7a433c603f5dec52))
|
|
24
|
+
|
|
25
|
+
# [10.2.0-next.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.6...@pie-element/categorize-configure@10.2.0-next.7) (2026-04-13)
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
- bump libs PIE-34 ([9f8b35a](https://github.com/pie-framework/pie-elements/commit/9f8b35a856ca1eba67d5630a358b96226cfca984))
|
|
30
|
+
|
|
31
|
+
# [10.2.0-next.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.5...@pie-element/categorize-configure@10.2.0-next.6) (2026-04-10)
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
- **math-inline:** replace @pie-framework/mathquill with math-input helpers PIE-56, bump libs PIE-34, PIE-57, PIE-36, PIE-38, PIE-18 ([abd205e](https://github.com/pie-framework/pie-elements/commit/abd205e9c8335957b9fc2548822e4125bf1a7edb))
|
|
36
|
+
|
|
37
|
+
# [10.2.0-next.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.4...@pie-element/categorize-configure@10.2.0-next.5) (2026-04-08)
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
- bump shared modules and libs PIE-53, PIE-48, PIE-114, PIE-74, PIE-35, PIE-40, PIE-27 ([3e6682d](https://github.com/pie-framework/pie-elements/commit/3e6682db1eb23414f3a4222abe13d2dd8ae5378e))
|
|
42
|
+
|
|
43
|
+
# [10.2.0-next.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.3...@pie-element/categorize-configure@10.2.0-next.4) (2026-04-03)
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
- **categorize:** restore scroll position after drag and drop operation PIE-17 ([87d8433](https://github.com/pie-framework/pie-elements/commit/87d84330c4bbf322b98edc6a1a5175590d4b2401))
|
|
48
|
+
|
|
49
|
+
# [10.2.0-next.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.2...@pie-element/categorize-configure@10.2.0-next.3) (2026-04-03)
|
|
50
|
+
|
|
51
|
+
**Note:** Version bump only for package @pie-element/categorize-configure
|
|
52
|
+
|
|
53
|
+
# [10.2.0-next.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.1...@pie-element/categorize-configure@10.2.0-next.2) (2026-03-25)
|
|
54
|
+
|
|
55
|
+
**Note:** Version bump only for package @pie-element/categorize-configure
|
|
56
|
+
|
|
57
|
+
# [10.2.0-next.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.2.0-next.0...@pie-element/categorize-configure@10.2.0-next.1) (2026-03-25)
|
|
58
|
+
|
|
59
|
+
### Bug Fixes
|
|
60
|
+
|
|
61
|
+
- **categorize:** add tests for new onDrag extension, handle invalid target student PD-5514 ([6b6d151](https://github.com/pie-framework/pie-elements/commit/6b6d151a73d93199e57a08690ff4dfefe0189bc2))
|
|
62
|
+
- **categorize:** handle drag targets correctly PD-5514 ([34a4c98](https://github.com/pie-framework/pie-elements/commit/34a4c982b26f534eee21d800387761138aa0be8d))
|
|
63
|
+
|
|
6
64
|
# [10.2.0-next.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/categorize-configure@10.1.1-next.4...@pie-element/categorize-configure@10.2.0-next.0) (2026-03-19)
|
|
7
65
|
|
|
8
66
|
### Features
|
|
@@ -13,8 +13,9 @@ var _renderUi = require("@pie-lib/render-ui");
|
|
|
13
13
|
const RowLabelContainer = (0, _styles.styled)(_renderUi.InputContainer)(({
|
|
14
14
|
theme
|
|
15
15
|
}) => ({
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
width: '100%',
|
|
17
|
+
paddingTop: theme.spacing(1),
|
|
18
|
+
marginTop: theme.spacing(1)
|
|
18
19
|
}));
|
|
19
20
|
const RowLabel = ({
|
|
20
21
|
categoriesPerRow,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowLabel.js","names":["_utils","require","_react","_interopRequireDefault","_styles","_editableHtmlTipTap","_renderUi","RowLabelContainer","styled","InputContainer","theme","paddingTop","spacing","
|
|
1
|
+
{"version":3,"file":"RowLabel.js","names":["_utils","require","_react","_interopRequireDefault","_styles","_editableHtmlTipTap","_renderUi","RowLabelContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginTop","RowLabel","categoriesPerRow","configuration","disabled","markup","imageSupport","onChange","toolbarOpts","spellCheck","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","rowLabels","baseInputConfiguration","default","createElement","style","gridColumn","label","nonEmpty","pluginProps","getPluginProps","inputConfiguration","languageCharactersProps","language","exports"],"sources":["../../../src/design/categories/RowLabel.jsx"],"sourcesContent":["import { getPluginProps } from '../utils';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/render-ui';\n\nconst RowLabelContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n marginTop: theme.spacing(1),\n}));\n\nexport const RowLabel = ({\n categoriesPerRow,\n configuration,\n disabled,\n markup,\n imageSupport,\n onChange,\n toolbarOpts,\n spellCheck,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n }) => {\n const { rowLabels, baseInputConfiguration } = configuration;\n\n return (\n <div\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n >\n <RowLabelContainer label=\"Row Label\">\n <EditableHtml\n disabled={disabled}\n markup={markup}\n onChange={onChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rowLabels?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </RowLabelContainer>\n </div>\n );\n };\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AAEA,MAAMM,iBAAiB,GAAG,IAAAC,cAAM,EAACC,wBAAc,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC/DC,KAAK,EAAE,MAAM;EACbC,UAAU,EAAEF,KAAK,CAACG,OAAO,CAAC,CAAC,CAAC;EAC5BC,SAAS,EAAEJ,KAAK,CAACG,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEI,MAAME,QAAQ,GAAGA,CAAC;EACrBC,gBAAgB;EAChBC,aAAa;EACbC,QAAQ;EACRC,MAAM;EACNC,YAAY;EACZC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC,aAAa;EACbC,cAAc;EACdC,kBAAkB;EAClBC,aAAa,GAAG,CAAC;AACnB,CAAC,KAAK;EACJ,MAAM;IAAEC,SAAS;IAAEC;EAAuB,CAAC,GAAGZ,aAAa;EAE3D,oBACEf,MAAA,CAAA4B,OAAA,CAAAC,aAAA;IACEC,KAAK,EAAE;MACLC,UAAU,EAAE,KAAKjB,gBAAgB,GAAG,CAAC,EAAE;MACvCL,KAAK,EAAE;IACT;EAAE,gBAEFT,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACxB,iBAAiB;IAAC2B,KAAK,EAAC;EAAW,gBAClChC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,mBAAA,CAAAyB,OAAY;IACXZ,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfE,QAAQ,EAAEA,QAAS;IACnBD,YAAY,EAAEA,YAAa;IAC3Be,QAAQ,EAAE,KAAM;IAChBb,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAE,IAAAC,qBAAc,EAACT,SAAS,EAAEU,kBAAkB,EAAET,sBAAsB,CAAE;IACnFN,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,kBAAkB,EAAEA,kBAAmB;IACvCa,uBAAuB,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAU,CAAC,EAAE;MAAEA,QAAQ,EAAE;IAAU,CAAC,CAAE;IAC5Eb,aAAa,EAAEA;EAAc,CAC9B,CACgB,CAChB,CAAC;AAEV,CAAC;AAACc,OAAA,CAAA1B,QAAA,GAAAA,QAAA","ignoreList":[]}
|
|
@@ -20,8 +20,8 @@ const CategoriesHolder = (0, _styles.styled)('div')(({
|
|
|
20
20
|
theme
|
|
21
21
|
}) => ({
|
|
22
22
|
display: 'grid',
|
|
23
|
-
gridRowGap:
|
|
24
|
-
gridColumnGap:
|
|
23
|
+
gridRowGap: theme.spacing(1),
|
|
24
|
+
gridColumnGap: theme.spacing(1)
|
|
25
25
|
}));
|
|
26
26
|
const RowLabel = (0, _styles.styled)('div')({
|
|
27
27
|
gridColumn: '1 / 3'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alternateResponses.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_categorize","_category","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","RowLabel","gridColumn","AlternateResponses","React","Component","constructor","args","_defineProperty2","default","category","choice","choiceIndex","model","altIndex","onModelChanged","props","correctResponse","removeChoiceFromAlternate","id","render","configuration","categories","imageSupport","spellCheck","uploadSoundSupport","mathMlOptions","categoriesPerRow","errors","rowLabels","duplicateAlternate","holderStyle","gridTemplateColumns","isDuplicated","index","createElement","style","map","hasRowLabel","rowIndex","Fragment","key","width","dangerouslySetInnerHTML","__html","alternateResponseIndex","onDeleteChoice","deleteChoiceFromCategory","isAlternate","exports","PropTypes","number","isRequired","object","shape","add","func","delete","array","bool","_default"],"sources":["../../../src/design/categories/alternateResponses.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { removeChoiceFromAlternate } from '@pie-lib/categorize';\n\nimport Category from './category';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap:
|
|
1
|
+
{"version":3,"file":"alternateResponses.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_categorize","_category","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","RowLabel","gridColumn","AlternateResponses","React","Component","constructor","args","_defineProperty2","default","category","choice","choiceIndex","model","altIndex","onModelChanged","props","correctResponse","removeChoiceFromAlternate","id","render","configuration","categories","imageSupport","spellCheck","uploadSoundSupport","mathMlOptions","categoriesPerRow","errors","rowLabels","duplicateAlternate","holderStyle","gridTemplateColumns","isDuplicated","index","createElement","style","map","hasRowLabel","rowIndex","Fragment","key","width","dangerouslySetInnerHTML","__html","alternateResponseIndex","onDeleteChoice","deleteChoiceFromCategory","isAlternate","exports","PropTypes","number","isRequired","object","shape","add","func","delete","array","bool","_default"],"sources":["../../../src/design/categories/alternateResponses.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { removeChoiceFromAlternate } from '@pie-lib/categorize';\n\nimport Category from './category';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst RowLabel = styled('div')({\n gridColumn: '1 / 3',\n});\n\nexport class AlternateResponses extends React.Component {\n static propTypes = {\n altIndex: PropTypes.number.isRequired,\n configuration: PropTypes.object,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n spellCheck: PropTypes.bool,\n };\n\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, altIndex, onModelChanged } = this.props;\n\n const correctResponse = removeChoiceFromAlternate(\n choice.id,\n category.id,\n choiceIndex,\n altIndex,\n model.correctResponse,\n );\n\n onModelChanged({ correctResponse });\n };\n\n render() {\n const {\n altIndex,\n model,\n configuration,\n categories,\n imageSupport,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const { categoriesPerRow, errors, rowLabels } = model;\n const { duplicateAlternate } = errors || {};\n\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n const isDuplicated = duplicateAlternate ? duplicateAlternate.index === altIndex : false;\n\n return (\n <CategoriesContainer>\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n style={{\n gridColumn: `1/${categoriesPerRow + 1}`,\n width: '100%',\n }}\n dangerouslySetInnerHTML={{\n __html: rowLabels[rowIndex] || '',\n }}\n />\n )}\n\n <Category\n key={index}\n alternateResponseIndex={altIndex}\n imageSupport={imageSupport}\n isDuplicated={isDuplicated && duplicateAlternate.category === category.id}\n category={category}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n isAlternate={true}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n </CategoriesContainer>\n );\n }\n}\n\nexport default AlternateResponses;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,9 +30,7 @@ const StyledCard = (0, _styles.styled)(_Card.default, {
|
|
|
30
30
|
const StyledCardActions = (0, _styles.styled)(_CardActions.default)(({
|
|
31
31
|
theme
|
|
32
32
|
}) => ({
|
|
33
|
-
padding: 0
|
|
34
|
-
paddingBottom: 0,
|
|
35
|
-
paddingTop: theme.spacing(1)
|
|
33
|
+
padding: `${theme.spacing(1)} 0 0`
|
|
36
34
|
}));
|
|
37
35
|
const CategoryHeader = (0, _styles.styled)('div')(({
|
|
38
36
|
theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_buttons","_droppablePlaceholder","StyledCard","styled","Card","shouldForwardProp","prop","theme","isDuplicated","minWidth","padding","spacing","overflow","border","StyledCardActions","CardActions","paddingBottom","paddingTop","CategoryHeader","margin","ErrorText","fontSize","typography","color","palette","error","main","Category","React","Component","constructor","args","_defineProperty2","default","l","category","onChange","props","label","render","alternateResponseIndex","configuration","deleteFocusedEl","focusedEl","index","onDelete","onDeleteChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","isCategoryHeaderDisabled","createElement","disabled","changeLabel","dangerouslySetInnerHTML","__html","choices","categoryId","id","extraStyles","minHeight","isAlternate","DeleteButton","onClick","exports","PropTypes","number","object","isRequired","defaultImageMaxHeight","defaultImageMaxWidth","func","string","bool","shape","add","delete","_default"],"sources":["../../../src/design/categories/category.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';\n\nimport InputHeader from '../input-header';\nimport { DeleteButton } from '../buttons';\nimport PlaceHolder from './droppable-placeholder';\n\nconst StyledCard = styled(Card, {\n shouldForwardProp: (prop) => prop !== 'isDuplicated',\n})(({ theme, isDuplicated }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n ...(isDuplicated && {\n border: '1px solid red',\n }),\n}));\n\nconst StyledCardActions = styled(CardActions)(({ theme }) => ({\n padding: 0,\n paddingBottom: 0,\n paddingTop: theme.spacing(1),\n}));\n\nconst CategoryHeader = styled('div')(({ theme }) => ({\n padding: theme.spacing(2),\n '& p': {\n margin: 0,\n },\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\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n isAlternate: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n configuration,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onDelete,\n onDeleteChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const isCategoryHeaderDisabled = !!alternateResponseIndex || alternateResponseIndex === 0;\n \n return (\n <StyledCard isDuplicated={isDuplicated}>\n <span>\n {!isCategoryHeaderDisabled ? (\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n disabled={!!alternateResponseIndex || alternateResponseIndex === 0}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n ) : (\n <CategoryHeader\n dangerouslySetInnerHTML={{\n __html: category.label,\n }}\n />\n )}\n {error && <ErrorText>{error}</ErrorText>}\n </span>\n <PlaceHolder\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n categoryId={category.id}\n extraStyles={{ minHeight: '100px', }}\n isAlternate={this.props.isAlternate}\n />\n {onDelete && (\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </StyledCardActions>\n )}\n </StyledCard>\n );\n }\n}\n\nexport default Category;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"category.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Card","_CardActions","_inputHeader","_buttons","_droppablePlaceholder","StyledCard","styled","Card","shouldForwardProp","prop","theme","isDuplicated","minWidth","padding","spacing","overflow","border","StyledCardActions","CardActions","CategoryHeader","margin","ErrorText","fontSize","typography","color","palette","error","main","paddingBottom","Category","React","Component","constructor","args","_defineProperty2","default","l","category","onChange","props","label","render","alternateResponseIndex","configuration","deleteFocusedEl","focusedEl","index","onDelete","onDeleteChoice","imageSupport","spellCheck","toolbarOpts","maxImageWidth","maxImageHeight","uploadSoundSupport","mathMlOptions","isCategoryHeaderDisabled","createElement","disabled","changeLabel","dangerouslySetInnerHTML","__html","choices","categoryId","id","extraStyles","minHeight","isAlternate","DeleteButton","onClick","exports","PropTypes","number","object","isRequired","defaultImageMaxHeight","defaultImageMaxWidth","func","string","bool","shape","add","delete","_default"],"sources":["../../../src/design/categories/category.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';\n\nimport InputHeader from '../input-header';\nimport { DeleteButton } from '../buttons';\nimport PlaceHolder from './droppable-placeholder';\n\nconst StyledCard = styled(Card, {\n shouldForwardProp: (prop) => prop !== 'isDuplicated',\n})(({ theme, isDuplicated }) => ({\n minWidth: '196px',\n padding: theme.spacing(1),\n overflow: 'visible',\n ...(isDuplicated && {\n border: '1px solid red',\n }),\n}));\n\nconst StyledCardActions = styled(CardActions)(({ theme }) => ({\n padding: `${theme.spacing(1)} 0 0`,\n}));\n\nconst CategoryHeader = styled('div')(({ theme }) => ({\n padding: theme.spacing(2),\n '& p': {\n margin: 0,\n },\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\nexport class Category extends React.Component {\n static propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n deleteFocusedEl: PropTypes.func,\n focusedEl: PropTypes.number,\n index: PropTypes.number,\n error: PropTypes.string,\n isDuplicated: PropTypes.bool,\n maxImageWidth: PropTypes.object,\n maxImageHeight: PropTypes.object,\n onChange: PropTypes.func,\n onDelete: PropTypes.func,\n onDeleteChoice: PropTypes.func,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n isAlternate: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n changeLabel = (l) => {\n const { category, onChange } = this.props;\n category.label = l;\n onChange(category);\n };\n\n render() {\n const {\n alternateResponseIndex,\n category,\n configuration,\n deleteFocusedEl,\n focusedEl,\n index,\n error,\n isDuplicated,\n onDelete,\n onDeleteChoice,\n imageSupport,\n spellCheck,\n toolbarOpts,\n maxImageWidth,\n maxImageHeight,\n uploadSoundSupport,\n mathMlOptions = {},\n } = this.props;\n const isCategoryHeaderDisabled = !!alternateResponseIndex || alternateResponseIndex === 0;\n\n return (\n <StyledCard isDuplicated={isDuplicated}>\n <span>\n {!isCategoryHeaderDisabled ? (\n <InputHeader\n label={category.label}\n focusedEl={focusedEl}\n deleteFocusedEl={deleteFocusedEl}\n index={index}\n disabled={!!alternateResponseIndex || alternateResponseIndex === 0}\n error={error}\n onChange={this.changeLabel}\n onDelete={onDelete}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={maxImageWidth}\n maxImageHeight={maxImageHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n ) : (\n <CategoryHeader\n dangerouslySetInnerHTML={{\n __html: category.label,\n }}\n />\n )}\n {error && <ErrorText>{error}</ErrorText>}\n </span>\n <PlaceHolder\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={category.choices}\n onDeleteChoice={onDeleteChoice}\n categoryId={category.id}\n extraStyles={{ minHeight: '100px', }}\n isAlternate={this.props.isAlternate}\n />\n {onDelete && (\n <StyledCardActions>\n <DeleteButton label={'delete'} onClick={onDelete} />\n </StyledCardActions>\n )}\n </StyledCard>\n );\n }\n}\n\nexport default Category;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,15 +18,13 @@ const HelperText = (0, _styles.styled)('div')(({
|
|
|
18
18
|
}) => ({
|
|
19
19
|
display: 'flex',
|
|
20
20
|
alignItems: 'center',
|
|
21
|
+
justifyContent: 'center',
|
|
21
22
|
fontSize: theme.typography.fontSize - 2,
|
|
22
23
|
color: `rgba(${theme.palette.common.black}, 0.4)`,
|
|
23
24
|
width: '100%',
|
|
24
25
|
height: '100%'
|
|
25
26
|
}));
|
|
26
27
|
const Helper = () => /*#__PURE__*/_react.default.createElement(HelperText, null, "Drag your correct answers here");
|
|
27
|
-
const DroppablePlaceholderContainer = (0, _styles.styled)('div')({
|
|
28
|
-
minHeight: '100px'
|
|
29
|
-
});
|
|
30
28
|
const Previews = ({
|
|
31
29
|
alternateResponseIndex,
|
|
32
30
|
category,
|
|
@@ -69,7 +67,7 @@ const DroppablePlaceHolder = ({
|
|
|
69
67
|
});
|
|
70
68
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
69
|
ref: setNodeRef
|
|
72
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
70
|
+
}, /*#__PURE__*/_react.default.createElement(_drag.PlaceHolder, {
|
|
73
71
|
isOver: isOver,
|
|
74
72
|
extraStyles: {
|
|
75
73
|
width: '100%',
|
|
@@ -81,7 +79,7 @@ const DroppablePlaceHolder = ({
|
|
|
81
79
|
category: category,
|
|
82
80
|
choices: choices,
|
|
83
81
|
onDeleteChoice: onDeleteChoice
|
|
84
|
-
})))
|
|
82
|
+
})));
|
|
85
83
|
};
|
|
86
84
|
DroppablePlaceHolder.propTypes = {
|
|
87
85
|
alternateResponseIndex: _propTypes.default.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choicePreview","_core","_drag","_debug","log","debug","HelperText","styled","theme","display","alignItems","fontSize","typography","color","palette","common","black","width","height","Helper","default","createElement","
|
|
1
|
+
{"version":3,"file":"droppable-placeholder.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choicePreview","_core","_drag","_debug","log","debug","HelperText","styled","theme","display","alignItems","justifyContent","fontSize","typography","color","palette","common","black","width","height","Helper","default","createElement","Previews","alternateResponseIndex","category","choices","onDeleteChoice","Fragment","map","c","index","choice","key","choiceIndex","onDelete","propTypes","PropTypes","number","object","array","func","DroppablePlaceHolder","categoryId","isAlternate","setNodeRef","isOver","useDroppable","id","data","accepts","type","ref","PlaceHolder","extraStyles","minHeight","length","string","isRequired","bool","_default","exports","uid","withUid"],"sources":["../../../src/design/categories/droppable-placeholder.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport ChoicePreview from './choice-preview';\nimport { useDroppable } from '@dnd-kit/core';\nimport { uid, PlaceHolder } from '@pie-lib/drag';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:categorize:configure');\n\nconst HelperText = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: theme.typography.fontSize - 2,\n color: `rgba(${theme.palette.common.black}, 0.4)`,\n width: '100%',\n height: '100%',\n}));\n\nconst Helper = () => <HelperText>Drag your correct answers here</HelperText>;\n\nconst Previews = ({ alternateResponseIndex, category, choices, onDeleteChoice }) => (\n <React.Fragment>\n {(choices || []).map((c, index) =>\n c && (\n <ChoicePreview\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choice={c}\n key={index}\n choiceIndex={index}\n onDelete={(choice) => onDeleteChoice(choice, index)}\n />\n )\n )}\n </React.Fragment>\n);\n\nPreviews.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n};\n\nconst DroppablePlaceHolder = ({\n alternateResponseIndex,\n category,\n choices,\n onDeleteChoice,\n categoryId,\n isAlternate\n}) => {\n const { setNodeRef, isOver } = useDroppable({\n id: `${categoryId}-${isAlternate ? 'alternate' : 'standard'}`,\n data: {\n accepts: ['choice', 'choice-preview'],\n alternateResponseIndex,\n categoryId,\n type: isAlternate ? 'category-alternate' : 'category',\n id: categoryId,\n },\n });\n\n return (\n <div ref={setNodeRef}>\n <PlaceHolder\n isOver={isOver}\n extraStyles={{\n width: '100%',\n minHeight: '100px',\n height: 'auto',\n }}>\n {(choices || []).length === 0 ? (\n <Helper />\n ) : (\n <Previews\n alternateResponseIndex={alternateResponseIndex}\n category={category}\n choices={choices}\n onDeleteChoice={onDeleteChoice}\n />\n )}\n </PlaceHolder>\n </div>\n );\n};\n\nDroppablePlaceHolder.propTypes = {\n alternateResponseIndex: PropTypes.number,\n category: PropTypes.object,\n choices: PropTypes.array,\n onDeleteChoice: PropTypes.func,\n categoryId: PropTypes.string.isRequired,\n isAlternate: PropTypes.bool,\n};\n\nexport default uid.withUid(DroppablePlaceHolder);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,8 +26,8 @@ const CategoriesHolder = (0, _styles.styled)('div')(({
|
|
|
26
26
|
theme
|
|
27
27
|
}) => ({
|
|
28
28
|
display: 'grid',
|
|
29
|
-
gridRowGap:
|
|
30
|
-
gridColumnGap:
|
|
29
|
+
gridRowGap: theme.spacing(1),
|
|
30
|
+
gridColumnGap: theme.spacing(1)
|
|
31
31
|
}));
|
|
32
32
|
const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
|
|
33
33
|
theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_configUi","_Info","_Tooltip","_categorize","_category","_header","_utils","_RowLabel","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorText","color","palette","error","main","paddingTop","Categories","React","Component","constructor","args","_defineProperty2","default","focusedEl","model","categories","oldCategories","props","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","removeCategory","c","choice","choiceIndex","removeChoiceFromCategory","val","newRowLabels","render","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","gridTemplateColumns","validationMessage","generateValidationMessage","createElement","buttonLabel","onAdd","add","info","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","buttonDisabled","hasRowLabel","rowIndex","Fragment","key","RowLabel","disabled","markup","onChange","changeRowLabel","rowLabel","state","deleteFocusedEl","change","onDelete","delete","onDeleteChoice","deleteChoiceFromCategory","categoryLabel","alternateResponseIndex","undefined","exports","PropTypes","number","shape","func","isRequired","array","object","bool","_default"],"sources":["../../../src/design/categories/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n removeCategory,\n removeChoiceFromCategory,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: `${theme.spacing(1)}px`,\n gridColumnGap: `${theme.spacing(1)}px`,\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow, correctResponse, allowAlternateEnabled } = model;\n\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 1,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n correctResponse: allowAlternateEnabled\n ? [...correctResponse, { category: id, choices: [], alternateResponses: [] }]\n : correctResponse,\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {},\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <CategoriesContainer>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n alternateResponseIndex={undefined}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n\n {associationError && <ErrorText>{associationError}</ErrorText>}\n {categoriesError && <ErrorText>{categoriesError}</ErrorText>}\n </CategoriesContainer>\n );\n }\n}\n\nexport default Categories;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_configUi","_Info","_Tooltip","_categorize","_category","_header","_utils","_RowLabel","CategoriesContainer","styled","theme","marginBottom","spacing","CategoriesHolder","display","gridRowGap","gridColumnGap","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorText","color","palette","error","main","paddingTop","Categories","React","Component","constructor","args","_defineProperty2","default","focusedEl","model","categories","oldCategories","props","categoriesPerRow","correctResponse","allowAlternateEnabled","id","utils","firstAvailableIndex","map","a","data","label","addRowLabel","length","rowLabels","push","setState","onModelChanged","concat","category","choices","alternateResponses","index","findIndex","splice","removeCategory","c","choice","choiceIndex","removeChoiceFromCategory","val","newRowLabels","render","imageSupport","uploadSoundSupport","toolbarOpts","spellCheck","configuration","defaultImageMaxHeight","defaultImageMaxWidth","mathMlOptions","errors","associationError","categoriesError","categoriesErrors","maxCategories","maxImageWidth","maxImageHeight","holderStyle","gridTemplateColumns","validationMessage","generateValidationMessage","createElement","buttonLabel","onAdd","add","info","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","buttonDisabled","hasRowLabel","rowIndex","Fragment","key","RowLabel","disabled","markup","onChange","changeRowLabel","rowLabel","state","deleteFocusedEl","change","onDelete","delete","onDeleteChoice","deleteChoiceFromCategory","categoryLabel","alternateResponseIndex","undefined","exports","PropTypes","number","shape","func","isRequired","array","object","bool","_default"],"sources":["../../../src/design/categories/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n removeCategory,\n removeChoiceFromCategory,\n} from '@pie-lib/categorize';\n\nimport Category from './category';\nimport Header from '../header';\nimport { generateValidationMessage } from '../../utils';\nimport { RowLabel } from './RowLabel';\n\nconst CategoriesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(3),\n}));\n\nconst CategoriesHolder = styled('div')(({ theme }) => ({\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Categories extends React.Component {\n static propTypes = {\n defaultImageMaxHeight: PropTypes.number,\n defaultImageMaxWidth: PropTypes.number,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n categories: PropTypes.array,\n onModelChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n state = {\n focusedEl: null,\n };\n\n add = () => {\n const { model, categories: oldCategories } = this.props;\n const { categoriesPerRow, correctResponse, allowAlternateEnabled } = model;\n\n const id = utils.firstAvailableIndex(\n model.categories.map((a) => a.id),\n 1,\n );\n const data = { id, label: 'Category ' + id };\n const addRowLabel = model.categories.length % categoriesPerRow === 0;\n const rowLabels = [...model.rowLabels];\n\n if (addRowLabel) {\n rowLabels.push('');\n }\n\n this.setState(\n {\n focusedEl: oldCategories.length,\n },\n () => {\n this.props.onModelChanged({\n rowLabels,\n categories: model.categories.concat([data]),\n correctResponse: allowAlternateEnabled\n ? [...correctResponse, { category: id, choices: [], alternateResponses: [] }]\n : correctResponse,\n });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n delete = (category) => {\n const { model, onModelChanged } = this.props;\n const index = model.categories.findIndex((a) => a.id === category.id);\n\n if (index !== -1) {\n model.categories.splice(index, 1);\n model.correctResponse = removeCategory(category.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n change = (c) => {\n const { categories } = this.props;\n const index = categories.findIndex((a) => a.id === c.id);\n\n if (index !== -1) {\n categories.splice(index, 1, c);\n this.props.onModelChanged({ categories });\n }\n };\n\n deleteChoiceFromCategory = (category, choice, choiceIndex) => {\n const { model, onModelChanged } = this.props;\n const correctResponse = removeChoiceFromCategory(choice.id, category.id, choiceIndex, model.correctResponse);\n\n onModelChanged({ correctResponse });\n };\n\n changeRowLabel = (val, index) => {\n const { model } = this.props;\n const { rowLabels } = model;\n const newRowLabels = [...rowLabels];\n\n if (newRowLabels.length < index) {\n newRowLabels.push(val);\n } else {\n newRowLabels[index] = val;\n }\n\n this.props.onModelChanged({\n rowLabels: newRowLabels,\n });\n };\n\n render() {\n const {\n model,\n categories,\n imageSupport,\n uploadSoundSupport,\n toolbarOpts,\n spellCheck,\n configuration,\n defaultImageMaxHeight,\n defaultImageMaxWidth,\n mathMlOptions = {},\n } = this.props;\n\n const { categoriesPerRow, rowLabels, errors } = model;\n const { associationError, categoriesError, categoriesErrors } = errors || {};\n const { maxCategories, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const holderStyle = {\n gridTemplateColumns: `repeat(${categoriesPerRow}, 1fr)`,\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n return (\n <CategoriesContainer>\n <Header\n label=\"Categories\"\n buttonLabel=\"ADD A CATEGORY\"\n onAdd={this.add}\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n }\n buttonDisabled={maxCategories && categories && maxCategories === categories.length}\n />\n\n <CategoriesHolder style={holderStyle}>\n {categories.map((category, index) => {\n const hasRowLabel = index % categoriesPerRow === 0;\n const rowIndex = index / categoriesPerRow;\n\n return (\n <React.Fragment key={index}>\n {hasRowLabel && (\n <RowLabel\n categoriesPerRow={categoriesPerRow}\n disabled={false}\n rowIndex={rowIndex}\n markup={rowLabels[rowIndex] || ''}\n onChange={(val) => this.changeRowLabel(val, rowIndex)}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n configuration={configuration}\n />\n )}\n\n <Category\n imageSupport={imageSupport}\n focusedEl={this.state.focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n index={index}\n category={category}\n error={categoriesErrors && categoriesErrors[category.id]}\n onChange={this.change}\n onDelete={() => this.delete(category)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n onDeleteChoice={(choice, choiceIndex) => this.deleteChoiceFromCategory(category, choice, choiceIndex)}\n maxImageWidth={(maxImageWidth && maxImageWidth.categoryLabel) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.categoryLabel) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n alternateResponseIndex={undefined}\n />\n </React.Fragment>\n );\n })}\n </CategoriesHolder>\n\n {associationError && <ErrorText>{associationError}</ErrorText>}\n {categoriesError && <ErrorText>{categoriesError}</ErrorText>}\n </CategoriesContainer>\n );\n }\n}\n\nexport default Categories;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,8 +25,8 @@ const ChoiceHolder = (0, _styles.styled)('div')(({
|
|
|
25
25
|
paddingTop: theme.spacing(1),
|
|
26
26
|
paddingBottom: theme.spacing(1),
|
|
27
27
|
display: 'grid',
|
|
28
|
-
gridRowGap:
|
|
29
|
-
gridColumnGap:
|
|
28
|
+
gridRowGap: theme.spacing(1),
|
|
29
|
+
gridColumnGap: theme.spacing(1)
|
|
30
30
|
}));
|
|
31
31
|
const ErrorText = (0, _styles.styled)('div')(({
|
|
32
32
|
theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_header","_config","_configUi","_categorize","ChoicesContainer","styled","theme","marginBottom","spacing","ChoiceHolder","paddingTop","paddingBottom","display","gridRowGap","gridColumnGap","ErrorText","fontSize","typography","color","palette","error","main","Choices","React","Component","constructor","args","_defineProperty2","default","focusedEl","choice","choices","onModelChanged","props","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","removeAllChoices","render","state","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","createElement","label","buttonLabel","onAdd","addChoice","buttonDisabled","tooltip","config","style","key","deleteFocusedEl","correctResponseCount","allowMultiplePlacements","onChange","changeChoice","onDelete","deleteChoice","exports","PropTypes","object","isRequired","array","number","func","shape","add","delete","bool","_default"],"sources":["../../../src/design/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ChoiceHolder = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n display: 'grid',\n gridRowGap: `${theme.spacing(1)}px`,\n gridColumnGap: `${theme.spacing(1)}px`,\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <ChoicesContainer>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <ChoiceHolder style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n key={h.id}\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </ChoiceHolder>\n {choicesError && <ErrorText>{choicesError}</ErrorText>}\n </ChoicesContainer>\n );\n }\n}\n\nexport default Choices;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_choice","_header","_config","_configUi","_categorize","ChoicesContainer","styled","theme","marginBottom","spacing","ChoiceHolder","paddingTop","paddingBottom","display","gridRowGap","gridColumnGap","ErrorText","fontSize","typography","color","palette","error","main","Choices","React","Component","constructor","args","_defineProperty2","default","focusedEl","choice","choices","onModelChanged","props","index","findIndex","h","id","splice","count","Array","isArray","every","c","categoryCount","model","oldChoices","maxAnswerChoices","length","utils","firstAvailableIndex","map","a","data","content","setState","concat","correctResponse","removeAllChoices","render","state","imageSupport","uploadSoundSupport","spellCheck","toolbarOpts","configuration","defaultImageMaxWidth","defaultImageMaxHeight","errors","allowMultiplePlacementsEnabled","lockChoiceOrder","choicesError","choicesErrors","maxImageWidth","maxImageHeight","choiceHolderStyle","gridTemplateColumns","categoriesPerRow","addChoiceButtonTooltip","createElement","label","buttonLabel","onAdd","addChoice","buttonDisabled","tooltip","config","style","key","deleteFocusedEl","correctResponseCount","allowMultiplePlacements","onChange","changeChoice","onDelete","deleteChoice","exports","PropTypes","object","isRequired","array","number","func","shape","add","delete","bool","_default"],"sources":["../../../src/design/choices/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Choice from './choice';\nimport Header from '../header';\nimport Config from './config';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport { removeAllChoices } from '@pie-lib/categorize';\n\nconst ChoicesContainer = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst ChoiceHolder = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n display: 'grid',\n gridRowGap: theme.spacing(1),\n gridColumnGap: theme.spacing(1),\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(0.5),\n}));\n\nexport class Choices extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n choices: PropTypes.array.isRequired,\n defaultImageMaxWidth: PropTypes.number,\n defaultImageMaxHeight: PropTypes.number,\n onModelChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n spellCheck: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n state = {\n focusedEl: null,\n };\n\n changeChoice = (choice) => {\n const { choices, onModelChanged } = this.props;\n const index = choices.findIndex((h) => h.id === choice.id);\n if (index !== -1) {\n choices.splice(index, 1, choice);\n onModelChanged({ choices });\n }\n };\n\n allChoicesHaveCount = (count) => {\n const { choices } = this.props;\n return Array.isArray(choices) && choices.every((c) => c.categoryCount === count);\n };\n\n addChoice = () => {\n const { onModelChanged, model, choices: oldChoices } = this.props;\n let { maxAnswerChoices } = model || {};\n\n if (maxAnswerChoices && model.choices?.length >= maxAnswerChoices) {\n return;\n }\n\n const id = utils.firstAvailableIndex(\n model.choices.map((a) => a.id),\n 1,\n );\n const data = { id, content: 'Choice ' + id };\n\n this.setState(\n {\n focusedEl: oldChoices.length,\n },\n () => {\n onModelChanged({ choices: model.choices.concat([data]) });\n },\n );\n };\n\n deleteFocusedEl = () => {\n this.setState({\n focusedEl: null,\n });\n };\n\n deleteChoice = (choice) => {\n const { model, onModelChanged } = this.props;\n const index = model.choices.findIndex((a) => a.id === choice.id);\n if (index !== -1) {\n model.choices.splice(index, 1);\n model.correctResponse = removeAllChoices(choice.id, model.correctResponse);\n onModelChanged(model);\n }\n };\n\n render() {\n const { focusedEl } = this.state;\n const {\n choices,\n model,\n imageSupport,\n uploadSoundSupport,\n onModelChanged,\n spellCheck,\n toolbarOpts,\n configuration,\n defaultImageMaxWidth,\n defaultImageMaxHeight,\n } = this.props;\n const { errors, allowMultiplePlacementsEnabled, lockChoiceOrder, maxAnswerChoices } = model;\n const { choicesError, choicesErrors } = errors || {};\n const { maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const choiceHolderStyle = {\n gridTemplateColumns: `repeat(${model.categoriesPerRow}, 1fr)`,\n };\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n return (\n <ChoicesContainer>\n <Header\n label=\"Choices\"\n buttonLabel=\"ADD A CHOICE\"\n onAdd={this.addChoice}\n buttonDisabled={maxAnswerChoices && choices && choices?.length >= maxAnswerChoices}\n tooltip={addChoiceButtonTooltip}\n />\n\n <Config config={model} onModelChanged={onModelChanged} spellCheck={spellCheck} />\n\n <ChoiceHolder style={choiceHolderStyle}>\n {choices.map((h, index) => {\n return (\n <Choice\n key={h.id}\n choice={h}\n focusedEl={focusedEl}\n deleteFocusedEl={this.deleteFocusedEl}\n correctResponseCount={h.correctResponseCount}\n allowMultiplePlacements={allowMultiplePlacementsEnabled}\n lockChoiceOrder={lockChoiceOrder}\n index={index}\n imageSupport={imageSupport}\n onChange={this.changeChoice}\n onDelete={() => this.deleteChoice(h)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={choicesErrors && choicesErrors[h.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.choice) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choice) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n configuration={configuration}\n />\n );\n })}\n </ChoiceHolder>\n {choicesError && <ErrorText>{choicesError}</ErrorText>}\n </ChoicesContainer>\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,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAEA,MAAMQ,gBAAgB,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACrDC,YAAY,EAAED,KAAK,CAACE,OAAO,CAAC,GAAG;AACjC,CAAC,CAAC,CAAC;AAEH,MAAMC,YAAY,GAAG,IAAAJ,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EACjDI,UAAU,EAAEJ,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BG,aAAa,EAAEL,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC/BI,OAAO,EAAE,MAAM;EACfC,UAAU,EAAEP,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;EAC5BM,aAAa,EAAER,KAAK,CAACE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,MAAMO,SAAS,GAAG,IAAAV,cAAM,EAAC,KAAK,CAAC,CAAC,CAAC;EAAEC;AAAM,CAAC,MAAM;EAC9CU,QAAQ,EAAEV,KAAK,CAACW,UAAU,CAACD,QAAQ,GAAG,CAAC;EACvCE,KAAK,EAAEZ,KAAK,CAACa,OAAO,CAACC,KAAK,CAACC,IAAI;EAC/BX,UAAU,EAAEJ,KAAK,CAACE,OAAO,CAAC,GAAG;AAC/B,CAAC,CAAC,CAAC;AAEI,MAAMc,OAAO,SAASC,cAAK,CAACC,SAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAsBnC;MACNC,SAAS,EAAE;IACb,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,wBAEeE,MAAM,IAAK;MACzB,MAAM;QAAEC,OAAO;QAAEC;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAC9C,MAAMC,KAAK,GAAGH,OAAO,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,KAAKP,MAAM,CAACO,EAAE,CAAC;MAC1D,IAAIH,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBH,OAAO,CAACO,MAAM,CAACJ,KAAK,EAAE,CAAC,EAAEJ,MAAM,CAAC;QAChCE,cAAc,CAAC;UAAED;QAAQ,CAAC,CAAC;MAC7B;IACF,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,+BAEsBW,KAAK,IAAK;MAC/B,MAAM;QAAER;MAAQ,CAAC,GAAG,IAAI,CAACE,KAAK;MAC9B,OAAOO,KAAK,CAACC,OAAO,CAACV,OAAO,CAAC,IAAIA,OAAO,CAACW,KAAK,CAAEC,CAAC,IAAKA,CAAC,CAACC,aAAa,KAAKL,KAAK,CAAC;IAClF,CAAC;IAAA,IAAAZ,gBAAA,CAAAC,OAAA,qBAEW,MAAM;MAChB,MAAM;QAAEI,cAAc;QAAEa,KAAK;QAAEd,OAAO,EAAEe;MAAW,CAAC,GAAG,IAAI,CAACb,KAAK;MACjE,IAAI;QAAEc;MAAiB,CAAC,GAAGF,KAAK,IAAI,CAAC,CAAC;MAEtC,IAAIE,gBAAgB,IAAIF,KAAK,CAACd,OAAO,EAAEiB,MAAM,IAAID,gBAAgB,EAAE;QACjE;MACF;MAEA,MAAMV,EAAE,GAAGY,qBAAK,CAACC,mBAAmB,CAClCL,KAAK,CAACd,OAAO,CAACoB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACf,EAAE,CAAC,EAC9B,CACF,CAAC;MACD,MAAMgB,IAAI,GAAG;QAAEhB,EAAE;QAAEiB,OAAO,EAAE,SAAS,GAAGjB;MAAG,CAAC;MAE5C,IAAI,CAACkB,QAAQ,CACX;QACE1B,SAAS,EAAEiB,UAAU,CAACE;MACxB,CAAC,EACD,MAAM;QACJhB,cAAc,CAAC;UAAED,OAAO,EAAEc,KAAK,CAACd,OAAO,CAACyB,MAAM,CAAC,CAACH,IAAI,CAAC;QAAE,CAAC,CAAC;MAC3D,CACF,CAAC;IACH,CAAC;IAAA,IAAA1B,gBAAA,CAAAC,OAAA,2BAEiB,MAAM;MACtB,IAAI,CAAC2B,QAAQ,CAAC;QACZ1B,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,wBAEeE,MAAM,IAAK;MACzB,MAAM;QAAEe,KAAK;QAAEb;MAAe,CAAC,GAAG,IAAI,CAACC,KAAK;MAC5C,MAAMC,KAAK,GAAGW,KAAK,CAACd,OAAO,CAACI,SAAS,CAAEiB,CAAC,IAAKA,CAAC,CAACf,EAAE,KAAKP,MAAM,CAACO,EAAE,CAAC;MAChE,IAAIH,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBW,KAAK,CAACd,OAAO,CAACO,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;QAC9BW,KAAK,CAACY,eAAe,GAAG,IAAAC,4BAAgB,EAAC5B,MAAM,CAACO,EAAE,EAAEQ,KAAK,CAACY,eAAe,CAAC;QAC1EzB,cAAc,CAACa,KAAK,CAAC;MACvB;IACF,CAAC;EAAA;EAEDc,MAAMA,CAAA,EAAG;IACP,MAAM;MAAE9B;IAAU,CAAC,GAAG,IAAI,CAAC+B,KAAK;IAChC,MAAM;MACJ7B,OAAO;MACPc,KAAK;MACLgB,YAAY;MACZC,kBAAkB;MAClB9B,cAAc;MACd+B,UAAU;MACVC,WAAW;MACXC,aAAa;MACbC,oBAAoB;MACpBC;IACF,CAAC,GAAG,IAAI,CAAClC,KAAK;IACd,MAAM;MAAEmC,MAAM;MAAEC,8BAA8B;MAAEC,eAAe;MAAEvB;IAAiB,CAAC,GAAGF,KAAK;IAC3F,MAAM;MAAE0B,YAAY;MAAEC;IAAc,CAAC,GAAGJ,MAAM,IAAI,CAAC,CAAC;IACpD,MAAM;MAAEK,aAAa,GAAG,CAAC,CAAC;MAAEC,cAAc,GAAG,CAAC;IAAE,CAAC,GAAGT,aAAa,IAAI,CAAC,CAAC;IACvE,MAAMU,iBAAiB,GAAG;MACxBC,mBAAmB,EAAE,UAAU/B,KAAK,CAACgC,gBAAgB;IACvD,CAAC;IACD,MAAMC,sBAAsB,GAC1B/B,gBAAgB,IAAIhB,OAAO,EAAEiB,MAAM,IAAID,gBAAgB,GAAG,QAAQA,gBAAgB,kBAAkB,GAAG,EAAE;IAE3G,oBACErD,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAAC3E,gBAAgB,qBACfV,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAAC/E,OAAA,CAAA4B,OAAM;MACLoD,KAAK,EAAC,SAAS;MACfC,WAAW,EAAC,cAAc;MAC1BC,KAAK,EAAE,IAAI,CAACC,SAAU;MACtBC,cAAc,EAAErC,gBAAgB,IAAIhB,OAAO,IAAIA,OAAO,EAAEiB,MAAM,IAAID,gBAAiB;MACnFsC,OAAO,EAAEP;IAAuB,CACjC,CAAC,eAEFpF,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAAC9E,OAAA,CAAA2B,OAAM;MAAC0D,MAAM,EAAEzC,KAAM;MAACb,cAAc,EAAEA,cAAe;MAAC+B,UAAU,EAAEA;IAAW,CAAE,CAAC,eAEjFrE,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAACtE,YAAY;MAAC8E,KAAK,EAAEZ;IAAkB,GACpC5C,OAAO,CAACoB,GAAG,CAAC,CAACf,CAAC,EAAEF,KAAK,KAAK;MACzB,oBACExC,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAAChF,OAAA,CAAA6B,OAAM;QACL4D,GAAG,EAAEpD,CAAC,CAACC,EAAG;QACVP,MAAM,EAAEM,CAAE;QACVP,SAAS,EAAEA,SAAU;QACrB4D,eAAe,EAAE,IAAI,CAACA,eAAgB;QACtCC,oBAAoB,EAAEtD,CAAC,CAACsD,oBAAqB;QAC7CC,uBAAuB,EAAEtB,8BAA+B;QACxDC,eAAe,EAAEA,eAAgB;QACjCpC,KAAK,EAAEA,KAAM;QACb2B,YAAY,EAAEA,YAAa;QAC3B+B,QAAQ,EAAE,IAAI,CAACC,YAAa;QAC5BC,QAAQ,EAAEA,CAAA,KAAM,IAAI,CAACC,YAAY,CAAC3D,CAAC,CAAE;QACrC4B,WAAW,EAAEA,WAAY;QACzBD,UAAU,EAAEA,UAAW;QACvB3C,KAAK,EAAEoD,aAAa,IAAIA,aAAa,CAACpC,CAAC,CAACC,EAAE,CAAE;QAC5CoC,aAAa,EAAGA,aAAa,IAAIA,aAAa,CAAC3C,MAAM,IAAKoC,oBAAqB;QAC/EQ,cAAc,EAAGA,cAAc,IAAIA,cAAc,CAAC5C,MAAM,IAAKqC,qBAAsB;QACnFL,kBAAkB,EAAEA,kBAAmB;QACvCG,aAAa,EAAEA;MAAc,CAC9B,CAAC;IAEN,CAAC,CACW,CAAC,EACdM,YAAY,iBAAI7E,MAAA,CAAAkC,OAAA,CAAAmD,aAAA,CAAChE,SAAS,QAAEwD,YAAwB,CACrC,CAAC;EAEvB;AACF;AAACyB,OAAA,CAAA1E,OAAA,GAAAA,OAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAjJYN,OAAO,eACC;EACjBuB,KAAK,EAAEoD,kBAAS,CAACC,MAAM,CAACC,UAAU;EAClClC,aAAa,EAAEgC,kBAAS,CAACC,MAAM,CAACC,UAAU;EAC1CpE,OAAO,EAAEkE,kBAAS,CAACG,KAAK,CAACD,UAAU;EACnCjC,oBAAoB,EAAE+B,kBAAS,CAACI,MAAM;EACtClC,qBAAqB,EAAE8B,kBAAS,CAACI,MAAM;EACvCrE,cAAc,EAAEiE,kBAAS,CAACK,IAAI,CAACH,UAAU;EACzCtC,YAAY,EAAEoC,kBAAS,CAACM,KAAK,CAAC;IAC5BC,GAAG,EAAEP,kBAAS,CAACK,IAAI,CAACH,UAAU;IAC9BM,MAAM,EAAER,kBAAS,CAACK,IAAI,CAACH;EACzB,CAAC,CAAC;EACFrC,kBAAkB,EAAEmC,kBAAS,CAACM,KAAK,CAAC;IAClCC,GAAG,EAAEP,kBAAS,CAACK,IAAI,CAACH,UAAU;IAC9BM,MAAM,EAAER,kBAAS,CAACK,IAAI,CAACH;EACzB,CAAC,CAAC;EACFnC,WAAW,EAAEiC,kBAAS,CAACC,MAAM;EAC7BnC,UAAU,EAAEkC,kBAAS,CAACS;AACxB,CAAC;AAAA,IAAA/E,gBAAA,CAAAC,OAAA,EAlBUN,OAAO,kBAoBI,CAAC,CAAC;AAAA,IAAAqF,QAAA,GAAAX,OAAA,CAAApE,OAAA,GA+HXN,OAAO","ignoreList":[]}
|