@pie-element/ebsr 8.12.5-next.3 → 8.12.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 CHANGED
@@ -3,6 +3,17 @@
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
+ ## [8.12.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/ebsr@8.12.4...@pie-element/ebsr@8.12.5) (2023-09-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * add sanity checks DNA-18268 ([29d7de9](https://github.com/pie-framework/pie-elements/commit/29d7de9422c075117173a3afeb2b29acf1caab3c))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [8.12.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/ebsr@8.12.3...@pie-element/ebsr@8.12.4) (2023-09-05)
7
18
 
8
19
 
@@ -3,6 +3,17 @@
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
+ ## [8.10.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/ebsr-configure@8.10.4...@pie-element/ebsr-configure@8.10.5) (2023-09-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * add sanity checks DNA-18268 ([29d7de9](https://github.com/pie-framework/pie-elements/commit/29d7de9422c075117173a3afeb2b29acf1caab3c))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [8.10.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/ebsr-configure@8.10.3...@pie-element/ebsr-configure@8.10.4) (2023-09-05)
7
18
 
8
19
 
@@ -141,7 +141,8 @@ var EbsrConfigure = /*#__PURE__*/function (_HTMLElement) {
141
141
  }, {
142
142
  key: "configuration",
143
143
  set: function set(c) {
144
- var _this2 = this;
144
+ var _c$language,
145
+ _this2 = this;
145
146
 
146
147
  var info = prepareCustomizationObject(c, this._model);
147
148
  this._configuration = info.configuration; // if language:enabled is true, then the corresponding default item model should include a language value;
@@ -149,7 +150,7 @@ var EbsrConfigure = /*#__PURE__*/function (_HTMLElement) {
149
150
  // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
150
151
  // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
151
152
 
152
- if (c.language.enabled) {
153
+ if ((_c$language = c.language) !== null && _c$language !== void 0 && _c$language.enabled) {
153
154
  var _c$languageChoices, _c$languageChoices$op;
154
155
 
155
156
  if ((_c$languageChoices = c.languageChoices) !== null && _c$languageChoices !== void 0 && (_c$languageChoices$op = _c$languageChoices.options) !== null && _c$languageChoices$op !== void 0 && _c$languageChoices$op.length) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["MODEL_UPDATED","ModelUpdatedEvent","TYPE","MC_TAG_NAME","EbsrMCConfigure","MultipleChoiceConfigure","defineMultipleChoice","customElements","get","define","prepareCustomizationObject","config","model","configuration","sensibleDefaults","settingsPanelDisabled","modelDefault","EbsrConfigure","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","dispatchEvent","_configuration","onConfigurationChanged","bind","resetValue","c","info","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","onModelChanged","addEventListener","onModelUpdated","removeEventListener","element","React","createElement","Main","ReactDOM","render","HTMLElement","partA","partB","defaults","choicesLayout","verticalMode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;AAEA,IAAMA,aAAa,GAAGC,sCAAkBC,IAAxC;AACA,IAAMC,WAAW,GAAG,gCAApB;;IAEMC,e;;;;;;;;;;;EAAwBC,e;;AAE9B,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC,MAAI,CAACC,cAAc,CAACC,GAAf,CAAmBL,WAAnB,CAAL,EAAsC;AACpCI,IAAAA,cAAc,CAACE,MAAf,CAAsBN,WAAtB,EAAmCC,eAAnC;AACD;AACF,CAJD;;AAMAE,oBAAoB;;AAEpB,IAAMI,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,MAAD,EAASC,KAAT,EAAmB;AACpD,MAAMC,aAAa,GAAG,0BAASF,MAAT,EAAiBG,sBAAiBD,aAAlC,CAAtB;AACAA,EAAAA,aAAa,CAACE,qBAAd,GAAsC,IAAtC;AAEA,SAAO;AACLF,IAAAA,aAAa,EAAbA,aADK;AAELD,IAAAA,KAAK,EAALA;AAFK,GAAP;AAID,CARD;;AAUA,WAAgCE,yBAAoB,EAApD;AAAA,IAAeE,YAAf,QAAQJ,KAAR;;IAEqBK,a;;;;;AAkBnB,2BAAc;AAAA;;AAAA;AACZ;AADY,uGAqBG,UAACC,CAAD,EAAIC,KAAJ,EAAc;AAC7B,YAAKC,MAAL,GAAcH,aAAa,CAACI,kBAAd,CAAiCH,CAAjC,EAAoC,MAAKE,MAAzC,CAAd;;AAEA,YAAKE,oBAAL,CAA0BH,KAA1B;;AACA,YAAKI,OAAL;AACD,KA1Ba;AAAA,uGAwEG,UAACC,CAAD,EAAO;AACtB,UAAIA,CAAC,CAACC,MAAF,mDAAJ,EAAuB;AACrB;AACD;;AAEDD,MAAAA,CAAC,CAACE,cAAF;AACAF,MAAAA,CAAC,CAACG,wBAAF;AAEA,UAAMC,EAAE,GAAGJ,CAAC,CAACC,MAAF,IAAYD,CAAC,CAACC,MAAF,CAASI,YAAT,CAAsB,IAAtB,CAAvB;;AAEA,UAAID,EAAJ,EAAQ;AACN,YAAIJ,CAAC,CAACM,MAAN,EAAc;AACZ,gBAAKV,MAAL,eAAmBQ,EAAnB,KAA2BJ,CAAC,CAACM,MAA7B;AACD;;AAED,cAAKC,aAAL,CAAmB,IAAI9B,qCAAJ,CAAsB,MAAKmB,MAA3B,CAAnB;AACD;AACF,KAzFa;AAGZ,UAAKA,MAAL,GAAcH,aAAa,CAACI,kBAAd,EAAd;AAEA,UAAKW,cAAL,GAAsBlB,sBAAiBD,aAAvC;AACA,UAAKoB,sBAAL,GAA8B,MAAKA,sBAAL,CAA4BC,IAA5B,gDAA9B;AANY;AAOb;;;;SAED,aAAUhB,CAAV,EAAa;AACX,WAAKE,MAAL,GAAcH,aAAa,CAACI,kBAAd,CAAiCH,CAAjC,EAAoC,KAAKE,MAAzC,CAAd;;AAEA,WAAKG,OAAL;AACD;;;WAED,8BAAqBJ,KAArB,EAA4B;AAC1B,UAAMgB,UAAU,GAAG,CAAC,CAAChB,KAArB;AAEA,WAAKY,aAAL,CAAmB,IAAI9B,qCAAJ,CAAsB,KAAKmB,MAA3B,EAAmCe,UAAnC,CAAnB;AACD;;;SASD,aAAkBC,CAAlB,EAAqB;AAAA;;AACnB,UAAMC,IAAI,GAAG3B,0BAA0B,CAAC0B,CAAD,EAAI,KAAKhB,MAAT,CAAvC;AACA,WAAKY,cAAL,GAAsBK,IAAI,CAACxB,aAA3B,CAFmB,CAInB;AACA;AACA;AACA;;AACA,UAAIuB,CAAC,CAACE,QAAF,CAAWC,OAAf,EAAwB;AAAA;;AACtB,kCAAIH,CAAC,CAACI,eAAN,wEAAI,mBAAmBC,OAAvB,kDAAI,sBAA4BC,MAAhC,EAAwC;AACtC,eAAKtB,MAAL,CAAYkB,QAAZ,GAAuBF,CAAC,CAACI,eAAF,CAAkBC,OAAlB,CAA0B,CAA1B,EAA6BE,KAApD;AACD;AACF,OAJD,MAIO,IAAIP,CAAC,CAACE,QAAF,CAAWM,QAAX,IAAuB,KAAKxB,MAAL,CAAYkB,QAAvC,EAAiD;AACtD,aAAKN,cAAL,CAAoBM,QAApB,CAA6BC,OAA7B,GAAuC,IAAvC;;AAEA,YAAI,CAAC,KAAKP,cAAL,CAAoBQ,eAApB,CAAoCC,OAArC,IAAgD,CAAC,KAAKT,cAAL,CAAoBQ,eAApB,CAAoCC,OAApC,CAA4CC,MAAjG,EAAyG;AACvG,eAAKV,cAAL,CAAoBQ,eAApB,CAAoCC,OAApC,GAA8C,EAA9C;AACD,SALqD,CAOtD;AACA;;;AACA,YAAI,CAAC,KAAKT,cAAL,CAAoBQ,eAApB,CAAoCC,OAApC,CAA4CI,IAA5C,CAAiD,UAAAC,MAAM;AAAA,iBAAIA,MAAM,CAACH,KAAP,KAAiB,MAAI,CAACvB,MAAL,CAAYkB,QAAjC;AAAA,SAAvD,CAAL,EAAwG;AACtG,eAAKN,cAAL,CAAoBQ,eAApB,CAAoCC,OAApC,CAA4CM,IAA5C,CAAiD;AAC/CJ,YAAAA,KAAK,EAAE,KAAKvB,MAAL,CAAYkB,QAD4B;AAE/CU,YAAAA,KAAK,EAAE,KAAK5B,MAAL,CAAYkB;AAF4B,WAAjD;AAID;AACF,OAfM,MAeA;AACL,eAAO,KAAKlB,MAAL,CAAYkB,QAAnB;AACD;;AAED,WAAKf,OAAL;AACD;;;WAED,gCAAuBa,CAAvB,EAA0B;AACxB,WAAKJ,cAAL,GAAsBtB,0BAA0B,CAAC0B,CAAD,EAAI,KAAKhB,MAAT,CAA1B,CAA2CP,aAAjE;;AAEA,UAAI,KAAKO,MAAT,EAAiB;AACf,aAAK6B,cAAL,CAAoB,KAAK7B,MAAzB;AACD;;AAED,WAAKG,OAAL;AACD;;;WAqBD,6BAAoB;AAClB,WAAK2B,gBAAL,CAAsBlD,aAAtB,EAAqC,KAAKmD,cAA1C;;AACA,WAAK5B,OAAL;AACD;;;WAED,gCAAuB;AACrB,WAAK6B,mBAAL,CAAyBpD,aAAzB,EAAwC,KAAKmD,cAA7C;AACD;;;WAED,mBAAU;AACR,UAAIE,OAAO,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACtC5C,QAAAA,KAAK,EAAE,KAAKQ,MAD0B;AAEtCP,QAAAA,aAAa,EAAE,KAAKmB,cAFkB;AAGtCiB,QAAAA,cAAc,EAAE,KAAKA,cAHiB;AAItChB,QAAAA,sBAAsB,EAAE,KAAKA;AAJS,OAA1B,CAAd;;AAOAwB,2BAASC,MAAT,CAAgBL,OAAhB,EAAyB,IAAzB;AACD;;;kDA/HwCM,W;;;iCAAtB1C,a,wBACS;AAAA,kFAAwC,EAAxC;AAAA,0BAAG2C,KAAH;AAAA,MAAGA,KAAH,4BAAW,EAAX;AAAA,0BAAeC,KAAf;AAAA,MAAeA,KAAf,4BAAuB,EAAvB;AAAA,MAA8BjD,KAA9B;;AAAA,MAA4CkD,QAA5C,uEAAuD9C,YAAvD;AAAA,uDACvB8C,QADuB,GAEvBlD,KAFuB;AAG1BgD,IAAAA,KAAK,gDACAE,QAAQ,CAACF,KADT,GAEAA,KAFA;AAGHG,MAAAA,aAAa,EACXH,KAAK,CAACG,aAAN,IAAwBH,KAAK,CAACI,YAAN,KAAuB,KAAvB,IAAgC,YAAxD,IAAyEF,QAAQ,CAACF,KAAT,CAAeG;AAJvF,MAHqB;AAS1BF,IAAAA,KAAK,gDACAC,QAAQ,CAACD,KADT,GAEAA,KAFA;AAGHE,MAAAA,aAAa,EACXF,KAAK,CAACE,aAAN,IAAwBF,KAAK,CAACG,YAAN,KAAuB,KAAvB,IAAgC,YAAxD,IAAyEF,QAAQ,CAACD,KAAT,CAAeE;AAJvF;AATqB;AAAA,C","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport MultipleChoiceConfigure from '@pie-element/multiple-choice/configure/lib';\nimport defaults from 'lodash/defaults';\nimport Main from './main';\n\nimport sensibleDefaults from './defaults';\n\nconst MODEL_UPDATED = ModelUpdatedEvent.TYPE;\nconst MC_TAG_NAME = 'ebsr-multiple-choice-configure';\n\nclass EbsrMCConfigure extends MultipleChoiceConfigure {}\n\nconst defineMultipleChoice = () => {\n if (!customElements.get(MC_TAG_NAME)) {\n customElements.define(MC_TAG_NAME, EbsrMCConfigure);\n }\n};\n\ndefineMultipleChoice();\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n configuration.settingsPanelDisabled = true;\n\n return {\n configuration,\n model,\n };\n};\n\nconst { model: modelDefault } = sensibleDefaults || {};\n\nexport default class EbsrConfigure extends HTMLElement {\n static createDefaultModel = ({ partA = {}, partB = {}, ...model } = {}, defaults = modelDefault) => ({\n ...defaults,\n ...model,\n partA: {\n ...defaults.partA,\n ...partA,\n choicesLayout:\n partA.choicesLayout || (partA.verticalMode === false && 'horizontal') || defaults.partA.choicesLayout,\n },\n partB: {\n ...defaults.partB,\n ...partB,\n choicesLayout:\n partB.choicesLayout || (partB.verticalMode === false && 'horizontal') || defaults.partB.choicesLayout,\n },\n });\n\n constructor() {\n super();\n\n this._model = EbsrConfigure.createDefaultModel();\n\n this._configuration = sensibleDefaults.configuration;\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n this._model = EbsrConfigure.createDefaultModel(m, this._model);\n\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 = EbsrConfigure.createDefaultModel(m, this._model);\n\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n this._configuration = info.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 onConfigurationChanged(c) {\n this._configuration = prepareCustomizationObject(c, this._model).configuration;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n onModelUpdated = (e) => {\n if (e.target === this) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n const id = e.target && e.target.getAttribute('id');\n\n if (id) {\n if (e.update) {\n this._model[`part${id}`] = e.update;\n }\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n };\n\n connectedCallback() {\n this.addEventListener(MODEL_UPDATED, this.onModelUpdated);\n this._render();\n }\n\n disconnectedCallback() {\n this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);\n }\n\n _render() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["MODEL_UPDATED","ModelUpdatedEvent","TYPE","MC_TAG_NAME","EbsrMCConfigure","MultipleChoiceConfigure","defineMultipleChoice","customElements","get","define","prepareCustomizationObject","config","model","configuration","sensibleDefaults","settingsPanelDisabled","modelDefault","EbsrConfigure","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","dispatchEvent","_configuration","onConfigurationChanged","bind","resetValue","c","info","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","onModelChanged","addEventListener","onModelUpdated","removeEventListener","element","React","createElement","Main","ReactDOM","render","HTMLElement","partA","partB","defaults","choicesLayout","verticalMode"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport MultipleChoiceConfigure from '@pie-element/multiple-choice/configure/lib';\nimport defaults from 'lodash/defaults';\nimport Main from './main';\n\nimport sensibleDefaults from './defaults';\n\nconst MODEL_UPDATED = ModelUpdatedEvent.TYPE;\nconst MC_TAG_NAME = 'ebsr-multiple-choice-configure';\n\nclass EbsrMCConfigure extends MultipleChoiceConfigure {}\n\nconst defineMultipleChoice = () => {\n if (!customElements.get(MC_TAG_NAME)) {\n customElements.define(MC_TAG_NAME, EbsrMCConfigure);\n }\n};\n\ndefineMultipleChoice();\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n configuration.settingsPanelDisabled = true;\n\n return {\n configuration,\n model,\n };\n};\n\nconst { model: modelDefault } = sensibleDefaults || {};\n\nexport default class EbsrConfigure extends HTMLElement {\n static createDefaultModel = ({ partA = {}, partB = {}, ...model } = {}, defaults = modelDefault) => ({\n ...defaults,\n ...model,\n partA: {\n ...defaults.partA,\n ...partA,\n choicesLayout:\n partA.choicesLayout || (partA.verticalMode === false && 'horizontal') || defaults.partA.choicesLayout,\n },\n partB: {\n ...defaults.partB,\n ...partB,\n choicesLayout:\n partB.choicesLayout || (partB.verticalMode === false && 'horizontal') || defaults.partB.choicesLayout,\n },\n });\n\n constructor() {\n super();\n\n this._model = EbsrConfigure.createDefaultModel();\n\n this._configuration = sensibleDefaults.configuration;\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n this._model = EbsrConfigure.createDefaultModel(m, this._model);\n\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 = EbsrConfigure.createDefaultModel(m, this._model);\n\n this.dispatchModelUpdated(reset);\n this._render();\n };\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n this._configuration = info.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 onConfigurationChanged(c) {\n this._configuration = prepareCustomizationObject(c, this._model).configuration;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n onModelUpdated = (e) => {\n if (e.target === this) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n const id = e.target && e.target.getAttribute('id');\n\n if (id) {\n if (e.update) {\n this._model[`part${id}`] = e.update;\n }\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n };\n\n connectedCallback() {\n this.addEventListener(MODEL_UPDATED, this.onModelUpdated);\n this._render();\n }\n\n disconnectedCallback() {\n this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);\n }\n\n _render() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/ebsr-configure",
3
3
  "private": true,
4
- "version": "8.10.4",
4
+ "version": "8.10.5",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -10,7 +10,7 @@
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-element/multiple-choice": "^7.13.7",
12
12
  "@pie-framework/pie-configure-events": "^1.2.0",
13
- "@pie-lib/config-ui": "^11.9.11",
13
+ "@pie-lib/config-ui": "^11.9.8",
14
14
  "lodash": "^4.17.15",
15
15
  "prop-types": "^15.6.2",
16
16
  "react": "^16.8.1",
@@ -86,7 +86,7 @@ export default class EbsrConfigure extends HTMLElement {
86
86
  // if it is false, then the language field should be omitted from the item model.
87
87
  // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
88
88
  // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
89
- if (c.language.enabled) {
89
+ if (c.language?.enabled) {
90
90
  if (c.languageChoices?.options?.length) {
91
91
  this._model.language = c.languageChoices.options[0].value;
92
92
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@pie-element/ebsr",
3
- "version": "8.12.5-next.3+1b109bb3b",
3
+ "version": "8.12.5",
4
4
  "description": "",
5
5
  "repository": "pie-framework/pie-elements",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
9
  "dependencies": {
10
- "@pie-element/multiple-choice": "^7.13.8-next.3+1b109bb3b",
10
+ "@pie-element/multiple-choice": "^7.13.7",
11
11
  "@pie-framework/pie-player-events": "^0.1.0",
12
12
  "classnames": "^2.2.5",
13
13
  "debug": "^4.1.1",
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "author": "pie framework developers",
17
17
  "license": "ISC",
18
- "gitHead": "1b109bb3b74dcea72ee2f241996a5e6a71893b4e",
18
+ "gitHead": "52d3f9cc803476d8d13634d94d0ad4ebf47349fa",
19
19
  "scripts": {
20
20
  "postpublish": "../../scripts/postpublish"
21
21
  },