cxtms 1.9.13
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/README.md +384 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4784 -0
- package/dist/cli.js.map +1 -0
- package/dist/extractUtils.d.ts +11 -0
- package/dist/extractUtils.d.ts.map +1 -0
- package/dist/extractUtils.js +19 -0
- package/dist/extractUtils.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +129 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/schemaLoader.d.ts +17 -0
- package/dist/utils/schemaLoader.d.ts.map +1 -0
- package/dist/utils/schemaLoader.js +134 -0
- package/dist/utils/schemaLoader.js.map +1 -0
- package/dist/validator.d.ts +72 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +432 -0
- package/dist/validator.js.map +1 -0
- package/dist/workflowValidator.d.ts +103 -0
- package/dist/workflowValidator.d.ts.map +1 -0
- package/dist/workflowValidator.js +753 -0
- package/dist/workflowValidator.js.map +1 -0
- package/package.json +51 -0
- package/schemas/actions/all.json +27 -0
- package/schemas/actions/clipboard.json +46 -0
- package/schemas/actions/confirm.json +21 -0
- package/schemas/actions/consoleLog.json +16 -0
- package/schemas/actions/dialog.json +25 -0
- package/schemas/actions/fileDownload.json +16 -0
- package/schemas/actions/forEach.json +31 -0
- package/schemas/actions/if.json +12 -0
- package/schemas/actions/mutation.json +25 -0
- package/schemas/actions/navigate.json +18 -0
- package/schemas/actions/navigateBack.json +22 -0
- package/schemas/actions/navigateBackOrClose.json +21 -0
- package/schemas/actions/notification.json +19 -0
- package/schemas/actions/openBarcodeScanner.json +104 -0
- package/schemas/actions/query.json +32 -0
- package/schemas/actions/refresh.json +13 -0
- package/schemas/actions/resetDirtyState.json +22 -0
- package/schemas/actions/setFields.json +21 -0
- package/schemas/actions/setStore.json +13 -0
- package/schemas/actions/validateForm.json +15 -0
- package/schemas/actions/workflow.json +24 -0
- package/schemas/components/README.md +147 -0
- package/schemas/components/appComponent.json +58 -0
- package/schemas/components/barcodeScanner.json +69 -0
- package/schemas/components/button.json +123 -0
- package/schemas/components/calendar.json +489 -0
- package/schemas/components/card.json +176 -0
- package/schemas/components/collection.json +54 -0
- package/schemas/components/dataGrid.json +119 -0
- package/schemas/components/datasource.json +151 -0
- package/schemas/components/dropdown.json +57 -0
- package/schemas/components/field-collection.json +618 -0
- package/schemas/components/field.json +265 -0
- package/schemas/components/form.json +234 -0
- package/schemas/components/index.json +71 -0
- package/schemas/components/layout.json +69 -0
- package/schemas/components/module.json +167 -0
- package/schemas/components/navDropdown.json +36 -0
- package/schemas/components/navbar.json +78 -0
- package/schemas/components/navbarItem.json +28 -0
- package/schemas/components/navbarLink.json +36 -0
- package/schemas/components/row.json +31 -0
- package/schemas/components/slot.json +30 -0
- package/schemas/components/tab.json +34 -0
- package/schemas/components/tabs.json +35 -0
- package/schemas/components/timeline.json +172 -0
- package/schemas/components/timelineGrid.json +328 -0
- package/schemas/fields/README.md +66 -0
- package/schemas/fields/attachment.json +156 -0
- package/schemas/fields/autocomplete-googleplaces.json +130 -0
- package/schemas/fields/checkbox.json +82 -0
- package/schemas/fields/date.json +88 -0
- package/schemas/fields/datetime.json +75 -0
- package/schemas/fields/email.json +75 -0
- package/schemas/fields/index.json +53 -0
- package/schemas/fields/number.json +91 -0
- package/schemas/fields/password.json +70 -0
- package/schemas/fields/radio.json +94 -0
- package/schemas/fields/rangedatetime.json +56 -0
- package/schemas/fields/select-async.json +334 -0
- package/schemas/fields/select.json +115 -0
- package/schemas/fields/tel.json +79 -0
- package/schemas/fields/text.json +86 -0
- package/schemas/fields/textarea.json +95 -0
- package/schemas/fields/time.json +91 -0
- package/schemas/fields/url.json +74 -0
- package/schemas/schema.graphql +12248 -0
- package/schemas/schemas.json +610 -0
- package/schemas/workflows/activity.json +96 -0
- package/schemas/workflows/common/condition.json +48 -0
- package/schemas/workflows/common/expression.json +76 -0
- package/schemas/workflows/common/mapping.json +173 -0
- package/schemas/workflows/common/step.json +38 -0
- package/schemas/workflows/flow/aggregation.json +44 -0
- package/schemas/workflows/flow/entity.json +129 -0
- package/schemas/workflows/flow/state.json +105 -0
- package/schemas/workflows/flow/transition.json +143 -0
- package/schemas/workflows/input.json +122 -0
- package/schemas/workflows/output.json +61 -0
- package/schemas/workflows/schedule.json +26 -0
- package/schemas/workflows/tasks/accounting-transaction.json +95 -0
- package/schemas/workflows/tasks/action-event.json +65 -0
- package/schemas/workflows/tasks/all.json +152 -0
- package/schemas/workflows/tasks/appmodule.json +56 -0
- package/schemas/workflows/tasks/attachment.json +97 -0
- package/schemas/workflows/tasks/authentication.json +86 -0
- package/schemas/workflows/tasks/caching.json +68 -0
- package/schemas/workflows/tasks/charge.json +92 -0
- package/schemas/workflows/tasks/commodity.json +92 -0
- package/schemas/workflows/tasks/contact-address.json +72 -0
- package/schemas/workflows/tasks/contact-payment-method.json +72 -0
- package/schemas/workflows/tasks/contact.json +82 -0
- package/schemas/workflows/tasks/csv.json +81 -0
- package/schemas/workflows/tasks/document-render.json +105 -0
- package/schemas/workflows/tasks/document-send.json +84 -0
- package/schemas/workflows/tasks/edi.json +157 -0
- package/schemas/workflows/tasks/email-send.json +110 -0
- package/schemas/workflows/tasks/error.json +72 -0
- package/schemas/workflows/tasks/export.json +90 -0
- package/schemas/workflows/tasks/filetransfer.json +102 -0
- package/schemas/workflows/tasks/flow-transition.json +68 -0
- package/schemas/workflows/tasks/foreach.json +69 -0
- package/schemas/workflows/tasks/generic.json +47 -0
- package/schemas/workflows/tasks/graphql.json +78 -0
- package/schemas/workflows/tasks/httpRequest.json +161 -0
- package/schemas/workflows/tasks/import.json +64 -0
- package/schemas/workflows/tasks/inventory.json +67 -0
- package/schemas/workflows/tasks/job.json +88 -0
- package/schemas/workflows/tasks/log.json +73 -0
- package/schemas/workflows/tasks/map.json +58 -0
- package/schemas/workflows/tasks/movement.json +54 -0
- package/schemas/workflows/tasks/note.json +59 -0
- package/schemas/workflows/tasks/number.json +65 -0
- package/schemas/workflows/tasks/order-tracking-event.json +109 -0
- package/schemas/workflows/tasks/order.json +139 -0
- package/schemas/workflows/tasks/payment.json +85 -0
- package/schemas/workflows/tasks/pdf-document.json +60 -0
- package/schemas/workflows/tasks/postal-codes.json +92 -0
- package/schemas/workflows/tasks/resolve-timezone.json +65 -0
- package/schemas/workflows/tasks/setVariable.json +76 -0
- package/schemas/workflows/tasks/switch.json +75 -0
- package/schemas/workflows/tasks/template.json +73 -0
- package/schemas/workflows/tasks/tracking-event.json +137 -0
- package/schemas/workflows/tasks/transmission.json +185 -0
- package/schemas/workflows/tasks/unzip-file.json +68 -0
- package/schemas/workflows/tasks/user.json +70 -0
- package/schemas/workflows/tasks/validation.json +99 -0
- package/schemas/workflows/tasks/while.json +53 -0
- package/schemas/workflows/tasks/workflow-execute.json +82 -0
- package/schemas/workflows/trigger.json +90 -0
- package/schemas/workflows/variable.json +46 -0
- package/schemas/workflows/workflow.json +335 -0
- package/scripts/postinstall.js +291 -0
- package/scripts/setup-vscode.js +80 -0
- package/skills/cxtms-developer/SKILL.md +118 -0
- package/skills/cxtms-developer/ref-cli-auth.md +120 -0
- package/skills/cxtms-developer/ref-entity-accounting.md +180 -0
- package/skills/cxtms-developer/ref-entity-commodity.md +239 -0
- package/skills/cxtms-developer/ref-entity-contact.md +163 -0
- package/skills/cxtms-developer/ref-entity-geography.md +154 -0
- package/skills/cxtms-developer/ref-entity-job.md +77 -0
- package/skills/cxtms-developer/ref-entity-notification.md +85 -0
- package/skills/cxtms-developer/ref-entity-order-sub.md +160 -0
- package/skills/cxtms-developer/ref-entity-order.md +183 -0
- package/skills/cxtms-developer/ref-entity-organization.md +41 -0
- package/skills/cxtms-developer/ref-entity-rate.md +182 -0
- package/skills/cxtms-developer/ref-entity-shared.md +176 -0
- package/skills/cxtms-developer/ref-entity-warehouse.md +115 -0
- package/skills/cxtms-developer/ref-graphql-query.md +309 -0
- package/skills/cxtms-module-builder/SKILL.md +477 -0
- package/skills/cxtms-module-builder/ref-components-data.md +293 -0
- package/skills/cxtms-module-builder/ref-components-display.md +411 -0
- package/skills/cxtms-module-builder/ref-components-forms.md +369 -0
- package/skills/cxtms-module-builder/ref-components-interactive.md +317 -0
- package/skills/cxtms-module-builder/ref-components-layout.md +390 -0
- package/skills/cxtms-module-builder/ref-components-specialized.md +477 -0
- package/skills/cxtms-workflow-builder/SKILL.md +438 -0
- package/skills/cxtms-workflow-builder/ref-accounting.md +66 -0
- package/skills/cxtms-workflow-builder/ref-communication.md +169 -0
- package/skills/cxtms-workflow-builder/ref-entity.md +342 -0
- package/skills/cxtms-workflow-builder/ref-expressions-ncalc.md +128 -0
- package/skills/cxtms-workflow-builder/ref-expressions-template.md +161 -0
- package/skills/cxtms-workflow-builder/ref-filetransfer.md +80 -0
- package/skills/cxtms-workflow-builder/ref-flow.md +210 -0
- package/skills/cxtms-workflow-builder/ref-other.md +157 -0
- package/skills/cxtms-workflow-builder/ref-query.md +105 -0
- package/skills/cxtms-workflow-builder/ref-utilities.md +417 -0
- package/templates/module-configuration.yaml +44 -0
- package/templates/module-form.yaml +152 -0
- package/templates/module-grid.yaml +229 -0
- package/templates/module-select.yaml +139 -0
- package/templates/module.yaml +84 -0
- package/templates/workflow-api-tracking.yaml +189 -0
- package/templates/workflow-basic.yaml +76 -0
- package/templates/workflow-document.yaml +155 -0
- package/templates/workflow-entity-trigger.yaml +90 -0
- package/templates/workflow-ftp-edi.yaml +158 -0
- package/templates/workflow-ftp-tracking.yaml +161 -0
- package/templates/workflow-mcp-tool.yaml +112 -0
- package/templates/workflow-public-api.yaml +135 -0
- package/templates/workflow-scheduled-execute.yaml +75 -0
- package/templates/workflow-scheduled.yaml +125 -0
- package/templates/workflow-utility.yaml +96 -0
- package/templates/workflow-webhook.yaml +128 -0
- package/templates/workflow.yaml +140 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "workflow Action",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"workflow": {
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"workflowId": { "type": "string", "description": "Workflow identifier" },
|
|
10
|
+
"inputs": { "type": "object", "description": "Workflow inputs" },
|
|
11
|
+
"onSuccess": { "$ref": "../schemas.json#/definitions/actionsList" },
|
|
12
|
+
"onError": { "$ref": "../schemas.json#/definitions/actionsList" }
|
|
13
|
+
},
|
|
14
|
+
"x-examples": [
|
|
15
|
+
{
|
|
16
|
+
"workflowId": "b7c4ffa9-bf7e-4e2c-8e57-8f24f4a2b8a8",
|
|
17
|
+
"inputs": { "request": { "message": "Hello, World!" } },
|
|
18
|
+
"onSuccess": [{ "notification": { "message": "Echo executed successfully. {{ response.echo.message }}" } }]
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"additionalProperties": false
|
|
24
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Component Schemas
|
|
2
|
+
|
|
3
|
+
This directory contains individual JSON schema files for each CargoXplorer component type. Breaking down component schemas into separate files improves maintainability, organization, and reusability.
|
|
4
|
+
|
|
5
|
+
## Directory Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
schema/
|
|
9
|
+
├── components/
|
|
10
|
+
│ ├── appComponent.json # Base app component schema
|
|
11
|
+
│ ├── navbar.json # Navigation bar component
|
|
12
|
+
│ ├── navbarItem.json # Navigation item component
|
|
13
|
+
│ ├── navDropdown.json # Navigation dropdown component
|
|
14
|
+
│ ├── navbarLink.json # Navigation link component
|
|
15
|
+
│ ├── collection.json # Collection/iteration component
|
|
16
|
+
│ ├── row.json # Row layout component
|
|
17
|
+
│ ├── dataGrid.json # Data grid component
|
|
18
|
+
│ ├── button.json # Button component
|
|
19
|
+
│ ├── form.json # Form component
|
|
20
|
+
│ ├── layout.json # Layout container component
|
|
21
|
+
│ ├── tabs.json # Tabs container component
|
|
22
|
+
│ ├── tab.json # Individual tab component
|
|
23
|
+
│ ├── field.json # Form field component
|
|
24
|
+
│ ├── dropdown.json # Dropdown menu component
|
|
25
|
+
│ ├── datasource.json # Data source component
|
|
26
|
+
│ ├── calendar.json # Calendar component
|
|
27
|
+
│ ├── module.json # Module component
|
|
28
|
+
│ ├── index.json # Component schema index
|
|
29
|
+
│ └── README.md # This documentation file
|
|
30
|
+
├── fields/ # Field type schemas
|
|
31
|
+
│ ├── text.json
|
|
32
|
+
│ ├── select-async.json
|
|
33
|
+
│ └── ...
|
|
34
|
+
└── schemas.json # Main schema file with references
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Benefits of Separate Component Schemas
|
|
38
|
+
|
|
39
|
+
### 1. **Maintainability**
|
|
40
|
+
|
|
41
|
+
- Each component schema is in its own file
|
|
42
|
+
- Easier to find and update specific component definitions
|
|
43
|
+
- Reduces the size of the main schemas.json file
|
|
44
|
+
|
|
45
|
+
### 2. **Reusability**
|
|
46
|
+
|
|
47
|
+
- Component schemas can be referenced from multiple locations
|
|
48
|
+
- Enables better modular schema design
|
|
49
|
+
- Facilitates schema composition and inheritance
|
|
50
|
+
|
|
51
|
+
### 3. **Organization**
|
|
52
|
+
|
|
53
|
+
- Clear separation between different component types
|
|
54
|
+
- Logical file structure mirrors component hierarchy
|
|
55
|
+
- Better developer experience when working with schemas
|
|
56
|
+
|
|
57
|
+
### 4. **Collaboration**
|
|
58
|
+
|
|
59
|
+
- Multiple developers can work on different component schemas simultaneously
|
|
60
|
+
- Reduces merge conflicts in the main schema file
|
|
61
|
+
- Easier code reviews for component-specific changes
|
|
62
|
+
|
|
63
|
+
## Usage
|
|
64
|
+
|
|
65
|
+
The main `schemas.json` file now references these separate component files:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"components": {
|
|
70
|
+
"schemas": {
|
|
71
|
+
"button": {
|
|
72
|
+
"$ref": "components/button.json"
|
|
73
|
+
},
|
|
74
|
+
"dataGrid": {
|
|
75
|
+
"$ref": "components/dataGrid.json"
|
|
76
|
+
},
|
|
77
|
+
"form": {
|
|
78
|
+
"$ref": "components/form.json"
|
|
79
|
+
}
|
|
80
|
+
// ... other components
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Schema References
|
|
87
|
+
|
|
88
|
+
Each component schema file uses relative references to the main schemas.json file for shared definitions:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"properties": {
|
|
93
|
+
"onClick": {
|
|
94
|
+
"$ref": "../schemas.json#/definitions/actionsList"
|
|
95
|
+
},
|
|
96
|
+
"isHidden": {
|
|
97
|
+
"$ref": "../schemas.json#/definitions/templateExpression"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Adding New Components
|
|
104
|
+
|
|
105
|
+
To add a new component schema:
|
|
106
|
+
|
|
107
|
+
1. Create a new JSON file in this directory (e.g., `myComponent.json`)
|
|
108
|
+
2. Define the component schema following the existing patterns
|
|
109
|
+
3. Add a reference to the component in the main `schemas.json` file
|
|
110
|
+
4. Update the `index.json` file if needed
|
|
111
|
+
5. Update this README.md file
|
|
112
|
+
|
|
113
|
+
## Component Schema Structure
|
|
114
|
+
|
|
115
|
+
Each component schema should follow this general structure:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
120
|
+
"title": "Component Name",
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"component": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"const": "componentName"
|
|
126
|
+
},
|
|
127
|
+
"name": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"description": "Component name identifier"
|
|
130
|
+
},
|
|
131
|
+
"props": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"properties": {
|
|
134
|
+
// Component-specific properties
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"children": {
|
|
138
|
+
"$ref": "../schemas.json#/definitions/componentChildren"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"required": ["component"]
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Validation
|
|
146
|
+
|
|
147
|
+
All component schemas are validated against JSON Schema Draft 07 specification. Ensure your schemas are valid JSON and follow the established patterns for consistency.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Generic CargoXplorer App Component",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "Base schema for any CargoXplorer component that can be used within the application",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Component name in format 'ModuleName/ComponentName'",
|
|
10
|
+
"pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$"
|
|
11
|
+
},
|
|
12
|
+
"permissions": {
|
|
13
|
+
"$ref": "../schemas.json#/definitions/permissions"
|
|
14
|
+
},
|
|
15
|
+
"priority": {
|
|
16
|
+
"type": "integer",
|
|
17
|
+
"default": 0,
|
|
18
|
+
"description": "Component priority (higher number = higher priority)"
|
|
19
|
+
},
|
|
20
|
+
"displayName": {
|
|
21
|
+
"$ref": "../schemas.json#/definitions/localized"
|
|
22
|
+
},
|
|
23
|
+
"props": {
|
|
24
|
+
"oneOf": [
|
|
25
|
+
{
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "Properties passed to the component when targeting a slot",
|
|
28
|
+
"properties": {
|
|
29
|
+
"targetSlot": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Name of the slot this component targets"
|
|
32
|
+
},
|
|
33
|
+
"order": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"description": "Order of the component in the target slot"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"type": "null"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"platforms": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"description": "Target platforms for this component",
|
|
48
|
+
"items": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"enum": ["web", "mobile"]
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"layout": {
|
|
54
|
+
"$ref": "../schemas.json#/definitions/component"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"required": ["name", "layout"]
|
|
58
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Barcode Scanner Component",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"component": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"const": "barcodeScanner"
|
|
9
|
+
},
|
|
10
|
+
"name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Component name identifier"
|
|
13
|
+
},
|
|
14
|
+
"props": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"minBarcodeLength": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"description": "Minimum length for recognized barcodes"
|
|
20
|
+
},
|
|
21
|
+
"onScan": {
|
|
22
|
+
"$ref": "../schemas.json#/definitions/actionsList",
|
|
23
|
+
"description": "Actions to execute when a barcode is successfully scanned"
|
|
24
|
+
},
|
|
25
|
+
"isHidden": {
|
|
26
|
+
"$ref": "../schemas.json#/definitions/templateExpression",
|
|
27
|
+
"description": "Boolean expression for conditional rendering"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"required": ["component"],
|
|
33
|
+
"x-examples": [
|
|
34
|
+
{
|
|
35
|
+
"component": "barcodeScanner",
|
|
36
|
+
"props": {
|
|
37
|
+
"minBarcodeLength": 8,
|
|
38
|
+
"onScan": [
|
|
39
|
+
{ "setStore": { "scannedBarcode": "{{ result.data }}" } },
|
|
40
|
+
{ "notification": { "message": "Barcode scanned: {{ result.data }}" } }
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"component": "barcodeScanner",
|
|
46
|
+
"props": {
|
|
47
|
+
"minBarcodeLength": 10,
|
|
48
|
+
"onScan": [
|
|
49
|
+
{
|
|
50
|
+
"if": "{{ eval result.format === 'QR_CODE' }}",
|
|
51
|
+
"then": [{ "setStore": { "qrCodeData": "{{ result.data }}" } }, { "navigate": "/qr-details" }],
|
|
52
|
+
"else": [
|
|
53
|
+
{
|
|
54
|
+
"mutation": {
|
|
55
|
+
"command": "logBarcodeScan",
|
|
56
|
+
"variables": {
|
|
57
|
+
"barcodeData": "{{ result.data }}",
|
|
58
|
+
"format": "{{ result.format }}"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{ "notification": { "message": "Barcode logged: {{ result.data }}" } }
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Button Component",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"component": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"const": "button"
|
|
9
|
+
},
|
|
10
|
+
"name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Button name identifier"
|
|
13
|
+
},
|
|
14
|
+
"props": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"label": {
|
|
18
|
+
"oneOf": [{ "type": "string" }, { "$ref": "../schemas.json#/definitions/localized" }]
|
|
19
|
+
},
|
|
20
|
+
"icon": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Icon class name"
|
|
23
|
+
},
|
|
24
|
+
"size": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"description": "Responsive size configuration",
|
|
27
|
+
"additionalProperties": true
|
|
28
|
+
},
|
|
29
|
+
"options": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"description": "Button options. these are the same as the button component attributes ",
|
|
32
|
+
"properties": {
|
|
33
|
+
"type": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": ["submit", "reset", "button"]
|
|
36
|
+
},
|
|
37
|
+
"variant": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"enum": [
|
|
40
|
+
"primary",
|
|
41
|
+
"secondary",
|
|
42
|
+
"outline-primary",
|
|
43
|
+
"outline-secondary",
|
|
44
|
+
"danger",
|
|
45
|
+
"success",
|
|
46
|
+
"warning",
|
|
47
|
+
"info"
|
|
48
|
+
],
|
|
49
|
+
"description": "Button variant style"
|
|
50
|
+
},
|
|
51
|
+
"disabled": {
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"description": "Disable the button"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": true
|
|
57
|
+
},
|
|
58
|
+
"onClick": {
|
|
59
|
+
"$ref": "../schemas.json#/definitions/actionsList"
|
|
60
|
+
},
|
|
61
|
+
"isHidden": {
|
|
62
|
+
"$ref": "../schemas.json#/definitions/templateExpression"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"required": ["component"],
|
|
68
|
+
"x-examples": [
|
|
69
|
+
{
|
|
70
|
+
"component": "button",
|
|
71
|
+
"name": "openDialog",
|
|
72
|
+
"props": {
|
|
73
|
+
"label": { "en-US": "New Order" },
|
|
74
|
+
"icon": "plus",
|
|
75
|
+
"options": { "variant": "primary", "type": "button" },
|
|
76
|
+
"onClick": [
|
|
77
|
+
{
|
|
78
|
+
"dialog": {
|
|
79
|
+
"name": "createOrder",
|
|
80
|
+
"props": { "title": { "en-US": "Create Order" } },
|
|
81
|
+
"component": { "component": "layout", "children": [{ "component": "Orders/CreateOrder" }] }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"component": "button",
|
|
89
|
+
"name": "submitFormBtn",
|
|
90
|
+
"props": {
|
|
91
|
+
"label": "Save",
|
|
92
|
+
"options": { "type": "submit", "variant": "success", "disabled": false }
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"component": "button",
|
|
97
|
+
"name": "export",
|
|
98
|
+
"props": {
|
|
99
|
+
"label": { "en-US": "Export" },
|
|
100
|
+
"icon": "download",
|
|
101
|
+
"options": { "variant": "outline-primary" },
|
|
102
|
+
"onClick": [
|
|
103
|
+
{
|
|
104
|
+
"workflow": {
|
|
105
|
+
"workflowId": "24f504ad-2ca3-4432-b2a4-c540c48fee31",
|
|
106
|
+
"inputs": { "exportName": "orders" }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"component": "button",
|
|
114
|
+
"name": "back",
|
|
115
|
+
"props": {
|
|
116
|
+
"label": "Back",
|
|
117
|
+
"options": { "type": "button", "variant": "secondary" },
|
|
118
|
+
"onClick": [{ "navigateBack": { "fallback": "/home" } }],
|
|
119
|
+
"isHidden": "{{ eval !canGoBack }}"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|