@cxtms/cx-schema 1.9.67 → 1.9.241

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.
Files changed (81) hide show
  1. package/dist/cli.js +43 -9
  2. package/dist/cli.js.map +1 -1
  3. package/package.json +1 -1
  4. package/schemas/actions/all.json +5 -1
  5. package/schemas/actions/reload.json +17 -0
  6. package/schemas/actions/setSessionStorage.json +38 -0
  7. package/schemas/actions/sound.json +39 -0
  8. package/schemas/actions/vibrate.json +48 -0
  9. package/schemas/components/avatar.json +1 -0
  10. package/schemas/components/badge.json +79 -0
  11. package/schemas/components/barcodeScanner.json +28 -0
  12. package/schemas/components/camera.json +177 -0
  13. package/schemas/components/card.json +78 -0
  14. package/schemas/components/dashboard-widget.json +39 -0
  15. package/schemas/components/dashboard.json +46 -0
  16. package/schemas/components/dataGrid.json +15 -0
  17. package/schemas/components/field-collection.json +86 -2
  18. package/schemas/components/field.json +39 -4
  19. package/schemas/components/form.json +4 -0
  20. package/schemas/components/index.json +17 -1
  21. package/schemas/components/infoLine.json +1 -0
  22. package/schemas/components/map.json +167 -0
  23. package/schemas/components/module.json +32 -0
  24. package/schemas/components/planner.json +1 -0
  25. package/schemas/components/progressBar.json +1 -0
  26. package/schemas/components/timeline.json +216 -74
  27. package/schemas/components/timelineGrid.json +5 -1
  28. package/schemas/fields/autocomplete-googleplaces.json +2 -2
  29. package/schemas/fields/datetime.json +2 -2
  30. package/schemas/fields/index.json +4 -0
  31. package/schemas/fields/number-select.json +88 -0
  32. package/schemas/fields/rangedatetime.json +10 -2
  33. package/schemas/fields/select-async.json +2 -2
  34. package/schemas/fields/toggle.json +91 -0
  35. package/schemas/schema.graphql +11016 -12171
  36. package/schemas/schemas.json +131 -4
  37. package/schemas/workflows/flow/entity.json +3 -1
  38. package/schemas/workflows/input.json +1 -1
  39. package/schemas/workflows/output.json +1 -1
  40. package/schemas/workflows/tasks/all.json +9 -0
  41. package/schemas/workflows/tasks/commodity.json +8 -0
  42. package/schemas/workflows/tasks/contact-address.json +25 -0
  43. package/schemas/workflows/tasks/dispatch-routes.json +64 -0
  44. package/schemas/workflows/tasks/edi.json +15 -0
  45. package/schemas/workflows/tasks/export.json +21 -0
  46. package/schemas/workflows/tasks/httpRequest.json +4 -0
  47. package/schemas/workflows/tasks/import.json +5 -0
  48. package/schemas/workflows/tasks/order-move.json +38 -0
  49. package/schemas/workflows/tasks/order.json +6 -0
  50. package/schemas/workflows/tasks/organization-config.json +101 -0
  51. package/schemas/workflows/tasks/tracking-event.json +11 -3
  52. package/schemas/workflows/tasks/workflow-execute.json +4 -0
  53. package/schemas/workflows/variable.json +2 -2
  54. package/schemas/workflows/workflow.json +39 -2
  55. package/skills/cxtms-developer/SKILL.md +5 -2
  56. package/skills/cxtms-developer/ref-cli-auth.md +2 -0
  57. package/skills/cxtms-developer/ref-entity-commodity.md +41 -5
  58. package/skills/cxtms-developer/ref-entity-contact.md +46 -0
  59. package/skills/cxtms-developer/ref-entity-dispatch-routing.md +195 -0
  60. package/skills/cxtms-developer/ref-entity-geography.md +26 -1
  61. package/skills/cxtms-developer/ref-entity-job.md +6 -2
  62. package/skills/cxtms-developer/ref-entity-order-sub.md +1 -1
  63. package/skills/cxtms-developer/ref-entity-order.md +36 -3
  64. package/skills/cxtms-developer/ref-entity-organization.md +4 -2
  65. package/skills/cxtms-developer/ref-entity-shared.md +79 -3
  66. package/skills/cxtms-developer/ref-graphql-query.md +246 -4
  67. package/skills/cxtms-module-builder/SKILL.md +33 -6
  68. package/skills/cxtms-module-builder/ref-components-data.md +85 -0
  69. package/skills/cxtms-module-builder/ref-components-display.md +282 -8
  70. package/skills/cxtms-module-builder/ref-components-forms.md +386 -21
  71. package/skills/cxtms-module-builder/ref-components-interactive.md +2 -0
  72. package/skills/cxtms-module-builder/ref-components-layout.md +288 -29
  73. package/skills/cxtms-module-builder/ref-components-specialized.md +168 -20
  74. package/skills/cxtms-workflow-builder/SKILL.md +45 -6
  75. package/skills/cxtms-workflow-builder/ref-entity.md +100 -4
  76. package/skills/cxtms-workflow-builder/ref-expressions-ncalc.md +35 -2
  77. package/skills/cxtms-workflow-builder/ref-expressions-template.md +15 -1
  78. package/skills/cxtms-workflow-builder/ref-flow.md +6 -1
  79. package/skills/cxtms-workflow-builder/ref-query.md +16 -0
  80. package/skills/cxtms-workflow-builder/ref-utilities.md +32 -2
  81. package/templates/workflow-public-api.yaml +1 -0
