@pie-element/explicit-constructed-response 11.1.4 → 11.1.5
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 +7 -0
- package/configure/CHANGELOG.md +7 -0
- package/configure/lib/index.js +4 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +3 -3
- 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 +4 -4
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
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
|
+
## [11.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@11.1.4...@pie-element/explicit-constructed-response@11.1.5) (2026-06-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- 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))
|
|
11
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
12
|
+
|
|
6
13
|
## [11.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response@11.1.3...@pie-element/explicit-constructed-response@11.1.4) (2026-06-17)
|
|
7
14
|
|
|
8
15
|
### Bug Fixes
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@10.1.4...@pie-element/explicit-constructed-response-configure@10.1.5) (2026-06-22)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- 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))
|
|
11
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
12
|
+
|
|
6
13
|
## [10.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/explicit-constructed-response-configure@10.1.3...@pie-element/explicit-constructed-response-configure@10.1.4) (2026-06-17)
|
|
7
14
|
|
|
8
15
|
### Bug Fixes
|
package/configure/lib/index.js
CHANGED
|
@@ -119,9 +119,13 @@ class ExplicitConstructedResponse extends HTMLElement {
|
|
|
119
119
|
}
|
|
120
120
|
this._root.render(element);
|
|
121
121
|
}
|
|
122
|
+
connectedCallback() {
|
|
123
|
+
this._render();
|
|
124
|
+
}
|
|
122
125
|
disconnectedCallback() {
|
|
123
126
|
if (this._root) {
|
|
124
127
|
this._root.unmount();
|
|
128
|
+
this._root = null;
|
|
125
129
|
}
|
|
126
130
|
}
|
|
127
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_debug","_lodashEs","_pieConfigureEvents","_main","_defaults","_markupUtils","log","debug","ExplicitConstructedResponse","HTMLElement","constructor","_defineProperty2","default","m","reset","_model","prepareModel","_render","dispatchModelUpdated","c","_configuration","newInputConfig","responseAreaInputConfiguration","inputConfiguration","onModelChanged","_root","sensibleDefaults","configuration","model","s","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","resetValue","dispatchEvent","ModelUpdatedEvent","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","onConfigurationChanged","imageSupport","add","bind","delete","uploadSoundSupport","createRoot","render","disconnectedCallback","unmount","exports","joinedObj","slateMarkup","createSlateMarkup","markup","choices","processedMarkup","processMarkup","Object","keys","forEach","key","isArray","map","item","index"],"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 './main';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('explicit-constructed-response:configure');\n\nexport default class ExplicitConstructedResponse extends HTMLElement {\n static prepareModel = (model = {}) => {\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.choices);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has choices without the \"value\" property\n // like: { label: 'test' }\n if (joinedObj.choices) {\n Object.keys(joinedObj.choices).forEach((key) => {\n if (isArray(joinedObj.choices[key])) {\n joinedObj.choices[key] = (joinedObj.choices[key] || []).map((item, index) => {\n if (!item.value) {\n log('Choice does not contain \"value\" property, which is required.', item);\n return { value: `${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 = ExplicitConstructedResponse.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n }\n\n set model(s) {\n this._model = ExplicitConstructedResponse.prepareModel(s);\n if (this._model.responseAreaInputConfiguration) {\n this._model.responseAreaInputConfiguration =\n this._configuration.responseAreaInputConfiguration?.inputConfiguration;\n }\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 = ExplicitConstructedResponse.prepareModel({\n ...this._model,\n ...m,\n });\n this._render();\n this.dispatchModelUpdated(reset);\n };\n\n onConfigurationChanged =(c) => {\n this._configuration = c;\n\n const newInputConfig = this._configuration?.responseAreaInputConfiguration?.inputConfiguration;\n\n this._model = {\n ...this._model,\n responseAreaInputConfiguration: newInputConfig,\n };\n\n this.onModelChanged(this._model);\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","_main","_defaults","_markupUtils","log","debug","ExplicitConstructedResponse","HTMLElement","constructor","_defineProperty2","default","m","reset","_model","prepareModel","_render","dispatchModelUpdated","c","_configuration","newInputConfig","responseAreaInputConfiguration","inputConfiguration","onModelChanged","_root","sensibleDefaults","configuration","model","s","defaults","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","disableSidePanel","_disableSidePanel","resetValue","dispatchEvent","ModelUpdatedEvent","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","onConfigurationChanged","imageSupport","add","bind","delete","uploadSoundSupport","createRoot","render","connectedCallback","disconnectedCallback","unmount","exports","joinedObj","slateMarkup","createSlateMarkup","markup","choices","processedMarkup","processMarkup","Object","keys","forEach","key","isArray","map","item","index"],"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 './main';\n\nimport sensibleDefaults from './defaults';\nimport { processMarkup, createSlateMarkup } from './markupUtils';\n\nconst log = debug('explicit-constructed-response:configure');\n\nexport default class ExplicitConstructedResponse extends HTMLElement {\n static prepareModel = (model = {}) => {\n const joinedObj = {\n ...sensibleDefaults.model,\n ...model,\n };\n const slateMarkup = joinedObj.slateMarkup || createSlateMarkup(joinedObj.markup, joinedObj.choices);\n const processedMarkup = processMarkup(slateMarkup);\n\n // this was added to treat an exception, when the model has choices without the \"value\" property\n // like: { label: 'test' }\n if (joinedObj.choices) {\n Object.keys(joinedObj.choices).forEach((key) => {\n if (isArray(joinedObj.choices[key])) {\n joinedObj.choices[key] = (joinedObj.choices[key] || []).map((item, index) => {\n if (!item.value) {\n log('Choice does not contain \"value\" property, which is required.', item);\n return { value: `${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 = ExplicitConstructedResponse.prepareModel();\n this._configuration = sensibleDefaults.configuration;\n }\n\n set model(s) {\n this._model = ExplicitConstructedResponse.prepareModel(s);\n if (this._model.responseAreaInputConfiguration) {\n this._model.responseAreaInputConfiguration =\n this._configuration.responseAreaInputConfiguration?.inputConfiguration;\n }\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 = ExplicitConstructedResponse.prepareModel({\n ...this._model,\n ...m,\n });\n this._render();\n this.dispatchModelUpdated(reset);\n };\n\n onConfigurationChanged =(c) => {\n this._configuration = c;\n\n const newInputConfig = this._configuration?.responseAreaInputConfiguration?.inputConfiguration;\n\n this._model = {\n ...this._model,\n responseAreaInputConfiguration: newInputConfig,\n };\n\n this.onModelChanged(this._model);\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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/explicit-constructed-response-configure",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.5",
|
|
4
4
|
"private": true,
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"modue": "src/index.js",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"@mui/icons-material": "^7.3.4",
|
|
11
11
|
"@mui/material": "^7.3.4",
|
|
12
12
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
13
|
-
"@pie-lib/config-ui": "13.0.
|
|
14
|
-
"@pie-lib/editable-html-tip-tap": "2.1.
|
|
13
|
+
"@pie-lib/config-ui": "13.0.9",
|
|
14
|
+
"@pie-lib/editable-html-tip-tap": "2.1.7",
|
|
15
15
|
"classnames": "^2.2.6",
|
|
16
16
|
"debug": "^4.1.1",
|
|
17
17
|
"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","_mathRendering","_main","InlineDropdown","HTMLElement","constructor","_defineProperty2","default","_model","_session","elem","React","createElement","Main","choices","disabled","displayType","feedback","language","markup","maxLengthPerChoice","maxLengthPerChoiceEnabled","mode","note","onChange","changeSession","playerSpellCheckEnabled","prompt","rationale","role","showNote","teacherInstructions","value","responseAreaInputConfiguration","_root","createRoot","render","queueMicrotask","renderMath","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","setLangAttribute","lang","slice","setAttribute","model","m","ModelSetEvent","s","connectedCallback","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport Main from './main';\n\nexport default class InlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\n this.setLangAttribute();\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n choices: this._model.choices,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n feedback: this._model.feedback,\n language: this._model.language,\n markup: this._model.markup,\n maxLengthPerChoice: this._model.maxLengthPerChoice,\n maxLengthPerChoiceEnabled: this._model.maxLengthPerChoiceEnabled,\n mode: this._model.mode,\n note: this._model.note,\n onChange: this.changeSession,\n playerSpellCheckEnabled: this._model.playerSpellCheckEnabled,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n role: this._model.role,\n showNote: this._model.showNote,\n teacherInstructions: this._model.teacherInstructions,\n value: this._session.value,\n responseAreaInputConfiguration: this._model.responseAreaInputConfiguration,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession = (value) => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Fill in the Blank Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_mathRendering","_main","InlineDropdown","HTMLElement","constructor","_defineProperty2","default","_model","_session","elem","React","createElement","Main","choices","disabled","displayType","feedback","language","markup","maxLengthPerChoice","maxLengthPerChoiceEnabled","mode","note","onChange","changeSession","playerSpellCheckEnabled","prompt","rationale","role","showNote","teacherInstructions","value","responseAreaInputConfiguration","_root","createRoot","render","queueMicrotask","renderMath","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","setLangAttribute","lang","slice","setAttribute","model","m","ModelSetEvent","s","connectedCallback","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport Main from './main';\n\nexport default class InlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\n this.setLangAttribute();\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n choices: this._model.choices,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n feedback: this._model.feedback,\n language: this._model.language,\n markup: this._model.markup,\n maxLengthPerChoice: this._model.maxLengthPerChoice,\n maxLengthPerChoiceEnabled: this._model.maxLengthPerChoiceEnabled,\n mode: this._model.mode,\n note: this._model.note,\n onChange: this.changeSession,\n playerSpellCheckEnabled: this._model.playerSpellCheckEnabled,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n role: this._model.role,\n showNote: this._model.showNote,\n teacherInstructions: this._model.teacherInstructions,\n value: this._session.value,\n responseAreaInputConfiguration: this._model.responseAreaInputConfiguration,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession = (value) => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Fill in the Blank Question');\n this.setAttribute('role', 'region');\n\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":[]}
|