@pie-element/matrix 0.23.1-next.5 → 0.24.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 +21 -0
- package/configure/CHANGELOG.md +18 -0
- package/configure/lib/Main.js +3 -2
- package/configure/lib/Main.js.map +1 -1
- package/configure/package.json +2 -2
- package/docs/config-schema.json +55 -0
- package/docs/config-schema.json.md +40 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,27 @@
|
|
|
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
|
+
# [0.24.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/matrix@0.23.0...@pie-element/matrix@0.24.0) (2024-03-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Renamed the html prop to the correct math prop PD-3527 ([28061b6](https://github.com/pie-framework/pie-elements/commit/28061b6032817dae15837131d8a0bf5a08683b10))
|
|
12
|
+
* updated pie-lib/pie-toolbox SC-28500 ([a8e4e6a](https://github.com/pie-framework/pie-elements/commit/a8e4e6ab27584435ce7ac3e964ccac2747402777))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Add configuration for custom buttons PD-3520 ([a7a7ace](https://github.com/pie-framework/pie-elements/commit/a7a7ace27eaac47c9a0f172f7ae0440c6dc4e600))
|
|
18
|
+
* Add configuration for custom buttons PD-3527 ([45a32bd](https://github.com/pie-framework/pie-elements/commit/45a32bd8e9d7bd33beca74cc10c7dd973a9f9dbc))
|
|
19
|
+
* Replace math-rendering package with math-rendering-accessible-package for accessibility PD-1870 ([b6cdee8](https://github.com/pie-framework/pie-elements/commit/b6cdee8915b06e4c11b002b10437db07ce966501))
|
|
20
|
+
* updated pie-lib/pie-toolbox SC-27890 and reverted once again math-rendering-accessible ([fd312e1](https://github.com/pie-framework/pie-elements/commit/fd312e1336999893025231946649496d290883e4))
|
|
21
|
+
* use math-rendering-accessible everywhere PD-1870 ([d52e660](https://github.com/pie-framework/pie-elements/commit/d52e6607ad8847d704bd9cb9b7e3107c130f0500))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
6
27
|
# [0.23.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/matrix@0.22.2...@pie-element/matrix@0.23.0) (2024-03-15)
|
|
7
28
|
|
|
8
29
|
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
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
|
+
# [0.20.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/matrix-configure@0.19.0...@pie-element/matrix-configure@0.20.0) (2024-03-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* updated pie-lib/pie-toolbox SC-28500 ([a8e4e6a](https://github.com/pie-framework/pie-elements/commit/a8e4e6ab27584435ce7ac3e964ccac2747402777))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* Add configuration for custom buttons PD-3520 ([a7a7ace](https://github.com/pie-framework/pie-elements/commit/a7a7ace27eaac47c9a0f172f7ae0440c6dc4e600))
|
|
17
|
+
* updated pie-lib/pie-toolbox SC-27890 and reverted once again math-rendering-accessible ([fd312e1](https://github.com/pie-framework/pie-elements/commit/fd312e1336999893025231946649496d290883e4))
|
|
18
|
+
* use math-rendering-accessible everywhere PD-1870 ([d52e660](https://github.com/pie-framework/pie-elements/commit/d52e6607ad8847d704bd9cb9b7e3107c130f0500))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
# [0.19.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/matrix-configure@0.18.2...@pie-element/matrix-configure@0.19.0) (2024-03-15)
|
|
7
25
|
|
|
8
26
|
|
package/configure/lib/Main.js
CHANGED
|
@@ -106,8 +106,9 @@ var Design = (0, _styles.withStyles)(styles)(function (props) {
|
|
|
106
106
|
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
|
|
107
107
|
};
|
|
108
108
|
|
|
109
|
-
var getPluginProps = function getPluginProps(
|
|
110
|
-
|
|
109
|
+
var getPluginProps = function getPluginProps() {
|
|
110
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
111
|
+
return _objectSpread(_objectSpread({}, baseInputConfiguration), props);
|
|
111
112
|
};
|
|
112
113
|
|
|
113
114
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Main.jsx"],"names":["Panel","settings","toggle","radio","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","matrixHeaderOptionsHolder","display","flexWrap","paddingBottom","justifyContent","Design","props","classes","model","configuration","onPromptChanged","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","baseInputConfiguration","contentDimensions","prompt","scoringType","settingsPanelDisabled","spellCheck","teacherInstructions","teacherInstructionsEnabled","spellCheckEnabled","panelProperties","label","getPluginProps","Object","assign","Properties","inputConfiguration","Main","onModelChanged","data","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport MatrixColumnsSizeHeaderInput from './MatrixColumnsSizeHeaderInput';\nimport MatrixRowsSizeHeaderInput from './MatrixRowsSizeHeaderInput';\nimport MatrixLabelTypeHeaderInput from './MatrixLabelTypeHeaderInput';\nimport MatrixValues from './MatrixValues';\n\nconst { Panel, toggle, radio } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n matrixHeaderOptionsHolder: {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n paddingBottom: theme.spacing.unit * 2.5,\n justifyContent: 'space-around',\n },\n});\n\nconst Design = withStyles(styles)((props) => {\n const {\n classes,\n model,\n configuration,\n onPromptChanged,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n prompt = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n } = configuration || {};\n const { teacherInstructionsEnabled, spellCheckEnabled } = model || {};\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n </InputContainer>\n )}\n\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n nonEmpty={!prompt.settings}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n disableUnderline\n />\n </InputContainer>\n\n <div className={classes.matrixHeaderOptionsHolder}>\n <MatrixRowsSizeHeaderInput model={model} onChangeModel={onChangeModel} />\n <MatrixColumnsSizeHeaderInput model={model} onChangeModel={onChangeModel} />\n <MatrixLabelTypeHeaderInput model={model} onChangeModel={onChangeModel} />\n </div>\n\n <MatrixValues model={model} onChangeModel={onChangeModel} />\n </layout.ConfigLayout>\n );\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onChangeModel = (data) => {\n this.props.onModelChanged({ ...this.props.model, ...data });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n };\n\n render() {\n return (\n <Design\n {...this.props}\n onChangeModel={this.props.onModelChanged}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"Main.js"}
|
|
1
|
+
{"version":3,"sources":["../src/Main.jsx"],"names":["Panel","settings","toggle","radio","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","matrixHeaderOptionsHolder","display","flexWrap","paddingBottom","justifyContent","Design","props","classes","model","configuration","onPromptChanged","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","baseInputConfiguration","contentDimensions","prompt","scoringType","settingsPanelDisabled","spellCheck","teacherInstructions","teacherInstructionsEnabled","spellCheckEnabled","panelProperties","label","getPluginProps","Properties","inputConfiguration","Main","onModelChanged","data","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport MatrixColumnsSizeHeaderInput from './MatrixColumnsSizeHeaderInput';\nimport MatrixRowsSizeHeaderInput from './MatrixRowsSizeHeaderInput';\nimport MatrixLabelTypeHeaderInput from './MatrixLabelTypeHeaderInput';\nimport MatrixValues from './MatrixValues';\n\nconst { Panel, toggle, radio } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n matrixHeaderOptionsHolder: {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%',\n paddingBottom: theme.spacing.unit * 2.5,\n justifyContent: 'space-around',\n },\n});\n\nconst Design = withStyles(styles)((props) => {\n const {\n classes,\n model,\n configuration,\n onPromptChanged,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n prompt = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n teacherInstructions = {},\n } = configuration || {};\n const { teacherInstructionsEnabled, spellCheckEnabled } = model || {};\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n nonEmpty={false}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n />\n </InputContainer>\n )}\n\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n nonEmpty={!prompt.settings}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n disableUnderline\n />\n </InputContainer>\n\n <div className={classes.matrixHeaderOptionsHolder}>\n <MatrixRowsSizeHeaderInput model={model} onChangeModel={onChangeModel} />\n <MatrixColumnsSizeHeaderInput model={model} onChangeModel={onChangeModel} />\n <MatrixLabelTypeHeaderInput model={model} onChangeModel={onChangeModel} />\n </div>\n\n <MatrixValues model={model} onChangeModel={onChangeModel} />\n </layout.ConfigLayout>\n );\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({ ...this.props.model, prompt });\n };\n\n onChangeModel = (data) => {\n this.props.onModelChanged({ ...this.props.model, ...data });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({ ...this.props.model, teacherInstructions });\n };\n\n render() {\n return (\n <Design\n {...this.props}\n onChangeModel={this.props.onModelChanged}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"Main.js"}
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/matrix-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.20.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
12
|
-
"@pie-lib/pie-toolbox": "1.
|
|
12
|
+
"@pie-lib/pie-toolbox": "1.11.1",
|
|
13
13
|
"debug": "^4.1.1",
|
|
14
14
|
"prop-types": "^15.6.2",
|
|
15
15
|
"react": "^16.8.1",
|
package/docs/config-schema.json
CHANGED
|
@@ -7,6 +7,17 @@
|
|
|
7
7
|
"title": "EditableHtmlConfigureProp",
|
|
8
8
|
"type": "object",
|
|
9
9
|
"properties": {
|
|
10
|
+
"math": {
|
|
11
|
+
"title": "EditableHtmlButtonConfigure",
|
|
12
|
+
"type": "object",
|
|
13
|
+
"properties": {
|
|
14
|
+
"disabled": {
|
|
15
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
16
|
+
"type": "boolean",
|
|
17
|
+
"title": "disabled"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
10
21
|
"audio": {
|
|
11
22
|
"title": "EditableHtmlButtonConfigure",
|
|
12
23
|
"type": "object",
|
|
@@ -71,6 +82,17 @@
|
|
|
71
82
|
"title": "EditableHtmlConfigureProp",
|
|
72
83
|
"type": "object",
|
|
73
84
|
"properties": {
|
|
85
|
+
"math": {
|
|
86
|
+
"title": "EditableHtmlButtonConfigure",
|
|
87
|
+
"type": "object",
|
|
88
|
+
"properties": {
|
|
89
|
+
"disabled": {
|
|
90
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
91
|
+
"type": "boolean",
|
|
92
|
+
"title": "disabled"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
74
96
|
"audio": {
|
|
75
97
|
"title": "EditableHtmlButtonConfigure",
|
|
76
98
|
"type": "object",
|
|
@@ -126,6 +148,17 @@
|
|
|
126
148
|
"title": "EditableHtmlConfigureProp",
|
|
127
149
|
"type": "object",
|
|
128
150
|
"properties": {
|
|
151
|
+
"math": {
|
|
152
|
+
"title": "EditableHtmlButtonConfigure",
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"disabled": {
|
|
156
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
157
|
+
"type": "boolean",
|
|
158
|
+
"title": "disabled"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
129
162
|
"audio": {
|
|
130
163
|
"title": "EditableHtmlButtonConfigure",
|
|
131
164
|
"type": "object",
|
|
@@ -241,6 +274,17 @@
|
|
|
241
274
|
"title": "EditableHtmlConfigureProp",
|
|
242
275
|
"type": "object",
|
|
243
276
|
"properties": {
|
|
277
|
+
"math": {
|
|
278
|
+
"title": "EditableHtmlButtonConfigure",
|
|
279
|
+
"type": "object",
|
|
280
|
+
"properties": {
|
|
281
|
+
"disabled": {
|
|
282
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
283
|
+
"type": "boolean",
|
|
284
|
+
"title": "disabled"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
},
|
|
244
288
|
"audio": {
|
|
245
289
|
"title": "EditableHtmlButtonConfigure",
|
|
246
290
|
"type": "object",
|
|
@@ -311,6 +355,17 @@
|
|
|
311
355
|
"title": "EditableHtmlConfigureProp",
|
|
312
356
|
"type": "object",
|
|
313
357
|
"properties": {
|
|
358
|
+
"math": {
|
|
359
|
+
"title": "EditableHtmlButtonConfigure",
|
|
360
|
+
"type": "object",
|
|
361
|
+
"properties": {
|
|
362
|
+
"disabled": {
|
|
363
|
+
"description": "Indicates if the plugin is disabled or not",
|
|
364
|
+
"type": "boolean",
|
|
365
|
+
"title": "disabled"
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
},
|
|
314
369
|
"audio": {
|
|
315
370
|
"title": "EditableHtmlButtonConfigure",
|
|
316
371
|
"type": "object",
|
|
@@ -6,6 +6,14 @@ The schema defines the following properties:
|
|
|
6
6
|
|
|
7
7
|
Properties of the `baseInputConfiguration` object:
|
|
8
8
|
|
|
9
|
+
## `math` (object)
|
|
10
|
+
|
|
11
|
+
Properties of the `math` object:
|
|
12
|
+
|
|
13
|
+
### `disabled` (boolean)
|
|
14
|
+
|
|
15
|
+
Indicates if the plugin is disabled or not
|
|
16
|
+
|
|
9
17
|
## `audio` (object)
|
|
10
18
|
|
|
11
19
|
Properties of the `audio` object:
|
|
@@ -54,6 +62,14 @@ Properties of the `teacherInstructions` object:
|
|
|
54
62
|
|
|
55
63
|
Properties of the `inputConfiguration` object:
|
|
56
64
|
|
|
65
|
+
### `math` (object)
|
|
66
|
+
|
|
67
|
+
Properties of the `math` object:
|
|
68
|
+
|
|
69
|
+
#### `disabled` (boolean)
|
|
70
|
+
|
|
71
|
+
Indicates if the plugin is disabled or not
|
|
72
|
+
|
|
57
73
|
### `audio` (object)
|
|
58
74
|
|
|
59
75
|
Properties of the `audio` object:
|
|
@@ -94,6 +110,14 @@ Properties of the `prompt` object:
|
|
|
94
110
|
|
|
95
111
|
Properties of the `inputConfiguration` object:
|
|
96
112
|
|
|
113
|
+
### `math` (object)
|
|
114
|
+
|
|
115
|
+
Properties of the `math` object:
|
|
116
|
+
|
|
117
|
+
#### `disabled` (boolean)
|
|
118
|
+
|
|
119
|
+
Indicates if the plugin is disabled or not
|
|
120
|
+
|
|
97
121
|
### `audio` (object)
|
|
98
122
|
|
|
99
123
|
Properties of the `audio` object:
|
|
@@ -188,6 +212,14 @@ The schema defines the following additional types:
|
|
|
188
212
|
|
|
189
213
|
Properties of the `EditableHtmlConfigureProp` object:
|
|
190
214
|
|
|
215
|
+
### `math` (object)
|
|
216
|
+
|
|
217
|
+
Properties of the `math` object:
|
|
218
|
+
|
|
219
|
+
#### `disabled` (boolean)
|
|
220
|
+
|
|
221
|
+
Indicates if the plugin is disabled or not
|
|
222
|
+
|
|
191
223
|
### `audio` (object)
|
|
192
224
|
|
|
193
225
|
Properties of the `audio` object:
|
|
@@ -240,6 +272,14 @@ Properties of the `EditableHtmlPluginConfigure` object:
|
|
|
240
272
|
|
|
241
273
|
Properties of the `inputConfiguration` object:
|
|
242
274
|
|
|
275
|
+
#### `math` (object)
|
|
276
|
+
|
|
277
|
+
Properties of the `math` object:
|
|
278
|
+
|
|
279
|
+
##### `disabled` (boolean)
|
|
280
|
+
|
|
281
|
+
Indicates if the plugin is disabled or not
|
|
282
|
+
|
|
243
283
|
#### `audio` (object)
|
|
244
284
|
|
|
245
285
|
Properties of the `audio` object:
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.24.0",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@material-ui/core": "^3.9.2",
|
|
14
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
15
|
-
"@pie-lib/pie-toolbox": "1.
|
|
15
|
+
"@pie-lib/pie-toolbox": "1.11.1",
|
|
16
16
|
"debug": "^4.1.1",
|
|
17
17
|
"prop-types": "^15.6.1",
|
|
18
18
|
"react": "^16.8.1",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "229e10aa53659f55129b8a4e27dbfc76939e214b",
|
|
25
25
|
"main": "lib/index.js",
|
|
26
26
|
"module": "src/index.js"
|
|
27
27
|
}
|