@@ -68,6 +68,21 @@
68
68
  },
69
69
  "onClick": {
70
70
  "$ref": "../schemas.json#/definitions/actionsList"
71
+ },
72
+ "permission": {
73
+ "type": "string",
74
+ "description": "Permission required to show/enable the menu item"
75
+ },
76
+ "isHidden": {
77
+ "$ref": "../schemas.json#/definitions/templateExpression",
78
+ "description": "Template expression evaluated with component props and row data"
79
+ },
80
+ "disabled": {
81
+ "oneOf": [
82
+ { "type": "boolean" },
83
+ { "$ref": "../schemas.json#/definitions/templateExpression" }
84
+ ],
85
+ "description": "Boolean or template expression evaluated with component props and row data"
71
86
  }
72
87
  }
73
88
  }
@@ -18,13 +18,19 @@
18
18
  },
19
19
  "props": {
20
20
  "type": "object",
21
- "required": ["fieldName", "itemTemplate"],
21
+ "required": ["fieldName"],
22
22
  "properties": {
23
23
  "fieldName": {
24
24
  "type": "string",
25
25
  "description": "The form field name this collection binds to",
26
26
  "x-example": "businessHours"
27
27
  },
28
+ "itemType": {
29
+ "type": "string",
30
+ "enum": ["object", "string", "number", "boolean", "auto"],
31
+ "default": "object",
32
+ "description": "Array item type. Primitive collections can omit itemTemplate; auto detects from existing data."
33
+ },
28
34
  "itemTemplate": {
29
35
  "oneOf": [
30
36
  {
@@ -105,12 +111,20 @@
105
111
  "default": null,
106
112
  "description": "Maximum number of items allowed",
107
113
  "x-example": 10
114
+ },
115
+ "removeType": {
116
+ "type": "string",
117
+ "enum": ["soft", "hard"],
118
+ "default": "soft",
119
+ "description": "Delete mode for removed items: 'soft' marks object rows with isDeleted=true, while 'hard' physically removes the item from the array",
120
+ "x-example": "hard"
108
121
  }
109
122
  },
110
123
  "x-example": {
111
124
  "allowAdd": true,
112
125
  "allowRemove": true,
113
126
  "allowReorder": true,
127
+ "removeType": "soft",
114
128
  "minItems": 0,
115
129
  "maxItems": 7
116
130
  }
@@ -281,6 +295,30 @@
281
295
  "description": "Number of columns for grid layout",
282
296
  "x-example": 2
283
297
  },
298
+ "groupCols": {
299
+ "oneOf": [
300
+ {
301
+ "type": "integer",
302
+ "minimum": 1,
303
+ "maximum": 12
304
+ },
305
+ {
306
+ "type": "object",
307
+ "additionalProperties": false,
308
+ "properties": {
309
+ "xs": { "type": "integer", "minimum": 1, "maximum": 12 },
310
+ "sm": { "type": "integer", "minimum": 1, "maximum": 12 },
311
+ "md": { "type": "integer", "minimum": 1, "maximum": 12 },
312
+ "lg": { "type": "integer", "minimum": 1, "maximum": 12 },
313
+ "xl": { "type": "integer", "minimum": 1, "maximum": 12 }
314
+ },
315
+ "minProperties": 1
316
+ }
317
+ ],
318
+ "default": 1,
319
+ "description": "Number of group columns when groupMode is enabled. Accepts a fixed count or responsive breakpoint counts; each count is converted to Material UI grid width (12 / count).",
320
+ "x-example": { "xs": 1, "md": 2, "lg": 4 }
321
+ },
284
322
  "spacing": {
285
323
  "type": "integer",
286
324
  "minimum": 0,
@@ -289,6 +327,14 @@
289
327
  "description": "Spacing between items (Material-UI spacing units)",
290
328
  "x-example": 3
291
329
  },
330
+ "groupSpacing": {
331
+ "type": "integer",
332
+ "minimum": 0,
333
+ "maximum": 10,
334
+ "default": 0,
335
+ "description": "Spacing between group columns when groupMode is enabled (Material-UI spacing units)",
336
+ "x-example": 2
337
+ },
292
338
  "showIndex": {
293
339
  "type": "boolean",
294
340
  "default": false,
@@ -301,6 +347,12 @@
301
347
  "description": "Show drag handle for reordering",
302
348
  "x-example": true
303
349
  },
350
+ "showMoveButtons": {
351
+ "type": "boolean",
352
+ "default": false,
353
+ "description": "Show up/down move buttons for reordering. Requires options.allowReorder to be true. Reorder UI backfills stable internal _uuid keys on object rows so moves follow the row instead of the array index.",
354
+ "x-example": true
355
+ },
304
356
  "containerClass": {
305
357
  "type": "string",
306
358
  "description": "CSS class for the container",
@@ -310,7 +362,35 @@
310
362
  "type": "string",
311
363
  "description": "CSS class for each item",
312
364
  "x-example": "collection-item"
313
- }
365
+ },
366
+ "label": {
367
+ "type": ["string", "object"],
368
+ "description": "Section label. Enables a full collection header at top level and a compact section header when nested."
369
+ },
370
+ "itemTitle": { "type": "string", "description": "Field path or template used as the accordion row title" },
371
+ "defaultExpanded": { "type": "boolean", "default": false },
372
+ "itemIcon": { "type": "string", "description": "Icon name or per-item template rendered before the accordion row title" },
373
+ "itemSubtitle": { "type": "string", "description": "Per-item template for muted row metadata" },
374
+ "itemBadges": {
375
+ "type": "array",
376
+ "items": {
377
+ "type": "object",
378
+ "required": ["label"],
379
+ "properties": {
380
+ "label": { "type": "string" },
381
+ "color": { "type": "string", "enum": ["danger", "warning", "info", "success", "primary", "neutral"], "default": "neutral" },
382
+ "when": { "type": "string", "description": "Template guarding badge visibility" }
383
+ }
384
+ }
385
+ },
386
+ "itemNestedCount": { "type": "string", "description": "Template resolving to a nested-record count" },
387
+ "nestedCountLabel": { "type": ["string", "object"], "default": "nested items" },
388
+ "summaryTemplate": { "type": "string", "description": "Header summary template receiving count and items" },
389
+ "showCount": { "type": "boolean", "default": true },
390
+ "showExpandAll": { "type": "boolean", "default": true },
391
+ "collapseNested": { "type": "boolean", "default": true },
392
+ "autoItemTitle": { "type": "boolean", "default": true },
393
+ "density": { "type": "string", "enum": ["compact", "comfortable"], "default": "compact" }
314
394
  }
