@pie-element/number-line 8.15.4-next.7 → 8.16.0
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 +22 -0
- package/configure/CHANGELOG.md +19 -0
- package/configure/lib/defaults.js +28 -6
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +6 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +121 -48
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +18 -0
- package/controller/lib/defaults.js +1 -5
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +8 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +135 -0
- package/docs/config-schema.json.md +101 -0
- package/docs/pie-schema.json +23 -1
- package/docs/pie-schema.json.md +16 -0
- package/lib/number-line/index.js +64 -49
- package/lib/number-line/index.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.16.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@8.15.3...@pie-element/number-line@8.16.0) (2024-07-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* tests and removed console logs ([7ed58af](https://github.com/pie-framework/pie-elements/commit/7ed58af1a1c1b58b8dfa8a575de77493795a2a45))
|
|
12
|
+
* udate pie-lib/pie-toolbox PD-3622, PD-3627, PD-3629, PD-3630, PD-3631 ([1e50c85](https://github.com/pie-framework/pie-elements/commit/1e50c859e2b5133e1ff9ef81f4169e49e76d9e4b))
|
|
13
|
+
* **number-line:** clean up controller defaults initialElements PD-3934 ([e5d0b59](https://github.com/pie-framework/pie-elements/commit/e5d0b5964d58a9a01d0a990df5c049eb5158a12d))
|
|
14
|
+
* **passage:** render math content in student side PD-3885 ([36207b8](https://github.com/pie-framework/pie-elements/commit/36207b8b28f0cdea42e881124cf0d0f79294cb7c))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **number-line:** add Settings Panel and authoring view settings PD-3932 ([4bb438a](https://github.com/pie-framework/pie-elements/commit/4bb438a8dd9b00ab91af4a6f7c2390004f41f1f6))
|
|
20
|
+
* **number-line:** add settingsPanelDisabled configuration to control visibility of Settings Panel PD-3932 ([fef917e](https://github.com/pie-framework/pie-elements/commit/fef917e9c94f3964cb715a91b8b852fa4e16f120))
|
|
21
|
+
* **number-line:** add teacher instructions to player side PD-3933 ([7b30987](https://github.com/pie-framework/pie-elements/commit/7b30987bec201acba1306a9124354a774bf2e4fd))
|
|
22
|
+
* **number-line:** update schemas & update snapshots PD-3932 ([d45ac6c](https://github.com/pie-framework/pie-elements/commit/d45ac6c560109067863159d65c23decc366e1037))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [8.15.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line@8.15.2...@pie-element/number-line@8.15.3) (2024-07-10)
|
|
7
29
|
|
|
8
30
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
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.15.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@7.14.3...@pie-element/number-line-configure@7.15.0) (2024-07-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* tests and removed console logs ([7ed58af](https://github.com/pie-framework/pie-elements/commit/7ed58af1a1c1b58b8dfa8a575de77493795a2a45))
|
|
12
|
+
* udate pie-lib/pie-toolbox PD-3622, PD-3627, PD-3629, PD-3630, PD-3631 ([1e50c85](https://github.com/pie-framework/pie-elements/commit/1e50c859e2b5133e1ff9ef81f4169e49e76d9e4b))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **number-line:** add Settings Panel and authoring view settings PD-3932 ([4bb438a](https://github.com/pie-framework/pie-elements/commit/4bb438a8dd9b00ab91af4a6f7c2390004f41f1f6))
|
|
18
|
+
* **number-line:** add settingsPanelDisabled configuration to control visibility of Settings Panel PD-3932 ([fef917e](https://github.com/pie-framework/pie-elements/commit/fef917e9c94f3964cb715a91b8b852fa4e16f120))
|
|
19
|
+
* **number-line:** update schemas & update snapshots PD-3932 ([d45ac6c](https://github.com/pie-framework/pie-elements/commit/d45ac6c560109067863159d65c23decc366e1037))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
## [7.14.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/number-line-configure@7.14.2...@pie-element/number-line-configure@7.14.3) (2024-07-10)
|
|
7
26
|
|
|
8
27
|
|
|
@@ -31,6 +31,9 @@ var model = {
|
|
|
31
31
|
initialElements: []
|
|
32
32
|
},
|
|
33
33
|
widthEnabled: true,
|
|
34
|
+
promptEnabled: true,
|
|
35
|
+
rationaleEnabled: true,
|
|
36
|
+
teacherInstructionsEnabled: true,
|
|
34
37
|
feedback: {
|
|
35
38
|
correct: {
|
|
36
39
|
"default": 'Correct',
|
|
@@ -80,6 +83,22 @@ var configuration = {
|
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
},
|
|
86
|
+
rationale: {
|
|
87
|
+
settings: true,
|
|
88
|
+
label: 'Rationale',
|
|
89
|
+
required: false,
|
|
90
|
+
inputConfiguration: {
|
|
91
|
+
audio: {
|
|
92
|
+
disabled: false
|
|
93
|
+
},
|
|
94
|
+
video: {
|
|
95
|
+
disabled: false
|
|
96
|
+
},
|
|
97
|
+
image: {
|
|
98
|
+
disabled: false
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
83
102
|
teacherInstructions: {
|
|
84
103
|
settings: true,
|
|
85
104
|
label: 'Teacher Instructions',
|
|
@@ -98,6 +117,8 @@ var configuration = {
|
|
|
98
117
|
},
|
|
99
118
|
title: {
|
|
100
119
|
label: 'Title',
|
|
120
|
+
settings: true,
|
|
121
|
+
enabled: true,
|
|
101
122
|
inputConfiguration: {
|
|
102
123
|
audio: {
|
|
103
124
|
disabled: false
|
|
@@ -118,11 +139,6 @@ var configuration = {
|
|
|
118
139
|
max: 800,
|
|
119
140
|
step: 20
|
|
120
141
|
},
|
|
121
|
-
spellCheck: {
|
|
122
|
-
label: 'Spellcheck',
|
|
123
|
-
settings: false,
|
|
124
|
-
enabled: true
|
|
125
|
-
},
|
|
126
142
|
mathMlOptions: {
|
|
127
143
|
mmlOutput: false,
|
|
128
144
|
mmlEditing: false
|
|
@@ -136,9 +152,15 @@ var configuration = {
|
|
|
136
152
|
label: 'Language Choices',
|
|
137
153
|
options: []
|
|
138
154
|
},
|
|
155
|
+
spellCheck: {
|
|
156
|
+
label: 'Spellcheck',
|
|
157
|
+
settings: false,
|
|
158
|
+
enabled: true
|
|
159
|
+
},
|
|
139
160
|
maxMaxElements: 20,
|
|
140
161
|
hidePointConfigButtons: false,
|
|
141
|
-
availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP']
|
|
162
|
+
availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],
|
|
163
|
+
settingsPanelDisabled: false
|
|
142
164
|
};
|
|
143
165
|
exports.configuration = configuration;
|
|
144
166
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","tickIntervalType","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","feedback","correct","type","incorrect","partial","configuration","baseInputConfiguration","audio","disabled","video","image","instruction","settings","enabled","label","prompt","required","inputConfiguration","teacherInstructions","title","numberLineDimensions","step","
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","correctResponse","graph","domain","min","max","ticks","minor","major","tickIntervalType","arrows","left","right","maxNumberOfPoints","width","initialType","exhibitOnly","toolbarEditorPosition","availableTypes","PF","initialElements","widthEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","feedback","correct","type","incorrect","partial","configuration","baseInputConfiguration","audio","disabled","video","image","instruction","settings","enabled","label","prompt","required","inputConfiguration","rationale","teacherInstructions","title","numberLineDimensions","step","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","spellCheck","maxMaxElements","hidePointConfigButtons","availableTools","settingsPanelDisabled"],"mappings":"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","sourcesContent":["export const model = {\n correctResponse: [],\n graph: {\n domain: {\n min: -1,\n max: 1,\n },\n ticks: {\n minor: 0.125,\n major: 0.5,\n tickIntervalType: 'Decimal',\n },\n arrows: {\n left: true,\n right: true,\n },\n maxNumberOfPoints: 1,\n width: 500,\n initialType: 'PF',\n exhibitOnly: false,\n toolbarEditorPosition: 'bottom',\n availableTypes: {\n PF: true,\n },\n initialElements: [],\n },\n widthEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n};\n\nexport const configuration = {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n instruction: {\n settings: false,\n enabled: true,\n label:\n 'Number line questions involve plotting points or other objects. To create one, first set up the number line, then select the plotting tools students will be offered and use them to define the correct answer.',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n title: {\n label: 'Title',\n settings: true,\n enabled: true,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n numberLineDimensions: {\n settings: true,\n label: 'Width',\n enabled: true,\n min: 200,\n max: 800,\n step: 20,\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n maxMaxElements: 20,\n hidePointConfigButtons: false,\n availableTools: ['PF', 'LFF', 'LEF', 'LFE', 'LEE', 'RFN', 'RFP', 'REN', 'REP'],\n settingsPanelDisabled: false,\n};\n"],"file":"defaults.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -119,6 +119,11 @@ var NumberLine = /*#__PURE__*/function (_HTMLElement) {
|
|
|
119
119
|
|
|
120
120
|
_this._rerender();
|
|
121
121
|
});
|
|
122
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (config) {
|
|
123
|
+
_this._configuration = config;
|
|
124
|
+
|
|
125
|
+
_this._render();
|
|
126
|
+
});
|
|
122
127
|
_this._model = NumberLine.createDefaultModel();
|
|
123
128
|
_this._configuration = defaults.configuration;
|
|
124
129
|
return _this;
|
|
@@ -192,6 +197,7 @@ var NumberLine = /*#__PURE__*/function (_HTMLElement) {
|
|
|
192
197
|
model: this._model,
|
|
193
198
|
configuration: this._configuration,
|
|
194
199
|
onChange: this.onChange,
|
|
200
|
+
onConfigurationChanged: this.onConfigurationChanged,
|
|
195
201
|
uploadSoundSupport: {
|
|
196
202
|
add: this.insertSound.bind(this),
|
|
197
203
|
"delete": this.onDeleteSound.bind(this)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["updateTicks","model","graph","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","match","fraction","step","math","evaluate","NumberLine","pieAuthors","document","querySelectorAll","hasPlayerAsParent","Array","from","some","author","contains","_modelCopy","_model","o","dispatchEvent","ModelUpdatedEvent","_rerender","createDefaultModel","_configuration","defaults","configuration","m","c","newConfiguration","resetModelAfterConfigurationIsSet","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","handler","InsertSoundEvent","src","done","DeleteSoundEvent","element","React","createElement","Main","onChange","uploadSoundSupport","add","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent, InsertSoundEvent, DeleteSoundEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\nimport * as math from 'mathjs';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { tickUtils } from '@pie-element/number-line';\n\n// this function is duplicated in controller; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const c = defaults.configuration;\n let language = model.language || '';\n\n if (!language && c.language && c.language.enabled) {\n if (c.languageChoices?.options?.length) {\n language = c.languageChoices.options[0].value;\n }\n }\n\n const normalizedModel = {\n ...defaults.model,\n ...model,\n language,\n };\n\n return updateTicks(normalizedModel);\n };\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = NumberLine.createDefaultModel(m);\n this._modelCopy = cloneDeep(this._model);\n\n this._rerender();\n }\n\n resetModelAfterConfigurationIsSet = () => {\n // In environments that use pie-player-components, model is set before configuration.\n // This is the reason why sometimes the model gets altered non-reversible\n // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)\n // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset\n // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called\n const pieAuthors = document.querySelectorAll('pie-author');\n this.hasPlayerAsParent = Array.from(pieAuthors).some(author => author.contains(this));\n\n if (this.hasPlayerAsParent) {\n if (this._modelCopy) {\n this._model = this._modelCopy;\n } else {\n delete this._modelCopy;\n }\n }\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n this.resetModelAfterConfigurationIsSet();\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 onChange = (o) => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\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 onChange: this.onChange,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["updateTicks","model","graph","domain","labelStep","ticks","minor","major","min","Number","toFixed","max","match","fraction","step","math","evaluate","NumberLine","pieAuthors","document","querySelectorAll","hasPlayerAsParent","Array","from","some","author","contains","_modelCopy","_model","o","dispatchEvent","ModelUpdatedEvent","_rerender","config","_configuration","_render","createDefaultModel","defaults","configuration","m","c","newConfiguration","resetModelAfterConfigurationIsSet","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","handler","InsertSoundEvent","src","done","DeleteSoundEvent","element","React","createElement","Main","onChange","onConfigurationChanged","uploadSoundSupport","add","insertSound","bind","onDeleteSound","ReactDOM","render","HTMLElement","normalizedModel"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ModelUpdatedEvent, InsertSoundEvent, DeleteSoundEvent } from '@pie-framework/pie-configure-events';\nimport * as defaults from './defaults';\nimport * as math from 'mathjs';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { tickUtils } from '@pie-element/number-line';\n\n// this function is duplicated in controller; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport default class NumberLine extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const c = defaults.configuration;\n let language = model.language || '';\n\n if (!language && c.language && c.language.enabled) {\n if (c.languageChoices?.options?.length) {\n language = c.languageChoices.options[0].value;\n }\n }\n\n const normalizedModel = {\n ...defaults.model,\n ...model,\n language,\n };\n\n return updateTicks(normalizedModel);\n };\n\n constructor() {\n super();\n this._model = NumberLine.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = NumberLine.createDefaultModel(m);\n this._modelCopy = cloneDeep(this._model);\n\n this._rerender();\n }\n\n resetModelAfterConfigurationIsSet = () => {\n // In environments that use pie-player-components, model is set before configuration.\n // This is the reason why sometimes the model gets altered non-reversible\n // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)\n // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset\n // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called\n const pieAuthors = document.querySelectorAll('pie-author');\n this.hasPlayerAsParent = Array.from(pieAuthors).some(author => author.contains(this));\n\n if (this.hasPlayerAsParent) {\n if (this._modelCopy) {\n this._model = this._modelCopy;\n } else {\n delete this._modelCopy;\n }\n }\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n this.resetModelAfterConfigurationIsSet();\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 onChange = (o) => {\n this._model = { ...this._model, ...o };\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n\n this._rerender();\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\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 onChange: this.onChange,\n onConfigurationChanged: this.onConfigurationChanged,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
|
package/configure/lib/main.js
CHANGED
|
@@ -96,6 +96,8 @@ var lineIsSwitched = _numberLine.dataConverter.lineIsSwitched,
|
|
|
96
96
|
switchGraphLine = _numberLine.dataConverter.switchGraphLine,
|
|
97
97
|
toGraphFormat = _numberLine.dataConverter.toGraphFormat,
|
|
98
98
|
toSessionFormat = _numberLine.dataConverter.toSessionFormat;
|
|
99
|
+
var Panel = _configUi.settings.Panel,
|
|
100
|
+
toggle = _configUi.settings.toggle;
|
|
99
101
|
var minorLimits = {};
|
|
100
102
|
var minorValues = {};
|
|
101
103
|
var majorValues = {};
|
|
@@ -559,46 +561,76 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
559
561
|
}
|
|
560
562
|
|
|
561
563
|
(0, _createClass2["default"])(Main, [{
|
|
562
|
-
key: "
|
|
563
|
-
value: function
|
|
564
|
-
var _this2 = this;
|
|
565
|
-
|
|
564
|
+
key: "componentDidMount",
|
|
565
|
+
value: function componentDidMount() {
|
|
566
566
|
var _this$props8 = this.props,
|
|
567
|
-
classes = _this$props8.classes,
|
|
568
|
-
model = _this$props8.model,
|
|
569
|
-
_onChange = _this$props8.onChange,
|
|
570
567
|
configuration = _this$props8.configuration,
|
|
571
|
-
|
|
568
|
+
model = _this$props8.model,
|
|
569
|
+
onChange = _this$props8.onChange;
|
|
572
570
|
|
|
573
571
|
var _ref4 = configuration || {},
|
|
574
|
-
|
|
575
|
-
baseInputConfiguration = _ref4$baseInputConfig === void 0 ? {} : _ref4$baseInputConfig,
|
|
576
|
-
_ref4$contentDimensio = _ref4.contentDimensions,
|
|
577
|
-
contentDimensions = _ref4$contentDimensio === void 0 ? {} : _ref4$contentDimensio,
|
|
578
|
-
_ref4$instruction = _ref4.instruction,
|
|
579
|
-
instruction = _ref4$instruction === void 0 ? {} : _ref4$instruction,
|
|
580
|
-
_ref4$teacherInstruct = _ref4.teacherInstructions,
|
|
581
|
-
teacherInstructions = _ref4$teacherInstruct === void 0 ? {} : _ref4$teacherInstruct,
|
|
582
|
-
_ref4$title = _ref4.title,
|
|
583
|
-
title = _ref4$title === void 0 ? {} : _ref4$title,
|
|
584
|
-
_ref4$prompt = _ref4.prompt,
|
|
585
|
-
prompt = _ref4$prompt === void 0 ? {} : _ref4$prompt,
|
|
586
|
-
_ref4$mathMlOptions = _ref4.mathMlOptions,
|
|
587
|
-
mathMlOptions = _ref4$mathMlOptions === void 0 ? {} : _ref4$mathMlOptions,
|
|
588
|
-
_ref4$numberLineDimen = _ref4.numberLineDimensions,
|
|
589
|
-
numberLineDimensions = _ref4$numberLineDimen === void 0 ? {} : _ref4$numberLineDimen,
|
|
590
|
-
_ref4$maxMaxElements = _ref4.maxMaxElements,
|
|
591
|
-
maxMaxElements = _ref4$maxMaxElements === void 0 ? 20 : _ref4$maxMaxElements,
|
|
592
|
-
_ref4$hidePointConfig = _ref4.hidePointConfigButtons,
|
|
593
|
-
hidePointConfigButtons = _ref4$hidePointConfig === void 0 ? false : _ref4$hidePointConfig,
|
|
594
|
-
_ref4$availableTools = _ref4.availableTools,
|
|
595
|
-
availableTools = _ref4$availableTools === void 0 ? ['PF'] : _ref4$availableTools;
|
|
572
|
+
title = _ref4.title;
|
|
596
573
|
|
|
597
574
|
var _ref5 = model || {},
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
575
|
+
showTitle = _ref5.titleEnabled;
|
|
576
|
+
|
|
577
|
+
var titleEnabled = showTitle === undefined || showTitle === null ? title.enabled : showTitle;
|
|
578
|
+
onChange && onChange(_objectSpread(_objectSpread({}, model), {}, {
|
|
579
|
+
titleEnabled: titleEnabled
|
|
580
|
+
}));
|
|
581
|
+
}
|
|
582
|
+
}, {
|
|
583
|
+
key: "render",
|
|
584
|
+
value: function render() {
|
|
585
|
+
var _this2 = this;
|
|
586
|
+
|
|
587
|
+
var _this$props9 = this.props,
|
|
588
|
+
classes = _this$props9.classes,
|
|
589
|
+
model = _this$props9.model,
|
|
590
|
+
_onChange = _this$props9.onChange,
|
|
591
|
+
configuration = _this$props9.configuration,
|
|
592
|
+
onConfigurationChanged = _this$props9.onConfigurationChanged,
|
|
593
|
+
uploadSoundSupport = _this$props9.uploadSoundSupport;
|
|
594
|
+
|
|
595
|
+
var _ref6 = configuration || {},
|
|
596
|
+
_ref6$baseInputConfig = _ref6.baseInputConfiguration,
|
|
597
|
+
baseInputConfiguration = _ref6$baseInputConfig === void 0 ? {} : _ref6$baseInputConfig,
|
|
598
|
+
_ref6$contentDimensio = _ref6.contentDimensions,
|
|
599
|
+
contentDimensions = _ref6$contentDimensio === void 0 ? {} : _ref6$contentDimensio,
|
|
600
|
+
_ref6$instruction = _ref6.instruction,
|
|
601
|
+
instruction = _ref6$instruction === void 0 ? {} : _ref6$instruction,
|
|
602
|
+
_ref6$teacherInstruct = _ref6.teacherInstructions,
|
|
603
|
+
teacherInstructions = _ref6$teacherInstruct === void 0 ? {} : _ref6$teacherInstruct,
|
|
604
|
+
_ref6$title = _ref6.title,
|
|
605
|
+
title = _ref6$title === void 0 ? {} : _ref6$title,
|
|
606
|
+
_ref6$prompt = _ref6.prompt,
|
|
607
|
+
prompt = _ref6$prompt === void 0 ? {} : _ref6$prompt,
|
|
608
|
+
_ref6$rationale = _ref6.rationale,
|
|
609
|
+
rationale = _ref6$rationale === void 0 ? {} : _ref6$rationale,
|
|
610
|
+
_ref6$spellCheck = _ref6.spellCheck,
|
|
611
|
+
spellCheck = _ref6$spellCheck === void 0 ? {} : _ref6$spellCheck,
|
|
612
|
+
_ref6$mathMlOptions = _ref6.mathMlOptions,
|
|
613
|
+
mathMlOptions = _ref6$mathMlOptions === void 0 ? {} : _ref6$mathMlOptions,
|
|
614
|
+
_ref6$numberLineDimen = _ref6.numberLineDimensions,
|
|
615
|
+
numberLineDimensions = _ref6$numberLineDimen === void 0 ? {} : _ref6$numberLineDimen,
|
|
616
|
+
_ref6$maxMaxElements = _ref6.maxMaxElements,
|
|
617
|
+
maxMaxElements = _ref6$maxMaxElements === void 0 ? 20 : _ref6$maxMaxElements,
|
|
618
|
+
_ref6$hidePointConfig = _ref6.hidePointConfigButtons,
|
|
619
|
+
hidePointConfigButtons = _ref6$hidePointConfig === void 0 ? false : _ref6$hidePointConfig,
|
|
620
|
+
_ref6$availableTools = _ref6.availableTools,
|
|
621
|
+
availableTools = _ref6$availableTools === void 0 ? ['PF'] : _ref6$availableTools,
|
|
622
|
+
_ref6$settingsPanelDi = _ref6.settingsPanelDisabled,
|
|
623
|
+
settingsPanelDisabled = _ref6$settingsPanelDi === void 0 ? false : _ref6$settingsPanelDi;
|
|
624
|
+
|
|
625
|
+
var _ref7 = model || {},
|
|
626
|
+
_ref7$errors = _ref7.errors,
|
|
627
|
+
errors = _ref7$errors === void 0 ? {} : _ref7$errors,
|
|
628
|
+
spellCheckEnabled = _ref7.spellCheckEnabled,
|
|
629
|
+
toolbarEditorPosition = _ref7.toolbarEditorPosition,
|
|
630
|
+
teacherInstructionsEnabled = _ref7.teacherInstructionsEnabled,
|
|
631
|
+
titleEnabled = _ref7.titleEnabled,
|
|
632
|
+
promptEnabled = _ref7.promptEnabled,
|
|
633
|
+
rationaleEnabled = _ref7.rationaleEnabled;
|
|
602
634
|
|
|
603
635
|
var graph = model.graph;
|
|
604
636
|
graph = this.reloadTicksData(graph);
|
|
@@ -606,14 +638,15 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
606
638
|
dialog = _this$state.dialog,
|
|
607
639
|
correctAnswerDialog = _this$state.correctAnswerDialog;
|
|
608
640
|
|
|
609
|
-
var
|
|
610
|
-
correctResponseError =
|
|
611
|
-
domainError =
|
|
612
|
-
maxError =
|
|
613
|
-
pointsError =
|
|
614
|
-
promptError =
|
|
615
|
-
|
|
616
|
-
|
|
641
|
+
var _ref8 = errors || {},
|
|
642
|
+
correctResponseError = _ref8.correctResponseError,
|
|
643
|
+
domainError = _ref8.domainError,
|
|
644
|
+
maxError = _ref8.maxError,
|
|
645
|
+
pointsError = _ref8.pointsError,
|
|
646
|
+
promptError = _ref8.prompt,
|
|
647
|
+
rationaleError = _ref8.rationale,
|
|
648
|
+
teacherInstructionsError = _ref8.teacherInstructions,
|
|
649
|
+
widthError = _ref8.widthError;
|
|
617
650
|
|
|
618
651
|
var validationMessage = (0, _utils.generateValidationMessage)();
|
|
619
652
|
var correctResponse = (0, _cloneDeep["default"])(model.correctResponse || []).map(toGraphFormat);
|
|
@@ -622,6 +655,13 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
622
655
|
var toolbarOpts = {
|
|
623
656
|
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
624
657
|
};
|
|
658
|
+
var panelProperties = {
|
|
659
|
+
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
660
|
+
titleEnabled: title.settings && toggle(title.label),
|
|
661
|
+
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
662
|
+
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
663
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label)
|
|
664
|
+
};
|
|
625
665
|
|
|
626
666
|
var getPluginProps = function getPluginProps() {
|
|
627
667
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -630,13 +670,21 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
630
670
|
|
|
631
671
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
632
672
|
dimensions: contentDimensions,
|
|
633
|
-
hideSettings:
|
|
634
|
-
settings:
|
|
673
|
+
hideSettings: settingsPanelDisabled,
|
|
674
|
+
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
675
|
+
model: model,
|
|
676
|
+
configuration: configuration,
|
|
677
|
+
onChangeModel: _onChange,
|
|
678
|
+
onChangeConfiguration: onConfigurationChanged,
|
|
679
|
+
groups: {
|
|
680
|
+
Properties: panelProperties
|
|
681
|
+
}
|
|
682
|
+
})
|
|
635
683
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
636
684
|
component: "div",
|
|
637
685
|
type: "body1",
|
|
638
686
|
className: classes.description
|
|
639
|
-
}, instruction.label),
|
|
687
|
+
}, instruction.label), teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
640
688
|
label: teacherInstructions.label,
|
|
641
689
|
className: classes.promptContainer
|
|
642
690
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
@@ -662,7 +710,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
662
710
|
mathMlOptions: mathMlOptions
|
|
663
711
|
}), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
664
712
|
className: classes.errorText
|
|
665
|
-
}, teacherInstructionsError)),
|
|
713
|
+
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
666
714
|
label: prompt.label,
|
|
667
715
|
className: classes.promptContainer
|
|
668
716
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
@@ -748,7 +796,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
748
796
|
maxWidth: numberLineDimensions.max,
|
|
749
797
|
maxHeight: 70,
|
|
750
798
|
model: trimModel(initialModel)
|
|
751
|
-
}), /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
|
|
799
|
+
}), titleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FormSection, {
|
|
752
800
|
label: (title === null || title === void 0 ? void 0 : title.label) || 'Title',
|
|
753
801
|
className: classes.title
|
|
754
802
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
@@ -844,7 +892,31 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
844
892
|
},
|
|
845
893
|
onConfirmText: 'OK',
|
|
846
894
|
onCloseText: 'Cancel'
|
|
847
|
-
})
|
|
895
|
+
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
896
|
+
label: rationale.label || 'Rationale',
|
|
897
|
+
className: classes.promptContainer
|
|
898
|
+
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
899
|
+
className: classes.prompt,
|
|
900
|
+
markup: model.rationale || '',
|
|
901
|
+
onChange: function onChange(rationale) {
|
|
902
|
+
return _onChange({
|
|
903
|
+
rationale: rationale
|
|
904
|
+
});
|
|
905
|
+
},
|
|
906
|
+
error: rationaleError,
|
|
907
|
+
toolbarOpts: toolbarOpts,
|
|
908
|
+
spellCheck: spellCheckEnabled,
|
|
909
|
+
pluginProps: getPluginProps(rationale === null || rationale === void 0 ? void 0 : rationale.inputConfiguration),
|
|
910
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
911
|
+
languageCharactersProps: [{
|
|
912
|
+
language: 'spanish'
|
|
913
|
+
}, {
|
|
914
|
+
language: 'special'
|
|
915
|
+
}],
|
|
916
|
+
mathMlOptions: mathMlOptions
|
|
917
|
+
}), rationaleError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
918
|
+
className: classes.errorText
|
|
919
|
+
}, rationaleError)));
|
|
848
920
|
}
|
|
849
921
|
}]);
|
|
850
922
|
return Main;
|
|
@@ -855,6 +927,7 @@ exports.Main = Main;
|
|
|
855
927
|
classes: _propTypes["default"].object.isRequired,
|
|
856
928
|
model: _propTypes["default"].object.isRequired,
|
|
857
929
|
configuration: _propTypes["default"].object.isRequired,
|
|
930
|
+
onConfigurationChanged: _propTypes["default"].func.isRequired,
|
|
858
931
|
onChange: _propTypes["default"].func.isRequired,
|
|
859
932
|
uploadSoundSupport: _propTypes["default"].object.isRequired
|
|
860
933
|
});
|