@pie-element/inline-dropdown 11.0.5-esm.1 → 11.0.5-next.20261012010413
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/author.js +2 -0
- package/configure.js +2 -0
- package/controller.js +1 -0
- package/dist/author/defaults.d.ts +187 -0
- package/dist/author/defaults.js +130 -0
- package/dist/author/index.d.ts +25 -0
- package/dist/author/index.js +91 -0
- package/dist/author/inline-dropdown-toolbar.d.ts +44 -0
- package/dist/author/inline-dropdown-toolbar.js +269 -0
- package/dist/author/main.d.ts +65 -0
- package/dist/author/main.js +363 -0
- package/dist/author/markupUtils.d.ts +4 -0
- package/dist/author/markupUtils.js +23 -0
- package/dist/author/response-area.d.ts +12 -0
- package/dist/author/response-area.js +32 -0
- package/dist/author/utils.d.ts +2 -0
- package/dist/author/utils.js +10 -0
- package/dist/browser/Close-V6zXg6OM.js +12945 -0
- package/dist/browser/Close-V6zXg6OM.js.map +1 -0
- package/dist/browser/PUA-tLuTiQ7---_oZ5q_A.js +4370 -0
- package/dist/browser/PUA-tLuTiQ7---_oZ5q_A.js.map +1 -0
- package/dist/browser/accents-BTUYmhn9-BvG-5D5U.js +1508 -0
- package/dist/browser/accents-BTUYmhn9-BvG-5D5U.js.map +1 -0
- package/dist/browser/accents-b-i-CngHZsLL-D9VyhQb6.js +2847 -0
- package/dist/browser/accents-b-i-CngHZsLL-D9VyhQb6.js.map +1 -0
- package/dist/browser/arabic-BzEHMVZD-Dynlj189.js +785 -0
- package/dist/browser/arabic-BzEHMVZD-Dynlj189.js.map +1 -0
- package/dist/browser/arrows-VjxlU-jv-DSm4SIYN.js +2655 -0
- package/dist/browser/arrows-VjxlU-jv-DSm4SIYN.js.map +1 -0
- package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
- package/dist/browser/author/index.js +36618 -0
- package/dist/browser/author/index.js.map +1 -0
- package/dist/browser/braille-BeWC_Ruq-T-5kTNil.js +1287 -0
- package/dist/browser/braille-BeWC_Ruq-T-5kTNil.js.map +1 -0
- package/dist/browser/braille-d-Dk6J96GO--ZdfI9kr.js +1287 -0
- package/dist/browser/braille-d-Dk6J96GO--ZdfI9kr.js.map +1 -0
- package/dist/browser/calligraphic-Cew9cU3x-qfCrrm3u.js +323 -0
- package/dist/browser/calligraphic-Cew9cU3x-qfCrrm3u.js.map +1 -0
- package/dist/browser/cherokee-Cny3FYho-CbTYre7_.js +2029 -0
- package/dist/browser/cherokee-Cny3FYho-CbTYre7_.js.map +1 -0
- package/dist/browser/chtml-CbqemTOM-x0_YISTK.js +20329 -0
- package/dist/browser/chtml-CbqemTOM-x0_YISTK.js.map +1 -0
- package/dist/browser/controller/index.js +198 -0
- package/dist/browser/controller/index.js.map +1 -0
- package/dist/browser/cyrillic-CfCDulXU-EvNL2rHi.js +5617 -0
- package/dist/browser/cyrillic-CfCDulXU-EvNL2rHi.js.map +1 -0
- package/dist/browser/cyrillic-ss-lU7bNGG9-jdxJx-EF.js +5606 -0
- package/dist/browser/cyrillic-ss-lU7bNGG9-jdxJx-EF.js.map +1 -0
- package/dist/browser/delivery/index.js +1307 -0
- package/dist/browser/delivery/index.js.map +1 -0
- package/dist/browser/devanagari-CDIz2h-r-FGcUsKu2.js +692 -0
- package/dist/browser/devanagari-CDIz2h-r-FGcUsKu2.js.map +1 -0
- package/dist/browser/dist-FMIRkZir.js +753 -0
- package/dist/browser/dist-FMIRkZir.js.map +1 -0
- package/dist/browser/double-struck-BpJEQk8y-CLqFtvAN.js +438 -0
- package/dist/browser/double-struck-BpJEQk8y-CLqFtvAN.js.map +1 -0
- package/dist/browser/editor-runtime/Close-C0bNS2Kx.js +12945 -0
- package/dist/browser/editor-runtime/Close-C0bNS2Kx.js.map +1 -0
- package/dist/browser/editor-runtime/PUA-tLuTiQ7---_oZ5q_A.js +4370 -0
- package/dist/browser/editor-runtime/PUA-tLuTiQ7---_oZ5q_A.js.map +1 -0
- package/dist/browser/editor-runtime/accents-BTUYmhn9-BvG-5D5U.js +1508 -0
- package/dist/browser/editor-runtime/accents-BTUYmhn9-BvG-5D5U.js.map +1 -0
- package/dist/browser/editor-runtime/accents-b-i-CngHZsLL-D9VyhQb6.js +2847 -0
- package/dist/browser/editor-runtime/accents-b-i-CngHZsLL-D9VyhQb6.js.map +1 -0
- package/dist/browser/editor-runtime/arabic-BzEHMVZD-Dynlj189.js +785 -0
- package/dist/browser/editor-runtime/arabic-BzEHMVZD-Dynlj189.js.map +1 -0
- package/dist/browser/editor-runtime/arrows-VjxlU-jv-DSm4SIYN.js +2655 -0
- package/dist/browser/editor-runtime/arrows-VjxlU-jv-DSm4SIYN.js.map +1 -0
- package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
- package/dist/browser/editor-runtime/author/index.js +20030 -0
- package/dist/browser/editor-runtime/author/index.js.map +1 -0
- package/dist/browser/editor-runtime/braille-BeWC_Ruq-T-5kTNil.js +1287 -0
- package/dist/browser/editor-runtime/braille-BeWC_Ruq-T-5kTNil.js.map +1 -0
- package/dist/browser/editor-runtime/braille-d-Dk6J96GO--ZdfI9kr.js +1287 -0
- package/dist/browser/editor-runtime/braille-d-Dk6J96GO--ZdfI9kr.js.map +1 -0
- package/dist/browser/editor-runtime/calligraphic-Cew9cU3x-qfCrrm3u.js +323 -0
- package/dist/browser/editor-runtime/calligraphic-Cew9cU3x-qfCrrm3u.js.map +1 -0
- package/dist/browser/editor-runtime/cherokee-Cny3FYho-CbTYre7_.js +2029 -0
- package/dist/browser/editor-runtime/cherokee-Cny3FYho-CbTYre7_.js.map +1 -0
- package/dist/browser/editor-runtime/chtml-CbqemTOM-x0_YISTK.js +20329 -0
- package/dist/browser/editor-runtime/chtml-CbqemTOM-x0_YISTK.js.map +1 -0
- package/dist/browser/editor-runtime/controller/index.js +198 -0
- package/dist/browser/editor-runtime/controller/index.js.map +1 -0
- package/dist/browser/editor-runtime/cyrillic-CfCDulXU-EvNL2rHi.js +5617 -0
- package/dist/browser/editor-runtime/cyrillic-CfCDulXU-EvNL2rHi.js.map +1 -0
- package/dist/browser/editor-runtime/cyrillic-ss-lU7bNGG9-jdxJx-EF.js +5606 -0
- package/dist/browser/editor-runtime/cyrillic-ss-lU7bNGG9-jdxJx-EF.js.map +1 -0
- package/dist/browser/editor-runtime/delivery/index.js +1307 -0
- package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
- package/dist/browser/editor-runtime/devanagari-CDIz2h-r-FGcUsKu2.js +692 -0
- package/dist/browser/editor-runtime/devanagari-CDIz2h-r-FGcUsKu2.js.map +1 -0
- package/dist/browser/editor-runtime/dist-FMIRkZir.js +753 -0
- package/dist/browser/editor-runtime/dist-FMIRkZir.js.map +1 -0
- package/dist/browser/editor-runtime/double-struck-BpJEQk8y-CLqFtvAN.js +438 -0
- package/dist/browser/editor-runtime/double-struck-BpJEQk8y-CLqFtvAN.js.map +1 -0
- package/dist/browser/editor-runtime/fraktur-rLEq9DEH-BU0iR4xw.js +694 -0
- package/dist/browser/editor-runtime/fraktur-rLEq9DEH-BU0iR4xw.js.map +1 -0
- package/dist/browser/editor-runtime/greek-BlraJTyL-DAfjxxNh.js +9335 -0
- package/dist/browser/editor-runtime/greek-BlraJTyL-DAfjxxNh.js.map +1 -0
- package/dist/browser/editor-runtime/greek-ss-D-EN2PK0-CcyaecGS.js +6767 -0
- package/dist/browser/editor-runtime/greek-ss-D-EN2PK0-CcyaecGS.js.map +1 -0
- package/dist/browser/editor-runtime/hebrew-GiQZeybp-DqJrAkkB.js +3218 -0
- package/dist/browser/editor-runtime/hebrew-GiQZeybp-DqJrAkkB.js.map +1 -0
- package/dist/browser/editor-runtime/latin-b-BhEnC7R2-CQAVv0CI.js +3134 -0
- package/dist/browser/editor-runtime/latin-b-BhEnC7R2-CQAVv0CI.js.map +1 -0
- package/dist/browser/editor-runtime/latin-bi-DqiIKv3U-DM22wSUP.js +3637 -0
- package/dist/browser/editor-runtime/latin-bi-DqiIKv3U-DM22wSUP.js.map +1 -0
- package/dist/browser/editor-runtime/latin-i-B1xtwaE1-uBpJAGjo.js +3634 -0
- package/dist/browser/editor-runtime/latin-i-B1xtwaE1-uBpJAGjo.js.map +1 -0
- package/dist/browser/editor-runtime/latin-xfWFlLkD-CKElfDKc.js +3266 -0
- package/dist/browser/editor-runtime/latin-xfWFlLkD-CKElfDKc.js.map +1 -0
- package/dist/browser/editor-runtime/marrows-DD1NgMQi-BIBP-NrK.js +761 -0
- package/dist/browser/editor-runtime/marrows-DD1NgMQi-BIBP-NrK.js.map +1 -0
- package/dist/browser/editor-runtime/math-DpWn1mbG-B7Krt7Jk.js +2034 -0
- package/dist/browser/editor-runtime/math-DpWn1mbG-B7Krt7Jk.js.map +1 -0
- package/dist/browser/editor-runtime/mathjax-CptWnMbQ-BymmkoDr.js +36692 -0
- package/dist/browser/editor-runtime/mathjax-CptWnMbQ-BymmkoDr.js.map +1 -0
- package/dist/browser/editor-runtime/monospace-D116QD2a-C40p3Rv8.js +1112 -0
- package/dist/browser/editor-runtime/monospace-D116QD2a-C40p3Rv8.js.map +1 -0
- package/dist/browser/editor-runtime/monospace-ex-DcXpouKS-DkaktwPJ.js +6014 -0
- package/dist/browser/editor-runtime/monospace-ex-DcXpouKS-DkaktwPJ.js.map +1 -0
- package/dist/browser/editor-runtime/monospace-l-Ct5wkMDs-CuE7t5pv.js +3114 -0
- package/dist/browser/editor-runtime/monospace-l-Ct5wkMDs-CuE7t5pv.js.map +1 -0
- package/dist/browser/editor-runtime/mshapes-DCp86WSX-DX0WfJid.js +524 -0
- package/dist/browser/editor-runtime/mshapes-DCp86WSX-DX0WfJid.js.map +1 -0
- package/dist/browser/editor-runtime/phonetics-BwOCw2Y9-lJWnARqt.js +2496 -0
- package/dist/browser/editor-runtime/phonetics-BwOCw2Y9-lJWnARqt.js.map +1 -0
- package/dist/browser/editor-runtime/phonetics-ss-CRtMn02f-Cr32SJLL.js +2984 -0
- package/dist/browser/editor-runtime/phonetics-ss-CRtMn02f-Cr32SJLL.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-BYPZKlE9-DftjSdim.js +5246 -0
- package/dist/browser/editor-runtime/sans-serif-BYPZKlE9-DftjSdim.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-b-B0kRKiC--BsRQiyQP.js +3176 -0
- package/dist/browser/editor-runtime/sans-serif-b-B0kRKiC--BsRQiyQP.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-bi-DXWul6mu-D4NuD72A.js +3688 -0
- package/dist/browser/editor-runtime/sans-serif-bi-DXWul6mu-D4NuD72A.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-ex-Boux1kMP-BrL4RNcD.js +10033 -0
- package/dist/browser/editor-runtime/sans-serif-ex-Boux1kMP-BrL4RNcD.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-i-676RFaSO-BCRikTTw.js +3635 -0
- package/dist/browser/editor-runtime/sans-serif-i-676RFaSO-BCRikTTw.js.map +1 -0
- package/dist/browser/editor-runtime/sans-serif-r-DrN9xdZt-CN8omxfu.js +3159 -0
- package/dist/browser/editor-runtime/sans-serif-r-DrN9xdZt-CN8omxfu.js.map +1 -0
- package/dist/browser/editor-runtime/script-0ohehnXc-4G2PiBkk.js +649 -0
- package/dist/browser/editor-runtime/script-0ohehnXc-4G2PiBkk.js.map +1 -0
- package/dist/browser/editor-runtime/shapes-BG47NodJ-D3eH0HjT.js +1932 -0
- package/dist/browser/editor-runtime/shapes-BG47NodJ-D3eH0HjT.js.map +1 -0
- package/dist/browser/editor-runtime/speech-worker-CTpOB9m5-pwCKeQ9c.js +160 -0
- package/dist/browser/editor-runtime/speech-worker-CTpOB9m5-pwCKeQ9c.js.map +1 -0
- package/dist/browser/editor-runtime/symbols-BqnUxf_t-DJHA_nO7.js +1833 -0
- package/dist/browser/editor-runtime/symbols-BqnUxf_t-DJHA_nO7.js.map +1 -0
- package/dist/browser/editor-runtime/symbols-b-i-eg9k5hmF-Bn-dxZT_.js +1153 -0
- package/dist/browser/editor-runtime/symbols-b-i-eg9k5hmF-Bn-dxZT_.js.map +1 -0
- package/dist/browser/editor-runtime/variants-2LRNhOUP-BlL4NIVJ.js +231 -0
- package/dist/browser/editor-runtime/variants-2LRNhOUP-BlL4NIVJ.js.map +1 -0
- package/dist/browser/fraktur-rLEq9DEH-BU0iR4xw.js +694 -0
- package/dist/browser/fraktur-rLEq9DEH-BU0iR4xw.js.map +1 -0
- package/dist/browser/greek-BlraJTyL-DAfjxxNh.js +9335 -0
- package/dist/browser/greek-BlraJTyL-DAfjxxNh.js.map +1 -0
- package/dist/browser/greek-ss-D-EN2PK0-CcyaecGS.js +6767 -0
- package/dist/browser/greek-ss-D-EN2PK0-CcyaecGS.js.map +1 -0
- package/dist/browser/hebrew-GiQZeybp-DqJrAkkB.js +3218 -0
- package/dist/browser/hebrew-GiQZeybp-DqJrAkkB.js.map +1 -0
- package/dist/browser/latin-b-BhEnC7R2-CQAVv0CI.js +3134 -0
- package/dist/browser/latin-b-BhEnC7R2-CQAVv0CI.js.map +1 -0
- package/dist/browser/latin-bi-DqiIKv3U-DM22wSUP.js +3637 -0
- package/dist/browser/latin-bi-DqiIKv3U-DM22wSUP.js.map +1 -0
- package/dist/browser/latin-i-B1xtwaE1-uBpJAGjo.js +3634 -0
- package/dist/browser/latin-i-B1xtwaE1-uBpJAGjo.js.map +1 -0
- package/dist/browser/latin-xfWFlLkD-CKElfDKc.js +3266 -0
- package/dist/browser/latin-xfWFlLkD-CKElfDKc.js.map +1 -0
- package/dist/browser/marrows-DD1NgMQi-BIBP-NrK.js +761 -0
- package/dist/browser/marrows-DD1NgMQi-BIBP-NrK.js.map +1 -0
- package/dist/browser/math-DpWn1mbG-B7Krt7Jk.js +2034 -0
- package/dist/browser/math-DpWn1mbG-B7Krt7Jk.js.map +1 -0
- package/dist/browser/mathjax-CptWnMbQ-ncPHVakS.js +36692 -0
- package/dist/browser/mathjax-CptWnMbQ-ncPHVakS.js.map +1 -0
- package/dist/browser/monospace-D116QD2a-C40p3Rv8.js +1112 -0
- package/dist/browser/monospace-D116QD2a-C40p3Rv8.js.map +1 -0
- package/dist/browser/monospace-ex-DcXpouKS-DkaktwPJ.js +6014 -0
- package/dist/browser/monospace-ex-DcXpouKS-DkaktwPJ.js.map +1 -0
- package/dist/browser/monospace-l-Ct5wkMDs-CuE7t5pv.js +3114 -0
- package/dist/browser/monospace-l-Ct5wkMDs-CuE7t5pv.js.map +1 -0
- package/dist/browser/mshapes-DCp86WSX-DX0WfJid.js +524 -0
- package/dist/browser/mshapes-DCp86WSX-DX0WfJid.js.map +1 -0
- package/dist/browser/phonetics-BwOCw2Y9-lJWnARqt.js +2496 -0
- package/dist/browser/phonetics-BwOCw2Y9-lJWnARqt.js.map +1 -0
- package/dist/browser/phonetics-ss-CRtMn02f-Cr32SJLL.js +2984 -0
- package/dist/browser/phonetics-ss-CRtMn02f-Cr32SJLL.js.map +1 -0
- package/dist/browser/sans-serif-BYPZKlE9-DftjSdim.js +5246 -0
- package/dist/browser/sans-serif-BYPZKlE9-DftjSdim.js.map +1 -0
- package/dist/browser/sans-serif-b-B0kRKiC--BsRQiyQP.js +3176 -0
- package/dist/browser/sans-serif-b-B0kRKiC--BsRQiyQP.js.map +1 -0
- package/dist/browser/sans-serif-bi-DXWul6mu-D4NuD72A.js +3688 -0
- package/dist/browser/sans-serif-bi-DXWul6mu-D4NuD72A.js.map +1 -0
- package/dist/browser/sans-serif-ex-Boux1kMP-BrL4RNcD.js +10033 -0
- package/dist/browser/sans-serif-ex-Boux1kMP-BrL4RNcD.js.map +1 -0
- package/dist/browser/sans-serif-i-676RFaSO-BCRikTTw.js +3635 -0
- package/dist/browser/sans-serif-i-676RFaSO-BCRikTTw.js.map +1 -0
- package/dist/browser/sans-serif-r-DrN9xdZt-CN8omxfu.js +3159 -0
- package/dist/browser/sans-serif-r-DrN9xdZt-CN8omxfu.js.map +1 -0
- package/dist/browser/script-0ohehnXc-4G2PiBkk.js +649 -0
- package/dist/browser/script-0ohehnXc-4G2PiBkk.js.map +1 -0
- package/dist/browser/shapes-BG47NodJ-D3eH0HjT.js +1932 -0
- package/dist/browser/shapes-BG47NodJ-D3eH0HjT.js.map +1 -0
- package/dist/browser/speech-worker-CTpOB9m5-BIgcSm3A.js +160 -0
- package/dist/browser/speech-worker-CTpOB9m5-BIgcSm3A.js.map +1 -0
- package/dist/browser/symbols-BqnUxf_t-DJHA_nO7.js +1833 -0
- package/dist/browser/symbols-BqnUxf_t-DJHA_nO7.js.map +1 -0
- package/dist/browser/symbols-b-i-eg9k5hmF-Bn-dxZT_.js +1153 -0
- package/dist/browser/symbols-b-i-eg9k5hmF-Bn-dxZT_.js.map +1 -0
- package/dist/browser/variants-2LRNhOUP-BlL4NIVJ.js +231 -0
- package/dist/browser/variants-2LRNhOUP-BlL4NIVJ.js.map +1 -0
- package/dist/controller/defaults.d.ts +19 -0
- package/dist/controller/defaults.js +21 -0
- package/dist/controller/index.d.ts +95 -0
- package/dist/controller/index.js +126 -0
- package/dist/controller/utils.d.ts +2 -0
- package/dist/controller/utils.js +13 -0
- package/dist/delivery/__tests__/inline-dropdown-language.test.d.ts +1 -0
- package/dist/delivery/index.d.ts +14 -0
- package/dist/delivery/index.js +64 -0
- package/dist/delivery/inline-dropdown.d.ts +30 -0
- package/dist/delivery/inline-dropdown.js +111 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.iife.d.ts +6 -0
- package/dist/index.iife.js +185 -0
- package/dist/index.js +2 -0
- package/dist/runtime-support.d.ts +12 -0
- package/dist/runtime-support.js +12 -0
- package/dist/schemas/configuration.schema.json +414 -0
- package/dist/schemas/model.schema.json +453 -0
- package/dist/schemas/session.schema.json +43 -0
- package/dist/types.d.ts +164 -0
- package/package.json +96 -32
- package/CHANGELOG.json +0 -1082
- package/CHANGELOG.md +0 -3440
- package/LICENSE.md +0 -5
- package/README.md +0 -1
- package/configure/CHANGELOG.json +0 -647
- package/configure/CHANGELOG.md +0 -3066
- package/configure/lib/defaults.js +0 -190
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -209
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/inline-dropdown-toolbar.js +0 -573
- package/configure/lib/inline-dropdown-toolbar.js.map +0 -1
- package/configure/lib/main.js +0 -753
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/markupUtils.js +0 -70
- package/configure/lib/markupUtils.js.map +0 -1
- package/configure/lib/response-area.js +0 -99
- package/configure/lib/response-area.js.map +0 -1
- package/configure/lib/utils.js +0 -33
- package/configure/lib/utils.js.map +0 -1
- package/configure/package.json +0 -22
- package/controller/CHANGELOG.json +0 -467
- package/controller/CHANGELOG.md +0 -2114
- package/controller/lib/defaults.js +0 -26
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -360
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -40
- package/controller/lib/utils.js.map +0 -1
- package/controller/package.json +0 -16
- package/docs/config-schema.json +0 -2854
- package/docs/config-schema.json.md +0 -2106
- package/docs/demo/config.js +0 -8
- package/docs/demo/generate.js +0 -76
- package/docs/demo/index.html +0 -1
- package/docs/demo/session.js +0 -11
- package/docs/pie-schema.json +0 -1152
- package/docs/pie-schema.json.md +0 -814
- package/esm/configure.js +0 -1973
- package/esm/configure.js.map +0 -1
- package/esm/controller.js +0 -304
- package/esm/controller.js.map +0 -1
- package/esm/element.js +0 -278
- package/esm/element.js.map +0 -1
- package/lib/index.js +0 -130
- package/lib/index.js.map +0 -1
- package/lib/inline-dropdown.js +0 -248
- package/lib/inline-dropdown.js.map +0 -1
package/esm/configure.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sources":["../../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../../node_modules/recompose/setStatic.js","../../../node_modules/recompose/setDisplayName.js","../../../node_modules/recompose/getDisplayName.js","../../../node_modules/recompose/wrapDisplayName.js","../../../node_modules/recompose/shouldUpdate.js","../../../node_modules/fbjs/lib/shallowEqual.js","../../../node_modules/recompose/shallowEqual.js","../../../node_modules/recompose/pure.js","../../../node_modules/@material-ui/icons/utils/createSvgIcon.js","../../../node_modules/@material-ui/icons/ExpandMore.js","../../../node_modules/@material-ui/icons/Info.js","../configure/src/utils.js","../../../node_modules/@material-ui/icons/Add.js","../../../node_modules/@material-ui/icons/Check.js","../../../node_modules/@material-ui/icons/Close.js","../../../node_modules/@material-ui/icons/Edit.js","../configure/src/inline-dropdown-toolbar.jsx","../configure/src/response-area.jsx","../configure/src/main.jsx","../configure/src/defaults.js","../configure/src/markupUtils.js","../configure/src/index.js"],"sourcesContent":["function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n return function (BaseComponent) {\n /* eslint-disable no-param-reassign */\n BaseComponent[key] = value;\n /* eslint-enable no-param-reassign */\n\n return BaseComponent;\n };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n return function (BaseComponent) {\n var factory = (0, _react.createFactory)(BaseComponent);\n\n var ShouldUpdate =\n /*#__PURE__*/\n function (_Component) {\n (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n function ShouldUpdate() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = ShouldUpdate.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return test(this.props, nextProps);\n };\n\n _proto.render = function render() {\n return factory(this.props);\n };\n\n return ShouldUpdate;\n }(_react.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n }\n\n return ShouldUpdate;\n };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n return !(0, _shallowEqual.default)(props, nextProps);\n });\n\n if (process.env.NODE_ENV !== 'production') {\n return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n }\n\n return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = \"\".concat(displayName, \"Icon\");\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n})), 'Info');\n\nexports.default = _default;","export const generateValidationMessage = (config) => {\n const { maxResponseAreas, maxResponseAreaChoices } = config;\n\n const responseAreasMessage =\n '\\nThere should be at least 1 ' +\n (maxResponseAreas ? `and at most ${maxResponseAreas} ` : '') +\n 'response area' +\n (maxResponseAreas ? 's' : '') +\n ' defined.' +\n (maxResponseAreaChoices\n ? `\\nThere should be at most ${maxResponseAreaChoices} choices defined per response area.`\n : '');\n\n const message = 'Validation requirements:' + responseAreasMessage;\n\n return message;\n};\n\nexport const getPluginProps = (props = {}, baseInputConfiguration = {}) => ({\n ...baseInputConfiguration,\n ...props,\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n}), _react.default.createElement(\"path\", {\n d: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n})), 'Check');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), _react.default.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n})), 'Edit');\n\nexports.default = _default;","import { getPluginProps } from './utils';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport classnames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\n\nimport AddIcon from '@material-ui/icons/Add';\nimport CheckIcon from '@material-ui/icons/Check';\nimport CloseIcon from '@material-ui/icons/Close';\nimport EditIcon from '@material-ui/icons/Edit';\nimport IconButton from '@material-ui/core/IconButton';\n\nclass MenuItemComp extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n correct: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n onRemoveChoice: PropTypes.func.isRequired,\n onEditChoice: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n };\n\n onRemoveClick = (e) => {\n const { onRemoveChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onRemoveChoice();\n };\n\n onEditClick = (e) => {\n const { onEditChoice } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n onEditChoice();\n };\n\n render() {\n const { classes, correct, onClick, value } = this.props;\n\n return (\n <div className={classes.wrapper}>\n {correct && (\n <div className={classes.selectedIcon} onClick={onClick}>\n <CheckIcon fontSize=\"inherit\" />\n </div>\n )}\n <div\n className={classnames(classes.valueHolder, { [classes.correct]: correct })}\n onClick={onClick}\n dangerouslySetInnerHTML={{\n __html: value,\n }}\n />\n <div className={classes.actionButtons}>\n <IconButton className={classes.iconButton} onClick={this.onEditClick} size=\"small\" aria-label=\"Edit\">\n <EditIcon fontSize=\"inherit\" />\n </IconButton>\n <IconButton className={classes.iconButton} onClick={this.onRemoveClick} size=\"small\" aria-label=\"Remove\">\n <CloseIcon fontSize=\"inherit\" />\n </IconButton>\n </div>\n </div>\n );\n }\n}\n\nconst MenuItem = withStyles((theme) => ({\n wrapper: {\n display: 'flex',\n alignItems: 'flex-start',\n position: 'relative',\n background: theme.palette.common.white,\n borderBottom: `1px solid ${theme.palette.grey[400]}`,\n\n '&:last-child': {\n borderRadius: '0 0 4px 4px',\n },\n },\n correct: {\n background: color.correctSecondary(),\n },\n actionButtons: {\n margin: theme.spacing.unit / 2,\n display: 'flex',\n },\n iconButton: {\n fontSize: theme.typography.fontSize,\n padding: theme.spacing.unit / 2,\n color: theme.palette.common.black,\n },\n selectedIcon: {\n display: 'flex',\n justifyContent: 'center',\n color: theme.palette.common.white,\n fontSize: theme.typography.fontSize,\n fontStyle: 'normal',\n position: 'absolute',\n transform: 'translate(0, -50%)',\n backgroundColor: color.correct(),\n borderRadius: '50%',\n top: theme.spacing.unit * 2,\n left: theme.spacing.unit,\n zIndex: 3,\n },\n valueHolder: {\n flex: 1,\n padding: theme.spacing.unit * 0.75,\n paddingLeft: theme.spacing.unit * 3.5,\n },\n}))(MenuItemComp);\n\nconst findSlateNode = (key) => {\n return window.document.querySelector('[data-key=\"' + key + '\"]');\n};\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class RespAreaToolbar extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n node: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n onDone: PropTypes.func,\n choices: PropTypes.array,\n onAddChoice: PropTypes.func.isRequired,\n onCheck: PropTypes.func,\n onRemoveChoice: PropTypes.func.isRequired,\n onSelectChoice: PropTypes.func.isRequired,\n onToolbarDone: PropTypes.func.isRequired,\n value: PropTypes.shape({\n change: PropTypes.func.isRequired,\n document: PropTypes.shape({\n getNextText: PropTypes.func.isRequired,\n }),\n }),\n spellCheck: PropTypes.bool,\n };\n clickedInside = false;\n preventDone = false;\n\n state = {\n respAreaMarkup: '',\n editedChoiceIndex: -1,\n };\n\n componentDidMount() {\n const { node } = this.props;\n\n const domNode = findSlateNode(node.key);\n\n if (domNode) {\n //eslint-disable-next-line\n const domNodeRect = domNode.getBoundingClientRect();\n const editor = domNode.closest('[data-slate-editor]');\n const editorRect = editor.getBoundingClientRect();\n const top = domNodeRect.top - editorRect.top;\n const left = domNodeRect.left - editorRect.left;\n\n this.setState({\n toolbarStyle: {\n position: 'absolute',\n top: `${top + domNodeRect.height + 60}px`,\n left: `${left + 25}px`,\n },\n });\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onRespAreaChange = (respAreaMarkup) => {\n this.setState({ respAreaMarkup });\n };\n\n onAddChoice = () => {\n if (this.editorRef) {\n this.editorRef.finishEditing();\n }\n };\n\n onDone = (val) => {\n const { choices, node, value, onAddChoice, onToolbarDone } = this.props;\n const { editedChoiceIndex } = this.state;\n const onlyText = createElementFromHTML(val).textContent.trim();\n\n if (editedChoiceIndex >= 0 && choices?.[editedChoiceIndex]?.correct) {\n const update = { ...node.data.toJSON(), value: val };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n onToolbarDone(change, false);\n }\n\n if (!isEmpty(onlyText)) {\n onAddChoice(node.data.get('index'), val, editedChoiceIndex);\n }\n\n this.setState({ editedChoiceIndex: -1 });\n };\n\n onSelectChoice = (newValue, index) => {\n const { node, value, onToolbarDone, onSelectChoice } = this.props;\n const update = { ...node.data.toJSON(), value: newValue };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n const nextText = value.document.getNextText(node.key);\n\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n\n onToolbarDone(change, false);\n\n onSelectChoice(index);\n };\n\n onRemoveChoice = (val, index) => {\n const { node, value, onToolbarDone, onRemoveChoice } = this.props;\n\n if (isEqual(val, node.data.get('value'))) {\n const update = { ...node.data.toJSON(), value: null };\n const change = value.change().setNodeByKey(node.key, { data: update });\n\n onToolbarDone(change, false);\n }\n\n onRemoveChoice(index);\n };\n\n onEditChoice = (val, index) => {\n this.onRespAreaChange(val);\n this.setState({ editedChoiceIndex: index });\n };\n\n onKeyDown = (event) => {\n if (event.key === 'Enter') {\n this.preventDone = false;\n this.onAddChoice();\n // Cancelling event\n return false;\n }\n };\n\n onBlur = () => {\n if (this.clickedInside) {\n this.clickedInside = false;\n return;\n }\n\n const { node, choices, onCheck, onToolbarDone, value } = this.props;\n const correctResponse = (choices || []).find((choice) => choice.correct);\n\n this.onAddChoice();\n if (!choices || (choices && choices.length < 2) || !correctResponse) {\n onCheck(() => {\n const change = value.change();\n\n change.removeNodeByKey(node.get('key'));\n onToolbarDone(change, false);\n });\n }\n };\n\n onClickInside = () => {\n this.clickedInside = true;\n };\n\n focusInput = () => {\n // we need to focus the input so that math is saved even without pressing the green checkmark\n const slateEditorRef = this.editorRef && this.editorRef.rootRef && this.editorRef.rootRef.slateEditor;\n const inputRef = slateEditorRef && slateEditorRef.editorRef && slateEditorRef.editorRef.element;\n\n if (inputRef) {\n inputRef.focus();\n }\n };\n\n render() {\n const {\n classes,\n choices,\n spellCheck,\n uploadSoundSupport,\n mathMlOptions = {},\n baseInputConfiguration = {},\n responseAreaInputConfiguration = {},\n } = this.props;\n const { respAreaMarkup, toolbarStyle } = this.state;\n\n if (!toolbarStyle) {\n return null;\n }\n\n return (\n <div\n className={classes.responseContainer}\n style={{\n ...toolbarStyle,\n backgroundColor: '#E0E1E6',\n }}\n onMouseDown={this.onClickInside}\n >\n <div className={classes.itemBuilder}>\n <EditableHtml\n ref={(ref) => {\n if (ref) {\n this.editorRef = ref;\n }\n }}\n autoFocus={true}\n autoSave\n className={classes.respArea}\n toolbarOpts={{\n position: 'top',\n alwaysVisible: false,\n showDone: false,\n doneOn: 'blur',\n }}\n markup={respAreaMarkup}\n onKeyDown={this.onKeyDown}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n onChange={(respAreaMarkup) => {\n if (this.preventDone) {\n return;\n }\n\n this.onRespAreaChange(respAreaMarkup);\n }}\n onDone={(val) => {\n if (this.preventDone) {\n return;\n }\n\n this.onDone(val);\n }}\n onBlur={(e) => {\n if (!e.relatedTarget) {\n return;\n }\n\n const isInInsertCharacter = !!(e.relatedTarget && e.relatedTarget.closest('.insert-character-dialog'));\n const isInDoneButton = !!(e.relatedTarget && e.relatedTarget.closest('[aria-label=\"Done\"]'));\n\n this.preventDone = isInInsertCharacter || isInDoneButton;\n if (isInInsertCharacter || isInDoneButton) {\n this.clickedInside = true;\n }\n this.onBlur(e);\n }}\n placeholder=\"Add Choice\"\n pluginProps={getPluginProps(responseAreaInputConfiguration?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n <IconButton\n className={classes.addButton}\n onMouseDown={() => this.focusInput()}\n onClick={() => this.onAddChoice()}\n size=\"small\"\n aria-label=\"Add\"\n >\n <AddIcon fontSize=\"inherit\" />\n </IconButton>\n </div>\n\n {choices && (\n <div className={classes.choicesHolder}>\n {choices.map(({ label, correct }, index) => (\n <MenuItem\n key={index}\n onClick={() => this.onSelectChoice(label, index)}\n onRemoveChoice={() => this.onRemoveChoice(label, index)}\n onEditChoice={() => this.onEditChoice(label, index)}\n value={label}\n correct={correct}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n}\n\nconst StyledRespAreaToolbar = withStyles((theme) => ({\n responseContainer: {\n boxShadow: theme.shadows[2],\n borderRadius: '4px',\n width: '400px',\n },\n respArea: {\n borderRadius: '4px',\n backgroundColor: theme.palette.common.white,\n '& [data-slate-editor=\"true\"]': {\n minHeight: 'initial !important',\n },\n },\n addButton: {\n fontSize: theme.typography.fontSize + 2,\n padding: theme.spacing.unit / 2,\n color: theme.palette.common.black,\n position: 'absolute',\n top: '50%',\n right: theme.spacing.unit * 2,\n transform: 'translate(0, -50%)',\n },\n choicesHolder: {\n display: 'flex',\n flexDirection: 'column',\n '& > div:last-child': {\n border: 'none',\n },\n },\n itemBuilder: {\n padding: theme.spacing.unit / 2,\n position: 'relative',\n },\n}))(RespAreaToolbar);\n\nexport default StyledRespAreaToolbar;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst styles = (theme) => ({\n responseArea: {\n paddingBottom: theme.spacing.unit * 2.5,\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nclass ResponseAreaComponent extends React.Component {\n static propTypes = {\n editableHtmlProps: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n responseAreasError: PropTypes.string,\n responseAreaChoicesError: PropTypes.string,\n };\n\n componentDidMount() {\n // eslint-disable-next-line react/no-find-dom-node\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n render() {\n const { editableHtmlProps, responseAreasError, responseAreaChoicesError, classes } = this.props;\n\n return (\n <div className={classes.responseArea}>\n <EditableHtml {...editableHtmlProps} />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {responseAreaChoicesError && <div className={classes.errorText}>{responseAreaChoicesError}</div>}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(ResponseAreaComponent);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { AlertDialog, InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { color } from '@pie-lib/render-ui';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\nimport isUndefined from 'lodash/isUndefined';\nimport isEmpty from 'lodash/isEmpty';\nimport reduce from 'lodash/reduce';\nimport max from 'lodash/max';\nimport { withStyles } from '@material-ui/core/styles';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport Info from '@material-ui/icons/Info';\n\nimport InlineDropdownToolbar from './inline-dropdown-toolbar';\nimport { generateValidationMessage } from './utils';\nimport ResponseAreaComponent from './response-area';\n\nconst { toggle, Panel, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n choiceRationaleHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit * 2,\n },\n markup: {\n minHeight: '100px',\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '100px',\n },\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n text: {\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing.unit,\n },\n rationaleLabel: {\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'break-spaces',\n color: color.disabled(),\n padding: 0,\n fontSize: theme.typography.fontSize - 2,\n lineHeight: 1,\n },\n rationaleChoices: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n panelDetails: {\n display: 'block',\n paddingTop: 0,\n paddingBottom: 0,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: theme.spacing.unit,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nconst createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = (htmlString || '').trim();\n\n return div;\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.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 };\n\n state = {\n warning: { open: false },\n };\n\n componentDidMount() {\n const {\n model: { choices },\n } = this.props;\n\n this.setState({ respAreaChoices: cloneDeep(choices) });\n }\n\n UNSAFE_componentWillReceiveProps(nProps) {\n const newState = {};\n\n if (\n !isEqual(nProps.model.choices, this.props.model.choices) ||\n !isEqual(nProps.model.choices, this.state.respAreaChoices)\n ) {\n newState.respAreaChoices = cloneDeep(nProps.model.choices);\n }\n\n if (!isEmpty(newState)) {\n this.setState(newState);\n }\n }\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({ ...this.props.model, ...newVal });\n };\n\n onPromptChanged = (prompt) => {\n this.onModelChange({ prompt });\n };\n\n onRationaleChanged = (rationale) => {\n this.onModelChange({ rationale });\n };\n\n onChoiceRationaleChanged = (index, choice) => {\n const { model } = this.props;\n const indexOfChoice =\n model.choices &&\n model.choices[index] &&\n model.choices[index].findIndex((elem) => elem.label === choice.label && elem.value === choice.value);\n\n model.choices[index] && model.choices[index].splice(indexOfChoice, 1, choice);\n\n this.onModelChange(model);\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.onModelChange({ teacherInstructions });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.onModelChange({ slateMarkup });\n };\n\n onCheck = (callback) => {\n this.setState({\n warning: {\n open: true,\n text: 'Response areas with under 2 options or with no correct answers will be discarded.',\n onClose: () => {\n this.setState({ warning: { open: false } });\n },\n onConfirm: () => {\n this.setState({ warning: { open: false } }, callback);\n },\n },\n });\n };\n\n onChange = (markup) => {\n const { respAreaChoices } = this.state;\n const domMarkup = createElementFromHTML(markup);\n const allRespAreas = domMarkup.querySelectorAll('[data-type=\"inline_dropdown\"]');\n const allChoices = {};\n\n allRespAreas.forEach((el) => {\n allChoices[el.dataset.index] = el.dataset.value || '';\n });\n\n const existingRespAreaChoices = reduce(\n respAreaChoices,\n (obj, choices, key) => {\n if (!isUndefined(allChoices[key])) {\n obj[key] = respAreaChoices[key];\n }\n\n return obj;\n },\n {},\n );\n\n const newRespAreaChoices = {};\n let shouldWarn = false;\n\n allRespAreas.forEach((el, index) => {\n const newChoices = existingRespAreaChoices[el.dataset.index] || [];\n\n if (newChoices.length < 2 || !newChoices.find((c) => c.correct)) {\n el.remove();\n shouldWarn = true;\n } else {\n newRespAreaChoices[index] = existingRespAreaChoices[el.dataset.index] || [];\n el.dataset.index = index;\n }\n });\n\n if (shouldWarn) {\n this.setState({\n warning: {\n open: true,\n text: 'Response areas with under 2 options or with no correct answers will be discarded.',\n onClose: () => {\n this.setState({ warning: { open: false } });\n },\n onConfirm: () => {\n this.setState({ warning: { open: false } }, () =>\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML,\n }),\n );\n },\n },\n });\n } else {\n this.onModelChange({\n choices: cloneDeep(newRespAreaChoices),\n slateMarkup: domMarkup.innerHTML,\n });\n }\n };\n\n onAddChoice = (index, label, choiceIndex) => {\n const { respAreaChoices } = this.state;\n const { maxResponseAreaChoices } = this.props.configuration;\n\n if (respAreaChoices[index] && respAreaChoices[index].length >= maxResponseAreaChoices) {\n this.setState({\n warning: {\n open: true,\n text: `There are only ${maxResponseAreaChoices} answers allowed per choice.`,\n onClose: undefined,\n onConfirm: () => {\n this.setState({ warning: { open: false } });\n },\n },\n });\n\n return;\n }\n\n if (!respAreaChoices[index]) {\n respAreaChoices[index] = [];\n }\n\n // check for duplicate answer, but exclude the one that is currently edited\n if ((respAreaChoices[index] || []).find((r, idx) => r.label === label && idx !== choiceIndex)) {\n // show warning for duplicated answers\n this.setState({\n warning: {\n open: true,\n text: 'Duplicate answers are not allowed.',\n onClose: undefined,\n onConfirm: () => {\n this.setState({ warning: { open: false } });\n },\n },\n });\n\n return;\n }\n\n if (choiceIndex >= 0 && respAreaChoices[index]?.[choiceIndex]) {\n // we need to update the choice label with the new value\n respAreaChoices[index][choiceIndex].label = label;\n } else {\n // add a new choice\n const value =\n (respAreaChoices[index] &&\n max(respAreaChoices[index].map((c) => parseInt(c.value)).filter((val) => !isNaN(val)))) ||\n 0;\n\n respAreaChoices[index].push({\n label,\n value: `${value + 1}`,\n correct: false,\n });\n }\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onRemoveChoice = (respIndex, index) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex].splice(index, 1);\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n onSelectChoice = (respIndex, selectedIndex) => {\n const { respAreaChoices } = this.state;\n\n respAreaChoices[respIndex] = respAreaChoices[respIndex].map((choice, index) => ({\n ...choice,\n correct: index === selectedIndex,\n }));\n\n this.onModelChange({ choices: cloneDeep(respAreaChoices) });\n };\n\n render() {\n const { warning } = this.state;\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n choiceRationale = {},\n contentDimensions = {},\n lockChoiceOrder = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n partialScoring = {},\n prompt = {},\n rationale = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n template = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n responseAreaInputConfiguration = {},\n } = configuration || {};\n\n const {\n choiceRationaleEnabled,\n choices,\n errors,\n extraCSSRules,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const {\n prompt: promptError,\n rationale: rationaleError,\n responseAreasError,\n responseAreaChoicesError,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const renderChoiceRationale = () =>\n (Object.keys(choices) || []).map((key, index) => (\n <div key={key} className={classes.rationaleChoices}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography className={classes.text}>{`Rationale for response area #${index + 1}`}</Typography>\n </ExpansionPanelSummary>\n\n <ExpansionPanelDetails className={classes.panelDetails}>\n {(choices[key] || []).map((choice) => (\n <React.Fragment key={choice.label}>\n <span\n className={classes.rationaleLabel}\n dangerouslySetInnerHTML={{\n __html: `${rationale.label} for ${choice.label} (${choice.correct ? 'correct' : 'incorrect'})`,\n }}\n />\n <InputContainer className={classes.choiceRationaleHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={choice.rationale || ''}\n spellCheck={spellCheckEnabled}\n onChange={(c) => this.onChoiceRationaleChanged(key, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n </InputContainer>\n </React.Fragment>\n ))}\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n ));\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const validationMessage = generateValidationMessage(configuration);\n\n const panelSettings = {\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n choiceRationaleEnabled: choiceRationale.settings && toggle(choiceRationale.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text} component={'div'}>\n Define Template, Choices, and Correct Responses\n </Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </Tooltip>\n </div>\n\n <ResponseAreaComponent\n responseAreasError={responseAreasError}\n responseAreaChoicesError={responseAreaChoicesError}\n editableHtmlProps={{\n pluginProps: getPluginProps(template?.inputConfiguration),\n activePlugins: ALL_PLUGINS,\n toolbarOpts: { position: 'top' },\n responseAreaProps: {\n type: 'inline-dropdown',\n options: {\n duplicates: true,\n },\n maxResponseAreas: maxResponseAreas,\n respAreaToolbar: (node, value, onToolbarDone) => {\n const { respAreaChoices } = this.state;\n\n return () => (\n <InlineDropdownToolbar\n onAddChoice={this.onAddChoice}\n onCheck={this.onCheck}\n onRemoveChoice={(index) => this.onRemoveChoice(node.data.get('index'), index)}\n onSelectChoice={(index) => this.onSelectChoice(node.data.get('index'), index)}\n node={node}\n value={value}\n onToolbarDone={onToolbarDone}\n choices={respAreaChoices[node.data.get('index')]}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n baseInputConfiguration={baseInputConfiguration}\n responseAreaInputConfiguration={responseAreaInputConfiguration}\n />\n );\n },\n },\n spellCheck: spellCheckEnabled,\n className: classes.markup,\n markup: model.slateMarkup || '',\n onChange: this.onChange,\n imageSupport: imageSupport,\n disableImageAlignmentButtons: true,\n disabled: false,\n highlightShape: false,\n error: responseAreasError,\n uploadSoundSupport: uploadSoundSupport,\n languageCharactersProps: [{ language: 'spanish' }, { language: 'special' }],\n mathMlOptions: mathMlOptions,\n }}\n />\n\n {choiceRationaleEnabled && renderChoiceRationale()}\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n\n <AlertDialog\n open={warning.open}\n title=\"Warning\"\n text={warning.text}\n onClose={warning.onClose}\n onConfirm={warning.onConfirm}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n","export default {\n model: {\n alternateResponse: {},\n choiceRationaleEnabled: true,\n choices: {},\n disabled: false,\n displayType: 'block',\n markup: '',\n mode: 'gather',\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n shuffle: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n h3: { disabled: true },\n blockquote: { disabled: true },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n responseAreaInputConfiguration: {\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: true },\n table: { disabled: true },\n ul_list: { disabled: true },\n ol_list: { disabled: true },\n },\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n template: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n choiceRationale: {\n settings: true,\n label: 'Choice Rationale',\n },\n toolbarEditorPosition: {\n settings: false,\n label: 'Toolbar Editor Position',\n },\n maxResponseAreas: 10,\n maxResponseAreaChoices: 10,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n","import escape from 'lodash/escape';\n\n// do not remove \\t from \\times, \\triangle, \\tan, \\theta or \\therefore\nconst tSymbols = 'imes|riangle|an|heta|herefore';\n// do not remove \\n from \\nthroot, \\nparallel, \\ncong, \\napprox, \\neq, \\ne or \\nsim\nconst nSymbols = 'throot|parallel|cong|approx|eq|e|sim';\n// match all \\t and \\n that are not part of math symbols that starts with \\t or \\n\nconst matchTabAndNewLine = new RegExp(\n `(\\\\t(?!${tSymbols}))|(\\\\n(?!${nSymbols}))|(\\\\\\\\t(?!${tSymbols}))|(\\\\\\\\n(?!${nSymbols}))`,\n 'g',\n);\n\nexport const removeUnwantedCharacters = (markup) =>\n markup.replace(matchTabAndNewLine, '').replace(/\\\\\"/g, '\"').replace(/\\\\\\//g, '/');\n\nexport const createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\nexport const processMarkup = (markup) => {\n const newMarkup = removeUnwantedCharacters(markup);\n const slateMarkup = createElementFromHTML(newMarkup);\n\n slateMarkup.querySelectorAll('[data-type=\"inline_dropdown\"]').forEach((s) => {\n s.replaceWith(`{{${s.dataset.index}}}`);\n });\n\n return slateMarkup.innerHTML;\n};\n\nconst REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport const createSlateMarkup = (markup, choices) => {\n const newMarkup = removeUnwantedCharacters(markup);\n const createSelect = (index) => {\n let correctChoice = choices[index] && choices[index].find((c) => c.correct);\n\n if (!correctChoice || !correctChoice.value) {\n correctChoice = {\n id: '',\n value: '',\n label: '',\n };\n }\n\n return `<span data-type=\"inline_dropdown\" data-index=\"${index}\" data-value=\"${escape(\n correctChoice.label,\n )}\"></span>`;\n };\n\n return newMarkup.replace(REGEX, (match, g) => {\n return createSelect(g);\n });\n};\n","import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport Main from './main';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('multiple-choice:configure');\n\nexport default class InlineDropdown extends HTMLElement {\n static prepareModel = (model = {}) => {\n const currModal = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = model.slateMarkup || createSlateMarkup(currModal.markup, currModal.choices);\n const markup = processMarkup(slateMarkup);\n\n return {\n ...currModal,\n slateMarkup,\n markup,\n /*...processedMarkup,*/\n };\n };\n\n constructor() {\n super();\n this._model = InlineDropdown.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = InlineDropdown.prepareModel(s);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = defaults(c, sensibleDefaults.configuration);\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (c.language?.enabled) {\n if (c.languageChoices?.options?.length) {\n this._model.language = c.languageChoices.options[0].value;\n }\n } else if (c.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = InlineDropdown.prepareModel(m);\n this._render();\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n this._render();\n }\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n ReactDOM.render(element, this);\n }\n}\n"],"names":["setPrototypeOf","require$$0","setStatic_1","_default","_interopRequireDefault","setDisplayName_1","require$$1","getDisplayName_1","wrapDisplayName_1","shouldUpdate_1","_react","require$$2","_setDisplayName","require$$3","_wrapDisplayName","require$$4","shallowEqual","_shallowEqual","pure_1","createSvgIcon_1","default_1","_createSvgIcon","generateValidationMessage","config","maxResponseAreas","maxResponseAreaChoices","responseAreasMessage","message","getPluginProps","props","baseInputConfiguration","MenuItemComp","React","Component","onRemoveClick","e","onRemoveChoice","preventDefault","stopPropagation","onEditClick","onEditChoice","render","classes","correct","onClick","value","wrapper","selectedIcon","CheckIcon","classnames","valueHolder","__html","actionButtons","iconButton","EditIcon","CloseIcon","propTypes","PropTypes","object","isRequired","bool","func","string","MenuItem","withStyles","theme","display","alignItems","position","background","palette","common","white","borderBottom","grey","borderRadius","color","correctSecondary","margin","spacing","unit","fontSize","typography","padding","black","justifyContent","fontStyle","transform","backgroundColor","top","left","zIndex","flex","paddingLeft","findSlateNode","key","window","document","querySelector","createElementFromHTML","htmlString","div","createElement","innerHTML","trim","RespAreaToolbar","clickedInside","preventDone","state","respAreaMarkup","editedChoiceIndex","onRespAreaChange","setState","onAddChoice","editorRef","finishEditing","onDone","val","choices","node","onToolbarDone","onlyText","textContent","update","data","toJSON","change","setNodeByKey","isEmpty","get","onSelectChoice","newValue","index","nextText","getNextText","moveFocusTo","moveAnchorTo","isEqual","onKeyDown","event","onBlur","onCheck","correctResponse","find","choice","length","removeNodeByKey","onClickInside","focusInput","slateEditorRef","rootRef","slateEditor","inputRef","element","focus","componentDidMount","domNode","domNodeRect","getBoundingClientRect","editor","closest","editorRect","toolbarStyle","height","componentDidUpdate","ReactDOM","findDOMNode","renderMath","spellCheck","uploadSoundSupport","mathMlOptions","responseAreaInputConfiguration","responseContainer","itemBuilder","ref","respArea","alwaysVisible","showDone","doneOn","language","relatedTarget","isInInsertCharacter","isInDoneButton","inputConfiguration","addButton","AddIcon","choicesHolder","map","label","array","shape","StyledRespAreaToolbar","boxShadow","shadows","width","minHeight","right","flexDirection","border","styles","responseArea","paddingBottom","errorText","error","main","paddingTop","ResponseAreaComponent","editableHtmlProps","responseAreasError","responseAreaChoicesError","toggle","Panel","dropdown","settings","promptHolder","marginBottom","choiceRationaleHolder","markup","choiceConfiguration","text","marginRight","rationaleLabel","whiteSpace","disabled","lineHeight","rationaleChoices","panelDetails","flexContainer","tooltip","maxWidth","Main","warning","open","onModelChange","newVal","onModelChanged","model","onPromptChanged","prompt","onRationaleChanged","rationale","onChoiceRationaleChanged","indexOfChoice","findIndex","elem","splice","onTeacherInstructionsChanged","teacherInstructions","onMarkupChanged","slateMarkup","callback","onClose","onConfirm","onChange","respAreaChoices","domMarkup","allRespAreas","querySelectorAll","allChoices","forEach","el","dataset","existingRespAreaChoices","reduce","obj","isUndefined","newRespAreaChoices","shouldWarn","newChoices","c","remove","cloneDeep","choiceIndex","configuration","undefined","r","idx","max","parseInt","filter","isNaN","push","respIndex","selectedIndex","UNSAFE_componentWillReceiveProps","nProps","newState","onConfigurationChanged","imageSupport","choiceRationale","contentDimensions","lockChoiceOrder","maxImageWidth","maxImageHeight","partialScoring","settingsPanelDisabled","template","withRubric","languageChoices","choiceRationaleEnabled","errors","extraCSSRules","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","rationaleError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","renderChoiceRationale","Object","keys","ExpandMoreIcon","toolbarOpts","validationMessage","panelSettings","enabled","options","panelProperties","rubricEnabled","Settings","Properties","Info","pluginProps","activePlugins","ALL_PLUGINS","responseAreaProps","type","duplicates","respAreaToolbar","InlineDropdownToolbar","className","disableImageAlignmentButtons","highlightShape","languageCharactersProps","disableSidePanel","add","delete","Styled","alternateResponse","displayType","mode","shuffle","studentInstructionsEnabled","audio","video","image","h3","blockquote","textAlign","showParagraphs","separateParagraphs","required","table","ul_list","ol_list","mmlOutput","mmlEditing","tSymbols","nSymbols","matchTabAndNewLine","RegExp","removeUnwantedCharacters","replace","processMarkup","newMarkup","s","replaceWith","REGEX","createSlateMarkup","createSelect","correctChoice","id","escape","match","g","log","debug","InlineDropdown","HTMLElement","constructor","_model","prepareModel","_configuration","sensibleDefaults","bind","_render","defaults","option","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","currModal"],"mappings":"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"}
|
package/esm/controller.js
DELETED
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import map from 'lodash/map';
|
|
2
|
-
import reduce from 'lodash/reduce';
|
|
3
|
-
import isEmpty from 'lodash/isEmpty';
|
|
4
|
-
import { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';
|
|
5
|
-
import forEach from 'lodash/forEach';
|
|
6
|
-
|
|
7
|
-
function _extends() {
|
|
8
|
-
_extends = Object.assign || function (target) {
|
|
9
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
10
|
-
var source = arguments[i];
|
|
11
|
-
|
|
12
|
-
for (var key in source) {
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
14
|
-
target[key] = source[key];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return target;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
return _extends.apply(this, arguments);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var defaults = {
|
|
26
|
-
alternateResponse: {},
|
|
27
|
-
choiceRationaleEnabled: true,
|
|
28
|
-
choices: {},
|
|
29
|
-
disabled: false,
|
|
30
|
-
displayType: 'block',
|
|
31
|
-
markup: '',
|
|
32
|
-
mode: 'gather',
|
|
33
|
-
prompt: '',
|
|
34
|
-
promptEnabled: true,
|
|
35
|
-
rationale: '',
|
|
36
|
-
rationaleEnabled: true,
|
|
37
|
-
shuffle: true,
|
|
38
|
-
studentInstructionsEnabled: true,
|
|
39
|
-
teacherInstructions: '',
|
|
40
|
-
teacherInstructionsEnabled: true,
|
|
41
|
-
toolbarEditorPosition: 'bottom'
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const getAllCorrectResponses = ({
|
|
45
|
-
choices,
|
|
46
|
-
alternateResponse
|
|
47
|
-
}) => {
|
|
48
|
-
alternateResponse = alternateResponse || {};
|
|
49
|
-
const correctAnswers = {};
|
|
50
|
-
forEach(choices, (respArea, key) => {
|
|
51
|
-
if (!correctAnswers[key]) {
|
|
52
|
-
correctAnswers[key] = [];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (respArea) {
|
|
56
|
-
respArea.forEach(choice => {
|
|
57
|
-
if (choice.correct) {
|
|
58
|
-
correctAnswers[key].push(choice.value);
|
|
59
|
-
|
|
60
|
-
if (alternateResponse[key]) {
|
|
61
|
-
correctAnswers[key] = [...correctAnswers[key], ...alternateResponse[key]];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return correctAnswers;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const getFeedback = correct => {
|
|
71
|
-
if (correct) {
|
|
72
|
-
return 'correct';
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return 'incorrect';
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const normalize = question => _extends({}, defaults, question);
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
* @param {*} question
|
|
82
|
-
* @param {*} session
|
|
83
|
-
* @param {*} env
|
|
84
|
-
* @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
function model(question, session, env, updateSession) {
|
|
88
|
-
return new Promise(async resolve => {
|
|
89
|
-
const normalizedQuestion = normalize(question);
|
|
90
|
-
const {
|
|
91
|
-
value = {}
|
|
92
|
-
} = session || {};
|
|
93
|
-
let choices = reduce(normalizedQuestion.choices, (obj, area, key) => {
|
|
94
|
-
obj[key] = map(area, choice => choice);
|
|
95
|
-
return obj;
|
|
96
|
-
}, {});
|
|
97
|
-
let feedback = {};
|
|
98
|
-
|
|
99
|
-
if (env.mode === 'evaluate') {
|
|
100
|
-
const allCorrectResponses = getAllCorrectResponses(normalizedQuestion);
|
|
101
|
-
const respAreaLength = Object.keys(allCorrectResponses).length;
|
|
102
|
-
let correctResponses = 0;
|
|
103
|
-
|
|
104
|
-
for (let i = 0; i < respAreaLength; i++) {
|
|
105
|
-
const result = reduce(allCorrectResponses, (obj, choices, key) => {
|
|
106
|
-
const answer = value && value[key] || '';
|
|
107
|
-
const correctChoice = choices[i] || '';
|
|
108
|
-
const isCorrect = answer && correctChoice && correctChoice === answer;
|
|
109
|
-
obj.feedback[key] = getFeedback(isCorrect);
|
|
110
|
-
|
|
111
|
-
if (isCorrect) {
|
|
112
|
-
obj.correctResponses += 1;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return obj;
|
|
116
|
-
}, {
|
|
117
|
-
correctResponses: 0,
|
|
118
|
-
feedback: {}
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
if (result.correctResponses >= correctResponses) {
|
|
122
|
-
correctResponses = result.correctResponses;
|
|
123
|
-
feedback = result.feedback;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (result.correctResponses === respAreaLength) {
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);
|
|
133
|
-
|
|
134
|
-
if (!lockChoiceOrder) {
|
|
135
|
-
const keys = Object.keys(choices);
|
|
136
|
-
let i;
|
|
137
|
-
|
|
138
|
-
for (i = 0; i < keys.length; i++) {
|
|
139
|
-
const key = keys[i];
|
|
140
|
-
choices[key] = await getShuffledChoices(choices[key], session, updateSession, 'value');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
let teacherInstructions = null;
|
|
145
|
-
let rationale = null;
|
|
146
|
-
const choicesWillNullRationales = (Object.keys(choices) || []).reduce((acc, currentValue) => {
|
|
147
|
-
acc[currentValue] = (choices[currentValue] || []).map(choice => _extends({}, choice, {
|
|
148
|
-
rationale: null
|
|
149
|
-
}));
|
|
150
|
-
return acc;
|
|
151
|
-
}, {});
|
|
152
|
-
|
|
153
|
-
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
154
|
-
rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;
|
|
155
|
-
teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
|
|
156
|
-
choices = normalizedQuestion.choiceRationaleEnabled ? normalizedQuestion.choices : choicesWillNullRationales;
|
|
157
|
-
} else {
|
|
158
|
-
rationale = null;
|
|
159
|
-
teacherInstructions = null;
|
|
160
|
-
choices = choicesWillNullRationales;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
const out = {
|
|
164
|
-
disabled: env.mode !== 'gather',
|
|
165
|
-
mode: env.mode,
|
|
166
|
-
prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
|
|
167
|
-
displayType: normalizedQuestion.displayType,
|
|
168
|
-
markup: normalizedQuestion.markup,
|
|
169
|
-
choices,
|
|
170
|
-
feedback,
|
|
171
|
-
responseCorrect: env.mode === 'evaluate' ? getScore(normalizedQuestion, session) === 1 : undefined,
|
|
172
|
-
rationale,
|
|
173
|
-
teacherInstructions,
|
|
174
|
-
language: normalizedQuestion.language,
|
|
175
|
-
extraCSSRules: normalizedQuestion.extraCSSRules
|
|
176
|
-
};
|
|
177
|
-
resolve(out);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
const getScore = (config, session) => {
|
|
181
|
-
const {
|
|
182
|
-
value = {}
|
|
183
|
-
} = session || {};
|
|
184
|
-
const maxScore = config && config.choices ? Object.keys(config.choices).length : 0;
|
|
185
|
-
const allCorrectResponses = getAllCorrectResponses(config);
|
|
186
|
-
let correctCount = 0;
|
|
187
|
-
|
|
188
|
-
for (let i = 0; i < maxScore; i++) {
|
|
189
|
-
const result = reduce(allCorrectResponses, (total, choices, key) => {
|
|
190
|
-
const answer = value && value[key] || '';
|
|
191
|
-
const correctChoice = choices[i] || '';
|
|
192
|
-
|
|
193
|
-
if (correctChoice && answer && correctChoice === answer) {
|
|
194
|
-
return total;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return total - 1;
|
|
198
|
-
}, maxScore);
|
|
199
|
-
|
|
200
|
-
if (result > correctCount) {
|
|
201
|
-
correctCount = result;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (result === maxScore) {
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const str = (correctCount / maxScore).toFixed(2);
|
|
210
|
-
return parseFloat(str);
|
|
211
|
-
};
|
|
212
|
-
/**
|
|
213
|
-
*
|
|
214
|
-
* The score is partial by default for checkbox mode, allOrNothing for radio mode.
|
|
215
|
-
* To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =
|
|
216
|
-
* false. the value in `env` will override the value in `model`.
|
|
217
|
-
* @param {Object} model - the main model
|
|
218
|
-
* @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)
|
|
219
|
-
* @param {*} session
|
|
220
|
-
* @param {Object} env
|
|
221
|
-
* @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides
|
|
222
|
-
* `model.partialScoring`.
|
|
223
|
-
*/
|
|
224
|
-
|
|
225
|
-
function outcome(model, session, env = {}) {
|
|
226
|
-
return new Promise(resolve => {
|
|
227
|
-
if (!session || isEmpty(session)) {
|
|
228
|
-
resolve({
|
|
229
|
-
score: 0,
|
|
230
|
-
empty: true
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
const partialScoringEnabled = partialScoring.enabled(model, env);
|
|
235
|
-
const score = getScore(model, session);
|
|
236
|
-
resolve({
|
|
237
|
-
score: partialScoringEnabled ? score : Math.floor(score),
|
|
238
|
-
empty: false
|
|
239
|
-
});
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
const createCorrectResponseSession = (question, env) => {
|
|
243
|
-
return new Promise(resolve => {
|
|
244
|
-
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
245
|
-
const {
|
|
246
|
-
choices
|
|
247
|
-
} = question;
|
|
248
|
-
const value = {};
|
|
249
|
-
|
|
250
|
-
if (choices) {
|
|
251
|
-
Object.keys(choices).forEach((key, i) => {
|
|
252
|
-
const correctChoices = choices[key] && choices[key].filter(c => c.correct);
|
|
253
|
-
value[i] = correctChoices && correctChoices[0].value;
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
resolve({
|
|
258
|
-
id: '1',
|
|
259
|
-
value
|
|
260
|
-
});
|
|
261
|
-
} else {
|
|
262
|
-
resolve(null);
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
}; // remove all html tags
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
const getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
|
|
269
|
-
|
|
270
|
-
const validate = (model = {}, config = {}) => {
|
|
271
|
-
const {
|
|
272
|
-
markup,
|
|
273
|
-
choices
|
|
274
|
-
} = model;
|
|
275
|
-
const {
|
|
276
|
-
maxResponseAreas,
|
|
277
|
-
maxResponseAreaChoices
|
|
278
|
-
} = config;
|
|
279
|
-
const errors = {};
|
|
280
|
-
['teacherInstructions', 'prompt', 'rationale'].forEach(field => {
|
|
281
|
-
var _config$field;
|
|
282
|
-
|
|
283
|
-
if ((_config$field = config[field]) != null && _config$field.required && !getContent(model[field])) {
|
|
284
|
-
errors[field] = 'This field is required.';
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
const nbOfResponseAreas = ((markup || '').match(/\{\{(\d+)\}\}/g) || []).length;
|
|
288
|
-
|
|
289
|
-
if (nbOfResponseAreas > maxResponseAreas) {
|
|
290
|
-
errors.responseAreasError = `No more than ${maxResponseAreas} response areas should be defined.`;
|
|
291
|
-
} else if (nbOfResponseAreas < 1) {
|
|
292
|
-
errors.responseAreasError = 'There should be defined at least 1 response area.';
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
(Object.keys(choices) || []).forEach(choiceKey => {
|
|
296
|
-
if (choices[choiceKey] && choices[choiceKey].length > maxResponseAreaChoices) {
|
|
297
|
-
errors.responseAreaChoicesError = `No more than ${maxResponseAreaChoices} choices per response area should be defined.`;
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
return errors;
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
export { createCorrectResponseSession, getScore, model, normalize, outcome, validate };
|
|
304
|
-
//# sourceMappingURL=controller.js.map
|