315
395
  }
316
396
  },
@@ -332,6 +412,8 @@
332
412
  { "key": 0, "label": "Sunday" }
333
413
  ],
334
414
  "layout": "accordion",
415
+ "groupCols": { "xs": 1, "md": 2, "lg": 4 },
416
+ "groupSpacing": 2,
335
417
  "defaultItem": {
336
418
  "startTime": "09:00:00",
337
419
  "endTime": "17:00:00"
@@ -404,6 +486,8 @@
404
486
  { "key": "in_progress", "label": { "en-US": "In Progress" }, "icon": "spinner" },
405
487
  { "key": "done", "label": { "en-US": "Done" }, "icon": "check-circle" }
406
488
  ],
489
+ "groupCols": { "xs": 1, "md": 3 },
490
+ "groupSpacing": 2,
407
491
  "groupTemplate": {
408
492
  "component": "layout",
409
493
  "props": { "className": "group-header bg-gray-100 p-2 rounded" },
@@ -33,6 +33,7 @@
33
33
  "enum": [
34
34
  "text",
35
35
  "number",
36
+ "number-select",
36
37
  "email",
37
38
  "password",
38
39
  "tel",
@@ -46,8 +47,15 @@
46
47
  "autocomplete-googleplaces",
47
48
  "checkbox",
48
49
  "radio",
50
+ "toggle",
49
51
  "textarea",
50
- "attachment"
52
+ "attachment",
53
+ "secret",
54
+ "file",
55
+ "hidden",
56
+ "quill",
57
+ "object",
58
+ "yaml"
51
59
  ],
52
60
  "description": "Field input type",
53
61
  "x-example": "select-async"
@@ -62,6 +70,13 @@
62
70
  "description": "Whether field is disabled",
63
71
  "x-example": false
64
72
  },
