@pie-element/placement-ordering 14.1.1-next.39 → 14.1.1-next.54

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.
@@ -130,9 +130,13 @@ class PlacementOrdering extends HTMLElement {
130
130
  }
131
131
  this._root.render(element);
132
132
  }
133
+ connectedCallback() {
134
+ this._rerender();
135
+ }
133
136
  disconnectedCallback() {
134
137
  if (this._root) {
135
138
  this._root.unmount();
139
+ this._root = null;
136
140
  }
137
141
  }
138
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_design","_interopRequireDefault","_react","_client","_defaults","_lodashEs","prepareCustomizationObject","config","model","configuration","defaults","defaultValues","addWeightToCorrectResponse","correctResponse","map","correct","weight","undefined","id","exports","PlacementOrdering","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","onModelChanged","resetSession","_rerender","dispatchUpdate","onConfigurationChanged","insertImage","handler","dispatchEvent","InsertImageEvent","deleteImage","src","done","DeleteImageEvent","reset","ModelUpdatedEvent","s","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","bind","createRoot","render","disconnectedCallback","unmount","default","_defineProperty2","mapChoicesToReturnCorrectResponse","choices","ch","defaultModel"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport defaultValues from './defaults';\nimport { defaults } from 'lodash-es';\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, defaultValues.configuration);\n\n return { configuration, model };\n};\n\nexport const addWeightToCorrectResponse = (correctResponse) =>\n correctResponse &&\n correctResponse.map((correct) => {\n // if weight is set\n if (correct.weight !== undefined) {\n return { id: correct.id, weight: correct.weight };\n } else {\n return { id: correct.id || correct, weight: 0 };\n }\n });\n/**\n * assuming that the correct response will be set via ui, not via config,\n * correctResponse (if not set) will be initialized with choices default order\n */\nexport default class PlacementOrdering extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const mapChoicesToReturnCorrectResponse = (choices) => choices && choices.map((ch) => ({ id: ch.id, weight: 0 }));\n\n let correctResponse =\n addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);\n\n const defaultModel = {\n ...defaultValues.model,\n ...model,\n };\n\n if (correctResponse) {\n defaultModel.correctResponse = correctResponse;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._root = null;\n\n this._model = PlacementOrdering.createDefaultModel();\n this._configuration = defaultValues.configuration;\n\n this.onModelChanged = (model, resetSession) => {\n this._model = model;\n this._rerender();\n this.dispatchUpdate(resetSession);\n };\n\n this.onConfigurationChanged = (configuration) => {\n this._configuration = prepareCustomizationObject(configuration).configuration;\n\n this.onModelChanged(this._model);\n this._rerender();\n };\n\n this.insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n this.deleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n }\n\n dispatchUpdate(reset) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model, reset));\n }\n\n set model(s) {\n this._model = PlacementOrdering.createDefaultModel(s);\n this._rerender();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...defaultValues.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\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 (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.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._rerender();\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 _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.deleteImage,\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":["_pieConfigureEvents","require","_design","_interopRequireDefault","_react","_client","_defaults","_lodashEs","prepareCustomizationObject","config","model","configuration","defaults","defaultValues","addWeightToCorrectResponse","correctResponse","map","correct","weight","undefined","id","exports","PlacementOrdering","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","onModelChanged","resetSession","_rerender","dispatchUpdate","onConfigurationChanged","insertImage","handler","dispatchEvent","InsertImageEvent","deleteImage","src","done","DeleteImageEvent","reset","ModelUpdatedEvent","s","c","info","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","React","createElement","Main","imageSupport","add","delete","uploadSoundSupport","bind","createRoot","render","connectedCallback","disconnectedCallback","unmount","default","_defineProperty2","mapChoicesToReturnCorrectResponse","choices","ch","defaultModel"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport defaultValues from './defaults';\nimport { defaults } from 'lodash-es';\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, defaultValues.configuration);\n\n return { configuration, model };\n};\n\nexport const addWeightToCorrectResponse = (correctResponse) =>\n correctResponse &&\n correctResponse.map((correct) => {\n // if weight is set\n if (correct.weight !== undefined) {\n return { id: correct.id, weight: correct.weight };\n } else {\n return { id: correct.id || correct, weight: 0 };\n }\n });\n/**\n * assuming that the correct response will be set via ui, not via config,\n * correctResponse (if not set) will be initialized with choices default order\n */\nexport default class PlacementOrdering extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const mapChoicesToReturnCorrectResponse = (choices) => choices && choices.map((ch) => ({ id: ch.id, weight: 0 }));\n\n let correctResponse =\n addWeightToCorrectResponse(model.correctResponse) || mapChoicesToReturnCorrectResponse(model.choices);\n\n const defaultModel = {\n ...defaultValues.model,\n ...model,\n };\n\n if (correctResponse) {\n defaultModel.correctResponse = correctResponse;\n }\n\n return defaultModel;\n };\n\n constructor() {\n super();\n this._root = null;\n\n this._model = PlacementOrdering.createDefaultModel();\n this._configuration = defaultValues.configuration;\n\n this.onModelChanged = (model, resetSession) => {\n this._model = model;\n this._rerender();\n this.dispatchUpdate(resetSession);\n };\n\n this.onConfigurationChanged = (configuration) => {\n this._configuration = prepareCustomizationObject(configuration).configuration;\n\n this.onModelChanged(this._model);\n this._rerender();\n };\n\n this.insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n this.deleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n }\n\n dispatchUpdate(reset) {\n this.dispatchEvent(new ModelUpdatedEvent(this._model, reset));\n }\n\n set model(s) {\n this._model = PlacementOrdering.createDefaultModel(s);\n this._rerender();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...defaultValues.configuration,\n ...info.configuration,\n };\n\n this._configuration = newConfiguration;\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 (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.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._rerender();\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 _rerender() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n imageSupport: {\n add: this.insertImage,\n delete: this.deleteImage,\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._rerender();\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":[]}
@@ -11,9 +11,9 @@
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.8",
14
+ "@pie-lib/config-ui": "13.0.9",
15
15
  "@pie-lib/drag": "4.0.5",
16
- "@pie-lib/editable-html-tip-tap": "2.1.6",
16
+ "@pie-lib/editable-html-tip-tap": "2.1.7",
17
17
  "@pie-lib/render-ui": "6.1.2",
18
18
  "debug": "^4.1.1",
19
19
  "lodash-es": "^4.17.23",
package/lib/index.js CHANGED
@@ -110,11 +110,13 @@ class Ordering extends HTMLElement {
110
110
  }
111
111
  connectedCallback() {
112
112
  this._initMathObserver();
113
+ this.render();
113
114
  }
114
115
  disconnectedCallback() {
115
116
  this._disconnectMathObserver();
116
117
  if (this._root) {
117
118
  this._root.unmount();
119
+ this._root = null;
118
120
  }
119
121
  }
120
122
  }
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_debug","_mathRendering","_piePlayerEvents","_main","log","debug","isValidSession","model","session","config","compactSessionValues","compact","value","completeSession","length","choices","includeTargets","exports","Ordering","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","completeLength","_session","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_root","_initMathObserver","MutationObserver","_scheduleMathRender","_disconnectMathObserver","newModel","CustomEvent","bubbles","detail","complete","newSession","element","React","createElement","Main","onSessionChange","sessionChange","createRoot","connectedCallback","disconnectedCallback","unmount"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { compact } from 'lodash-es';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\n\nconst log = debug('pie-elements:placement-ordering');\n\nexport const isValidSession = ({ model, session }) => {\n const { config } = model;\n\n const compactSessionValues = (session && compact(session.value)) || [];\n const completeSession = compactSessionValues.length === model.choices.length;\n\n // if it includes targets, it doesn't have to contain all the choices selected (eg: only 2 targets were filled)\n // but if it does not include targets, it's a must to have all choices selected\n return config.includeTargets || completeSession;\n};\n\nexport default class Ordering extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n isComplete = (value) => value && compact(value).length === this._model.completeLength;\n\n sessionChange = (session) => {\n this._session.value = session.value;\n this.render();\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)),\n );\n };\n\n set model(newModel) {\n this._model = newModel;\n\n this.render();\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n detail: {\n complete: false,\n },\n }),\n );\n }\n\n set session(newSession) {\n this._session = newSession;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n render() {\n if (this._model && this._session) {\n log('[render] session: ', this._session.value);\n log('[render] model: ', this._model);\n\n this._initMathObserver();\n\n const element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChange,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n connectedCallback() {\n this._initMathObserver();\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\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","_lodashEs","_debug","_mathRendering","_piePlayerEvents","_main","log","debug","isValidSession","model","session","config","compactSessionValues","compact","value","completeSession","length","choices","includeTargets","exports","Ordering","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","completeLength","_session","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","isComplete","_root","_initMathObserver","MutationObserver","_scheduleMathRender","_disconnectMathObserver","newModel","CustomEvent","bubbles","detail","complete","newSession","element","React","createElement","Main","onSessionChange","sessionChange","createRoot","connectedCallback","disconnectedCallback","unmount"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { compact } from 'lodash-es';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\n\nconst log = debug('pie-elements:placement-ordering');\n\nexport const isValidSession = ({ model, session }) => {\n const { config } = model;\n\n const compactSessionValues = (session && compact(session.value)) || [];\n const completeSession = compactSessionValues.length === model.choices.length;\n\n // if it includes targets, it doesn't have to contain all the choices selected (eg: only 2 targets were filled)\n // but if it does not include targets, it's a must to have all choices selected\n return config.includeTargets || completeSession;\n};\n\nexport default class Ordering extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n isComplete = (value) => value && compact(value).length === this._model.completeLength;\n\n sessionChange = (session) => {\n this._session.value = session.value;\n this.render();\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)),\n );\n };\n\n set model(newModel) {\n this._model = newModel;\n\n this.render();\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n detail: {\n complete: false,\n },\n }),\n );\n }\n\n set session(newSession) {\n this._session = newSession;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n render() {\n if (this._model && this._session) {\n log('[render] session: ', this._session.value);\n log('[render] model: ', this._model);\n\n this._initMathObserver();\n\n const element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChange,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n connectedCallback() {\n this._initMathObserver();\n this.render();\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/placement-ordering",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "14.1.1-next.39+8ff19496b",
4
+ "version": "14.1.1-next.54+a5b5d41c4",
5
5
  "description": "",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "author": "",
30
30
  "license": "ISC",
31
- "gitHead": "8ff19496bc264eb4a2b28d731bfed4169620bf1d",
31
+ "gitHead": "a5b5d41c46c9e9fd43071144f013bbc4e20f90ae",
32
32
  "scripts": {
33
33
  "postpublish": "../../scripts/postpublish"
34
34
  },