rapida-partner 1.0.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.
Files changed (107) hide show
  1. package/README.md +85 -0
  2. package/index.ts +13 -0
  3. package/package.json +27 -0
  4. package/rapidaObject.json +3024 -0
  5. package/src/constants/options/agendaStatus.ts +3 -0
  6. package/src/constants/options/citiesFromBrazil.ts +27852 -0
  7. package/src/constants/options/countriesFromEarth.ts +1761 -0
  8. package/src/constants/options/currencies.ts +142 -0
  9. package/src/constants/options/eventJobs.ts +94 -0
  10. package/src/constants/options/events.ts +22 -0
  11. package/src/constants/options/hours.ts +26 -0
  12. package/src/constants/options/languages.ts +34 -0
  13. package/src/constants/options/statesFromBrazil.ts +29 -0
  14. package/src/controllers/ts_project_to_json_project.ts +17 -0
  15. package/src/controllers/validate-project-json-schema.ts +11 -0
  16. package/src/examples/components/forms/character.form.ts +92 -0
  17. package/src/examples/components/forms/company.form.ts +648 -0
  18. package/src/examples/components/forms/movie.form.ts +205 -0
  19. package/src/examples/components/forms/movieGenre.form.ts +43 -0
  20. package/src/examples/components/forms/person.form.ts +474 -0
  21. package/src/examples/components/lists/character.list.ts +47 -0
  22. package/src/examples/components/lists/company.list.ts +49 -0
  23. package/src/examples/components/lists/movie.list.ts +60 -0
  24. package/src/examples/components/lists/movieGenre.list.ts +51 -0
  25. package/src/examples/components/lists/person.list.ts +50 -0
  26. package/src/examples/modules/character.ts +13 -0
  27. package/src/examples/modules/company.ts +13 -0
  28. package/src/examples/modules/movie.ts +17 -0
  29. package/src/examples/modules/person.ts +13 -0
  30. package/src/examples/projects/movieBackoffice.ts +110 -0
  31. package/src/interfaces/backend-framework-structure.interface.ts +44 -0
  32. package/src/interfaces/data-card.interface.ts +102 -0
  33. package/src/interfaces/data-chart.interface.ts +84 -0
  34. package/src/interfaces/data-detail.interface.ts +123 -0
  35. package/src/interfaces/data-grid.interface.ts +48 -0
  36. package/src/interfaces/data-table.interface.ts +84 -0
  37. package/src/interfaces/form-array.interface.ts +14 -0
  38. package/src/interfaces/form-autocomplete.interface.ts +79 -0
  39. package/src/interfaces/form-button.interface.ts +34 -0
  40. package/src/interfaces/form-condition.interface.ts +26 -0
  41. package/src/interfaces/form-datepicker.interface.ts +18 -0
  42. package/src/interfaces/form-fieldset.interface.ts +13 -0
  43. package/src/interfaces/form-file.interface.ts +57 -0
  44. package/src/interfaces/form-input.interface.ts +69 -0
  45. package/src/interfaces/form-numeric.interface.ts +22 -0
  46. package/src/interfaces/form-pattern.interface.ts +16 -0
  47. package/src/interfaces/form-radiogroup.interface.ts +21 -0
  48. package/src/interfaces/form-select.interface.ts +60 -0
  49. package/src/interfaces/form-switch.interface.ts +15 -0
  50. package/src/interfaces/form-tab.interface.ts +17 -0
  51. package/src/interfaces/form.interface.ts +73 -0
  52. package/src/interfaces/frontend-framework-structure.interface.ts +39 -0
  53. package/src/interfaces/layout-dashboard.interface.ts +52 -0
  54. package/src/interfaces/layout-panel.interface.ts +45 -0
  55. package/src/interfaces/list.interface.ts +50 -0
  56. package/src/interfaces/project-backend.interface.ts +48 -0
  57. package/src/interfaces/project-style.interface.ts +129 -0
  58. package/src/interfaces/project.interface.ts +79 -0
  59. package/src/interfaces/yaml-template-skeleton.interface.ts +35 -0
  60. package/src/schemas/backend-framework-structure.schema.json +194 -0
  61. package/src/schemas/backend.ref.json +77 -0
  62. package/src/schemas/bdd-and-e2e-narratives.ref.json +57 -0
  63. package/src/schemas/bdd-and-e2e.json +36 -0
  64. package/src/schemas/business-plan.ref.json +25 -0
  65. package/src/schemas/business-rules.ref.json +34 -0
  66. package/src/schemas/component-one-of.ref.json +15 -0
  67. package/src/schemas/dashboard.ref.json +111 -0
  68. package/src/schemas/data-card.ref.json +245 -0
  69. package/src/schemas/data-chart.ref.json +168 -0
  70. package/src/schemas/data-detail.ref.json +297 -0
  71. package/src/schemas/data-grid.ref.json +101 -0
  72. package/src/schemas/data-table.ref.json +181 -0
  73. package/src/schemas/external-application.ref.json +97 -0
  74. package/src/schemas/form-array.ref.json +35 -0
  75. package/src/schemas/form-autocomplete-options-api.ref.json +53 -0
  76. package/src/schemas/form-autocomplete.ref.json +204 -0
  77. package/src/schemas/form-button.ref.json +88 -0
  78. package/src/schemas/form-common-api-request.ref.json +29 -0
  79. package/src/schemas/form-common-filters-from-other-form-fields.ref.json +22 -0
  80. package/src/schemas/form-common-form-fields-filled-by-api-response.ref.json +28 -0
  81. package/src/schemas/form-condition.ref.json +70 -0
  82. package/src/schemas/form-datepicker.ref.json +50 -0
  83. package/src/schemas/form-fieldset.ref.json +28 -0
  84. package/src/schemas/form-file.ref.json +115 -0
  85. package/src/schemas/form-input.ref.json +105 -0
  86. package/src/schemas/form-numeric.ref.json +60 -0
  87. package/src/schemas/form-one-of.ref.json +22 -0
  88. package/src/schemas/form-pattern.ref.json +42 -0
  89. package/src/schemas/form-radiogroup.ref.json +64 -0
  90. package/src/schemas/form-select.ref.json +123 -0
  91. package/src/schemas/form-switch.ref.json +39 -0
  92. package/src/schemas/form-tab.ref.json +50 -0
  93. package/src/schemas/form.ref.json +107 -0
  94. package/src/schemas/frontend-framework-structure.schema.json +178 -0
  95. package/src/schemas/frontend.ref.json +30 -0
  96. package/src/schemas/list.ref.json +196 -0
  97. package/src/schemas/module.ref.json +39 -0
  98. package/src/schemas/panel.ref.json +127 -0
  99. package/src/schemas/project.schema.json +39 -0
  100. package/src/schemas/todo.ref.json +10 -0
  101. package/src/utils/email.ts +56 -0
  102. package/src/utils/env.ts +9 -0
  103. package/src/utils/file.ts +139 -0
  104. package/src/utils/json.ts +100 -0
  105. package/src/utils/path.ts +51 -0
  106. package/src/utils/rapida-project.ts +17 -0
  107. package/tsconfig.json +27 -0