73
+ "min": { "type": "number", "description": "Minimum value for numeric field types" },
74
+ "max": { "type": "number", "description": "Maximum value for numeric field types" },
75
+ "step": { "type": "number", "description": "Step increment for number-select arrow controls" },
76
+ "secretPath": {
77
+ "type": "string",
78
+ "description": "Template expression for the secret name used by secret fields, e.g. integrations/{{ id }}/apiKey"
79
+ },
65
80
  "options": {
66
81
  "type": "object",
67
82
  "description": "Field options for select types",
@@ -134,7 +149,9 @@
134
149
  "type": "object",
135
150
  "description": "Default values for the field",
136
151
  "additionalProperties": true
137
- }
152
+ },
153
+ "color": { "type": "string" },
154
+ "orientation": { "type": "string" }
138
155
  },
139
156
  "additionalProperties": true
140
157
  },
@@ -160,14 +177,17 @@
160
177
  }
161
178
  }
162
179
  },
163
- "onEditClick": { "$ref": "../schemas.json#/definitions/actionsList" },
180
+ "onEditClick": {
181
+ "$ref": "../schemas.json#/definitions/actionsList",
182
+ "description": "Actions to execute when the edit icon is clicked. Rendered for text, select-async, and autocomplete-async fields when a single value is set."
183
+ },
164
184
  "onOptionTagClick": {
165
185
  "$ref": "../schemas.json#/definitions/actionsList",
166
186
  "description": "Actions to execute when clicking on an option tag/chip in the dropdown"
167
187
  },
168
188
  "items": {
169
189
  "type": "array",
170
- "description": "Static options for select fields",
190
+ "description": "Static options for select, radio, and toggle fields",
171
191
  "items": {
172
192
  "type": "object",
173
193
  "properties": {
@@ -192,6 +212,21 @@
192
212
  "onSelectValue": {
193
213
  "$ref": "../schemas.json#/definitions/actionsList",
194
214
  "description": "Actions to execute when a value is selected in select-async fields"
215
+ },
216
+ "allowMultiple": {
217
+ "type": "boolean",
218
+ "description": "Toggle field multi-select mode (array value when true)."
219
+ },
220
+ "exclusive": {
221
+ "type": "boolean",
222
+ "description": "Legacy toggle single-select flag; prefer allowMultiple."
223
+ },
224
+ "enforceValue": {
225
+ "type": "boolean",
226
+ "description": "Toggle single-select mode: prevent deselecting the current value."
227
+ },
228
+ "defaultValue": {
229
+ "description": "Initial field value."
195
230
  }
196
231
  }
197
232
  }
@@ -159,6 +159,10 @@
159
159
  "type": "boolean",
160
160
  "description": "Reset form values after successful submission"
161
161
  },
