@pie-element/math-templated 7.1.4 → 7.1.6
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 +14 -0
- package/configure/CHANGELOG.md +14 -0
- package/configure/lib/index.js +4 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +6 -0
- package/controller/package.json +2 -2
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +5 -5
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.1.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.1.5...@pie-element/math-templated@7.1.6) (2026-07-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
11
|
+
- sync libs versions ([48b5be9](https://github.com/pie-framework/pie-elements/commit/48b5be9559eb5b5235ca05f51c5f0161032a7041))
|
|
12
|
+
|
|
13
|
+
## [7.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.1.4...@pie-element/math-templated@7.1.5) (2026-06-22)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
18
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
19
|
+
|
|
6
20
|
## [7.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated@7.1.3...@pie-element/math-templated@7.1.4) (2026-06-17)
|
|
7
21
|
|
|
8
22
|
### Bug Fixes
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.1.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.1.5...@pie-element/math-templated-configure@5.1.6) (2026-07-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
11
|
+
- sync libs versions ([48b5be9](https://github.com/pie-framework/pie-elements/commit/48b5be9559eb5b5235ca05f51c5f0161032a7041))
|
|
12
|
+
|
|
13
|
+
## [5.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.1.4...@pie-element/math-templated-configure@5.1.5) (2026-06-22)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
18
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
19
|
+
|
|
6
20
|
## [5.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-configure@5.1.3...@pie-element/math-templated-configure@5.1.4) (2026-06-17)
|
|
7
21
|
|
|
8
22
|
### Bug Fixes
|
package/configure/lib/index.js
CHANGED
|
@@ -111,9 +111,13 @@ class MathTemplateConfigure extends HTMLElement {
|
|
|
111
111
|
}
|
|
112
112
|
this._root.render(element);
|
|
113
113
|
}
|
|
114
|
+
connectedCallback() {
|
|
115
|
+
this._render();
|
|
116
|
+
}
|
|
114
117
|
disconnectedCallback() {
|
|
115
118
|
if (this._root) {
|
|
116
119
|
this._root.unmount();
|
|
120
|
+
this._root = null;
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_lodashEs","_pieConfigureEvents","_design","_defaults","_markupUtils","log","debug","MathTemplateConfigure","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","default","_defineProperty2","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","responses","updatedResponses","Object","keys","reduce","acc","responseId","correctResponse","validation","allowTrailingZeros","ignoreOrder","joinedObj","slateMarkup","createSlateMarkup","markup","processedMarkup","processMarkup","forEach","key","isArray","map","item","index","answer"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport { defaults, isArray } from 'lodash-es';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('math-templated:configure');\n\nexport default class MathTemplateConfigure extends HTMLElement {\n static prepareModel = (model = {}) => {\n const { validationDefault, allowTrailingZerosDefault, ignoreOrderDefault, responses = {} } = model;\n\n const updatedResponses = Object.keys(responses).reduce((acc, responseId) => {\n const correctResponse = responses[responseId];\n\n acc[responseId] = {\n ...correctResponse,\n validation: correctResponse.validation || validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || ignoreOrderDefault,\n };\n\n return acc;\n }, {});\n\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n responses: updatedResponses,\n };\n\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.responses);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has responses without the \"answer\" property\n if (joinedObj.responses) {\n Object.keys(joinedObj.responses).forEach((key) => {\n if (isArray(joinedObj.responses[key])) {\n joinedObj.responses[key] = (joinedObj.responses[key] || []).map((item, index) => {\n if (!item.answer) {\n log('Choice does not contain \"answer\" property, which is required.', item);\n return { answer: `${index}`, ...item };\n }\n\n return item;\n });\n }\n });\n }\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup,\n };\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = MathTemplateConfigure.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 = MathTemplateConfigure.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 = MathTemplateConfigure.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\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\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_lodashEs","_pieConfigureEvents","_design","_defaults","_markupUtils","log","debug","MathTemplateConfigure","HTMLElement","constructor","_root","_model","prepareModel","_configuration","sensibleDefaults","configuration","onModelChanged","bind","onConfigurationChanged","model","s","_render","c","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","createRoot","render","connectedCallback","disconnectedCallback","unmount","exports","default","_defineProperty2","validationDefault","allowTrailingZerosDefault","ignoreOrderDefault","responses","updatedResponses","Object","keys","reduce","acc","responseId","correctResponse","validation","allowTrailingZeros","ignoreOrder","joinedObj","slateMarkup","createSlateMarkup","markup","processedMarkup","processMarkup","forEach","key","isArray","map","item","index","answer"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport { defaults, isArray } from 'lodash-es';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('math-templated:configure');\n\nexport default class MathTemplateConfigure extends HTMLElement {\n static prepareModel = (model = {}) => {\n const { validationDefault, allowTrailingZerosDefault, ignoreOrderDefault, responses = {} } = model;\n\n const updatedResponses = Object.keys(responses).reduce((acc, responseId) => {\n const correctResponse = responses[responseId];\n\n acc[responseId] = {\n ...correctResponse,\n validation: correctResponse.validation || validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || ignoreOrderDefault,\n };\n\n return acc;\n }, {});\n\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n responses: updatedResponses,\n };\n\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.responses);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has responses without the \"answer\" property\n if (joinedObj.responses) {\n Object.keys(joinedObj.responses).forEach((key) => {\n if (isArray(joinedObj.responses[key])) {\n joinedObj.responses[key] = (joinedObj.responses[key] || []).map((item, index) => {\n if (!item.answer) {\n log('Choice does not contain \"answer\" property, which is required.', item);\n return { answer: `${index}`, ...item };\n }\n\n return item;\n });\n }\n });\n }\n\n return {\n ...joinedObj,\n slateMarkup,\n markup: processedMarkup,\n };\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = MathTemplateConfigure.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 = MathTemplateConfigure.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 = MathTemplateConfigure.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\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\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n\n connectedCallback() {\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.6",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"@mui/icons-material": "^7.3.4",
|
|
12
12
|
"@mui/material": "^7.3.4",
|
|
13
13
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
14
|
-
"@pie-lib/config-ui": "13.0.
|
|
15
|
-
"@pie-lib/editable-html-tip-tap": "2.1.
|
|
16
|
-
"@pie-lib/math-toolbar": "3.0.
|
|
17
|
-
"@pie-lib/render-ui": "6.1.
|
|
14
|
+
"@pie-lib/config-ui": "13.0.11",
|
|
15
|
+
"@pie-lib/editable-html-tip-tap": "2.1.9",
|
|
16
|
+
"@pie-lib/math-toolbar": "3.0.6",
|
|
17
|
+
"@pie-lib/render-ui": "6.1.3",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
19
|
"lodash-es": "^4.17.23",
|
|
20
20
|
"prop-types": "^15.8.1",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.1.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.1.1...@pie-element/math-templated-controller@6.1.2) (2026-07-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
11
|
+
|
|
6
12
|
## [6.1.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-templated-controller@6.1.0...@pie-element/math-templated-controller@6.1.1) (2026-05-21)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @pie-element/math-templated-controller
|
package/controller/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-templated-controller",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "6.1.
|
|
4
|
+
"version": "6.1.2",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@pie-framework/math-validation": "^1.4.2",
|
|
10
|
-
"@pie-lib/controller-utils": "2.0.
|
|
10
|
+
"@pie-lib/controller-utils": "2.0.3",
|
|
11
11
|
"@pie-lib/translator": "4.0.2",
|
|
12
12
|
"debug": "^4.1.1",
|
|
13
13
|
"lodash-es": "^4.17.23"
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_lodashEs","MathTemplated","HTMLElement","constructor","_root","sessionChangedEventCaller","debounce","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","model","m","_model","render","ModelSetEvent","isSessionComplete","undefined","session","s","_session","onSessionChange","Object","keys","map","key","connectedCallback","el","React","createElement","Main","bind","createRoot","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent, ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { debounce } from 'lodash-es';\n\nexport default class MathTemplated extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this.sessionChangedEventCaller = debounce(() => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n }, 1000);\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n Object.keys(session).map((key) => {\n this._session[key] = session[key];\n });\n\n this.sessionChangedEventCaller();\n this.render();\n }\n\n connectedCallback() {\n // TODO set accessibility labels\n\n this.render();\n }\n\n render() {\n if (!this._model || !this._session) {\n return;\n }\n\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEe,MAAMK,aAAa,SAASC,WAAW,CAAC;EACrDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,yBAAyB,GAAG,IAAAC,kBAAQ,EAAC,MAAM;MAC9C,IAAI,CAACC,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC,EAAE,IAAI,CAAC;EACV;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACE,MAAM,CAAC,CAAC;IACb,IAAI,CAACP,aAAa,CAChB,IAAIQ,8BAAa,CAAC,IAAI,CAACN,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACM,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAACH,MAAM,KAAKI,SAAS,CACnG,CAAC;EACH;EAEA,IAAIN,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACE,MAAM;EACpB;EAEA,IAAIK,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACC,QAAQ,GAAGD,CAAC;IAEjB,IAAI,CAACL,MAAM,CAAC,CAAC;EACf;EAEA,IAAII,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACE,QAAQ;EACtB;EAEAJ,iBAAiBA,CAAA,EAAG;IAClB;IACA,OAAO,IAAI;EACb;EAEAK,eAAeA,CAACH,OAAO,EAAE;IACvB;IACAI,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,GAAG,CAAEC,GAAG,IAAK;MAChC,IAAI,CAACL,QAAQ,CAACK,GAAG,CAAC,GAAGP,OAAO,CAACO,GAAG,CAAC;IACnC,CAAC,CAAC;IAEF,IAAI,CAACpB,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAACS,MAAM,CAAC,CAAC;EACf;EAEAY,iBAAiBA,CAAA,EAAG;IAClB;;IAEA,IAAI,CAACZ,MAAM,CAAC,CAAC;EACf;EAEAA,MAAMA,CAAA,EAAG;IACP,IAAI,CAAC,IAAI,CAACD,MAAM,IAAI,CAAC,IAAI,CAACO,QAAQ,EAAE;MAClC;IACF;IAEA,IAAI,IAAI,CAACP,MAAM,IAAI,IAAI,CAACO,QAAQ,EAAE;MAChC,MAAMO,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;QACnCnB,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBK,OAAO,EAAE,IAAI,CAACE,QAAQ;QACtBC,eAAe,EAAE,IAAI,CAACA,eAAe,CAACU,IAAI,CAAC,IAAI;MACjD,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAAC3B,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAA4B,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAAC5B,KAAK,CAACU,MAAM,CAACa,EAAE,CAAC;IACvB;EACF;EAEAM,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAC7B,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAAC8B,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_lodashEs","MathTemplated","HTMLElement","constructor","_root","sessionChangedEventCaller","debounce","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","model","m","_model","render","ModelSetEvent","isSessionComplete","undefined","session","s","_session","onSessionChange","Object","keys","map","key","connectedCallback","el","React","createElement","Main","bind","createRoot","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent, ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { debounce } from 'lodash-es';\n\nexport default class MathTemplated extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this.sessionChangedEventCaller = debounce(() => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n }, 1000);\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n Object.keys(session).map((key) => {\n this._session[key] = session[key];\n });\n\n this.sessionChangedEventCaller();\n this.render();\n }\n\n connectedCallback() {\n // TODO set accessibility labels\n\n this.render();\n }\n\n render() {\n if (!this._model || !this._session) {\n return;\n }\n\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEe,MAAMK,aAAa,SAASC,WAAW,CAAC;EACrDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,yBAAyB,GAAG,IAAAC,kBAAQ,EAAC,MAAM;MAC9C,IAAI,CAACC,aAAa,CAAC,IAAIC,oCAAmB,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC,EAAE,IAAI,CAAC;EACV;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACE,MAAM,CAAC,CAAC;IACb,IAAI,CAACP,aAAa,CAChB,IAAIQ,8BAAa,CAAC,IAAI,CAACN,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACM,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAACH,MAAM,KAAKI,SAAS,CACnG,CAAC;EACH;EAEA,IAAIN,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACE,MAAM;EACpB;EAEA,IAAIK,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACC,QAAQ,GAAGD,CAAC;IAEjB,IAAI,CAACL,MAAM,CAAC,CAAC;EACf;EAEA,IAAII,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACE,QAAQ;EACtB;EAEAJ,iBAAiBA,CAAA,EAAG;IAClB;IACA,OAAO,IAAI;EACb;EAEAK,eAAeA,CAACH,OAAO,EAAE;IACvB;IACAI,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,GAAG,CAAEC,GAAG,IAAK;MAChC,IAAI,CAACL,QAAQ,CAACK,GAAG,CAAC,GAAGP,OAAO,CAACO,GAAG,CAAC;IACnC,CAAC,CAAC;IAEF,IAAI,CAACpB,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAACS,MAAM,CAAC,CAAC;EACf;EAEAY,iBAAiBA,CAAA,EAAG;IAClB;;IAEA,IAAI,CAACZ,MAAM,CAAC,CAAC;EACf;EAEAA,MAAMA,CAAA,EAAG;IACP,IAAI,CAAC,IAAI,CAACD,MAAM,IAAI,CAAC,IAAI,CAACO,QAAQ,EAAE;MAClC;IACF;IAEA,IAAI,IAAI,CAACP,MAAM,IAAI,IAAI,CAACO,QAAQ,EAAE;MAChC,MAAMO,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;QACnCnB,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBK,OAAO,EAAE,IAAI,CAACE,QAAQ;QACtBC,eAAe,EAAE,IAAI,CAACA,eAAe,CAACU,IAAI,CAAC,IAAI;MACjD,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAAC3B,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAA4B,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAAC5B,KAAK,CAACU,MAAM,CAACa,EAAE,CAAC;IACvB;EACF;EAEAM,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAC7B,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAAC8B,OAAO,CAAC,CAAC;MACpB,IAAI,CAAC9B,KAAK,GAAG,IAAI;IACnB;EACF;AACF;AAAC+B,OAAA,CAAAC,OAAA,GAAAnC,aAAA","ignoreList":[]}
|
package/module/configure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_dll_react as e,_dll_prop_types as t,_dll_mui__material as n,_dll_mui__material_styles as r,_dll_mui__icons_material as o,_dll_pie_lib__render_ui as a,_dll_debug as i,_dll_react_dom_client as s}from"../../../@pie-lib/shared-module@^5.2.6/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@^4.0.11/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@^7.1.8/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@^4.2.6/module/index.js";var p="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=p||d||Function("return this")(),g=h.Symbol,f=Object.prototype,m=f.hasOwnProperty,b=f.toString,y=g?g.toStringTag:void 0,_=Object.prototype.toString,v=g?g.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=b.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return _.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function w(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==C(e)}var E=Array.isArray,S=g?g.prototype:void 0,A=S?S.toString:void 0;function O(e){if("string"==typeof e)return e;if(E(e))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(e,O)+"";if(w(e))return A?A.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var x=/\s/,I=/^\s+/;function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var M=/^[-+]0x[0-9a-f]+$/i,k=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt;function D(e){if("number"==typeof e)return e;if(w(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(I,""):e}(e);var n=k.test(e);return n||P.test(e)?R(e.slice(2),n?2:8):M.test(e)?NaN:+e}function K(e){return e}function z(e){if(!T(e))return!1;var t=C(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var $,q=h["__core-js_shared__"],B=($=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",F=Function.prototype.toString;function L(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var U=/^\[object .+?Constructor\]$/,N=Function.prototype,W=Object.prototype,H=N.toString,Z=W.hasOwnProperty,Y=RegExp("^"+H.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!T(e)||(t=e,B&&B in t))&&(z(e)?Y:U).test(L(e));var t}(n)?n:void 0}var G,J,Q,X=V(h,"WeakMap"),ee=Object.create,te=function(){function e(){}return function(t){if(!T(t))return{};if(ee)return ee(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ne=Date.now,re=function(){try{var e=V(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),oe=re,ae=oe?function(e,t){return oe(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:K,ie=(G=ae,J=0,Q=0,function(){var e=ne(),t=16-(e-Q);if(Q=e,t>0){if(++J>=800)return arguments[0]}else J=0;return G.apply(void 0,arguments)}),se=/^(?:0|[1-9]\d*)$/;function le(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&se.test(e))&&e>-1&&e%1==0&&e<t}function ce(e,t,n){"__proto__"==t&&oe?oe(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ue(e,t){return e===t||e!=e&&t!=t}var pe=Object.prototype.hasOwnProperty;function de(e,t,n){var r=e[t];pe.call(e,t)&&ue(r,n)&&(void 0!==n||t in e)||ce(e,t,n)}function he(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?ce(n,s,l):de(n,s,l)}return n}var ge=Math.max;function fe(e,t,n){return t=ge(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=ge(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}}function me(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function be(e){return null!=e&&me(e.length)&&!z(e)}var ye=Object.prototype;function _e(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ve(e){return j(e)&&"[object Arguments]"==C(e)}var Ce=Object.prototype,je=Ce.hasOwnProperty,we=Ce.propertyIsEnumerable,Ee=ve(function(){return arguments}())?ve:function(e){return j(e)&&je.call(e,"callee")&&!we.call(e,"callee")},Se="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ae=Se&&"object"==typeof module&&module&&!module.nodeType&&module,Oe=Ae&&Ae.exports===Se?h.Buffer:void 0,xe=(Oe?Oe.isBuffer:void 0)||function(){return!1},Ie={};function Te(e){return function(t){return e(t)}}Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var Me="object"==typeof exports&&exports&&!exports.nodeType&&exports,ke=Me&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=ke&&ke.exports===Me&&p.process,Re=function(){try{return ke&&ke.require&&ke.require("util").types||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),De=Re&&Re.isTypedArray,Ke=De?Te(De):function(e){return j(e)&&me(e.length)&&!!Ie[C(e)]},ze=Object.prototype.hasOwnProperty;function $e(e,t){var n=E(e),r=!n&&Ee(e),o=!n&&!r&&xe(e),a=!n&&!r&&!o&&Ke(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!ze.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,l))||s.push(c);return s}function qe(e,t){return function(n){return e(t(n))}}var Be=qe(Object.keys,Object),Fe=Object.prototype.hasOwnProperty;function Le(e){return be(e)?$e(e):function(e){if(!_e(e))return Be(e);var t=[];for(var n in Object(e))Fe.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var Ue=Object.prototype.hasOwnProperty;function Ne(e){return be(e)?$e(e,!0):function(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=_e(e),n=[];for(var r in e)("constructor"!=r||!t&&Ue.call(e,r))&&n.push(r);return n}(e)}var We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,He=/^\w*$/,Ze=V(Object,"create"),Ye=Object.prototype.hasOwnProperty,Ve=Object.prototype.hasOwnProperty;function Ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Je(e,t){for(var n=e.length;n--;)if(ue(e[n][0],t))return n;return-1}Ge.prototype.clear=function(){this.__data__=Ze?Ze(null):{},this.size=0},Ge.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Ge.prototype.get=function(e){var t=this.__data__;if(Ze){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ye.call(t,e)?t[e]:void 0},Ge.prototype.has=function(e){var t=this.__data__;return Ze?void 0!==t[e]:Ve.call(t,e)},Ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&void 0===t?"__lodash_hash_undefined__":t,this};var Qe=Array.prototype.splice;function Xe(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Xe.prototype.clear=function(){this.__data__=[],this.size=0},Xe.prototype.delete=function(e){var t=this.__data__,n=Je(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Xe.prototype.get=function(e){var t=this.__data__,n=Je(t,e);return n<0?void 0:t[n][1]},Xe.prototype.has=function(e){return Je(this.__data__,e)>-1},Xe.prototype.set=function(e,t){var n=this.__data__,r=Je(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var et=V(h,"Map");function tt(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rt.Cache||nt),n}nt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ge,map:new(et||Xe),string:new Ge}},nt.prototype.delete=function(e){var t=tt(this,e).delete(e);return this.size-=t?1:0,t},nt.prototype.get=function(e){return tt(this,e).get(e)},nt.prototype.has=function(e){return tt(this,e).has(e)},nt.prototype.set=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt.Cache=nt;var ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,at=/\\(\\)?/g,it=function(){var e=rt(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ot,function(e,n,r,o){t.push(r?o.replace(at,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),st=it;function lt(e,t){return E(e)?e:function(e,t){if(E(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!w(e))||He.test(e)||!We.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:st(function(e){return null==e?"":O(e)}(e))}function ct(e){if("string"==typeof e||w(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ut(e,t){for(var n=0,r=(t=lt(t,e)).length;null!=e&&n<r;)e=e[ct(t[n++])];return n&&n==r?e:void 0}function pt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var dt=g?g.isConcatSpreadable:void 0;function ht(e){return E(e)||Ee(e)||!!(dt&&e&&e[dt])}function gt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ht),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?gt(s,t-1,n,r,o):pt(o,s):r||(o[o.length]=s)}return o}function ft(e){return null!=e&&e.length?gt(e,1):[]}var mt=qe(Object.getPrototypeOf,Object);function bt(e){var t=this.__data__=new Xe(e);this.size=t.size}bt.prototype.clear=function(){this.__data__=new Xe,this.size=0},bt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},bt.prototype.get=function(e){return this.__data__.get(e)},bt.prototype.has=function(e){return this.__data__.has(e)},bt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xe){var r=n.__data__;if(!et||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(e,t),this.size=n.size,this};var yt="object"==typeof exports&&exports&&!exports.nodeType&&exports,_t=yt&&"object"==typeof module&&module&&!module.nodeType&&module,vt=_t&&_t.exports===yt?h.Buffer:void 0,Ct=vt?vt.allocUnsafe:void 0;function jt(){return[]}var wt=Object.prototype.propertyIsEnumerable,Et=Object.getOwnPropertySymbols,St=Et?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i)&&(a[o++]=i)}return a}(Et(e),function(t){return wt.call(e,t)}))}:jt,At=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)pt(t,St(e)),e=mt(e);return t}:jt;function Ot(e,t,n){var r=t(e);return E(e)?r:pt(r,n(e))}function xt(e){return Ot(e,Le,St)}function It(e){return Ot(e,Ne,At)}var Tt=V(h,"DataView"),Mt=V(h,"Promise"),kt=V(h,"Set"),Pt="[object Map]",Rt="[object Promise]",Dt="[object Set]",Kt="[object WeakMap]",zt="[object DataView]",$t=L(Tt),qt=L(et),Bt=L(Mt),Ft=L(kt),Lt=L(X),Ut=C;(Tt&&Ut(new Tt(new ArrayBuffer(1)))!=zt||et&&Ut(new et)!=Pt||Mt&&Ut(Mt.resolve())!=Rt||kt&&Ut(new kt)!=Dt||X&&Ut(new X)!=Kt)&&(Ut=function(e){var t=C(e),n="[object Object]"==t?e.constructor:void 0,r=n?L(n):"";if(r)switch(r){case $t:return zt;case qt:return Pt;case Bt:return Rt;case Ft:return Dt;case Lt:return Kt}return t});var Nt=Ut,Wt=Object.prototype.hasOwnProperty,Ht=h.Uint8Array;function Zt(e){var t=new e.constructor(e.byteLength);return new Ht(t).set(new Ht(e)),t}var Yt=/\w*$/,Vt=g?g.prototype:void 0,Gt=Vt?Vt.valueOf:void 0;var Jt=Re&&Re.isMap,Qt=Jt?Te(Jt):function(e){return j(e)&&"[object Map]"==Nt(e)},Xt=Re&&Re.isSet,en=Xt?Te(Xt):function(e){return j(e)&&"[object Set]"==Nt(e)},tn="[object Arguments]",nn="[object Function]",rn="[object Object]",on={};function an(e,t,n,r,o,a){var i,s=1&t,l=2&t,c=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!T(e))return e;var u=E(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Wt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,i)}else{var p=Nt(e),d=p==nn||"[object GeneratorFunction]"==p;if(xe(e))return function(e,t){if(t)return e.slice();var n=e.length,r=Ct?Ct(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==rn||p==tn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||_e(e)?{}:te(mt(e))}(e),!s)return l?function(e,t){return he(e,At(e),t)}(e,function(e,t){return e&&he(t,Ne(t),e)}(i,e)):function(e,t){return he(e,St(e),t)}(e,function(e,t){return e&&he(t,Le(t),e)}(i,e))}else{if(!on[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Zt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,Yt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Gt?Object(Gt.call(r)):{}}}(e,p,s)}}a||(a=new bt);var h=a.get(e);if(h)return h;a.set(e,i),en(e)?e.forEach(function(r){i.add(an(r,t,n,r,e,a))}):Qt(e)&&e.forEach(function(r,o){i.set(o,an(r,t,n,o,e,a))});var g=u?void 0:(c?l?It:xt:l?Ne:Le)(e);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n););}(g||e,function(r,o){g&&(r=e[o=r]),de(i,o,an(r,t,n,o,e,a))}),i}function sn(e){return an(e,5)}function ln(e,t){return null!=e&&t in Object(e)}on[tn]=on["[object Array]"]=on["[object ArrayBuffer]"]=on["[object DataView]"]=on["[object Boolean]"]=on["[object Date]"]=on["[object Float32Array]"]=on["[object Float64Array]"]=on["[object Int8Array]"]=on["[object Int16Array]"]=on["[object Int32Array]"]=on["[object Map]"]=on["[object Number]"]=on[rn]=on["[object RegExp]"]=on["[object Set]"]=on["[object String]"]=on["[object Symbol]"]=on["[object Uint8Array]"]=on["[object Uint8ClampedArray]"]=on["[object Uint16Array]"]=on["[object Uint32Array]"]=!0,on["[object Error]"]=on[nn]=on["[object WeakMap]"]=!1;var cn=function(){return h.Date.now()},un=Math.max,pn=Math.min;var dn=Object.prototype,hn=dn.hasOwnProperty,gn=function(e){return ie(fe(e,void 0,K),e+"")}(function(e,t){e=Object(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?be(n)&&le(t,n.length):"string"==r&&t in n)&&ue(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=Ne(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||ue(u,dn[c])&&!hn.call(e,c))&&(e[c]=a[c])}return e}),fn=gn;function mn(e,t,n,r){if(!T(e))return e;for(var o=-1,a=(t=lt(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=ct(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=T(u)?u:le(t[o+1])?[]:{})}de(s,l,c),s=s[l]}return e}function bn(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=ut(e,i);n(s,i)&&mn(a,lt(i,e),s)}return a}(e,t,function(t,n){return function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=lt(t,e)).length,a=!1;++r<o;){var i=ct(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&me(o)&&le(i,o)&&(E(e)||Ee(e))}(e,t,ln)}(e,n)})}var yn=function(e){return ie(fe(e,void 0,ft),e+"")}(function(e,t){return null==e?{}:bn(e,t)}),_n=yn,vn={};Object.defineProperty(vn,"__esModule",{value:!0});class Cn extends CustomEvent{constructor(e,t=!1){super(Cn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}Cn.TYPE="model.updated";var jn=vn.ModelUpdatedEvent=Cn;class wn extends CustomEvent{constructor(e,t){super(wn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}wn.TYPE="delete.image";var En=vn.DeleteImageEvent=wn;class Sn extends CustomEvent{constructor(e){super(Sn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Sn.TYPE="insert.image";var An=vn.InsertImageEvent=Sn;class On extends CustomEvent{constructor(e,t){super(On.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}On.TYPE="delete.sound";var xn=vn.DeleteSoundEvent=On;class In extends CustomEvent{constructor(e){super(In.TYPE,{bubbles:!0,detail:e}),this.handler=e}}In.TYPE="insert.sound";var Tn=vn.InsertSoundEvent=In;const Mn=e,kn=t,{Card:Pn}=n,{CardContent:Rn}=n,{Button:Dn}=n,{FormControlLabel:Kn}=n,{Typography:zn}=n,{InputLabel:$n}=n,{Checkbox:qn}=n,{Select:Bn}=n,{MenuItem:Fn}=n,{IconButton:Ln}=n,{styled:Un}=r,{Delete:Nn}=o,{color:Wn}=a,{InputContainer:Hn}=l,{MathToolbar:Zn}=u,Yn=Un(Pn)(({theme:e})=>({marginBottom:e.spacing(2.5),width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"})),Vn=Un(Rn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Gn=Un(zn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Jn=Un(Hn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),Qn=Un("div")(({theme:e})=>({marginBottom:e.spacing(2)})),Xn=Un("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),er=Un("div")({display:"flex"}),tr=Un(Dn)(({theme:e})=>({border:`1px solid ${e.palette.grey.A400}`,color:Wn.text()})),nr=Un(Ln)(({theme:e})=>({marginLeft:e.spacing(1)})),rr=Un("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),or=Un("div")(({theme:e})=>({background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"})),ar=Un("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),ir=Un(qn)({color:`${Wn.tertiary()} !important`});if("undefined"!=typeof document){const e="math-templated-response-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .response-editor {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 500px;\n max-width: 900px;\n height: auto;\n min-height: 40px;\n }\n .math-toolbar {\n width: 100%;\n }\n ",document.head.appendChild(t)}}class sr extends Mn.Component{static __initStatic(){this.propTypes={defaultResponse:kn.bool,error:kn.object,mode:kn.oneOfType([kn.string,kn.number]),onResponseChange:kn.func.isRequired,onResponseDone:kn.func.isRequired,response:kn.object.isRequired,cIgnoreOrder:kn.object.isRequired,cAllowTrailingZeros:kn.object.isRequired,responseKey:kn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),sr.prototype.__init.call(this),sr.prototype.__init2.call(this),sr.prototype.__init3.call(this),sr.prototype.__init4.call(this),sr.prototype.__init5.call(this),sr.prototype.__init6.call(this),sr.prototype.__init7.call(this),sr.prototype.__init8.call(this),sr.prototype.__init9.call(this),sr.prototype.__init10.call(this),sr.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.value,r(a,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.checked,r(a,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o[e]=!t[e],n(o,r)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o.answer=e,n(o,r)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a.alternates[e]=t,r(a,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:r}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[r]="",t(o,n),this.setState({alternateIdCounter:r+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};delete o.alternates[e],n(o,r),this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}}))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}})),e()}}__init9(){this.onFocus=()=>{this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}}))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}}))}}__init11(){this.onAlternateDone=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}}))}}render(){const{mode:e,responseKey:t,response:n,cAllowTrailingZeros:r,cIgnoreOrder:o,error:a}=this.props,{showKeypad:i}=this.state,{validation:s,answer:l,alternates:c,ignoreOrder:u,allowTrailingZeros:p}=n,d=Object.keys(c||{}).length>0,h={editor:"response-editor",mathToolbar:"math-toolbar"},g={minHeight:(i.openCount>0?430:230)+"px"},f=`R ${parseInt(t)+1}`;return Mn.createElement(Yn,{style:g},Mn.createElement(Vn,null,Mn.createElement(Xn,null,Mn.createElement(Gn,{component:"div"},"Response for ",Mn.createElement(or,null,f)),Mn.createElement(Jn,{label:"Validation"},Mn.createElement(Bn,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},Mn.createElement(Fn,{value:"literal"},"Literal Validation"),Mn.createElement(Fn,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&Mn.createElement(er,null,r.enabled&&Mn.createElement(Kn,{label:r.label,control:Mn.createElement(ir,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&Mn.createElement(Kn,{label:o.label,control:Mn.createElement(ir,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),Mn.createElement(Qn,null,Mn.createElement($n,null,"Correct Answer"),Mn.createElement(Zn,{keypadMode:e,classNames:h,controlledKeypad:!0,showKeypad:i.main,latex:l||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:a&&a.answer}),a&&a.answer?Mn.createElement(rr,null,a.answer):null),d&&Object.keys(c).map((t,n)=>Mn.createElement(Qn,{key:t},Mn.createElement($n,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),Mn.createElement(ar,null,Mn.createElement(Zn,{classNames:h,controlledKeypad:!0,keypadMode:e,showKeypad:i[t]||!1,latex:c[t]||"",onChange:this.onAlternateAnswerChange(t),onFocus:this.onAlternateFocus(t),onDone:this.onAlternateDone(t),error:a&&a[t]}),Mn.createElement(nr,{onClick:this.onRemoveAlternate(t),size:"large"},Mn.createElement(Nn,null))),a&&a[t]?Mn.createElement(rr,null,a[t]):null)),Mn.createElement(tr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}sr.__initStatic(),sr.__initStatic2();const lr="imes|riangle|an|heta|herefore",cr="throot|parallel|cong|approx|eq|e|sim",ur=new RegExp(`(\\t(?!${lr}))|(\\n(?!${cr}))|(\\\\t(?!${lr}))|(\\\\n(?!${cr}))`,"g"),pr=e=>e.replace(ur,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),dr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(pr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},hr=/\{\{(\d+)\}\}/g,gr=(e,t)=>e?pr(e).replace(hr,(e,n)=>{const r=function(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${r}"></span>`}):"",fr=e,mr=t,{styled:br}=r,{Typography:yr}=n,{Select:_r}=n,{MenuItem:vr}=n,{Tooltip:Cr}=n,{Info:jr}=o,{InputContainer:wr}=l,{settings:Er}=l,{layout:Sr}=l,Ar=c,{ALL_PLUGINS:Or}=c;function xr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const{dropdown:Ir}=Er,{Panel:Tr,toggle:Mr}=Er,kr=br(wr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Pr=br(Ar)({width:"100%"}),Rr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),Dr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),Kr=br(Ar)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),zr=br(wr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),$r=br(_r)({width:"100%"}),qr=br(yr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Br=br("div")({display:"flex",alignItems:"center",gap:"8px"}),Fr=br(Cr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Lr extends fr.Component{constructor(...e){super(...e),Lr.prototype.__init.call(this),Lr.prototype.__init2.call(this),Lr.prototype.__init3.call(this),Lr.prototype.__init4.call(this),Lr.prototype.__init5.call(this),Lr.prototype.__init6.call(this),Lr.prototype.__init7.call(this),Lr.prototype.__init8.call(this),Lr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:mr.object.isRequired,configuration:mr.object.isRequired,onModelChanged:mr.func.isRequired,onConfigurationChanged:mr.func.isRequired,imageSupport:mr.shape({add:mr.func.isRequired,delete:mr.func.isRequired}),uploadSoundSupport:mr.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:r}=this.props,o=sn(r);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:r}=this.props,o={...n};o.responses[t]=e,r(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:gr(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:r}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],r({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:r,ignoreOrderDefault:o},onModelChanged:a}=this.props,i={},s=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);s.querySelectorAll('[data-type="math_templated"]').forEach((e,a)=>{const{value:s,index:l}=e.dataset;s||(e.dataset.value=""),i[a]=t[l]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:r||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=a.toString()});const l=dr(e);this.setState({cachedResponses:void 0},()=>a({...this.props.model,slateMarkup:s.innerHTML,responses:i,markup:l}))}}__init8(){this.onHandleAreaChange=function(e,t,n){var r=!0,o=!0;return T(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),function(e,t,n){var r,o,a,i,s,l,c=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function g(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function f(){var e=cn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?pn(n,a-(e-c)):n}(e))}function m(e){return s=void 0,d&&r?h(e):(r=o=void 0,i)}function b(){var e=cn(),n=g(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(f,t),u?h(e):i}(l);if(p)return clearTimeout(s),s=setTimeout(f,t),h(l)}return void 0===s&&(s=setTimeout(f,t)),i}return t=D(t)||0,T(n)&&(u=!!n.leading,a=(p="maxWait"in n)?un(D(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},b.flush=function(){return void 0===s?i:m(cn())},b}(e,500,{leading:r,maxWait:500,trailing:o})}(e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:r}=this.state;if(!e)return;const o=t?sn(t):{},a=r?sn(r):{};e.forEach(e=>{const t=e.index;!o[t]&&a[t]?(Object.assign(o,_n(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,_n(o,t)),Object.prototype.hasOwnProperty.call(o,t)&&delete o[t])}),this.setState({cachedResponses:a},()=>n({...this.props.model,responses:o}))},0,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=xr([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return r?r.attributes&&r.attributes["data-keypad"]?r:e(r,n+1):null}(r):null;t&&n&&xr([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{configuration:e,imageSupport:t,model:n,onConfigurationChanged:r,onModelChanged:o,uploadSoundSupport:a}=this.props,{baseInputConfiguration:i={},contentDimensions:s={},prompt:l={},rationale:c={},settingsPanelDisabled:u,teacherInstructions:p={},language:d={},languageChoices:h={},spellCheck:g={},playerSpellCheck:f={},maxImageWidth:m={},maxImageHeight:b={},mathMlOptions:y={},template:_={},editSource:v={},ignoreOrder:C={},allowTrailingZeros:j={},partialScoring:w={},maxResponseAreas:E}=e||{},{errors:S,extraCSSRules:A,promptEnabled:O,rationaleEnabled:x,spellCheckEnabled:I,teacherInstructionsEnabled:T,toolbarEditorPosition:M,responses:k,equationEditor:P}=n||{},{prompt:R,rationale:D,responseAreas:K,teacherInstructions:z,responses:$={}}=S||{},q=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(e),B={"language.enabled":d.settings&&Mr(d.label,!0),language:d.settings&&d.enabled&&Ir(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&Mr(p.label),rationaleEnabled:c.settings&&Mr(c.label),promptEnabled:l.settings&&Mr(l.label),spellCheckEnabled:g.settings&&Mr(g.label),playerSpellCheckEnabled:f.settings&&Mr(f.label),"editSource.enabled":xr([v,"optionalAccess",e=>e.settings])&&Mr(v.label,!0),partialScoring:w.settings&&Mr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===M?"top":"bottom"},W=(e={},t={})=>({...t,...e});return fr.createElement(Sr.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:fr.createElement(Tr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&fr.createElement(kr,{label:p.label},fr.createElement(Pr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:m&&m.teacherInstructions||L,maxImageHeight:b&&b.teacherInstructions||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),z&&fr.createElement(Rr,null,z)),O&&fr.createElement(kr,{label:l.label},fr.createElement(Pr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&fr.createElement(Rr,null,R)),fr.createElement(Br,null,fr.createElement(qr,{component:"div"},"Response Template"),fr.createElement(Fr,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},fr.createElement(jr,{fontSize:"small",color:"primary"}))),fr.createElement(Kr,{activePlugins:Or,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(xr([_,"optionalAccess",e=>e.inputConfiguration]),i),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>$,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:E},markup:n.slateMarkup,onChange:this.onChange,imageSupport:t,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:K,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&fr.createElement(Dr,null,K),fr.createElement(qr,null,"Define Response"),fr.createElement(zr,{label:"Response Template Equation Editor"},fr.createElement($r,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},fr.createElement(vr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),fr.createElement(vr,{value:"integers"},"Numeric - Integers"),fr.createElement(vr,{value:"decimals"},"Numeric - Decimals"),fr.createElement(vr,{value:"fractions"},"Numeric - Fractions"),fr.createElement(vr,{value:1},"Grade 1 - 2"),fr.createElement(vr,{value:3},"Grade 3 - 5"),fr.createElement(vr,{value:6},"Grade 6 - 7"),fr.createElement(vr,{value:8},"Grade 8 - HS"),fr.createElement(vr,{value:"geometry"},"Geometry"),fr.createElement(vr,{value:"advanced-algebra"},"Advanced Algebra"),fr.createElement(vr,{value:"statistics"},"Statistics"),fr.createElement(vr,{value:"item-authoring"},"Item Authoring"))),Object.keys(k||{}).map((e,t)=>{const n=k[t];return n?fr.createElement(sr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),x&&fr.createElement(kr,{label:c.label},fr.createElement(Pr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(xr([c,"optionalAccess",e=>e.inputConfiguration]),{...i,math:{controlledKeypadMode:!1}}),spellCheck:I,maxImageWidth:m&&m.rationale||L,maxImageHeight:b&&b.rationale||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&fr.createElement(Rr,null,D)))}}Lr.__initStatic();var Ur={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Nr={ignoreOrder:{settings:!0,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!0,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const Wr=e,{createRoot:Hr}=s;function Zr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const Yr=i("math-templated:configure");class Vr extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:r,responses:o={}}=e,a=Object.keys(o).reduce((e,a)=>{const i=o[a];return e[a]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||r},e},{}),i={...Ur,...e,responses:a},s=i.slateMarkup||gr(i.markup,i.responses),l=dr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{E(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Yr('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e})))}),{...i,slateMarkup:s,markup:l}}}constructor(){super(),this._root=null,this._model=Vr.prepareModel(),this._configuration=Nr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Vr.prepareModel(e),this._render()}set configuration(e){this._configuration=fn(e,Nr),Zr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Zr([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find(e=>e.value===this._model.language)||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new jn(this._model,t))}onModelChanged(e,t){this._model=Vr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new An(e))}onDeleteImage(e,t){this.dispatchEvent(new En(e,t))}insertSound(e){this.dispatchEvent(new Tn(e))}onDeleteSound(e,t){this.dispatchEvent(new xn(e,t))}_render(){Yr("_render");let e=Wr.createElement(Lr,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=Hr(this)),this._root.render(e)}disconnectedCallback(){this._root&&this._root.unmount()}}Vr.__initStatic();export{Vr as default};
|
|
1
|
+
import{_dll_react as e,_dll_prop_types as t,_dll_mui__material as n,_dll_mui__material_styles as r,_dll_mui__icons_material as o,_dll_pie_lib__render_ui as a,_dll_debug as i,_dll_react_dom_client as s}from"../../../@pie-lib/shared-module@^5.2.10/module/index.js";import{_dll_pie_lib__config_ui as l}from"../../../@pie-lib/config-module@^4.0.15/module/index.js";import{_dll_pie_lib__editable_html_tip_tap as c}from"../../../@pie-lib/editable-html-module@^7.1.12/module/index.js";import{_dll_pie_lib__math_toolbar as u}from"../../../@pie-lib/math-edit-module@^4.2.10/module/index.js";var p="object"==typeof global&&global&&global.Object===Object&&global,d="object"==typeof self&&self&&self.Object===Object&&self,h=p||d||Function("return this")(),g=h.Symbol,f=Object.prototype,m=f.hasOwnProperty,b=f.toString,y=g?g.toStringTag:void 0,_=Object.prototype.toString,v=g?g.toStringTag:void 0;function C(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":v&&v in Object(e)?function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var r=!0}catch(e){}var o=b.call(e);return r&&(t?e[y]=n:delete e[y]),o}(e):function(e){return _.call(e)}(e)}function j(e){return null!=e&&"object"==typeof e}function w(e){return"symbol"==typeof e||j(e)&&"[object Symbol]"==C(e)}var E=Array.isArray,S=g?g.prototype:void 0,A=S?S.toString:void 0;function O(e){if("string"==typeof e)return e;if(E(e))return function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}(e,O)+"";if(w(e))return A?A.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}var x=/\s/,I=/^\s+/;function T(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var k=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,P=/^0o[0-7]+$/i,R=parseInt;function D(e){if("number"==typeof e)return e;if(w(e))return NaN;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(I,""):e}(e);var n=M.test(e);return n||P.test(e)?R(e.slice(2),n?2:8):k.test(e)?NaN:+e}function K(e){return e}function z(e){if(!T(e))return!1;var t=C(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var $,q=h["__core-js_shared__"],B=($=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+$:"",F=Function.prototype.toString;function L(e){if(null!=e){try{return F.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var U=/^\[object .+?Constructor\]$/,N=Function.prototype,W=Object.prototype,H=N.toString,Z=W.hasOwnProperty,Y=RegExp("^"+H.call(Z).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function V(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!T(e)||(t=e,B&&B in t))&&(z(e)?Y:U).test(L(e));var t}(n)?n:void 0}var G,J,Q,X=V(h,"WeakMap"),ee=Object.create,te=function(){function e(){}return function(t){if(!T(t))return{};if(ee)return ee(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ne=Date.now,re=function(){try{var e=V(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),oe=re,ae=oe?function(e,t){return oe(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:K,ie=(G=ae,J=0,Q=0,function(){var e=ne(),t=16-(e-Q);if(Q=e,t>0){if(++J>=800)return arguments[0]}else J=0;return G.apply(void 0,arguments)}),se=/^(?:0|[1-9]\d*)$/;function le(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&se.test(e))&&e>-1&&e%1==0&&e<t}function ce(e,t,n){"__proto__"==t&&oe?oe(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ue(e,t){return e===t||e!=e&&t!=t}var pe=Object.prototype.hasOwnProperty;function de(e,t,n){var r=e[t];pe.call(e,t)&&ue(r,n)&&(void 0!==n||t in e)||ce(e,t,n)}function he(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var s=t[a],l=r?r(n[s],e[s],s,n,e):void 0;void 0===l&&(l=e[s]),o?ce(n,s,l):de(n,s,l)}return n}var ge=Math.max;function fe(e,t,n){return t=ge(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=ge(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=n(i),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,s)}}function me(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function be(e){return null!=e&&me(e.length)&&!z(e)}var ye=Object.prototype;function _e(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||ye)}function ve(e){return j(e)&&"[object Arguments]"==C(e)}var Ce=Object.prototype,je=Ce.hasOwnProperty,we=Ce.propertyIsEnumerable,Ee=ve(function(){return arguments}())?ve:function(e){return j(e)&&je.call(e,"callee")&&!we.call(e,"callee")},Se="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ae=Se&&"object"==typeof module&&module&&!module.nodeType&&module,Oe=Ae&&Ae.exports===Se?h.Buffer:void 0,xe=(Oe?Oe.isBuffer:void 0)||function(){return!1},Ie={};function Te(e){return function(t){return e(t)}}Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var ke="object"==typeof exports&&exports&&!exports.nodeType&&exports,Me=ke&&"object"==typeof module&&module&&!module.nodeType&&module,Pe=Me&&Me.exports===ke&&p.process,Re=function(){try{return Me&&Me.require&&Me.require("util").types||Pe&&Pe.binding&&Pe.binding("util")}catch(e){}}(),De=Re&&Re.isTypedArray,Ke=De?Te(De):function(e){return j(e)&&me(e.length)&&!!Ie[C(e)]},ze=Object.prototype.hasOwnProperty;function $e(e,t){var n=E(e),r=!n&&Ee(e),o=!n&&!r&&xe(e),a=!n&&!r&&!o&&Ke(e),i=n||r||o||a,s=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=s.length;for(var c in e)!t&&!ze.call(e,c)||i&&("length"==c||o&&("offset"==c||"parent"==c)||a&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||le(c,l))||s.push(c);return s}function qe(e,t){return function(n){return e(t(n))}}var Be=qe(Object.keys,Object),Fe=Object.prototype.hasOwnProperty;function Le(e){return be(e)?$e(e):function(e){if(!_e(e))return Be(e);var t=[];for(var n in Object(e))Fe.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}var Ue=Object.prototype.hasOwnProperty;function Ne(e){return be(e)?$e(e,!0):function(e){if(!T(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=_e(e),n=[];for(var r in e)("constructor"!=r||!t&&Ue.call(e,r))&&n.push(r);return n}(e)}var We=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,He=/^\w*$/,Ze=V(Object,"create"),Ye=Object.prototype.hasOwnProperty,Ve=Object.prototype.hasOwnProperty;function Ge(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Je(e,t){for(var n=e.length;n--;)if(ue(e[n][0],t))return n;return-1}Ge.prototype.clear=function(){this.__data__=Ze?Ze(null):{},this.size=0},Ge.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Ge.prototype.get=function(e){var t=this.__data__;if(Ze){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Ye.call(t,e)?t[e]:void 0},Ge.prototype.has=function(e){var t=this.__data__;return Ze?void 0!==t[e]:Ve.call(t,e)},Ge.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ze&&void 0===t?"__lodash_hash_undefined__":t,this};var Qe=Array.prototype.splice;function Xe(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Xe.prototype.clear=function(){this.__data__=[],this.size=0},Xe.prototype.delete=function(e){var t=this.__data__,n=Je(t,e);return!(n<0||(n==t.length-1?t.pop():Qe.call(t,n,1),--this.size,0))},Xe.prototype.get=function(e){var t=this.__data__,n=Je(t,e);return n<0?void 0:t[n][1]},Xe.prototype.has=function(e){return Je(this.__data__,e)>-1},Xe.prototype.set=function(e,t){var n=this.__data__,r=Je(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};var et=V(h,"Map");function tt(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function rt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(rt.Cache||nt),n}nt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ge,map:new(et||Xe),string:new Ge}},nt.prototype.delete=function(e){var t=tt(this,e).delete(e);return this.size-=t?1:0,t},nt.prototype.get=function(e){return tt(this,e).get(e)},nt.prototype.has=function(e){return tt(this,e).has(e)},nt.prototype.set=function(e,t){var n=tt(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},rt.Cache=nt;var ot=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,at=/\\(\\)?/g,it=function(){var e=rt(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ot,function(e,n,r,o){t.push(r?o.replace(at,"$1"):n||e)}),t},function(e){return 500===t.size&&t.clear(),e}),t=e.cache;return e}(),st=it;function lt(e,t){return E(e)?e:function(e,t){if(E(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!w(e))||He.test(e)||!We.test(e)||null!=t&&e in Object(t)}(e,t)?[e]:st(function(e){return null==e?"":O(e)}(e))}function ct(e){if("string"==typeof e||w(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function ut(e,t){for(var n=0,r=(t=lt(t,e)).length;null!=e&&n<r;)e=e[ct(t[n++])];return n&&n==r?e:void 0}function pt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}var dt=g?g.isConcatSpreadable:void 0;function ht(e){return E(e)||Ee(e)||!!(dt&&e&&e[dt])}function gt(e,t,n,r,o){var a=-1,i=e.length;for(n||(n=ht),o||(o=[]);++a<i;){var s=e[a];t>0&&n(s)?t>1?gt(s,t-1,n,r,o):pt(o,s):r||(o[o.length]=s)}return o}function ft(e){return null!=e&&e.length?gt(e,1):[]}var mt=qe(Object.getPrototypeOf,Object);function bt(e){var t=this.__data__=new Xe(e);this.size=t.size}bt.prototype.clear=function(){this.__data__=new Xe,this.size=0},bt.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},bt.prototype.get=function(e){return this.__data__.get(e)},bt.prototype.has=function(e){return this.__data__.has(e)},bt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Xe){var r=n.__data__;if(!et||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nt(r)}return n.set(e,t),this.size=n.size,this};var yt="object"==typeof exports&&exports&&!exports.nodeType&&exports,_t=yt&&"object"==typeof module&&module&&!module.nodeType&&module,vt=_t&&_t.exports===yt?h.Buffer:void 0,Ct=vt?vt.allocUnsafe:void 0;function jt(){return[]}var wt=Object.prototype.propertyIsEnumerable,Et=Object.getOwnPropertySymbols,St=Et?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i)&&(a[o++]=i)}return a}(Et(e),function(t){return wt.call(e,t)}))}:jt,At=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)pt(t,St(e)),e=mt(e);return t}:jt;function Ot(e,t,n){var r=t(e);return E(e)?r:pt(r,n(e))}function xt(e){return Ot(e,Le,St)}function It(e){return Ot(e,Ne,At)}var Tt=V(h,"DataView"),kt=V(h,"Promise"),Mt=V(h,"Set"),Pt="[object Map]",Rt="[object Promise]",Dt="[object Set]",Kt="[object WeakMap]",zt="[object DataView]",$t=L(Tt),qt=L(et),Bt=L(kt),Ft=L(Mt),Lt=L(X),Ut=C;(Tt&&Ut(new Tt(new ArrayBuffer(1)))!=zt||et&&Ut(new et)!=Pt||kt&&Ut(kt.resolve())!=Rt||Mt&&Ut(new Mt)!=Dt||X&&Ut(new X)!=Kt)&&(Ut=function(e){var t=C(e),n="[object Object]"==t?e.constructor:void 0,r=n?L(n):"";if(r)switch(r){case $t:return zt;case qt:return Pt;case Bt:return Rt;case Ft:return Dt;case Lt:return Kt}return t});var Nt=Ut,Wt=Object.prototype.hasOwnProperty,Ht=h.Uint8Array;function Zt(e){var t=new e.constructor(e.byteLength);return new Ht(t).set(new Ht(e)),t}var Yt=/\w*$/,Vt=g?g.prototype:void 0,Gt=Vt?Vt.valueOf:void 0;var Jt=Re&&Re.isMap,Qt=Jt?Te(Jt):function(e){return j(e)&&"[object Map]"==Nt(e)},Xt=Re&&Re.isSet,en=Xt?Te(Xt):function(e){return j(e)&&"[object Set]"==Nt(e)},tn="[object Arguments]",nn="[object Function]",rn="[object Object]",on={};function an(e,t,n,r,o,a){var i,s=1&t,l=2&t,c=4&t;if(n&&(i=o?n(e,r,o,a):n(e)),void 0!==i)return i;if(!T(e))return e;var u=E(e);if(u){if(i=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Wt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!s)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,i)}else{var p=Nt(e),d=p==nn||"[object GeneratorFunction]"==p;if(xe(e))return function(e,t){if(t)return e.slice();var n=e.length,r=Ct?Ct(n):new e.constructor(n);return e.copy(r),r}(e,s);if(p==rn||p==tn||d&&!o){if(i=l||d?{}:function(e){return"function"!=typeof e.constructor||_e(e)?{}:te(mt(e))}(e),!s)return l?function(e,t){return he(e,At(e),t)}(e,function(e,t){return e&&he(t,Ne(t),e)}(i,e)):function(e,t){return he(e,St(e),t)}(e,function(e,t){return e&&he(t,Le(t),e)}(i,e))}else{if(!on[p])return o?e:{};i=function(e,t,n){var r,o,a,i=e.constructor;switch(t){case"[object ArrayBuffer]":return Zt(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(e,t){var n=t?Zt(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(a=new(o=e).constructor(o.source,Yt.exec(o))).lastIndex=o.lastIndex,a;case"[object Symbol]":return r=e,Gt?Object(Gt.call(r)):{}}}(e,p,s)}}a||(a=new bt);var h=a.get(e);if(h)return h;a.set(e,i),en(e)?e.forEach(function(r){i.add(an(r,t,n,r,e,a))}):Qt(e)&&e.forEach(function(r,o){i.set(o,an(r,t,n,o,e,a))});var g=u?void 0:(c?l?It:xt:l?Ne:Le)(e);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n););}(g||e,function(r,o){g&&(r=e[o=r]),de(i,o,an(r,t,n,o,e,a))}),i}function sn(e){return an(e,5)}function ln(e,t){return null!=e&&t in Object(e)}on[tn]=on["[object Array]"]=on["[object ArrayBuffer]"]=on["[object DataView]"]=on["[object Boolean]"]=on["[object Date]"]=on["[object Float32Array]"]=on["[object Float64Array]"]=on["[object Int8Array]"]=on["[object Int16Array]"]=on["[object Int32Array]"]=on["[object Map]"]=on["[object Number]"]=on[rn]=on["[object RegExp]"]=on["[object Set]"]=on["[object String]"]=on["[object Symbol]"]=on["[object Uint8Array]"]=on["[object Uint8ClampedArray]"]=on["[object Uint16Array]"]=on["[object Uint32Array]"]=!0,on["[object Error]"]=on[nn]=on["[object WeakMap]"]=!1;var cn=function(){return h.Date.now()},un=Math.max,pn=Math.min;var dn=Object.prototype,hn=dn.hasOwnProperty,gn=function(e){return ie(fe(e,void 0,K),e+"")}(function(e,t){e=Object(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&function(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?be(n)&&le(t,n.length):"string"==r&&t in n)&&ue(n[t],e)}(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=Ne(a),s=-1,l=i.length;++s<l;){var c=i[s],u=e[c];(void 0===u||ue(u,dn[c])&&!hn.call(e,c))&&(e[c]=a[c])}return e}),fn=gn;function mn(e,t,n,r){if(!T(e))return e;for(var o=-1,a=(t=lt(t,e)).length,i=a-1,s=e;null!=s&&++o<a;){var l=ct(t[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(o!=i){var u=s[l];void 0===(c=r?r(u,l,s):void 0)&&(c=T(u)?u:le(t[o+1])?[]:{})}de(s,l,c),s=s[l]}return e}function bn(e,t){return function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],s=ut(e,i);n(s,i)&&mn(a,lt(i,e),s)}return a}(e,t,function(t,n){return function(e,t){return null!=e&&function(e,t,n){for(var r=-1,o=(t=lt(t,e)).length,a=!1;++r<o;){var i=ct(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&me(o)&&le(i,o)&&(E(e)||Ee(e))}(e,t,ln)}(e,n)})}var yn=function(e){return ie(fe(e,void 0,ft),e+"")}(function(e,t){return null==e?{}:bn(e,t)}),_n=yn,vn={};Object.defineProperty(vn,"__esModule",{value:!0});class Cn extends CustomEvent{constructor(e,t=!1){super(Cn.TYPE,{bubbles:!0,detail:{update:e,reset:t}}),this.update=e,this.reset=t}}Cn.TYPE="model.updated";var jn=vn.ModelUpdatedEvent=Cn;class wn extends CustomEvent{constructor(e,t){super(wn.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}wn.TYPE="delete.image";var En=vn.DeleteImageEvent=wn;class Sn extends CustomEvent{constructor(e){super(Sn.TYPE,{bubbles:!0,detail:e}),this.handler=e}}Sn.TYPE="insert.image";var An=vn.InsertImageEvent=Sn;class On extends CustomEvent{constructor(e,t){super(On.TYPE,{bubbles:!0,detail:{src:e,done:t}}),this.src=e,this.done=t}}On.TYPE="delete.sound";var xn=vn.DeleteSoundEvent=On;class In extends CustomEvent{constructor(e){super(In.TYPE,{bubbles:!0,detail:e}),this.handler=e}}In.TYPE="insert.sound";var Tn=vn.InsertSoundEvent=In;const kn=e,Mn=t,{Card:Pn}=n,{CardContent:Rn}=n,{Button:Dn}=n,{FormControlLabel:Kn}=n,{Typography:zn}=n,{InputLabel:$n}=n,{Checkbox:qn}=n,{Select:Bn}=n,{MenuItem:Fn}=n,{IconButton:Ln}=n,{styled:Un}=r,{Delete:Nn}=o,{color:Wn}=a,{InputContainer:Hn}=l,{MathToolbar:Zn}=u,Yn=Un(Pn)(({theme:e})=>({marginBottom:e.spacing(2.5),width:"100%",minWidth:"548px",border:`1px solid ${e.palette.grey[700]}`,display:"flex",flexDirection:"column",justifyContent:"space-between"})),Vn=Un(Rn)(({theme:e})=>({paddingBottom:`${e.spacing(2)} !important`})),Gn=Un(zn)({fontWeight:700,fontSize:"1.2rem",flex:3}),Jn=Un(Hn)(({theme:e})=>({flex:2,"& > *:not(label)":{marginTop:e.spacing(1)}})),Qn=Un("div")(({theme:e})=>({marginBottom:e.spacing(2)})),Xn=Un("div")({display:"flex",alignItems:"center",justifyContent:"space-between"}),er=Un("div")({display:"flex"}),tr=Un(Dn)(({theme:e})=>({border:`1px solid ${e.palette.grey.A400}`,color:Wn.text()})),nr=Un(Ln)(({theme:e})=>({marginLeft:e.spacing(1)})),rr=Un("div")(({theme:e})=>({fontSize:e.typography.fontSize-2,color:e.palette.error.main,paddingTop:e.spacing(1)})),or=Un("div")(({theme:e})=>({background:e.palette.grey.A100,color:e.palette.grey.A700,display:"inline",minWidth:"50px",padding:"8px",border:"1px solid #C0C3CF"})),ar=Un("div")({display:"flex",justifyContent:"space-between",alignItems:"center"}),ir=Un(qn)({color:`${Wn.tertiary()} !important`});if("undefined"!=typeof document){const e="math-templated-response-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n .response-editor {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 500px;\n max-width: 900px;\n height: auto;\n min-height: 40px;\n }\n .math-toolbar {\n width: 100%;\n }\n ",document.head.appendChild(t)}}class sr extends kn.Component{static __initStatic(){this.propTypes={defaultResponse:Mn.bool,error:Mn.object,mode:Mn.oneOfType([Mn.string,Mn.number]),onResponseChange:Mn.func.isRequired,onResponseDone:Mn.func.isRequired,response:Mn.object.isRequired,cIgnoreOrder:Mn.object.isRequired,cAllowTrailingZeros:Mn.object.isRequired,responseKey:Mn.number.isRequired}}static __initStatic2(){this.defaultProps={defaultResponse:!1,mode:"8"}}constructor(e){super(e),sr.prototype.__init.call(this),sr.prototype.__init2.call(this),sr.prototype.__init3.call(this),sr.prototype.__init4.call(this),sr.prototype.__init5.call(this),sr.prototype.__init6.call(this),sr.prototype.__init7.call(this),sr.prototype.__init8.call(this),sr.prototype.__init9.call(this),sr.prototype.__init10.call(this),sr.prototype.__init11.call(this);const{response:{alternates:t}={}}=e||{},n=Object.keys(t||{}).length;this.state={alternateIdCounter:n+1,showKeypad:{openCount:0,main:!1}}}__init(){this.onChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.value,r(a,o)}}__init2(){this.onConfigChanged=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a[e]=t.target.checked,r(a,o)}}__init3(){this.onLiteralOptionsChange=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o[e]=!t[e],n(o,r)}}__init4(){this.onAnswerChange=e=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};o.answer=e,n(o,r)}}__init5(){this.onAlternateAnswerChange=e=>t=>{const{response:n,onResponseChange:r,responseKey:o}=this.props,a={...n};a.alternates[e]=t,r(a,o)}}__init6(){this.onAddAlternate=()=>{const{response:e,onResponseChange:t,responseKey:n}=this.props,{alternateIdCounter:r}=this.state,o={...e};o.alternates||(o.alternates={}),o.alternates[r]="",t(o,n),this.setState({alternateIdCounter:r+1})}}__init7(){this.onRemoveAlternate=e=>()=>{const{response:t,onResponseChange:n,responseKey:r}=this.props,o={...t};delete o.alternates[e],n(o,r),this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount-1:t.showKeypad.openCount}}))}}__init8(){this.onDone=()=>{const{onResponseDone:e}=this.props;this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.openCount-1,main:!1}})),e()}}__init9(){this.onFocus=()=>{this.setState(e=>({showKeypad:{...e.showKeypad,openCount:e.showKeypad.main?e.showKeypad.openCount:e.showKeypad.openCount+1,main:!0}}))}}__init10(){this.onAlternateFocus=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad[e]?t.showKeypad.openCount:t.showKeypad.openCount+1,[e]:!0}}))}}__init11(){this.onAlternateDone=e=>()=>{this.setState(t=>({showKeypad:{...t.showKeypad,openCount:t.showKeypad.openCount-1,[e]:!1}}))}}render(){const{mode:e,responseKey:t,response:n,cAllowTrailingZeros:r,cIgnoreOrder:o,error:a}=this.props,{showKeypad:i}=this.state,{validation:s,answer:l,alternates:c,ignoreOrder:u,allowTrailingZeros:p}=n,d=Object.keys(c||{}).length>0,h={editor:"response-editor",mathToolbar:"math-toolbar"},g={minHeight:(i.openCount>0?430:230)+"px"},f=`R ${parseInt(t)+1}`;return kn.createElement(Yn,{style:g},kn.createElement(Vn,null,kn.createElement(Xn,null,kn.createElement(Gn,{component:"div"},"Response for ",kn.createElement(or,null,f)),kn.createElement(Jn,{label:"Validation"},kn.createElement(Bn,{onChange:this.onChange("validation"),value:s||"literal",MenuProps:{transitionDuration:{enter:225,exit:195}}},kn.createElement(Fn,{value:"literal"},"Literal Validation"),kn.createElement(Fn,{value:"symbolic"},"Symbolic Validation")))),"literal"===s&&kn.createElement(er,null,r.enabled&&kn.createElement(Kn,{label:r.label,control:kn.createElement(ir,{checked:p,onChange:this.onLiteralOptionsChange("allowTrailingZeros")})}),o.enabled&&kn.createElement(Kn,{label:o.label,control:kn.createElement(ir,{checked:u,onChange:this.onLiteralOptionsChange("ignoreOrder")})})),kn.createElement(Qn,null,kn.createElement($n,null,"Correct Answer"),kn.createElement(Zn,{keypadMode:e,classNames:h,controlledKeypad:!0,showKeypad:i.main,latex:l||"",onChange:this.onAnswerChange,onFocus:this.onFocus,onDone:this.onDone,error:a&&a.answer}),a&&a.answer?kn.createElement(rr,null,a.answer):null),d&&Object.keys(c).map((t,n)=>kn.createElement(Qn,{key:t},kn.createElement($n,null,"Alternate",Object.keys(c).length>1?` ${n+1}`:""),kn.createElement(ar,null,kn.createElement(Zn,{classNames:h,controlledKeypad:!0,keypadMode:e,showKeypad:i[t]||!1,latex:c[t]||"",onChange:this.onAlternateAnswerChange(t),onFocus:this.onAlternateFocus(t),onDone:this.onAlternateDone(t),error:a&&a[t]}),kn.createElement(nr,{onClick:this.onRemoveAlternate(t),size:"large"},kn.createElement(Nn,null))),a&&a[t]?kn.createElement(rr,null,a[t]):null)),kn.createElement(tr,{type:"primary",onClick:this.onAddAlternate},"ADD ALTERNATE")))}}sr.__initStatic(),sr.__initStatic2();const lr="imes|riangle|an|heta|herefore",cr="throot|parallel|cong|approx|eq|e|sim",ur=new RegExp(`(\\t(?!${lr}))|(\\n(?!${cr}))|(\\\\t(?!${lr}))|(\\\\n(?!${cr}))`,"g"),pr=e=>e.replace(ur,"").replace(/\\"/g,'"').replace(/\\\//g,"/"),dr=e=>{const t=((e="")=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(pr(e||"")||"");return t.querySelectorAll('[data-type="math_templated"]').forEach(e=>e.replaceWith(`{{${e.dataset.index}}}`)),t.innerHTML},hr=/\{\{(\d+)\}\}/g,gr=(e,t)=>e?pr(e).replace(hr,(e,n)=>{const r=function(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}([t,"access",e=>e[n],"optionalAccess",e=>e.answer])||"";return`<span data-type="math_templated" data-index="${n}" data-value="${r}"></span>`}):"",fr=e,mr=t,{styled:br}=r,{Typography:yr}=n,{Select:_r}=n,{MenuItem:vr}=n,{Tooltip:Cr}=n,{Info:jr}=o,{InputContainer:wr}=l,{settings:Er}=l,{layout:Sr}=l,Ar=c,{ALL_PLUGINS:Or}=c;function xr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const{dropdown:Ir}=Er,{Panel:Tr,toggle:kr}=Er,Mr=br(wr)(({theme:e})=>({width:"100%",paddingTop:e.spacing(2),marginBottom:e.spacing(2)})),Pr=br(Ar)({width:"100%"}),Rr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginTop:e.spacing(1)})),Dr=br("div")(({theme:e})=>({color:e.palette.error.main,fontSize:"0.75rem",marginBottom:e.spacing(1)})),Kr=br(Ar)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),marginBottom:e.spacing(3)})),zr=br(wr)(({theme:e})=>({width:"100%",marginTop:e.spacing(2),"& > *:not(label)":{marginTop:e.spacing(1)},marginBottom:e.spacing(2)})),$r=br(_r)({width:"100%"}),qr=br(yr)(({theme:e})=>({fontSize:1.25*e.typography.fontSize,fontWeight:"bold"})),Br=br("div")({display:"flex",alignItems:"center",gap:"8px"}),Fr=br(Cr)(({theme:e})=>({"& .MuiTooltip-tooltip":{fontSize:e.typography.fontSize-2,whiteSpace:"pre",maxWidth:"500px"}}));class Lr extends fr.Component{constructor(...e){super(...e),Lr.prototype.__init.call(this),Lr.prototype.__init2.call(this),Lr.prototype.__init3.call(this),Lr.prototype.__init4.call(this),Lr.prototype.__init5.call(this),Lr.prototype.__init6.call(this),Lr.prototype.__init7.call(this),Lr.prototype.__init8.call(this),Lr.prototype.__init9.call(this)}static __initStatic(){this.propTypes={model:mr.object.isRequired,configuration:mr.object.isRequired,onModelChanged:mr.func.isRequired,onConfigurationChanged:mr.func.isRequired,imageSupport:mr.shape({add:mr.func.isRequired,delete:mr.func.isRequired}),uploadSoundSupport:mr.object}}__init(){this.state={}}componentDidMount(){const{model:{slateMarkup:e}}=this.props;this.setState({markup:e})}__init2(){this.handleChange=(e,t)=>{const{onModelChanged:n,model:r}=this.props,o=sn(r);o[e]=t,n(o)}}__init3(){this.onResponseChange=(e,t)=>{const{model:n,onModelChanged:r}=this.props,o={...n};o.responses[t]=e,r(o)}}__init4(){this.onResponseDone=()=>{const{model:e,onModelChanged:t}=this.props;t({...e,slateMarkup:gr(e.markup,e.responses)})}}__init5(){this.onChangeResponse=(e,t)=>{const{model:n,onModelChanged:r}=this.props,{responses:o}=n;o[e]?o[e][0].answer=t||"":o[e]=[{answer:t||"",id:"response"+e,allowSpaces:!0}],r({...n,responses:o})}}__init6(){this.onResponsesChanged=e=>{this.props.onModelChanged({...this.props.model,responses:e})}}__init7(){this.onChange=e=>{const{model:{responses:t,validationDefault:n,allowTrailingZerosDefault:r,ignoreOrderDefault:o},onModelChanged:a}=this.props,i={},s=(e=>{const t=document.createElement("div");return t.innerHTML=e.trim(),t})(e);s.querySelectorAll('[data-type="math_templated"]').forEach((e,a)=>{const{value:s,index:l}=e.dataset;s||(e.dataset.value=""),i[a]=t[l]||{allowSpaces:!0,validation:n||"symbolic",allowTrailingZeros:r||!1,ignoreOrder:o||!1,answer:"",alternates:{}},e.dataset.index=a.toString()});const l=dr(e);this.setState({cachedResponses:void 0},()=>a({...this.props.model,slateMarkup:s.innerHTML,responses:i,markup:l}))}}__init8(){this.onHandleAreaChange=function(e,t,n){var r=!0,o=!0;return T(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),function(e,t,n){var r,o,a,i,s,l,c=0,u=!1,p=!1,d=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function h(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function g(e){var n=e-l;return void 0===l||n>=t||n<0||p&&e-c>=a}function f(){var e=cn();if(g(e))return m(e);s=setTimeout(f,function(e){var n=t-(e-l);return p?pn(n,a-(e-c)):n}(e))}function m(e){return s=void 0,d&&r?h(e):(r=o=void 0,i)}function b(){var e=cn(),n=g(e);if(r=arguments,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(f,t),u?h(e):i}(l);if(p)return clearTimeout(s),s=setTimeout(f,t),h(l)}return void 0===s&&(s=setTimeout(f,t)),i}return t=D(t)||0,T(n)&&(u=!!n.leading,a=(p="maxWait"in n)?un(D(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=o=s=void 0},b.flush=function(){return void 0===s?i:m(cn())},b}(e,500,{leading:r,maxWait:500,trailing:o})}(e=>{const{model:{responses:t},onModelChanged:n}=this.props,{cachedResponses:r}=this.state;if(!e)return;const o=t?sn(t):{},a=r?sn(r):{};e.forEach(e=>{const t=e.index;!o[t]&&a[t]?(Object.assign(o,_n(a,t)),Object.prototype.hasOwnProperty.call(a,t)&&delete a[t]):(Object.assign(a,_n(o,t)),Object.prototype.hasOwnProperty.call(o,t)&&delete o[t])}),this.setState({cachedResponses:a},()=>n({...this.props.model,responses:o}))},0,{trailing:!1,leading:!0})}__init9(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{},r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=xr([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return r?r.attributes&&r.attributes["data-keypad"]?r:e(r,n+1):null}(r):null;t&&n&&xr([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}render(){const{configuration:e,imageSupport:t,model:n,onConfigurationChanged:r,onModelChanged:o,uploadSoundSupport:a}=this.props,{baseInputConfiguration:i={},contentDimensions:s={},prompt:l={},rationale:c={},settingsPanelDisabled:u,teacherInstructions:p={},language:d={},languageChoices:h={},spellCheck:g={},playerSpellCheck:f={},maxImageWidth:m={},maxImageHeight:b={},mathMlOptions:y={},template:_={},editSource:v={},ignoreOrder:C={},allowTrailingZeros:j={},partialScoring:w={},maxResponseAreas:E}=e||{},{errors:S,extraCSSRules:A,promptEnabled:O,rationaleEnabled:x,spellCheckEnabled:I,teacherInstructionsEnabled:T,toolbarEditorPosition:k,responses:M,equationEditor:P}=n||{},{prompt:R,rationale:D,responseAreas:K,teacherInstructions:z,responses:$={}}=S||{},q=(e=>{const{maxResponseAreas:t}=e;return"Validation requirements:\nCorrect answers should not be blank.\nEach answer defined for a response area should be unique.\nThere should be at least 1 "+(t?`and at most ${t} `:"")+"response area"+(t?"s":"")+" defined."})(e),B={"language.enabled":d.settings&&kr(d.label,!0),language:d.settings&&d.enabled&&Ir(h.label,h.options)},F={teacherInstructionsEnabled:p.settings&&kr(p.label),rationaleEnabled:c.settings&&kr(c.label),promptEnabled:l.settings&&kr(l.label),spellCheckEnabled:g.settings&&kr(g.label),playerSpellCheckEnabled:f.settings&&kr(f.label),"editSource.enabled":xr([v,"optionalAccess",e=>e.settings])&&kr(v.label,!0),partialScoring:w.settings&&kr(w.label)},L=m&&m.prompt,U=b&&b.prompt,N={position:"top"===k?"top":"bottom"},W=(e={},t={})=>({...t,...e});return fr.createElement(Sr.ConfigLayout,{extraCSSRules:A,dimensions:s,hideSettings:u,settings:fr.createElement(Tr,{model:n,configuration:e,onChangeModel:e=>o(e),onChangeConfiguration:r,groups:{Settings:B,Properties:F}})},T&&fr.createElement(Mr,{label:p.label},fr.createElement(Pr,{markup:n.teacherInstructions||"",onChange:e=>this.handleChange("teacherInstructions",e),imageSupport:t,nonEmpty:!1,error:z,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:m&&m.teacherInstructions||L,maxImageHeight:b&&b.teacherInstructions||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),z&&fr.createElement(Rr,null,z)),O&&fr.createElement(Mr,{label:l.label},fr.createElement(Pr,{markup:n.prompt,onChange:e=>this.handleChange("prompt",e),imageSupport:t,nonEmpty:!1,disableUnderline:!0,error:R,toolbarOpts:N,pluginProps:W(xr([p,"optionalAccess",e=>e.inputConfiguration]),i),spellCheck:I,maxImageWidth:L,maxImageHeight:U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),R&&fr.createElement(Rr,null,R)),fr.createElement(Br,null,fr.createElement(qr,{component:"div"},"Response Template"),fr.createElement(Fr,{disableFocusListener:!0,disableTouchListener:!0,placement:"right",title:q},fr.createElement(jr,{fontSize:"small",color:"primary"}))),fr.createElement(Kr,{activePlugins:Or,toolbarOpts:{position:"top"},spellCheck:I,pluginProps:W(xr([_,"optionalAccess",e=>e.inputConfiguration]),i),responseAreaProps:{type:"math-templated",respAreaToolbar:null,error:()=>$,onHandleAreaChange:this.onHandleAreaChange,maxResponseAreas:E},markup:n.slateMarkup,onChange:this.onChange,imageSupport:t,disableImageAlignmentButtons:!0,onBlur:this.onBlur,disabled:!1,highlightShape:!1,error:K,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),K&&fr.createElement(Dr,null,K),fr.createElement(qr,null,"Define Response"),fr.createElement(zr,{label:"Response Template Equation Editor"},fr.createElement($r,{MenuProps:{transitionDuration:{enter:225,exit:195}},onChange:e=>this.handleChange("equationEditor",e.target.value),value:P},fr.createElement(vr,{value:"non-negative-integers"},"Numeric - Non-Negative Integers"),fr.createElement(vr,{value:"integers"},"Numeric - Integers"),fr.createElement(vr,{value:"decimals"},"Numeric - Decimals"),fr.createElement(vr,{value:"fractions"},"Numeric - Fractions"),fr.createElement(vr,{value:1},"Grade 1 - 2"),fr.createElement(vr,{value:3},"Grade 3 - 5"),fr.createElement(vr,{value:6},"Grade 6 - 7"),fr.createElement(vr,{value:8},"Grade 8 - HS"),fr.createElement(vr,{value:"geometry"},"Geometry"),fr.createElement(vr,{value:"advanced-algebra"},"Advanced Algebra"),fr.createElement(vr,{value:"statistics"},"Statistics"),fr.createElement(vr,{value:"item-authoring"},"Item Authoring"))),Object.keys(M||{}).map((e,t)=>{const n=M[t];return n?fr.createElement(sr,{key:t,responseKey:t,mode:P,response:n,onResponseChange:this.onResponseChange,onResponseDone:this.onResponseDone,index:t,cIgnoreOrder:C,cAllowTrailingZeros:j,error:$&&$[t]}):null}),x&&fr.createElement(Mr,{label:c.label},fr.createElement(Pr,{markup:n.rationale||"",onChange:e=>this.handleChange("rationale",e),imageSupport:t,nonEmpty:!1,error:D,toolbarOpts:N,pluginProps:W(xr([c,"optionalAccess",e=>e.inputConfiguration]),{...i,math:{controlledKeypadMode:!1}}),spellCheck:I,maxImageWidth:m&&m.rationale||L,maxImageHeight:b&&b.rationale||U,uploadSoundSupport:a,languageCharactersProps:[{language:"spanish"},{language:"special"}],mathMlOptions:y}),D&&fr.createElement(Rr,null,D)))}}Lr.__initStatic();var Ur={allowTrailingZerosDefault:!1,equationEditor:"8",ignoreOrderDefault:!1,markup:"",playerSpellCheckEnabled:!0,prompt:"",promptEnabled:!0,rationale:"",rationaleEnabled:!0,responses:{},spellCheckEnabled:!0,teacherInstructions:"",teacherInstructionsEnabled:!0,toolbarEditorPosition:"bottom",validationDefault:"literal"},Nr={ignoreOrder:{settings:!0,label:"Ignore Order",enabled:!0},allowTrailingZeros:{settings:!0,label:"Allow Trailing Zeros",enabled:!0},partialScoring:{settings:!0,label:"Allow Partial Scoring"},baseInputConfiguration:{html:{disabled:!0},audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1},h3:{disabled:!0},blockquote:{disabled:!0},textAlign:{disabled:!0},showParagraphs:{disabled:!1},separateParagraphs:{disabled:!0}},prompt:{label:"Prompt",settings:!0,inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},spellCheck:{label:"Spellcheck",settings:!1,enabled:!0},editSource:{label:"Edit Source",settings:!1,enabled:!1},playerSpellCheck:{label:"Student Spellcheck",settings:!0,enabled:!0},teacherInstructions:{settings:!0,label:"Teacher Instructions",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},rationale:{settings:!0,label:"Rationale",inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}},required:!1},template:{inputConfiguration:{audio:{disabled:!1},video:{disabled:!1},image:{disabled:!1}}},maxImageWidth:{teacherInstructions:300,prompt:300,rationale:300},maxImageHeight:{teacherInstructions:300,prompt:300,rationale:300},mathMlOptions:{mmlOutput:!1,mmlEditing:!1},language:{settings:!1,label:"Specify Language",enabled:!1},languageChoices:{label:"Language Choices",options:[]},maxResponseAreas:10};const Wr=e,{createRoot:Hr}=s;function Zr(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],a=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=a(n)):"call"!==o&&"optionalCall"!==o||(n=a((...e)=>n.call(t,...e)),t=void 0)}return n}const Yr=i("math-templated:configure");class Vr extends HTMLElement{static __initStatic(){this.prepareModel=(e={})=>{const{validationDefault:t,allowTrailingZerosDefault:n,ignoreOrderDefault:r,responses:o={}}=e,a=Object.keys(o).reduce((e,a)=>{const i=o[a];return e[a]={...i,validation:i.validation||t,allowTrailingZeros:i.allowTrailingZeros||n,ignoreOrder:i.ignoreOrder||r},e},{}),i={...Ur,...e,responses:a},s=i.slateMarkup||gr(i.markup,i.responses),l=dr(s);return i.responses&&Object.keys(i.responses).forEach(e=>{E(i.responses[e])&&(i.responses[e]=(i.responses[e]||[]).map((e,t)=>e.answer?e:(Yr('Choice does not contain "answer" property, which is required.',e),{answer:`${t}`,...e})))}),{...i,slateMarkup:s,markup:l}}}constructor(){super(),this._root=null,this._model=Vr.prepareModel(),this._configuration=Nr,this.onModelChanged=this.onModelChanged.bind(this),this.onConfigurationChanged=this.onConfigurationChanged.bind(this)}set model(e){this._model=Vr.prepareModel(e),this._render()}set configuration(e){this._configuration=fn(e,Nr),Zr([e,"access",e=>e.language,"optionalAccess",e=>e.enabled])?Zr([e,"access",e=>e.languageChoices,"optionalAccess",e=>e.options,"optionalAccess",e=>e.length])&&(this._model.language=e.languageChoices.options[0].value):e.language.settings&&this._model.language?(this._configuration.language.enabled=!0,this._configuration.languageChoices.options&&this._configuration.languageChoices.options.length||(this._configuration.languageChoices.options=[]),this._configuration.languageChoices.options.find(e=>e.value===this._model.language)||this._configuration.languageChoices.options.push({value:this._model.language,label:this._model.language})):delete this._model.language,this._render()}set disableSidePanel(e){this._disableSidePanel=e,this._render()}dispatchModelUpdated(e){const t=!!e;this.dispatchEvent(new jn(this._model,t))}onModelChanged(e,t){this._model=Vr.prepareModel(e),this._render(),this.dispatchModelUpdated(t)}onConfigurationChanged(e){this._configuration=e,this._render()}insertImage(e){this.dispatchEvent(new An(e))}onDeleteImage(e,t){this.dispatchEvent(new En(e,t))}insertSound(e){this.dispatchEvent(new Tn(e))}onDeleteSound(e,t){this.dispatchEvent(new xn(e,t))}_render(){Yr("_render");let e=Wr.createElement(Lr,{model:this._model,configuration:this._configuration,onModelChanged:this.onModelChanged,onConfigurationChanged:this.onConfigurationChanged,disableSidePanel:this._disableSidePanel,imageSupport:{add:this.insertImage.bind(this),delete:this.onDeleteImage.bind(this)},uploadSoundSupport:{add:this.insertSound.bind(this),delete:this.onDeleteSound.bind(this)}});this._root||(this._root=Hr(this)),this._root.render(e)}connectedCallback(){this._render()}disconnectedCallback(){this._root&&(this._root.unmount(),this._root=null)}}Vr.__initStatic();export{Vr as default};
|