@@ -0,0 +1,181 @@
1
+ {
2
+ "$id": "data-table.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "componentType": { "const": "dataTable" },
7
+ "id": { "type": "string" },
8
+ "title": { "type": "string" },
9
+ "icon": { "type": "string" },
10
+ "guards": {
11
+ "type": "string",
12
+ "enum": ["isAuthenticated", "isAuthorized"]
13
+ },
14
+ "businessRules": { "$ref": "business-rules.ref.json" },
15
+ "dataSource": { "$ref": "form-common-api-request.ref.json" },
16
+ "userStory": { "type": "string" },
17
+ "columns": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "property": { "type": "string" },
23
+ "label": { "type": "string" },
24
+ "sortable": { "type": "boolean" },
25
+ "filterable": { "type": "boolean" },
26
+ "hidden": { "type": "boolean" },
27
+ "width": { "type": "string" },
28
+ "align": {
29
+ "type": "string",
30
+ "enum": ["left", "center", "right"]
31
+ },
32
+ "formatter": {
33
+ "type": "object",
34
+ "properties": {
35
+ "type": {
36
+ "type": "string",
37
+ "enum": ["date", "currency", "number", "boolean", "custom"]
38
+ },
39
+ "format": { "type": "string" },
40
+ "customFunction": { "type": "string" }
41
+ },
42
+ "required": ["type"]
43
+ },
44
+ "renderAs": {
45
+ "type": "string",
46
+ "enum": ["text", "link", "badge", "image", "icon"]
47
+ },
48
+ "linkConfig": {
49
+ "type": "object",
50
+ "properties": {
51
+ "route": { "type": "string" },
52
+ "paramProperty": { "type": "string" },
53
+ "target": {
54
+ "type": "string",
55
+ "enum": ["_blank", "_self"]
56
+ }
57
+ },
58
+ "required": ["route"]
59
+ }
60
+ },
61
+ "required": ["property", "label"]
62
+ }
63
+ },
64
+ "pagination": {
65
+ "type": "object",
66
+ "properties": {
67
+ "enabled": { "type": "boolean" },
68
+ "pageSize": { "type": "number" },
69
+ "pageSizeOptions": {
70
+ "type": "array",
71
+ "items": { "type": "number" }
72
+ },
73
+ "position": {
74
+ "type": "string",
75
+ "enum": ["top", "bottom", "both"]
76
+ }
77
+ },
78
+ "required": ["enabled", "pageSize"]
79
+ },
80
+ "filters": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "object",
84
+ "properties": {
85
+ "property": { "type": "string" },
86
+ "label": { "type": "string" },
87
+ "type": {
88
+ "type": "string",
89
+ "enum": ["text", "select", "date", "dateRange", "number"]
90
+ },
91
+ "defaultValue": {},
92
+ "options": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "object",
96
+ "properties": {
97
+ "label": { "type": "string" },
98
+ "value": {}
99
+ },
100
+ "required": ["label", "value"]
101
+ }
102
+ }
103
+ },
104
+ "required": ["property", "label", "type"]
105
+ }
106
+ },
107
+ "actions": {
108
+ "type": "array",
109
+ "items": {
110
+ "type": "object",
111
+ "properties": {
112
+ "icon": { "type": "string" },
113
+ "label": { "type": "string" },
114
+ "action": {
115
+ "type": "object",
116
+ "properties": {
117
+ "type": {
118
+ "type": "string",
119
+ "enum": ["link", "request", "event"]
120
+ },
121
+ "link": {
122
+ "type": "object",
123
+ "properties": {
124
+ "route": { "type": "string" },
125
+ "paramProperty": { "type": "string" }
126
+ },
127
+ "required": ["route"]
128
+ },
129
+ "request": {
130
+ "type": "object",
131
+ "properties": {
132
+ "endpoint": { "type": "string" },
133
+ "method": {
134
+ "type": "string",
135
+ "enum": ["GET", "POST", "PUT", "DELETE"]
136
+ },
137
+ "confirmMessage": { "type": "string" }
138
+ },
139
+ "required": ["endpoint", "method"]
140
+ },
141
+ "event": {
142
+ "type": "object",
143
+ "properties": {
144
+ "name": { "type": "string" },
145
+ "data": {}
146
+ },
147
+ "required": ["name"]
148
+ }
149
+ },
150
+ "required": ["type"]
151
+ },
152
+ "visibilityCondition": {
153
+ "type": "object",
154
+ "properties": {
155
+ "property": { "type": "string" },
156
+ "operator": {
157
+ "type": "string",
158
+ "enum": ["===", "!==", ">", "<", ">=", "<=", "contains"]
159
+ },
160
+ "value": {}
161
+ },
162
+ "required": ["property", "operator", "value"]
163
+ }
164
+ },
165
+ "required": ["label", "action"]
166
+ }
167
+ },
168
+ "styling": {
169
+ "type": "object",
170
+ "properties": {
171
+ "variant": {
172
+ "type": "string",
173
+ "enum": ["default", "bordered", "striped"]
174
+ },
175
+ "rowClickable": { "type": "boolean" },
176
+ "highlightHoveredRow": { "type": "boolean" }
177
+ }
178
+ }
179
+ },
180
+ "required": ["componentType", "id", "dataSource", "columns"]
181
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "$id": "external-application.ref.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "type": "object",
5
+ "properties": {
6
+ "applications": {
7
+ "type": "array",
8
+ "items": {
9
+ "oneOf": [
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "id": { "const": "financo" },
14
+ "icon": { "const": "attach_money" },
15
+ "alternativeIcon": { "type": "string" }
16
+ },
17
+ "required": ["id"],
18
+ "additionalProperties": false
19
+ },
20
+ {
21
+ "type": "object",
22
+ "properties": {
23
+ "id": { "const": "kliento" },
24
+ "icon": { "const": "support_agent" },
25
+ "alternativeIcon": { "type": "string" }
26
+ },
27
+ "required": ["id"],
28
+ "additionalProperties": false
29
+ },
30
+ {
31
+ "type": "object",
32
+ "properties": {
33
+ "id": { "const": "kontado" },
34
+ "icon": { "const": "account_balance" },
35
+ "alternativeIcon": { "type": "string" }
36
+ },
37
+ "required": ["id"],
38
+ "additionalProperties": false
39
+ },
40
+ {
41
+ "type": "object",
42
+ "properties": {
43
+ "id": { "const": "pago" },
44
+ "icon": { "const": "credit_card" },
45
+ "alternativeIcon": { "type": "string" }
46
+ },
47
+ "required": ["id"],
48
+ "additionalProperties": false
49
+ },
50
+ {
51
+ "type": "object",
52
+ "properties": {
53
+ "id": { "const": "produkto" },
54
+ "icon": { "const": "qr_code_2" },
55
+ "alternativeIcon": { "type": "string" }
56
+ },
57
+ "required": ["id"],
58
+ "additionalProperties": false
59
+ },
60
+ {
61
+ "type": "object",
62
+ "properties": {
63
+ "id": { "const": "projekto" },
64
+ "icon": { "const": "tactic" },
65
+ "alternativeIcon": { "type": "string" }
66
+ },
67
+ "required": ["id"],
68
+ "additionalProperties": false
69
+ },
70
+ {
71
+ "type": "object",
72
+ "properties": {
73
+ "id": { "const": "stoko" },
74
+ "icon": { "const": "inventory_2" },
75
+ "alternativeIcon": { "type": "string" }
76
+ },
77
+ "required": ["id"],
78
+ "additionalProperties": false
79
+ },
80
+ {
81
+ "type": "object",
82
+ "properties": {
83
+ "id": { "const": "uzanto" },
84
+ "icon": { "const": "face" },
85
+ "alternativeIcon": { "type": "string" }
86
+ },
87
+ "required": ["id"],
88
+ "additionalProperties": false
89
+ }
90
+ ]
91
+ },
92
+ "uniqueItems": true
93
+ }
94
+ },
95
+ "required": ["applications"],
96
+ "additionalProperties": false
97
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$id": "form-array.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "type": {
6
+ "const": "array"
7
+ },
8
+ "conditions": {
9
+ "$ref": "form-condition.ref.json"
10
+ },
11
+ "todo": {
12
+ "type": "string"
13
+ },
14
+ "businessRules": {
15
+ "$ref": "business-rules.ref.json"
16
+ },
17
+ "id": {
18
+ "type": "string"
19
+ },
20
+ "name": {
21
+ "type": "string"
22
+ },
23
+ "title": {
24
+ "type": "string"
25
+ },
26
+ "elements": {
27
+ "$ref": "form-one-of.ref.json"
28
+ }
29
+ },
30
+ "required": [
31
+ "type",
32
+ "id",
33
+ "title"
34
+ ]
35
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "$id": "form-autocomplete-options-api.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "endpoint": {
6
+ "type": "string"
7
+ },
8
+ "labelField": {
9
+ "type": "array",
10
+ "items": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "valueField": {
15
+ "type": "string"
16
+ },
17
+ "paramsToFilter": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "string"
21
+ }
22
+ },
23
+ "paramType": {
24
+ "type": "string",
25
+ "enum": ["query", "path"]
26
+ },
27
+ "populate": {
28
+ "type": "array",
29
+ "items": {
30
+ "type": "string"
31
+ }
32
+ },
33
+ "formFieldsFilledByApiResponse": {
34
+ "$ref": "form-common-form-fields-filled-by-api-response.ref.json"
35
+ },
36
+ "filtersFromOtherFormFields": {
37
+ "$ref": "form-common-filters-from-other-form-fields.ref.json"
38
+ },
39
+ "isNotKunlatekResponse": {
40
+ "type": "boolean"
41
+ },
42
+ "rawQuery": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ "required": [
47
+ "endpoint",
48
+ "labelField",
49
+ "valueField",
50
+ "paramsToFilter",
51
+ "paramType"
52
+ ]
53
+ }
@@ -0,0 +1,204 @@
1
+ {
2
+ "$id": "form-autocomplete.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "type": {
6
+ "const": "autocomplete"
7
+ },
8
+ "name": {
9
+ "type": "string"
10
+ },
11
+ "dataType": {
12
+ "type": "string",
13
+ "enum": [
14
+ "text",
15
+ "number",
16
+ "password",
17
+ "email",
18
+ "color",
19
+ "date",
20
+ "file",
21
+ "array",
22
+ "char",
23
+ "nchar",
24
+ "varchar",
25
+ "varchar2",
26
+ "nvarchar",
27
+ "longtext",
28
+ "clob",
29
+ "nclob",
30
+ "decimal",
31
+ "numeric",
32
+ "integer",
33
+ "float",
34
+ "double",
35
+ "real",
36
+ "timestamp",
37
+ "datetime",
38
+ "datetime2",
39
+ "uniqueidentifier",
40
+ "boolean"
41
+ ]
42
+ },
43
+ "label": {
44
+ "type": "string"
45
+ },
46
+ "placeholder": {
47
+ "type": "string"
48
+ },
49
+ "tooltip": {
50
+ "type": "string"
51
+ },
52
+ "isAutofocus": {
53
+ "type": "boolean"
54
+ },
55
+ "isDisabled": {
56
+ "type": "boolean"
57
+ },
58
+ "isDisabledOnUpdate": {
59
+ "type": "boolean"
60
+ },
61
+ "isRequired": {
62
+ "type": "boolean"
63
+ },
64
+ "isUnique": {
65
+ "type": "boolean"
66
+ },
67
+ "conditions": {
68
+ "$ref": "form-condition.ref.json"
69
+ },
70
+ "validators": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string",
74
+ "enum": ["cpf", "cnpj"]
75
+ }
76
+ },
77
+ "todo": {
78
+ "type": "string"
79
+ },
80
+ "businessRules": {
81
+ "$ref": "business-rules.ref.json"
82
+ },
83
+ "optionsApi": {
84
+ "type": "object",
85
+ "properties": {
86
+ "endpoint": {
87
+ "type": "string"
88
+ },
89
+ "labelField": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ }
94
+ },
95
+ "valueField": {
96
+ "type": "string"
97
+ },
98
+ "paramsToFilter": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string"
102
+ }
103
+ },
104
+ "paramType": {
105
+ "type": "string",
106
+ "enum": ["query", "path"]
107
+ },
108
+ "populate": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string"
112
+ }
113
+ },
114
+ "formFieldsFilledByApiResponse": {
115
+ "$ref": "form-common-form-fields-filled-by-api-response.ref.json"
116
+ },
117
+ "filtersFromOtherFormFields": {
118
+ "$ref": "form-common-filters-from-other-form-fields.ref.json"
119
+ },
120
+ "isNotKunlatekResponse": {
121
+ "type": "boolean"
122
+ },
123
+ "conditions": {
124
+ "$ref": "form-condition.ref.json"
125
+ },
126
+ "rawQuery": {
127
+ "type": "string"
128
+ }
129
+ },
130
+ "required": [
131
+ "endpoint",
132
+ "labelField",
133
+ "valueField",
134
+ "paramsToFilter",
135
+ "paramType"
136
+ ]
137
+ },
138
+ "optionsApiWithConditions": {
139
+ "type": "array",
140
+ "items": {
141
+ "type": "object",
142
+ "properties": {
143
+ "endpoint": {
144
+ "type": "string"
145
+ },
146
+ "labelField": {
147
+ "type": "array",
148
+ "items": {
149
+ "type": "string"
150
+ }
151
+ },
152
+ "valueField": {
153
+ "type": "string"
154
+ },
155
+ "paramsToFilter": {
156
+ "type": "array",
157
+ "items": {
158
+ "type": "string"
159
+ }
160
+ },
161
+ "paramType": {
162
+ "type": "string",
163
+ "enum": ["query", "path"]
164
+ },
165
+ "populate": {
166
+ "type": "array",
167
+ "items": {
168
+ "type": "string"
169
+ }
170
+ },
171
+ "formFieldsFilledByApiResponse": {
172
+ "$ref": "form-common-form-fields-filled-by-api-response.ref.json"
173
+ },
174
+ "filtersFromOtherFormFields": {
175
+ "$ref": "form-common-filters-from-other-form-fields.ref.json"
176
+ },
177
+ "isNotKunlatekResponse": {
178
+ "type": "boolean"
179
+ },
180
+ "conditions": {
181
+ "$ref": "form-condition.ref.json"
182
+ },
183
+ "rawQuery": {
184
+ "type": "string"
185
+ }
186
+ }
187
+ },
188
+ "required": [
189
+ "endpoint",
190
+ "labelField",
191
+ "valueField",
192
+ "paramsToFilter",
193
+ "paramType"
194
+ ]
195
+ },
196
+ "isMultiple": {
197
+ "type": "boolean"
198
+ },
199
+ "relatedEntity": {
200
+ "type": "string"
201
+ }
202
+ },
203
+ "required": ["type", "dataType", "name", "label"]
204
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "form-button.ref.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "type": "string",
8
+ "const": "button"
9
+ },
10
+ "id": {
11
+ "type": "string"
12
+ },
13
+ "actionType": {
14
+ "type": "string",
15
+ "enum": ["submit", "reset", "link", "apiRequest", "modal"]
16
+ },
17
+ "label": {
18
+ "type": "string"
19
+ },
20
+ "todo": {
21
+ "type": "string"
22
+ },
23
+ "businessRules": {
24
+ "$ref": "business-rules.ref.json"
25
+ },
26
+ "icon": {
27
+ "type": "string"
28
+ },
29
+ "tooltip": {
30
+ "type": "string"
31
+ },
32
+ "isDisabled": {
33
+ "type": "boolean"
34
+ },
35
+ "isDisabledOnUpdate": {
36
+ "type": "boolean"
37
+ },
38
+ "conditions": {
39
+ "$ref": "form-condition.ref.json"
40
+ },
41
+ "apiRequest": {
42
+ "$ref": "form-common-api-request.ref.json"
43
+ },
44
+ "modal": {
45
+ "type": "object",
46
+ "properties": {
47
+ "id": { "type": "string" },
48
+ "title": { "type": "string" },
49
+ "modal": { "$ref": "form.ref.json" },
50
+ "size": {
51
+ "type": "string",
52
+ "enum": [
53
+ "sm",
54
+ "md",
55
+ "lg",
56
+ "xl",
57
+ "2xl",
58
+ "3xl",
59
+ "4xl",
60
+ "5xl",
61
+ "6xl",
62
+ "7xl"
63
+ ]
64
+ },
65
+ "closeButtonLabel": { "type": "string" },
66
+ "actionButtonLabel": { "type": "string" },
67
+ "actionButtonType": {
68
+ "type": "string",
69
+ "enum": ["submit", "reset", "link", "apiRequest", "modal"]
70
+ },
71
+ "actionButtonApiRequest": {
72
+ "$ref": "form-common-api-request.ref.json"
73
+ },
74
+ "actionButtonBusinessRules": { "$ref": "business-rules.ref.json" }
75
+ },
76
+ "required": ["id", "title", "modal"]
77
+ },
78
+ "link": {
79
+ "type": "object",
80
+ "properties": {
81
+ "url": { "type": "string" },
82
+ "openInNewTab": { "type": "boolean" }
83
+ },
84
+ "required": ["url"]
85
+ }
86
+ },
87
+ "required": ["type", "id", "label", "actionType"]
88
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$id": "form-common-api-request.ref.json",
3
+ "type": "object",
4
+ "properties": {
5
+ "endpoint": {
6
+ "type": "string"
7
+ },
8
+ "paramType": {
9
+ "type": "string",
10
+ "enum": ["query", "path"]
11
+ },
12
+ "isNotKunlatekResponse": {
13
+ "type": "boolean"
14
+ },
15
+ "filtersFromOtherFormFields": {
16
+ "$ref": "form-common-filters-from-other-form-fields.ref.json"
17
+ },
18
+ "formFieldsFilledByApiResponse": {
19
+ "$ref": "form-common-form-fields-filled-by-api-response.ref.json"
20
+ },
21
+ "conditions": {
22
+ "$ref": "form-condition.ref.json"
23
+ },
24
+ "hasAuthentication": {
25
+ "type": "boolean"
26
+ }
27
+ },
28
+ "required": ["endpoint", "paramType"]
29
+ }