162
+ "reloadHandler": {
163
+ "type": "string",
164
+ "description": "Handler targeted by reload actions; falls back to refreshHandler, then the form name"
165
+ },
162
166
  "dirtyGuard": {
163
167
  "type": "object",
164
168
  "description": "Configuration for unsaved changes warning dialog",
@@ -31,6 +31,9 @@
31
31
  "card": {
32
32
  "$ref": "card.json"
33
33
  },
34
+ "badge": {
35
+ "$ref": "badge.json"
36
+ },
34
37
  "barcodeScanner": {
35
38
  "$ref": "barcodeScanner.json"
36
39
  },
@@ -58,14 +61,27 @@
58
61
  "datasource": {
59
62
  "$ref": "datasource.json"
60
63
  },
64
+ "dashboard": {
65
+ "$ref": "dashboard.json"
66
+ },
67
+ "dashboard-widget": {
68
+ "$ref": "dashboard-widget.json"
69
+ },
61
70
  "calendar": {
62
71
  "$ref": "calendar.json"
63
72
  },
73
+ "map": {
74
+ "$ref": "map.json"
75
+ },
64
76
  "module": {
65
77
  "$ref": "module.json"
66
78
  },
67
79
  "slot": {
68
80
  "$ref": "slot.json"
69
- }
81
+ },
82
+ "avatar": { "$ref": "avatar.json" },
83
+ "infoLine": { "$ref": "infoLine.json" },
84
+ "progressBar": { "$ref": "progressBar.json" },
85
+ "planner": { "$ref": "planner.json" }
70
86
  }
