@pie-element/ebsr 11.0.0 → 12.0.1-esmbeta.1
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 +22 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
- package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +4186 -0
- package/configure/node_modules/@pie-element/multiple-choice/LICENSE.md +5 -0
- package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
- package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
- package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +3332 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +202 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +248 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +597 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +18 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +20 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +527 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +2297 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +34 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +346 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +28 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +2993 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +2217 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +61 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +1332 -0
- package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +1015 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/configure.css +847 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/configure.js +1218 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/configure.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/controller.css +847 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/controller.js +324 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/controller.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/element.css +847 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/element.js +3287 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/element.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/print.css +847 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/print.js +3017 -0
- package/configure/node_modules/@pie-element/multiple-choice/esm/print.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +427 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +252 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +174 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +388 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +108 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +469 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +129 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +48 -0
- package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/configure.js +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/controller.js +3472 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/demo.js +86 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/element.js +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/index.html +21 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/index.js +2 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/manifest.json +10 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/print-demo.js +124 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/print.html +18 -0
- package/configure/node_modules/@pie-element/multiple-choice/module/print.js +1 -0
- package/configure/node_modules/@pie-element/multiple-choice/package.json +53 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/CHANGELOG.md +898 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/esm/index.js +262 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/expander.js +88 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/expander.js.map +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/index.js +181 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/styles.js +66 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/lib/styles.js.map +1 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/package.json +44 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/src/__tests__/index.test.jsx +99 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/src/expander.jsx +61 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/src/index.jsx +98 -0
- package/configure/node_modules/@pie-lib/correct-answer-toggle/src/styles.js +61 -0
- package/configure/node_modules/@pie-lib/icons/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/icons/CHANGELOG.md +539 -0
- package/configure/node_modules/@pie-lib/icons/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/icons/esm/index.js +1153 -0
- package/configure/node_modules/@pie-lib/icons/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/correct-icon.js +89 -0
- package/configure/node_modules/@pie-lib/icons/lib/correct-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/correct-response-icon.js +153 -0
- package/configure/node_modules/@pie-lib/icons/lib/correct-response-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/icon-base.js +206 -0
- package/configure/node_modules/@pie-lib/icons/lib/icon-base.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/icon-root.js +130 -0
- package/configure/node_modules/@pie-lib/icons/lib/icon-root.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/incorrect-icon.js +92 -0
- package/configure/node_modules/@pie-lib/icons/lib/incorrect-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/index.js +72 -0
- package/configure/node_modules/@pie-lib/icons/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/instructions-icon.js +229 -0
- package/configure/node_modules/@pie-lib/icons/lib/instructions-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/learn-more-icon.js +145 -0
- package/configure/node_modules/@pie-lib/icons/lib/learn-more-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/nothing-submitted-icon.js +183 -0
- package/configure/node_modules/@pie-lib/icons/lib/nothing-submitted-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/partially-correct-icon.js +82 -0
- package/configure/node_modules/@pie-lib/icons/lib/partially-correct-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/show-rationale-icon.js +206 -0
- package/configure/node_modules/@pie-lib/icons/lib/show-rationale-icon.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/lib/sized.js +41 -0
- package/configure/node_modules/@pie-lib/icons/lib/sized.js.map +1 -0
- package/configure/node_modules/@pie-lib/icons/package.json +35 -0
- package/configure/node_modules/@pie-lib/icons/src/__tests__/index.test.js +3 -0
- package/configure/node_modules/@pie-lib/icons/src/correct-icon.jsx +64 -0
- package/configure/node_modules/@pie-lib/icons/src/correct-response-icon.jsx +121 -0
- package/configure/node_modules/@pie-lib/icons/src/icon-base.jsx +158 -0
- package/configure/node_modules/@pie-lib/icons/src/icon-root.jsx +76 -0
- package/configure/node_modules/@pie-lib/icons/src/incorrect-icon.jsx +61 -0
- package/configure/node_modules/@pie-lib/icons/src/index.js +19 -0
- package/configure/node_modules/@pie-lib/icons/src/instructions-icon.jsx +189 -0
- package/configure/node_modules/@pie-lib/icons/src/learn-more-icon.jsx +107 -0
- package/configure/node_modules/@pie-lib/icons/src/nothing-submitted-icon.jsx +130 -0
- package/configure/node_modules/@pie-lib/icons/src/partially-correct-icon.jsx +49 -0
- package/configure/node_modules/@pie-lib/icons/src/show-rationale-icon.jsx +152 -0
- package/configure/node_modules/@pie-lib/icons/src/sized.jsx +25 -0
- package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.md +775 -0
- package/configure/node_modules/@pie-lib/math-rendering/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/esm/index.js +690 -0
- package/configure/node_modules/@pie-lib/math-rendering/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/index.js +38 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mml-to-latex.js +15 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mml-to-latex.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js +296 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js +23 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js +109 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js +95 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js +438 -0
- package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js.map +1 -0
- package/configure/node_modules/@pie-lib/math-rendering/package.json +28 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/__tests__/mml-to-latex.test.js +14 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/__tests__/normalization.test.js +50 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/__tests__/render-math.test.js +155 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/index.js +5 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mml-to-latex.js +2 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mstack/__tests__/__snapshots__/chtml.test.js.snap +9 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mstack/__tests__/chtml.test.js +104 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mstack/chtml.js +220 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mstack/index.js +13 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/mstack/mml.js +24 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/normalization.js +69 -0
- package/configure/node_modules/@pie-lib/math-rendering/src/render-math.js +387 -0
- package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.md +1026 -0
- package/configure/node_modules/@pie-lib/render-ui/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/render-ui/esm/index.js +1616 -0
- package/configure/node_modules/@pie-lib/render-ui/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/append-css-rules.js +88 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/append-css-rules.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/assets/enableAudioAutoplayImage.js +9 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/assets/enableAudioAutoplayImage.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js +135 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/color.js +344 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/color.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js +150 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/has-media.js +27 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/has-media.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js +28 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js +74 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/index.js +136 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js +60 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js +145 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js +321 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js +28 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/readable.js +28 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/readable.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js +151 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/ui-layout.js +122 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/ui-layout.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js +181 -0
- package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js.map +1 -0
- package/configure/node_modules/@pie-lib/render-ui/package.json +40 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/__snapshots__/html-and-math.test.js.snap +11 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/__snapshots__/preview-prompt.test.jsx.snap +37 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/__snapshots__/purpose.test.jsx.snap +42 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/__snapshots__/readable.test.jsx.snap +64 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/__snapshots__/response-indicators.test.jsx.snap +27 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/color.test.js +12 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/has-media.test.js +20 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/has-text.test.js +21 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/html-and-math.test.js +24 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/preview-prompt.test.jsx +56 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/purpose.test.jsx +47 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/readable.test.jsx +64 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/response-indicators.test.jsx +16 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/ui-layout.test.jsx +34 -0
- package/configure/node_modules/@pie-lib/render-ui/src/__tests__/withUndoReset.test.jsx +254 -0
- package/configure/node_modules/@pie-lib/render-ui/src/append-css-rules.js +51 -0
- package/configure/node_modules/@pie-lib/render-ui/src/assets/enableAudioAutoplayImage.js +1 -0
- package/configure/node_modules/@pie-lib/render-ui/src/collapsible/__tests__/__snapshots__/index.test.jsx.snap +18 -0
- package/configure/node_modules/@pie-lib/render-ui/src/collapsible/__tests__/index.test.jsx +13 -0
- package/configure/node_modules/@pie-lib/render-ui/src/collapsible/index.jsx +64 -0
- package/configure/node_modules/@pie-lib/render-ui/src/color.js +121 -0
- package/configure/node_modules/@pie-lib/render-ui/src/feedback.jsx +99 -0
- package/configure/node_modules/@pie-lib/render-ui/src/has-media.js +16 -0
- package/configure/node_modules/@pie-lib/render-ui/src/has-text.js +18 -0
- package/configure/node_modules/@pie-lib/render-ui/src/html-and-math.js +21 -0
- package/configure/node_modules/@pie-lib/render-ui/src/index.js +35 -0
- package/configure/node_modules/@pie-lib/render-ui/src/input-container.jsx +41 -0
- package/configure/node_modules/@pie-lib/render-ui/src/preview-layout.jsx +95 -0
- package/configure/node_modules/@pie-lib/render-ui/src/preview-prompt.jsx +254 -0
- package/configure/node_modules/@pie-lib/render-ui/src/purpose.jsx +17 -0
- package/configure/node_modules/@pie-lib/render-ui/src/readable.jsx +19 -0
- package/configure/node_modules/@pie-lib/render-ui/src/response-indicators.jsx +89 -0
- package/configure/node_modules/@pie-lib/render-ui/src/ui-layout.jsx +66 -0
- package/configure/node_modules/@pie-lib/render-ui/src/withUndoReset.jsx +116 -0
- package/configure/node_modules/@pie-lib/test-utils/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/test-utils/CHANGELOG.md +410 -0
- package/configure/node_modules/@pie-lib/test-utils/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/test-utils/esm/index.js +39 -0
- package/configure/node_modules/@pie-lib/test-utils/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/test-utils/lib/index.js +40 -0
- package/configure/node_modules/@pie-lib/test-utils/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/test-utils/package.json +25 -0
- package/configure/node_modules/@pie-lib/test-utils/src/__tests__/index.test.js +45 -0
- package/configure/node_modules/@pie-lib/test-utils/src/index.js +18 -0
- package/configure/node_modules/@pie-lib/translator/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/translator/CHANGELOG.md +282 -0
- package/configure/node_modules/@pie-lib/translator/NEXT.CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-lib/translator/esm/index.js +257 -0
- package/configure/node_modules/@pie-lib/translator/esm/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/translator/lib/en.js +102 -0
- package/configure/node_modules/@pie-lib/translator/lib/en.js.map +1 -0
- package/configure/node_modules/@pie-lib/translator/lib/es.js +102 -0
- package/configure/node_modules/@pie-lib/translator/lib/es.js.map +1 -0
- package/configure/node_modules/@pie-lib/translator/lib/index.js +69 -0
- package/configure/node_modules/@pie-lib/translator/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-lib/translator/package.json +25 -0
- package/configure/node_modules/@pie-lib/translator/src/en.js +99 -0
- package/configure/node_modules/@pie-lib/translator/src/es.js +99 -0
- package/configure/node_modules/@pie-lib/translator/src/index.js +43 -0
- package/configure/package.json +3 -3
- package/controller/CHANGELOG.md +8 -0
- package/controller/package.json +3 -3
- package/esm/configure.js +40550 -0
- package/esm/configure.js.map +1 -0
- package/esm/controller.js +3358 -0
- package/esm/controller.js.map +1 -0
- package/esm/element.js +2203 -0
- package/esm/element.js.map +1 -0
- package/esm/package.json +4 -0
- package/esm/print.js +4090 -0
- package/esm/print.js.map +1 -0
- package/module/controller.js +4973 -2252
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +1 -1
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +24 -6
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.StyledRadio = exports.StyledFormControlLabel = exports.StyledCheckbox = exports.ChoiceInput = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
|
+
|
|
30
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
+
|
|
32
|
+
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
34
|
+
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
35
|
+
|
|
36
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
37
|
+
|
|
38
|
+
var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
|
|
39
|
+
|
|
40
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
41
|
+
|
|
42
|
+
var _feedbackTick = _interopRequireDefault(require("./feedback-tick"));
|
|
43
|
+
|
|
44
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
|
+
|
|
46
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
|
+
|
|
48
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
|
+
|
|
50
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
|
+
|
|
52
|
+
var CLASS_NAME = 'multiple-choice-component';
|
|
53
|
+
|
|
54
|
+
var styleSheet = function styleSheet(theme) {
|
|
55
|
+
return {
|
|
56
|
+
row: {
|
|
57
|
+
display: 'flex',
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
backgroundColor: _renderUi.color.background()
|
|
60
|
+
},
|
|
61
|
+
checkboxHolder: {
|
|
62
|
+
display: 'flex',
|
|
63
|
+
alignItems: 'center',
|
|
64
|
+
backgroundColor: _renderUi.color.background(),
|
|
65
|
+
flex: 1,
|
|
66
|
+
'& label': {
|
|
67
|
+
color: _renderUi.color.text(),
|
|
68
|
+
'& > span': {
|
|
69
|
+
fontSize: 'inherit'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
horizontalLayout: (0, _defineProperty2["default"])({}, "& .".concat(CLASS_NAME), {
|
|
74
|
+
// visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles
|
|
75
|
+
// add margin to the top, left and bottom of the checkbox to keep the same spacing as before
|
|
76
|
+
padding: theme.spacing.unit,
|
|
77
|
+
margin: "".concat(theme.spacing.unit / 2, "px 0 ").concat(theme.spacing.unit / 2, "px ").concat(theme.spacing.unit / 2, "px")
|
|
78
|
+
}),
|
|
79
|
+
belowLayout: {
|
|
80
|
+
'& > label': {
|
|
81
|
+
alignItems: 'flex-start'
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
belowLayoutCenter: {
|
|
85
|
+
justifyContent: 'center',
|
|
86
|
+
'& > label': {
|
|
87
|
+
alignItems: 'center'
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
belowSelectionComponent: {
|
|
91
|
+
display: 'flex',
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
'& > span': {
|
|
94
|
+
// visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles
|
|
95
|
+
marginLeft: "-".concat(theme.spacing.unit, "px")
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
srOnly: {
|
|
99
|
+
position: 'absolute',
|
|
100
|
+
left: '-10000px',
|
|
101
|
+
top: 'auto',
|
|
102
|
+
width: '1px',
|
|
103
|
+
height: '1px',
|
|
104
|
+
overflow: 'hidden'
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var formStyleSheet = {
|
|
110
|
+
label: {
|
|
111
|
+
color: "".concat(_renderUi.color.text(), " !important"),
|
|
112
|
+
//'var(--choice-input-color, black)'
|
|
113
|
+
backgroundColor: _renderUi.color.background(),
|
|
114
|
+
letterSpacing: 'normal'
|
|
115
|
+
},
|
|
116
|
+
disabled: {
|
|
117
|
+
// apply to all children
|
|
118
|
+
'& *': {
|
|
119
|
+
cursor: 'not-allowed !important'
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var StyledFormControlLabel = (0, _styles.withStyles)(formStyleSheet, {
|
|
124
|
+
name: 'FormControlLabel'
|
|
125
|
+
})(function (props) {
|
|
126
|
+
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], (0, _extends2["default"])({}, props, {
|
|
127
|
+
classes: {
|
|
128
|
+
label: props.classes.label,
|
|
129
|
+
disabled: props.classes.disabled
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
132
|
+
});
|
|
133
|
+
exports.StyledFormControlLabel = StyledFormControlLabel;
|
|
134
|
+
|
|
135
|
+
var colorStyle = function colorStyle(varName, fallback) {
|
|
136
|
+
return (0, _defineProperty2["default"])({}, "&.".concat(CLASS_NAME), {
|
|
137
|
+
color: "var(--choice-input-".concat(varName, ", ").concat(fallback, ") !important")
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
var inputStyles = {
|
|
142
|
+
'correct-root': colorStyle('correct-color', _renderUi.color.text()),
|
|
143
|
+
'correct-checked': colorStyle('correct-selected-color', _renderUi.color.correct()),
|
|
144
|
+
//green[500]),
|
|
145
|
+
'correct-disabled': colorStyle('correct-disabled-color', _renderUi.color.disabled()),
|
|
146
|
+
//'grey'),
|
|
147
|
+
'incorrect-root': colorStyle('incorrect-color', _renderUi.color.incorrect()),
|
|
148
|
+
'incorrect-checked': colorStyle('incorrect-checked', _renderUi.color.incorrect()),
|
|
149
|
+
//orange[500]),
|
|
150
|
+
'incorrect-disabled': colorStyle('incorrect-disabled-color', _renderUi.color.disabled()),
|
|
151
|
+
root: _objectSpread(_objectSpread({}, colorStyle('color', _renderUi.color.text())), {}, {
|
|
152
|
+
'&:hover': {
|
|
153
|
+
color: "".concat(_renderUi.color.primaryLight(), " !important")
|
|
154
|
+
}
|
|
155
|
+
}),
|
|
156
|
+
checked: colorStyle('selected-color', _renderUi.color.primary()),
|
|
157
|
+
disabled: _objectSpread(_objectSpread({}, colorStyle('disabled-color', _renderUi.color.text())), {}, {
|
|
158
|
+
opacity: 0.6,
|
|
159
|
+
cursor: 'not-allowed !important',
|
|
160
|
+
pointerEvents: 'initial !important'
|
|
161
|
+
}),
|
|
162
|
+
focusVisibleUnchecked: {
|
|
163
|
+
outline: "2px solid ".concat(_renderUi.color.focusUncheckedBorder()),
|
|
164
|
+
backgroundColor: _renderUi.color.focusUnchecked()
|
|
165
|
+
},
|
|
166
|
+
focusVisibleChecked: {
|
|
167
|
+
outline: "2px solid ".concat(_renderUi.color.focusCheckedBorder()),
|
|
168
|
+
backgroundColor: _renderUi.color.focusChecked()
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
172
|
+
var correctness = props.correctness,
|
|
173
|
+
classes = props.classes,
|
|
174
|
+
checked = props.checked,
|
|
175
|
+
onChange = props.onChange,
|
|
176
|
+
disabled = props.disabled,
|
|
177
|
+
value = props.value,
|
|
178
|
+
id = props.id,
|
|
179
|
+
onKeyDown = props.onKeyDown,
|
|
180
|
+
inputRef = props.inputRef;
|
|
181
|
+
|
|
182
|
+
var key = function key(k) {
|
|
183
|
+
return correctness ? "".concat(correctness, "-").concat(k) : k;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
var resolved = {
|
|
187
|
+
root: classes[key('root')],
|
|
188
|
+
checked: classes[key('checked')],
|
|
189
|
+
disabled: classes[key('disabled')]
|
|
190
|
+
};
|
|
191
|
+
var miniProps = {
|
|
192
|
+
checked: checked,
|
|
193
|
+
onChange: onChange,
|
|
194
|
+
disabled: disabled,
|
|
195
|
+
value: value
|
|
196
|
+
};
|
|
197
|
+
return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], (0, _extends2["default"])({
|
|
198
|
+
id: id,
|
|
199
|
+
inputRef: inputRef,
|
|
200
|
+
"aria-checked": checked,
|
|
201
|
+
onKeyDown: onKeyDown,
|
|
202
|
+
focusVisibleClassName: checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked,
|
|
203
|
+
disableRipple: true
|
|
204
|
+
}, miniProps, {
|
|
205
|
+
className: CLASS_NAME,
|
|
206
|
+
classes: {
|
|
207
|
+
root: resolved.root,
|
|
208
|
+
checked: resolved.checked,
|
|
209
|
+
disabled: "".concat(correctness ? '' : resolved.disabled)
|
|
210
|
+
}
|
|
211
|
+
}));
|
|
212
|
+
});
|
|
213
|
+
exports.StyledCheckbox = StyledCheckbox;
|
|
214
|
+
var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
215
|
+
var correctness = props.correctness,
|
|
216
|
+
classes = props.classes,
|
|
217
|
+
checked = props.checked,
|
|
218
|
+
onChange = props.onChange,
|
|
219
|
+
disabled = props.disabled,
|
|
220
|
+
value = props.value,
|
|
221
|
+
id = props.id,
|
|
222
|
+
tagName = props.tagName,
|
|
223
|
+
inputRef = props.inputRef;
|
|
224
|
+
|
|
225
|
+
var key = function key(k) {
|
|
226
|
+
return correctness ? "".concat(correctness, "-").concat(k) : k;
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
var resolved = {
|
|
230
|
+
root: classes[key('root')],
|
|
231
|
+
checked: classes[key('checked')],
|
|
232
|
+
disabled: classes[key('disabled')]
|
|
233
|
+
};
|
|
234
|
+
var miniProps = {
|
|
235
|
+
checked: checked,
|
|
236
|
+
onChange: onChange,
|
|
237
|
+
disabled: disabled,
|
|
238
|
+
value: value
|
|
239
|
+
};
|
|
240
|
+
return /*#__PURE__*/_react["default"].createElement(_Radio["default"], (0, _extends2["default"])({
|
|
241
|
+
id: id,
|
|
242
|
+
inputRef: inputRef,
|
|
243
|
+
"aria-checked": checked,
|
|
244
|
+
focusVisibleClassName: checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked,
|
|
245
|
+
disableRipple: true
|
|
246
|
+
}, miniProps, {
|
|
247
|
+
className: CLASS_NAME,
|
|
248
|
+
name: tagName,
|
|
249
|
+
classes: {
|
|
250
|
+
root: resolved.root,
|
|
251
|
+
checked: resolved.checked,
|
|
252
|
+
disabled: "".concat(correctness ? '' : resolved.disabled)
|
|
253
|
+
}
|
|
254
|
+
}));
|
|
255
|
+
});
|
|
256
|
+
exports.StyledRadio = StyledRadio;
|
|
257
|
+
|
|
258
|
+
var ChoiceInput = /*#__PURE__*/function (_React$Component) {
|
|
259
|
+
(0, _inherits2["default"])(ChoiceInput, _React$Component);
|
|
260
|
+
|
|
261
|
+
var _super = _createSuper(ChoiceInput);
|
|
262
|
+
|
|
263
|
+
function ChoiceInput(props) {
|
|
264
|
+
var _this;
|
|
265
|
+
|
|
266
|
+
(0, _classCallCheck2["default"])(this, ChoiceInput);
|
|
267
|
+
_this = _super.call(this, props);
|
|
268
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event) {
|
|
269
|
+
var choiceMode = _this.props.choiceMode;
|
|
270
|
+
if (choiceMode !== 'checkbox') return;
|
|
271
|
+
var isArrowDown = event.key === 'ArrowDown';
|
|
272
|
+
var isArrowUp = event.key === 'ArrowUp';
|
|
273
|
+
if (!isArrowDown && !isArrowUp) return;
|
|
274
|
+
event.preventDefault();
|
|
275
|
+
var currentEl = document.getElementById(_this.choiceId);
|
|
276
|
+
if (!currentEl) return;
|
|
277
|
+
var fieldset = currentEl.closest('fieldset');
|
|
278
|
+
if (!fieldset) return;
|
|
279
|
+
var groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type="checkbox"]'));
|
|
280
|
+
var currentIndex = groupCheckboxes.findIndex(function (el) {
|
|
281
|
+
return el === currentEl;
|
|
282
|
+
});
|
|
283
|
+
if (currentIndex === -1) return;
|
|
284
|
+
var nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;
|
|
285
|
+
var nextEl = groupCheckboxes[nextIndex];
|
|
286
|
+
|
|
287
|
+
if (nextEl) {
|
|
288
|
+
nextEl.focus();
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
_this.onToggleChoice = _this.onToggleChoice.bind((0, _assertThisInitialized2["default"])(_this));
|
|
292
|
+
_this.choiceId = _this.generateChoiceId();
|
|
293
|
+
_this.descId = "".concat(_this.choiceId, "-desc");
|
|
294
|
+
return _this;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
(0, _createClass2["default"])(ChoiceInput, [{
|
|
298
|
+
key: "onToggleChoice",
|
|
299
|
+
value: function onToggleChoice(event) {
|
|
300
|
+
this.props.onChange(event);
|
|
301
|
+
}
|
|
302
|
+
}, {
|
|
303
|
+
key: "generateChoiceId",
|
|
304
|
+
value: function generateChoiceId() {
|
|
305
|
+
return 'choice-' + (Math.random() * 10000).toFixed();
|
|
306
|
+
}
|
|
307
|
+
}, {
|
|
308
|
+
key: "render",
|
|
309
|
+
value: function render() {
|
|
310
|
+
var _classNames;
|
|
311
|
+
|
|
312
|
+
var _this$props = this.props,
|
|
313
|
+
choiceMode = _this$props.choiceMode,
|
|
314
|
+
disabled = _this$props.disabled,
|
|
315
|
+
displayKey = _this$props.displayKey,
|
|
316
|
+
feedback = _this$props.feedback,
|
|
317
|
+
label = _this$props.label,
|
|
318
|
+
correctness = _this$props.correctness,
|
|
319
|
+
classes = _this$props.classes,
|
|
320
|
+
className = _this$props.className,
|
|
321
|
+
rationale = _this$props.rationale,
|
|
322
|
+
hideTick = _this$props.hideTick,
|
|
323
|
+
isEvaluateMode = _this$props.isEvaluateMode,
|
|
324
|
+
choicesLayout = _this$props.choicesLayout,
|
|
325
|
+
value = _this$props.value,
|
|
326
|
+
checked = _this$props.checked,
|
|
327
|
+
tagName = _this$props.tagName,
|
|
328
|
+
isSelectionButtonBelow = _this$props.isSelectionButtonBelow;
|
|
329
|
+
var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
|
|
330
|
+
var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
|
|
331
|
+
var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.horizontalLayout, choicesLayout === 'horizontal'), (0, _defineProperty2["default"])(_classNames, classes.belowLayout, isSelectionButtonBelow && choicesLayout !== 'grid'), (0, _defineProperty2["default"])(_classNames, classes.belowLayoutCenter, isSelectionButtonBelow && choicesLayout === 'grid'), _classNames));
|
|
332
|
+
|
|
333
|
+
var choicelabel = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, displayKey && !isSelectionButtonBelow ? /*#__PURE__*/_react["default"].createElement("span", {
|
|
334
|
+
className: classes.row
|
|
335
|
+
}, displayKey, ".", "\xA0", /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
336
|
+
className: "label",
|
|
337
|
+
prompt: label,
|
|
338
|
+
tagName: "span"
|
|
339
|
+
})) : /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
340
|
+
className: "label",
|
|
341
|
+
prompt: label,
|
|
342
|
+
tagName: "span"
|
|
343
|
+
}));
|
|
344
|
+
|
|
345
|
+
var screenReaderLabel = /*#__PURE__*/_react["default"].createElement("span", {
|
|
346
|
+
id: this.descId,
|
|
347
|
+
className: classes.srOnly
|
|
348
|
+
}, choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below');
|
|
349
|
+
|
|
350
|
+
var tagProps = {
|
|
351
|
+
disabled: disabled,
|
|
352
|
+
checked: checked,
|
|
353
|
+
correctness: correctness,
|
|
354
|
+
tagName: tagName,
|
|
355
|
+
value: value,
|
|
356
|
+
id: this.choiceId,
|
|
357
|
+
onChange: this.onToggleChoice,
|
|
358
|
+
onKeyDown: this.handleKeyDown,
|
|
359
|
+
'aria-describedby': this.descId
|
|
360
|
+
};
|
|
361
|
+
var hasMathOrImage = typeof label === 'string' && (label.includes('<math') || label.includes('\\(') || label.includes('\\[') || label.includes('<img') || label.includes('data-latex') || label.includes('data-raw') || label.includes('<mjx-container'));
|
|
362
|
+
var control = isSelectionButtonBelow ? /*#__PURE__*/_react["default"].createElement("span", {
|
|
363
|
+
className: classes.belowSelectionComponent
|
|
364
|
+
}, hasMathOrImage && screenReaderLabel, /*#__PURE__*/_react["default"].createElement(Tag, (0, _extends2["default"])({}, tagProps, {
|
|
365
|
+
style: {
|
|
366
|
+
padding: 0
|
|
367
|
+
}
|
|
368
|
+
})), displayKey ? "".concat(displayKey, ".") : '') : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, hasMathOrImage && screenReaderLabel, /*#__PURE__*/_react["default"].createElement(Tag, (0, _extends2["default"])({}, tagProps, {
|
|
369
|
+
inputRef: this.props.autoFocusRef
|
|
370
|
+
})));
|
|
371
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
372
|
+
className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
|
|
373
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
374
|
+
className: classes.row
|
|
375
|
+
}, !hideTick && isEvaluateMode && /*#__PURE__*/_react["default"].createElement(_feedbackTick["default"], {
|
|
376
|
+
correctness: correctness
|
|
377
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
378
|
+
className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
|
|
379
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
|
|
380
|
+
label: choicelabel,
|
|
381
|
+
value: value,
|
|
382
|
+
htmlFor: this.choiceId,
|
|
383
|
+
labelPlacement: isSelectionButtonBelow ? 'top' : undefined,
|
|
384
|
+
control: control
|
|
385
|
+
}))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
386
|
+
className: "rationale",
|
|
387
|
+
defaultClassName: "rationale",
|
|
388
|
+
prompt: rationale
|
|
389
|
+
}), /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
|
|
390
|
+
feedback: feedback,
|
|
391
|
+
correctness: correctness
|
|
392
|
+
}));
|
|
393
|
+
}
|
|
394
|
+
}]);
|
|
395
|
+
return ChoiceInput;
|
|
396
|
+
}(_react["default"].Component);
|
|
397
|
+
|
|
398
|
+
exports.ChoiceInput = ChoiceInput;
|
|
399
|
+
(0, _defineProperty2["default"])(ChoiceInput, "propTypes", {
|
|
400
|
+
choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
|
|
401
|
+
displayKey: _propTypes["default"].string,
|
|
402
|
+
checked: _propTypes["default"].bool.isRequired,
|
|
403
|
+
correctness: _propTypes["default"].string,
|
|
404
|
+
disabled: _propTypes["default"].bool.isRequired,
|
|
405
|
+
feedback: _propTypes["default"].string,
|
|
406
|
+
label: _propTypes["default"].string.isRequired,
|
|
407
|
+
rationale: _propTypes["default"].string,
|
|
408
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
409
|
+
value: _propTypes["default"].string.isRequired,
|
|
410
|
+
classes: _propTypes["default"].object,
|
|
411
|
+
className: _propTypes["default"].string,
|
|
412
|
+
tagName: _propTypes["default"].string,
|
|
413
|
+
hideTick: _propTypes["default"].bool,
|
|
414
|
+
isEvaluateMode: _propTypes["default"].bool,
|
|
415
|
+
choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
|
|
416
|
+
isSelectionButtonBelow: _propTypes["default"].bool
|
|
417
|
+
});
|
|
418
|
+
(0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
|
|
419
|
+
rationale: null,
|
|
420
|
+
checked: false,
|
|
421
|
+
isEvaluateMode: false
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
var _default = (0, _styles.withStyles)(styleSheet)(ChoiceInput);
|
|
425
|
+
|
|
426
|
+
exports["default"] = _default;
|
|
427
|
+
//# sourceMappingURL=choice-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","fontSize","horizontalLayout","padding","spacing","unit","margin","belowLayout","belowLayoutCenter","justifyContent","belowSelectionComponent","marginLeft","srOnly","position","left","top","width","height","overflow","formStyleSheet","label","letterSpacing","disabled","cursor","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","incorrect","root","primaryLight","checked","primary","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckbox","correctness","onChange","value","id","onKeyDown","inputRef","key","k","resolved","miniProps","StyledRadio","tagName","ChoiceInput","event","choiceMode","isArrowDown","isArrowUp","preventDefault","currentEl","document","getElementById","choiceId","fieldset","closest","groupCheckboxes","Array","from","querySelectorAll","currentIndex","findIndex","el","nextIndex","nextEl","focus","onToggleChoice","bind","generateChoiceId","descId","Math","random","toFixed","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderClassNames","choicelabel","screenReaderLabel","tagProps","handleKeyDown","hasMathOrImage","includes","control","autoFocusRef","undefined","React","Component","PropTypes","oneOf","string","bool","isRequired","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n '& > span': {\n fontSize: 'inherit',\n },\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n // add margin to the top, left and bottom of the checkbox to keep the same spacing as before\n padding: theme.spacing.unit,\n margin: `${theme.spacing.unit / 2}px 0 ${theme.spacing.unit / 2}px ${theme.spacing.unit / 2}px`,\n },\n },\n belowLayout: {\n '& > label': {\n alignItems: 'flex-start',\n },\n },\n belowLayoutCenter: {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n },\n belowSelectionComponent: {\n display: 'flex',\n alignItems: 'center',\n '& > span': {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n marginLeft: `-${theme.spacing.unit}px`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n disabled: {\n // apply to all children\n '& *': {\n cursor: 'not-allowed !important',\n },\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label, disabled: props.classes.disabled }} />\n));\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n focusVisibleUnchecked: {\n outline: `2px solid ${color.focusUncheckedBorder()}`,\n backgroundColor: color.focusUnchecked(),\n },\n focusVisibleChecked: {\n outline: `2px solid ${color.focusCheckedBorder()}`,\n backgroundColor: color.focusChecked(),\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, value, id, onKeyDown, inputRef } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n inputRef={inputRef}\n aria-checked={checked}\n onKeyDown={onKeyDown}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, value, id, tagName, inputRef } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n inputRef={inputRef}\n aria-checked={checked}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\n {...miniProps}\n className={CLASS_NAME}\n name={tagName}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n tagName: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n isSelectionButtonBelow: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n this.choiceId = this.generateChoiceId();\n this.descId = `${this.choiceId}-desc`;\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n }\n\n generateChoiceId() {\n return 'choice-' + (Math.random() * 10000).toFixed();\n }\n\n handleKeyDown = (event) => {\n const { choiceMode } = this.props;\n\n if (choiceMode !== 'checkbox') return;\n\n const isArrowDown = event.key === 'ArrowDown';\n const isArrowUp = event.key === 'ArrowUp';\n\n if (!isArrowDown && !isArrowUp) return;\n\n event.preventDefault();\n\n const currentEl = document.getElementById(this.choiceId);\n if (!currentEl) return;\n\n const fieldset = currentEl.closest('fieldset');\n if (!fieldset) return;\n\n const groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type=\"checkbox\"]'));\n\n const currentIndex = groupCheckboxes.findIndex((el) => el === currentEl);\n if (currentIndex === -1) return;\n\n const nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;\n const nextEl = groupCheckboxes[nextIndex];\n\n if (nextEl) {\n nextEl.focus();\n }\n };\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n tagName,\n isSelectionButtonBelow,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n [classes.belowLayout]: isSelectionButtonBelow && choicesLayout !== 'grid',\n [classes.belowLayoutCenter]: isSelectionButtonBelow && choicesLayout === 'grid',\n });\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <span className={classes.row}>\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n </span>\n ) : (\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <span id={this.descId} className={classes.srOnly}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </span>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n tagName,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n onKeyDown: this.handleKeyDown,\n 'aria-describedby': this.descId,\n };\n\n const hasMathOrImage =\n typeof label === 'string' &&\n (label.includes('<math') ||\n label.includes('\\\\(') ||\n label.includes('\\\\[') ||\n label.includes('<img') ||\n label.includes('data-latex') ||\n label.includes('data-raw') ||\n label.includes('<mjx-container'));\n\n const control = isSelectionButtonBelow ? (\n <span className={classes.belowSelectionComponent}>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </span>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} inputRef={this.props.autoFocusRef} />\n </>\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
|