@pie-element/matrix 5.0.4-next.20261011174919 → 5.0.4
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/dist/author/Main.d.ts +27 -15
- package/dist/author/Main.js +39 -50
- package/dist/author/defaults.d.ts +24 -24
- package/dist/author/index.d.ts +16 -18
- package/dist/author/index.js +4 -0
- package/dist/browser/author/index.js +10 -19
- package/dist/browser/author/index.js.map +1 -1
- package/dist/browser/controller/index.js.map +1 -1
- package/dist/browser/editor-runtime/author/index.js +10 -19
- package/dist/browser/editor-runtime/author/index.js.map +1 -1
- package/dist/browser/editor-runtime/controller/index.js.map +1 -1
- package/dist/controller/defaults.d.ts +4 -4
- package/dist/controller/index.d.ts +22 -5
- package/dist/index.d.ts +1 -0
- package/dist/schemas/configuration.schema.json +263 -0
- package/dist/schemas/model.schema.json +360 -0
- package/dist/schemas/session.schema.json +23 -0
- package/dist/types.d.ts +67 -0
- package/package.json +16 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/controller/defaults.ts","../../../../src/controller/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/controller/defaults.ts","../../../../src/controller/index.ts"],"sourcesContent":["import type { MatrixModel } from '../types.js';\n\nexport default {\n columnLabels: ['COLUMN 1', 'COLUMN 2', 'COLUMN 3'],\n labelType: 'agreement',\n matrixValues: {} as Record<string, number>,\n prompt: '',\n promptEnabled: true,\n rowLabels: ['STATEMENT 1', 'STATEMENT 2'],\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n} satisfies Omit<MatrixModel, 'id' | 'element'>;\n","import defaults from './defaults.js';\nimport { isEmpty } from '@pie-element/shared-lodash';\nimport type { PieEnvironment } from '@pie-element/shared-types';\nimport type { MatrixConfiguration, MatrixModel, MatrixSession } from '../types.js';\n\n/** Errors `validate()` reports. */\nexport type MatrixValidationErrors = {\n teacherInstructions?: string;\n prompt?: string;\n};\n\n/** The model `model()` hands the delivery. */\ntype MatrixViewModel = Omit<MatrixModel, 'teacherInstructions'> & {\n disabled: boolean;\n mode: PieEnvironment['mode'];\n teacherInstructions?: string | null;\n};\n\nexport const createDefaultModel = (model: Partial<MatrixModel> = {}) =>\n new Promise<Partial<MatrixModel>>((resolve) => resolve({ ...defaults, ...model }));\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question: MatrixModel, _session: MatrixSession | undefined, env: PieEnvironment) {\n const normalizedQuestion = { ...defaults, ...question };\n\n const out: MatrixViewModel = {\n ...normalizedQuestion,\n disabled: env.mode !== 'gather',\n mode: env.mode,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport function outcome(model: MatrixModel, session: MatrixSession | undefined) {\n return new Promise<{ score: number; empty: boolean }>((resolve) => {\n // A player sends an untouched item's session as `{ id, element }`, without `value`.\n if (!session || isEmpty(session) || !session.value) {\n return resolve({ score: 0, empty: true });\n }\n\n const score = Object.keys(session.value).reduce((acc, key) => {\n // `model` is not normalized here, so a model without `matrixValues` throws\n const matrixValue = (model.matrixValues as Record<string, number>)[key];\n return acc + (matrixValue || 0);\n }, 0);\n\n resolve({ score, empty: false });\n });\n}\n\nexport const createCorrectResponseSession = (question: MatrixModel, env: PieEnvironment) => {\n return new Promise<MatrixSession | null>((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { matrixValues } = question || [];\n\n resolve({\n id: '1',\n value: matrixValues,\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html: string | undefined) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (\n model: Partial<MatrixModel> = {},\n config: MatrixConfiguration = {},\n): MatrixValidationErrors => {\n const errors: MatrixValidationErrors = {};\n\n (['teacherInstructions', 'prompt'] as const).forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"mappings":";;AAEA,IAAA,IAAe;CACb,cAAc;EAAC;EAAY;EAAY;CAAU;CACjD,WAAW;CACX,cAAc,CAAC;CACf,QAAQ;CACR,eAAe;CACf,WAAW,CAAC,eAAe,aAAa;CACxC,qBAAqB;CACrB,4BAA4B;AAC9B,GCOa,KAAsB,IAA8B,CAAC,MAChE,IAAI,SAA+B,MAAY,EAAQ;CAAE,GAAG;CAAU,GAAG;AAAM,CAAC,CAAC;AAQnF,eAAsB,EAAM,GAAuB,GAAqC,GAAqB;CAC3G,IAAM,IAAqB;EAAE,GAAG;EAAU,GAAG;CAAS,GAEhD,IAAuB;EAC3B,GAAG;EACH,UAAU,EAAI,SAAS;EACvB,MAAM,EAAI;CACZ,GAEM,EAAE,SAAM,YAAS,KAAO,CAAC;CAU/B,OARI,MAAS,iBAAiB,MAAS,UAAU,MAAS,cACxD,EAAI,sBAAsB,EAAmB,6BACzC,EAAmB,sBACnB,OAEJ,EAAI,sBAAsB,MAGrB;AACT;AAEA,SAAgB,EAAQ,GAAoB,GAAoC;CAC9E,OAAO,IAAI,SAA4C,MAAY;EAEjE,IAAI,CAAC,KAAW,EAAQ,CAAO,KAAK,CAAC,EAAQ,OAC3C,OAAO,EAAQ;GAAE,OAAO;GAAG,OAAO;EAAK,CAAC;EAS1C,EAAQ;GAAE,OANI,OAAO,KAAK,EAAQ,KAAK,CAAC,CAAC,QAAQ,GAAK,MAG7C,KADc,EAAM,aAAwC,MACtC,IAC5B,CAEO;GAAO,OAAO;EAAM,CAAC;CACjC,CAAC;AACH;AAEA,IAAa,KAAgC,GAAuB,MAC3D,IAAI,SAA+B,MAAY;CACpD,IAAI,EAAI,SAAS,cAAc,EAAI,SAAS,cAAc;EACxD,IAAM,EAAE,oBAAiB,KAAY,CAAC;EAEtC,EAAQ;GACN,IAAI;GACJ,OAAO;EACT,CAAC;CACH,OACE,EAAQ,IAAI;AAEhB,CAAC,GAIG,KAAc,OAA8B,KAAQ,GAAA,CAAI,QAAQ,sCAAsC,EAAE,GAEjG,KACX,IAA8B,CAAC,GAC/B,IAA8B,CAAC,MACJ;CAC3B,IAAM,IAAiC,CAAC;CAQxC,OANA,CAAE,uBAAuB,QAAQ,CAAC,CAAW,SAAS,MAAU;EAC9D,AAAI,EAAO,EAAM,EAAE,YAAY,CAAC,EAAW,EAAM,EAAM,MACrD,EAAO,KAAS;CAEpB,CAAC,GAEM;AACT"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
columnLabels: string[];
|
|
3
|
-
labelType:
|
|
4
|
-
matrixValues:
|
|
3
|
+
labelType: "agreement";
|
|
4
|
+
matrixValues: Record<string, number>;
|
|
5
5
|
prompt: string;
|
|
6
|
-
promptEnabled:
|
|
6
|
+
promptEnabled: true;
|
|
7
7
|
rowLabels: string[];
|
|
8
8
|
teacherInstructions: string;
|
|
9
|
-
teacherInstructionsEnabled:
|
|
9
|
+
teacherInstructionsEnabled: true;
|
|
10
10
|
};
|
|
11
11
|
export default _default;
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PieEnvironment } from '@pie-element/shared-types';
|
|
2
|
+
import type { MatrixConfiguration, MatrixModel, MatrixSession } from '../types.js';
|
|
3
|
+
/** Errors `validate()` reports. */
|
|
4
|
+
export type MatrixValidationErrors = {
|
|
5
|
+
teacherInstructions?: string;
|
|
6
|
+
prompt?: string;
|
|
7
|
+
};
|
|
8
|
+
/** The model `model()` hands the delivery. */
|
|
9
|
+
type MatrixViewModel = Omit<MatrixModel, 'teacherInstructions'> & {
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
mode: PieEnvironment['mode'];
|
|
12
|
+
teacherInstructions?: string | null;
|
|
13
|
+
};
|
|
14
|
+
export declare const createDefaultModel: (model?: Partial<MatrixModel>) => Promise<Partial<MatrixModel>>;
|
|
2
15
|
/**
|
|
3
16
|
*
|
|
4
17
|
* @param {*} question
|
|
5
18
|
* @param {*} session
|
|
6
19
|
* @param {*} env
|
|
7
20
|
*/
|
|
8
|
-
export declare function model(question:
|
|
9
|
-
export declare function outcome(model:
|
|
10
|
-
|
|
11
|
-
|
|
21
|
+
export declare function model(question: MatrixModel, _session: MatrixSession | undefined, env: PieEnvironment): Promise<MatrixViewModel>;
|
|
22
|
+
export declare function outcome(model: MatrixModel, session: MatrixSession | undefined): Promise<{
|
|
23
|
+
score: number;
|
|
24
|
+
empty: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const createCorrectResponseSession: (question: MatrixModel, env: PieEnvironment) => Promise<MatrixSession | null>;
|
|
27
|
+
export declare const validate: (model?: Partial<MatrixModel>, config?: MatrixConfiguration) => MatrixValidationErrors;
|
|
28
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://cdn.jsdelivr.net/npm/@pie-element/matrix@5.0.4/dist/schemas/configuration.schema.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"baseInputConfiguration": {
|
|
7
|
+
"$ref": "#/definitions/EditableHtmlConfigureProp",
|
|
8
|
+
"description": "Base editable html input configuration regarding plugins that are enabled/disabled E.g. audio, video, image"
|
|
9
|
+
},
|
|
10
|
+
"settingsPanelDisabled": {
|
|
11
|
+
"type": "boolean",
|
|
12
|
+
"description": "Indicates if the settings panel is not available"
|
|
13
|
+
},
|
|
14
|
+
"spellCheck": {
|
|
15
|
+
"$ref": "#/definitions/ConfigurePropWithEnabled",
|
|
16
|
+
"description": "Configuration for the author's spellcheck; `enabled` is not read, the model's `spellCheckEnabled` turns it on"
|
|
17
|
+
},
|
|
18
|
+
"teacherInstructions": {
|
|
19
|
+
"$ref": "#/definitions/EditableHtmlPluginConfigureRequired",
|
|
20
|
+
"description": "Teacher Instructions configuration"
|
|
21
|
+
},
|
|
22
|
+
"prompt": {
|
|
23
|
+
"$ref": "#/definitions/EditableHtmlPluginConfigureRequired",
|
|
24
|
+
"description": "Configuration for the prompt"
|
|
25
|
+
},
|
|
26
|
+
"scoringType": {
|
|
27
|
+
"$ref": "#/definitions/ConfigureProp",
|
|
28
|
+
"description": "Scoring Type configuration"
|
|
29
|
+
},
|
|
30
|
+
"contentDimensions": {
|
|
31
|
+
"$ref": "#/definitions/ContentDimensions",
|
|
32
|
+
"description": "Dimensions of the authoring container"
|
|
33
|
+
},
|
|
34
|
+
"showPrompt": {
|
|
35
|
+
"type": "boolean",
|
|
36
|
+
"description": "Not read by this element: the prompt always shows"
|
|
37
|
+
},
|
|
38
|
+
"promptLabel": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Not read by this element: `prompt.label` labels the prompt"
|
|
41
|
+
},
|
|
42
|
+
"settingsPartialScoring": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"description": "Not read by this element, which has no partial scoring"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"description": "Config Object for `@pie-element/matrix`",
|
|
48
|
+
"definitions": {
|
|
49
|
+
"EditableHtmlConfigureProp": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"properties": {
|
|
52
|
+
"math": {
|
|
53
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
54
|
+
},
|
|
55
|
+
"audio": {
|
|
56
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
57
|
+
},
|
|
58
|
+
"video": {
|
|
59
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
60
|
+
},
|
|
61
|
+
"image": {
|
|
62
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
63
|
+
},
|
|
64
|
+
"customPlugins": {
|
|
65
|
+
"type": "array",
|
|
66
|
+
"items": {
|
|
67
|
+
"$ref": "#/definitions/CustomPlugin"
|
|
68
|
+
},
|
|
69
|
+
"description": "An array of objects that determine custom plugins. A custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when the button gets pressed (event)."
|
|
70
|
+
},
|
|
71
|
+
"blockquote": {
|
|
72
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
73
|
+
},
|
|
74
|
+
"h3": {
|
|
75
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
76
|
+
},
|
|
77
|
+
"characters": {
|
|
78
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
79
|
+
},
|
|
80
|
+
"bold": {
|
|
81
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
82
|
+
},
|
|
83
|
+
"html": {
|
|
84
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
85
|
+
},
|
|
86
|
+
"italic": {
|
|
87
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
88
|
+
},
|
|
89
|
+
"ol_list": {
|
|
90
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
91
|
+
},
|
|
92
|
+
"redo": {
|
|
93
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
94
|
+
},
|
|
95
|
+
"strikethrough": {
|
|
96
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
97
|
+
},
|
|
98
|
+
"sub": {
|
|
99
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
100
|
+
},
|
|
101
|
+
"sup": {
|
|
102
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
103
|
+
},
|
|
104
|
+
"table": {
|
|
105
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
106
|
+
},
|
|
107
|
+
"ul_list": {
|
|
108
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
109
|
+
},
|
|
110
|
+
"underline": {
|
|
111
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
112
|
+
},
|
|
113
|
+
"undo": {
|
|
114
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
115
|
+
},
|
|
116
|
+
"textAlign": {
|
|
117
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
118
|
+
},
|
|
119
|
+
"showParagraphs": {
|
|
120
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
121
|
+
},
|
|
122
|
+
"separateParagraphs": {
|
|
123
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
124
|
+
},
|
|
125
|
+
"pasteFormatting": {
|
|
126
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
127
|
+
},
|
|
128
|
+
"superscript": {
|
|
129
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
130
|
+
},
|
|
131
|
+
"subscript": {
|
|
132
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
133
|
+
},
|
|
134
|
+
"languageCharacters": {
|
|
135
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
136
|
+
},
|
|
137
|
+
"responseArea": {
|
|
138
|
+
"$ref": "#/definitions/EditableHtmlButtonConfigure"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"description": "Toolbar plugins of an editable-html field, keyed by plugin name."
|
|
142
|
+
},
|
|
143
|
+
"EditableHtmlButtonConfigure": {
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"disabled": {
|
|
147
|
+
"type": "boolean",
|
|
148
|
+
"description": "Indicates if the plugin is disabled or not"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"CustomPlugin": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"properties": {
|
|
155
|
+
"event": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used). The event is emitted with the \"PIE-\" prefix."
|
|
158
|
+
},
|
|
159
|
+
"iconAlt": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "The alt for the custom button icon"
|
|
162
|
+
},
|
|
163
|
+
"iconType": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"description": "The icon type. Currently, only \"SVG\" is supported."
|
|
166
|
+
},
|
|
167
|
+
"icon": {
|
|
168
|
+
"type": "string",
|
|
169
|
+
"description": "The icon string. Currently, only SVG is supported, so it needs to be a valid svg."
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
"required": [
|
|
173
|
+
"event",
|
|
174
|
+
"iconAlt",
|
|
175
|
+
"iconType",
|
|
176
|
+
"icon"
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"ConfigurePropWithEnabled": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"properties": {
|
|
182
|
+
"settings": {
|
|
183
|
+
"type": "boolean",
|
|
184
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel"
|
|
185
|
+
},
|
|
186
|
+
"label": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel"
|
|
189
|
+
},
|
|
190
|
+
"enabled": {
|
|
191
|
+
"type": "boolean",
|
|
192
|
+
"description": "Indicates the value of the item if it affects config-ui (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)"
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"EditableHtmlPluginConfigureRequired": {
|
|
197
|
+
"type": "object",
|
|
198
|
+
"properties": {
|
|
199
|
+
"settings": {
|
|
200
|
+
"type": "boolean",
|
|
201
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel"
|
|
202
|
+
},
|
|
203
|
+
"label": {
|
|
204
|
+
"type": "string",
|
|
205
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel"
|
|
206
|
+
},
|
|
207
|
+
"inputConfiguration": {
|
|
208
|
+
"$ref": "#/definitions/EditableHtmlConfigureProp",
|
|
209
|
+
"description": "Configuration for editable-html"
|
|
210
|
+
},
|
|
211
|
+
"required": {
|
|
212
|
+
"type": "boolean",
|
|
213
|
+
"description": "Indicates if the item is required and the value cannot be empty"
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"ConfigureProp": {
|
|
218
|
+
"type": "object",
|
|
219
|
+
"properties": {
|
|
220
|
+
"settings": {
|
|
221
|
+
"type": "boolean",
|
|
222
|
+
"description": "Indicates if the item has to be displayed in the Settings Panel"
|
|
223
|
+
},
|
|
224
|
+
"label": {
|
|
225
|
+
"type": "string",
|
|
226
|
+
"description": "Indicates the label for the item that has to be displayed in the Settings Panel"
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"description": "Building blocks of an element's authoring configuration: the object a host passes to the `<tag>-config` custom element to decide which settings the author sees and how editors behave.\n\nEach element declares its own `<Name>Configuration` interface from these, and its JSON Schema is generated from that interface. Descriptions are carried over from the legacy `pie-elements` config schemas, so they appear in the generated schemas unchanged."
|
|
230
|
+
},
|
|
231
|
+
"ContentDimensions": {
|
|
232
|
+
"type": "object",
|
|
233
|
+
"properties": {
|
|
234
|
+
"maxHeight": {
|
|
235
|
+
"type": [
|
|
236
|
+
"string",
|
|
237
|
+
"number"
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
"maxWidth": {
|
|
241
|
+
"type": [
|
|
242
|
+
"string",
|
|
243
|
+
"number"
|
|
244
|
+
]
|
|
245
|
+
},
|
|
246
|
+
"minHeight": {
|
|
247
|
+
"type": [
|
|
248
|
+
"string",
|
|
249
|
+
"number"
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
"minWidth": {
|
|
253
|
+
"type": [
|
|
254
|
+
"string",
|
|
255
|
+
"number"
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"description": "Indicates the dimensions configuration for the authoring container. Note: Some items have a default minimum width because of their content, but if a lower minWidth is provided, it will be used."
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"additionalProperties": false
|
|
263
|
+
}
|