71
87
  }
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","title":"InfoLine Component","type":"object","required":["component"],"properties":{"component":{"const":"infoLine"},"name":{"type":"string"},"props":{"type":"object","properties":{"icon":{},"iconColor":{},"value":{},"href":{},"truncate":{"type":"boolean"},"variant":{"enum":["default","chip"]},"tooltip":{},"onClick":{"$ref":"../schemas.json#/definitions/actionsList"}},"additionalProperties":true}},"additionalProperties":true}
@@ -0,0 +1,167 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Map Component",
4
+ "type": "object",
5
+ "properties": {
6
+ "component": {
7
+ "type": "string",
8
+ "const": "map"
9
+ },
10
+ "name": {
11
+ "type": "string",
12
+ "description": "Unique name identifier for the map instance"
13
+ },
14
+ "props": {
15
+ "type": "object",
16
+ "properties": {
17
+ "type": {
18
+ "type": "string",
19
+ "enum": ["google"],
20
+ "default": "google",
21
+ "description": "Map provider. Only Google Maps is currently supported."
22
+ },
23
+ "height": {
24
+ "oneOf": [
25
+ { "type": "number" },
26
+ {
27
+ "type": "string",
28
+ "pattern": "\\{\\{.*\\}\\}",
29
+ "description": "Template expression that resolves to a numeric height"
30
+ }
31
+ ],
32
+ "default": 520,
33
+ "description": "Map viewport height in pixels"
34
+ },
35
+ "center": {
36
+ "type": "object",
37
+ "description": "Optional map center. Values can be numbers or numeric strings.",
38
+ "properties": {
39
+ "lat": {
40
+ "oneOf": [{ "type": "number" }, { "type": "string" }]
41
+ },
42
+ "lng": {
43
+ "oneOf": [{ "type": "number" }, { "type": "string" }]
44
+ }
45
+ },
46
+ "required": ["lat", "lng"]
47
+ },
48
+ "zoom": {
49
+ "oneOf": [
50
+ { "type": "number" },
51
+ {
52
+ "type": "string",
53
+ "pattern": "\\{\\{.*\\}\\}",
54
+ "description": "Template expression that resolves to a numeric zoom"
55
+ }
56
+ ],
57
+ "description": "Initial zoom level"
58
+ },
59
+ "stops": {
60
+ "description": "Dispatch route/template stops array or template expression. Used when markers is not supplied.",
61
+ "oneOf": [
62
+ { "type": "array", "items": { "type": "object", "additionalProperties": true } },
63
+ { "type": "string", "pattern": "\\{\\{.*\\}\\}" }
64
+ ]
65
+ },
66
+ "markers": {
67
+ "description": "Explicit marker array or template expression. Takes precedence over stops.",
68
+ "oneOf": [
69
+ {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "id": {
75
+ "oneOf": [{ "type": "string" }, { "type": "number" }]
76
+ },
77
+ "number": {
78
+ "oneOf": [{ "type": "string" }, { "type": "number" }]
79
+ },
80
+ "label": {
81
+ "type": "string"
82
+ },
83
+ "lat": {
84
+ "oneOf": [{ "type": "number" }, { "type": "string" }, { "type": "null" }]
85
+ },
86
+ "lng": {
87
+ "oneOf": [{ "type": "number" }, { "type": "string" }, { "type": "null" }]
88
+ },
89
+ "address": {
90
+ "type": ["string", "null"]
91
+ },
92
+ "stopType": {
93
+ "type": ["string", "null"]
94
+ }
95
+ },
96
+ "additionalProperties": true
97
+ }
98
+ },
99
+ { "type": "string", "pattern": "\\{\\{.*\\}\\}" }
100
+ ]
101
+ },
102
+ "fitBounds": {
103
+ "oneOf": [
104
+ { "type": "boolean" },
105
+ { "type": "string", "pattern": "\\{\\{.*\\}\\}" }
106
+ ],
107
+ "default": true,
108
+ "description": "Automatically fit the map bounds to valid markers when no explicit center is supplied"
109
+ },
110
+ "showUnmappedNote": {
111
+ "oneOf": [
112
+ { "type": "boolean" },
113
+ { "type": "string", "pattern": "\\{\\{.*\\}\\}" }
114
+ ],
115
+ "default": true,
116
+ "description": "Show a caption listing markers/stops that could not be plotted"
117
+ },
118
+ "showInfoWindow": {
119
+ "oneOf": [
120
+ { "type": "boolean" },
121
+ { "type": "string", "pattern": "\\{\\{.*\\}\\}" }
122
+ ],
123
+ "default": true,
124
+ "description": "Open an info window when a marker is clicked"
125
+ },
126
+ "onMarkerClick": {
127
+ "$ref": "../schemas.json#/definitions/actionsList",
128
+ "description": "Actions fired when a marker is clicked. Receives the marker as result."
129
+ }
130
+ },
131
+ "additionalProperties": true
132
+ }
133
+ },
134
+ "required": ["component"],
135
+ "x-examples": [
136
+ {
137
+ "component": "map",
138
+ "name": "dispatchRouteMap",
139
+ "props": {
140
+ "height": 560,
141
+ "stops": "{{ dispatchRoute.stops }}",
142
+ "fitBounds": true,
143
+ "onMarkerClick": [
144
+ { "setStore": { "selectedStopId": "{{ result.id }}" } }
145
+ ]
146
+ }
147
+ },
148
+ {
149
+ "component": "map",
150
+ "name": "terminalMap",
151
+ "props": {
152
+ "height": 420,
153
+ "center": { "lat": 33.749, "lng": -84.388 },
154
+ "zoom": 8,
155
+ "markers": [
156
+ {
157
+ "id": "atl",
158
+ "label": "Atlanta Terminal",
159
+ "lat": 33.749,
160
+ "lng": -84.388,
161
+ "address": "Atlanta, GA"
162
+ }
163
+ ]
164
+ }
165
+ }
166
+ ]
167
+ }
@@ -133,6 +133,38 @@
133
133
  "required": ["name", "roles"]
134
134
  }
135
135
  },
136
+ "defaultData": {
137
+ "type": "array",
138
+ "description": "Default data imports loaded with the module. Supported entities include reference/master data such as Terminal; Terminal rows match by Name unless keys are provided.",
139
+ "items": {
140
+ "type": "object",
141
+ "properties": {
142
+ "entity": {
143
+ "type": "string",
144
+ "description": "Entity type to import, e.g. Currency, PaymentTerm, Terminal"
145
+ },
146
+ "keys": {
147
+ "type": "array",
148
+ "items": { "type": "string" },
149
+ "description": "Field names used to match existing records"
150
+ },
151
+ "overwrite": {
152
+ "type": "boolean",
153
+ "description": "Update existing matching records instead of skipping them"
154
+ },
155
+ "data": {
156
+ "type": "array",
157
+ "description": "Rows to import",
158
+ "items": {
159
+ "type": "object",
160
+ "additionalProperties": true
161
+ }
162
+ }
163
+ },
164
+ "required": ["entity", "data"],
165
+ "additionalProperties": true
166
+ }
167
+ },
136
168
  "configurations": {
137
169
  "type": "array",
138
170
  "description": "Organization configuration definitions",
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","title":"Planner Component","type":"object","required":["component","props"],"properties":{"component":{"const":"planner"},"name":{"type":"string"},"props":{"type":"object","required":["queries","rows","columns","itemTemplate"],"properties":{"height":{},"refreshHandler":{"type":"string"},"debug":{"type":"boolean"},"options":{"type":"object","properties":{"enableVirtualization":{"type":"boolean"},"virtualizeThreshold":{"type":"number"},"estimatedRowHeight":{"type":"number"}},"additionalProperties":true},"queries":{"type":"array","minItems":1,"items":{"type":"object","required":["name","query"],"properties":{"name":{"type":"string"},"query":{"type":"object"},"itemsPath":{"type":"string"},"parentAs":{"type":"string"},"mapping":{"type":"object"}},"additionalProperties":true}},"rows":{"type":"object","required":["groupBy","headerWidth"],"properties":{"groupBy":{"type":"string"},"fromQuery":{"type":"string"},"key":{"type":"string"},"label":{},"orderBy":{"type":"array"},"unassigned":{"type":"object"},"headerWidth":{"type":"number"}},"additionalProperties":true},"columns":{"type":"object","required":["width"],"properties":{"orderBy":{"type":"array"},"appendEmpty":{"type":"boolean","description":"Keep one trailing empty slot beyond the largest group."},"label":{},"width":{"type":"number"}},"additionalProperties":true},"rowHeaderTemplate":{"$ref":"../schemas.json#/definitions/component"},"itemTemplate":{"$ref":"../schemas.json#/definitions/component"},"emptyCellTemplate":{"$ref":"../schemas.json#/definitions/component"},"summaryComponent":{"$ref":"../schemas.json#/definitions/component"},"emptyStateTemplate":{"$ref":"../schemas.json#/definitions/component"},"itemAccent":{},"events":{"type":"object","additionalProperties":{"$ref":"../schemas.json#/definitions/actionsList"}}},"additionalProperties":true}},"additionalProperties":true}
@@ -0,0 +1 @@
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","title":"ProgressBar Component","type":"object","required":["component"],"properties":{"component":{"const":"progressBar"},"name":{"type":"string"},"props":{"type":"object","properties":{"value":{},"max":{},"items":{},"completedPath":{"type":"string"},"completedValue":{},"label":{},"showValue":{"type":"boolean"},"valueFormat":{"enum":["count","percent"]},"variant":{"enum":["linear","circular","segmented"]},"height":{},"size":{},"color":{},"activeColor":{"type":"string","description":"Mobile segmented variant color for completed segments"},"trackColor":{"type":"string","description":"Track or incomplete-segment color"},"tooltip":{},"testID":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true}