@acorex/platform 21.0.0-next.85 → 21.0.0-next.88

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 (74) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +1 -1
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-VfmZct9H.mjs} +43 -3
  4. package/fesm2022/acorex-platform-common-common-settings.provider-VfmZct9H.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +1709 -870
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-contracts.mjs +1160 -9
  8. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +210 -131
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
  12. package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-domain.mjs +2 -50
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components.mjs +59 -23
  17. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +3 -2
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1114 -0
  22. package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-entity.mjs +661 -742
  25. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-views.mjs +333 -119
  27. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs +11 -105
  29. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
  31. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs} +4 -4
  33. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-layout-widgets.mjs +868 -57
  35. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs → acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs} +2 -3
  38. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-themes-default.mjs +740 -96
  40. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  41. package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs} +3 -3
  42. package/fesm2022/acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-themes-shared.mjs +4 -3
  44. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-workflow.mjs +6 -8
  46. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  47. package/package.json +9 -5
  48. package/types/acorex-platform-auth.d.ts +2 -1
  49. package/types/acorex-platform-common.d.ts +419 -1083
  50. package/types/acorex-platform-contracts.d.ts +1791 -260
  51. package/types/acorex-platform-core.d.ts +2153 -2806
  52. package/types/acorex-platform-domain-contracts.d.ts +416 -0
  53. package/types/acorex-platform-domain.d.ts +4 -415
  54. package/types/acorex-platform-layout-builder.d.ts +2 -1
  55. package/types/acorex-platform-layout-components.d.ts +15 -4
  56. package/types/acorex-platform-layout-designer.d.ts +2 -1
  57. package/types/acorex-platform-layout-entity-contracts.d.ts +864 -0
  58. package/types/acorex-platform-layout-entity.d.ts +88 -269
  59. package/types/acorex-platform-layout-views.d.ts +48 -14
  60. package/types/acorex-platform-layout-widget-core.d.ts +9 -5
  61. package/types/acorex-platform-layout-widgets.d.ts +89 -13
  62. package/types/acorex-platform-runtime.d.ts +1 -1
  63. package/types/acorex-platform-themes-default.d.ts +173 -70
  64. package/types/acorex-platform-workflow.d.ts +5 -18
  65. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
  67. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-native.mjs +0 -155
  70. package/fesm2022/acorex-platform-native.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
  73. package/native/README.md +0 -4
  74. package/types/acorex-platform-native.d.ts +0 -28
@@ -1,16 +1,439 @@
1
- //#region ---- Address Data Types ----
1
+ //#region ---- Core contract types (no Angular / no @acorex/*) ----
2
+ /** Returns dot-path keys for a nested plain object. */
3
+ function getNestedKeys(obj, prefix = '') {
4
+ let keys = [];
5
+ for (const key in obj) {
6
+ const value = obj[key];
7
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
8
+ keys = [...keys, ...getNestedKeys(value, `${prefix}${key}.`)];
9
+ }
10
+ else {
11
+ keys.push(`${prefix}${key}`);
12
+ }
13
+ }
14
+ return keys;
15
+ }
16
+ /** Normalizes definition categories to an array for iteration and serialization. */
17
+ function normalizeDefinitionCategories(categories) {
18
+ if (categories == null) {
19
+ return [];
20
+ }
21
+ return Array.isArray(categories) ? categories : [categories];
22
+ }
23
+ var AXPSystemActionType;
24
+ (function (AXPSystemActionType) {
25
+ AXPSystemActionType["View"] = "view";
26
+ AXPSystemActionType["Create"] = "create";
27
+ AXPSystemActionType["Update"] = "update";
28
+ AXPSystemActionType["Delete"] = "delete";
29
+ AXPSystemActionType["Approve"] = "approve";
30
+ AXPSystemActionType["Reject"] = "reject";
31
+ AXPSystemActionType["Submit"] = "submit";
32
+ AXPSystemActionType["Export"] = "export";
33
+ AXPSystemActionType["Import"] = "import";
34
+ AXPSystemActionType["Print"] = "print";
35
+ AXPSystemActionType["Assign"] = "assign";
36
+ AXPSystemActionType["Lock"] = "lock";
37
+ AXPSystemActionType["Unlock"] = "unlock";
38
+ AXPSystemActionType["Share"] = "share";
39
+ AXPSystemActionType["Configure"] = "configure";
40
+ AXPSystemActionType["Reorder"] = "reorder";
41
+ AXPSystemActionType["Preview"] = "preview";
42
+ AXPSystemActionType["Duplicate"] = "duplicate";
43
+ AXPSystemActionType["Archive"] = "archive";
44
+ AXPSystemActionType["Publish"] = "publish";
45
+ AXPSystemActionType["Unpublish"] = "unpublish";
46
+ AXPSystemActionType["Upload"] = "upload";
47
+ AXPSystemActionType["Download"] = "download";
48
+ AXPSystemActionType["Copy"] = "copy";
49
+ AXPSystemActionType["Move"] = "move";
50
+ AXPSystemActionType["Rename"] = "rename";
51
+ AXPSystemActionType["Restore"] = "restore";
52
+ AXPSystemActionType["Manage"] = "manage";
53
+ AXPSystemActionType["Info"] = "info";
54
+ AXPSystemActionType["Confirm"] = "confirm";
55
+ AXPSystemActionType["Design"] = "design";
56
+ AXPSystemActionType["VersionHistory"] = "version-history";
57
+ AXPSystemActionType["Compare"] = "compare";
58
+ AXPSystemActionType["Comments"] = "comments";
59
+ AXPSystemActionType["Sign"] = "sign";
60
+ AXPSystemActionType["Setup"] = "setup";
61
+ AXPSystemActionType["Send"] = "send";
62
+ AXPSystemActionType["Report"] = "report";
63
+ AXPSystemActionType["Sent"] = "sent";
64
+ AXPSystemActionType["Review"] = "review";
65
+ AXPSystemActionType["Generate"] = "generate";
66
+ AXPSystemActionType["Refresh"] = "refresh";
67
+ AXPSystemActionType["Reload"] = "reload";
68
+ AXPSystemActionType["Search"] = "search";
69
+ AXPSystemActionType["Filter"] = "filter";
70
+ AXPSystemActionType["Sort"] = "sort";
71
+ AXPSystemActionType["Start"] = "start";
72
+ AXPSystemActionType["Stop"] = "stop";
73
+ AXPSystemActionType["Pause"] = "pause";
74
+ AXPSystemActionType["Cancel"] = "cancel";
75
+ AXPSystemActionType["Close"] = "close";
76
+ AXPSystemActionType["Complete"] = "complete";
77
+ AXPSystemActionType["Save"] = "save";
78
+ AXPSystemActionType["SaveAs"] = "save-as";
79
+ AXPSystemActionType["Sync"] = "sync";
80
+ AXPSystemActionType["Reset"] = "reset";
81
+ AXPSystemActionType["Clear"] = "clear";
82
+ AXPSystemActionType["Distribution"] = "distribution";
83
+ })(AXPSystemActionType || (AXPSystemActionType = {}));
2
84
  //#endregion
3
85
 
86
+ //#region ---- CDK / component shims (pure contracts, no @acorex/cdk) ----
4
87
  //#endregion
5
88
 
6
- // Note:
7
- // Previous versions defined dedicated activity result/command types here
8
- // (AXPActivityResult / AXPActivity) that wrapped output and outcome.
9
- // Activities are now modeled directly as AXPCommand with outcome stored in
10
- // AXPExecuteCommandResult.metadata.outcome.
89
+ //#region ---- Platform scope types ----
90
+ var AXPPlatformScope;
91
+ (function (AXPPlatformScope) {
92
+ AXPPlatformScope["Platform"] = "P";
93
+ AXPPlatformScope["Tenant"] = "T";
94
+ AXPPlatformScope["User"] = "U";
95
+ })(AXPPlatformScope || (AXPPlatformScope = {}));
96
+ function resolvePlatformScopeKey(name) {
97
+ const scopeMap = {
98
+ platform: AXPPlatformScope.Platform,
99
+ tenant: AXPPlatformScope.Tenant,
100
+ user: AXPPlatformScope.User,
101
+ };
102
+ return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;
103
+ }
104
+ function resolvePlatformScopeName(scope) {
105
+ const scopeMap = {
106
+ P: 'platform',
107
+ T: 'tenant',
108
+ U: 'user',
109
+ };
110
+ return scopeMap[scope] ?? 'user';
111
+ }
112
+ //#endregion
11
113
 
12
- /** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives in contracts so consumers can reference it without importing the command implementation. */
13
- const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = 'Widget:Preview';
114
+ //#region ---- Logo config ----
115
+ //#endregion
116
+
117
+ //#region ---- Response types ----
118
+ //#endregion
119
+
120
+ //#region ---- Core contracts ----
121
+ //#endregion
122
+
123
+ //#region ---- Category & entity operation types ----
124
+ //#endregion
125
+
126
+ //#region ---- Filter types ----
127
+ //#endregion
128
+
129
+ //#region ---- Sort types ----
130
+ //#endregion
131
+
132
+ //#region ---- Column types ----
133
+ //#endregion
134
+
135
+ //#region ---- Export types ----
136
+ var AXPExportTemplateToken;
137
+ (function (AXPExportTemplateToken) {
138
+ AXPExportTemplateToken["Date"] = "{date}";
139
+ AXPExportTemplateToken["Time"] = "{time}";
140
+ AXPExportTemplateToken["User"] = "{user}";
141
+ AXPExportTemplateToken["ReportTitle"] = "{title}";
142
+ AXPExportTemplateToken["UUID"] = "{uuid}";
143
+ })(AXPExportTemplateToken || (AXPExportTemplateToken = {}));
144
+ //#endregion
145
+
146
+ //#region ---- Multi-source reference ----
147
+ //#endregion
148
+
149
+ //#region ---- Data contracts ----
150
+ //#endregion
151
+
152
+ //#region ---- Property types ----
153
+ //#endregion
154
+
155
+ //#region ---- Validation types ----
156
+ //#endregion
157
+
158
+ //#region ---- Widget element types ----
159
+ //#endregion
160
+
161
+ //#region ---- File types ----
162
+ //#endregion
163
+
164
+ //#region ---- Property contracts ----
165
+ //#endregion
166
+
167
+ //#region ---- Interactive types ----
168
+ //#endregion
169
+
170
+ //#region ---- View types ----
171
+ //#endregion
172
+
173
+ //#region ---- View query types ----
174
+ //#endregion
175
+
176
+ //#region ---- Interaction contracts ----
177
+ //#endregion
178
+
179
+ //#region ---- Widget node types ----
180
+ //#endregion
181
+
182
+ const AXPWidgetsList = {
183
+ Editors: {
184
+ DocumentAttachment: 'document-attachment-editor',
185
+ TagEditor: 'tag-editor',
186
+ CheckBox: 'checkbox-editor',
187
+ ColorBox: 'color-editor',
188
+ ColorPalette: 'color-palette-editor',
189
+ DateTimeBox: 'date-time-editor',
190
+ AddressBox: 'address-editor',
191
+ Direction: 'direction',
192
+ LargeTextBox: 'large-text-editor',
193
+ NumberBox: 'number-editor',
194
+ UnitValueBox: 'number-unit-editor',
195
+ PasswordBox: 'password-editor',
196
+ QueryBuilder: 'query-builder-editor',
197
+ RichText: 'rich-text-editor',
198
+ SelectBox: 'select-editor',
199
+ SelectionList: 'selection-list-editor',
200
+ TextBox: 'text-editor',
201
+ InlineDataTable: 'table-editor',
202
+ ToggleSwitch: 'toggle-editor',
203
+ FileTypeExtension: 'file-type-extension',
204
+ MapBox: 'map',
205
+ MediaGallery: 'gallery',
206
+ SignatureBox: 'signature',
207
+ LookupBox: 'lookup-editor',
208
+ MultiSourceSelector: 'multi-source-selector-editor',
209
+ EntityCategory: 'entity-category-editor',
210
+ ContactBox: 'contact-editor',
211
+ MetaDataBox: 'meta-data-editor',
212
+ TemplateBox: 'template-box-editor',
213
+ TemplateContentEditor: 'template-content-editor',
214
+ TimeDuration: 'time-duration',
215
+ DocumentUploader: 'document-uploader',
216
+ MetaSelector: 'meta-selector-editor',
217
+ MetaDataForm: 'meta-data-form-editor',
218
+ ColumnFilterSelector: 'column-filter-selector-editor',
219
+ DataListFilter: 'data-list-filter-editor',
220
+ ListEditor: 'list-editor',
221
+ ConnectedListsEditor: 'connected-lists-editor',
222
+ SkillMatrix: 'skill-matrix-editor',
223
+ ResponsibilitiesMatrix: 'responsibilities-matrix-editor',
224
+ RiskMatrix: 'risk-matrix-editor',
225
+ ProgressBox: 'progress-bar-editor',
226
+ RatePicker: 'rate-picker-editor',
227
+ ActivityCommandConfigurator: 'activity-command-configurator',
228
+ WorkflowConfigurator: 'workflow-configurator',
229
+ },
230
+ Layouts: {
231
+ AlertBox: 'alert-box-layout',
232
+ BadgeLayout: 'badge-layout',
233
+ BlockLayout: 'block-layout',
234
+ RepeaterLayout: 'repeater-layout',
235
+ TextBlockLayout: 'text-block-layout',
236
+ FormField: 'form-field',
237
+ PanelLayout: 'panel-layout',
238
+ PageLayout: 'page-layout',
239
+ DocumentLayout: 'document-layout',
240
+ GridRowLayout: 'grid-row-layout',
241
+ GridItemLayout: 'grid-item-layout',
242
+ GridLayout: 'grid-layout',
243
+ FlexLayout: 'flex-layout',
244
+ FlexItemLayout: 'flex-item-layout',
245
+ AdvancedGridLayout: 'advanced-grid-layout',
246
+ AdvancedGridItemLayout: 'advanced-grid-item-layout',
247
+ FieldsetLayout: 'fieldset-layout',
248
+ TabsetLayout: 'tabset-layout',
249
+ TabsetItemLayout: 'tabset-item',
250
+ },
251
+ Actions: {
252
+ ActionButton: 'button-action',
253
+ },
254
+ Advanced: {
255
+ CodeEditor: 'code-editor',
256
+ JsonViewer: 'json-viewer',
257
+ OutcomeResultsViewer: 'outcome-results-viewer',
258
+ QRCode: 'qrcode',
259
+ schedulerPicker: 'scheduler-picker',
260
+ Signature: 'signature',
261
+ Map: 'map',
262
+ Gallery: 'gallery',
263
+ Image: 'image',
264
+ ImageMarker: 'image-marker',
265
+ Avatar: 'avatar',
266
+ Attachments: 'attachments',
267
+ DataList: 'data-list',
268
+ ListToolbar: 'list-toolbar',
269
+ CronJob: 'cron-job',
270
+ Status: 'status-widget',
271
+ WidgetFieldConfigurator: 'widget-field-configurator',
272
+ AnswersViewer: 'answers-viewer',
273
+ IntegrationConnectionsPanel: 'integration-connections-panel',
274
+ },
275
+ Templates: {
276
+ Designer: 'template-designer',
277
+ Template: 'template',
278
+ },
279
+ // Filters: {
280
+ // StringFilter: 'string-filter',
281
+ // SelectFilter: 'select-filter',
282
+ // NumberFilter: 'number-filter',
283
+ // DateTimeFilter: 'datetime-filter',
284
+ // BooleanFilter: 'boolean-filter',
285
+ // LookupFilter: 'lookup-filter',
286
+ // },
287
+ // PropertyEditors: {
288
+ // Spacing: 'spacing',
289
+ // GridOptions: 'grid-options',
290
+ // GridItemOptions: 'grid-item-options',
291
+ // FlexOptions: 'flex-options',
292
+ // FlexItemOptions: 'flex-item-options',
293
+ // Direction: 'direction',
294
+ // Border: 'border',
295
+ // AdvancedGridOptions: 'advanced-grid-options',
296
+ // },
297
+ // Validations: {
298
+ // RequiredValidation: 'required-validation',
299
+ // RegularExpressionValidation: 'regular-expression-validation',
300
+ // MinLengthValidation: 'min-length-validation',
301
+ // MaxLengthValidation: 'max-length-validation',
302
+ // LessThanValidation: 'less-than-validation',
303
+ // GreaterThanValidation: 'greater-than-validation',
304
+ // EqualValidation: 'equal-validation',
305
+ // CallbackValidation: 'callback-validation',
306
+ // BetweenValidation: 'between-validation',
307
+ // },
308
+ Entity: {
309
+ EntityList: 'entity-list',
310
+ SelectorStructure: 'selector-structure',
311
+ },
312
+ Providers: {
313
+ EntityDefinition: 'entity-definition-provider-editor',
314
+ },
315
+ ExpressionBuilders: {
316
+ ConditionBuilder: 'condition-builder-editor',
317
+ },
318
+ Theme: {
319
+ ThemeColorChooser: 'theme-color-chooser',
320
+ // ThemeModeChooser: 'theme-mode-chooser',
321
+ IconChooser: 'icon-chooser',
322
+ FontSizeChooser: 'font-size-chooser',
323
+ FontStyleChooser: 'font-style-chooser',
324
+ // MenuOrientationChooser: 'menu-orientation-chooser',
325
+ },
326
+ // Features: {
327
+ // Comment: 'comment',
328
+ // Permissions: 'permissions',
329
+ // },
330
+ };
331
+
332
+ //#region ---- Widget catalog (deprecated; prefer AXPWidgetsList) ----
333
+ const AXPWidgetsCatalog = {
334
+ timeDuration: 'time-duration',
335
+ timeDurationFilter: 'time-duration-filter',
336
+ checkbox: 'checkbox-editor',
337
+ color: 'color-editor',
338
+ connectedLists: 'connected-lists-editor',
339
+ contact: 'contact-editor',
340
+ dateTime: 'date-time-editor',
341
+ largeText: 'large-text-editor',
342
+ number: 'number-editor',
343
+ numberUnit: 'number-unit-editor',
344
+ password: 'password-editor',
345
+ richText: 'rich-text-editor',
346
+ select: 'select-editor',
347
+ selectionList: 'selection-list-editor',
348
+ text: 'text-editor',
349
+ table: 'table-editor',
350
+ toggle: 'toggle-editor',
351
+ blockLayout: 'block-layout',
352
+ pageLayout: 'page-layout',
353
+ repeaterLayout: 'repeater-layout',
354
+ textBlockLayout: 'text-block-layout',
355
+ alertBoxLayout: 'alert-box-layout',
356
+ badgeLayout: 'badge-layout',
357
+ attachments: 'attachments',
358
+ fileTypeExtension: 'file-type-extension',
359
+ map: 'map',
360
+ imageMarker: 'image-marker',
361
+ image: 'image',
362
+ gallery: 'gallery',
363
+ signature: 'signature',
364
+ buttonAction: 'button-action',
365
+ document: 'document-layout',
366
+ lookup: 'lookup-editor',
367
+ formField: 'form-field',
368
+ qrcode: 'qrcode',
369
+ schedulerPicker: 'scheduler-picker',
370
+ advancedGrid: 'advanced-grid-layout',
371
+ advancedGridItem: 'advanced-grid-item-layout',
372
+ grid: 'grid-layout',
373
+ gridItem: 'grid-item-layout',
374
+ template: 'template',
375
+ templateDesigner: 'template-designer',
376
+ cronJob: 'cron-job',
377
+ spacing: 'spacing',
378
+ direction: 'direction',
379
+ border: 'border',
380
+ flexLayout: 'flex-layout',
381
+ flexItem: 'flex-item-layout',
382
+ tableLayout: 'table-layout',
383
+ tableItem: 'table-item-layout',
384
+ avatar: 'avatar',
385
+ themeModeChooser: 'theme-mode-chooser',
386
+ menuOrientationChooser: 'menu-orientation-chooser',
387
+ fontStyleChooser: 'font-style-chooser',
388
+ fontSizeChooser: 'font-size-chooser',
389
+ iconChooser: 'icon-chooser',
390
+ icon: 'icon',
391
+ themeColorChooser: 'theme-color-chooser',
392
+ gridOptions: 'grid-options',
393
+ gridItemOptions: 'grid-item-options',
394
+ advancedGridOptions: 'advanced-grid-options',
395
+ stringFilter: 'string-filter',
396
+ numberFilter: 'number-filter',
397
+ dateTimeFilter: 'datetime-filter',
398
+ booleanFilter: 'boolean-filter',
399
+ lookupFilter: 'lookup-filter',
400
+ flexOptions: 'flex-options',
401
+ flexItemOptions: 'flex-item-options',
402
+ selectFilter: 'select-filter',
403
+ requiredValidation: 'required-validation',
404
+ regularExpressionValidation: 'regular-expression-validation',
405
+ minLengthValidation: 'min-length-validation',
406
+ maxLengthValidation: 'max-length-validation',
407
+ lessThanValidation: 'less-than-validation',
408
+ greaterThanValidation: 'greater-than-validation',
409
+ betweenValidation: 'between-validation',
410
+ equalValidation: 'equal-validation',
411
+ callbackValidation: 'callback-validation',
412
+ metaData: 'meta-data-editor',
413
+ templateEditor: 'template-box-editor',
414
+ templateContentEditor: 'template-content-editor',
415
+ panel: 'panel',
416
+ notification: 'notification',
417
+ comment: 'comment',
418
+ list: 'list-editor',
419
+ dataList: 'data-list',
420
+ listToolbar: 'list-toolbar',
421
+ entityList: 'entity-list',
422
+ pageComponent: 'page-component',
423
+ editorJs: 'editor-js-editor',
424
+ documentUploader: 'document-uploader',
425
+ stepWizard: 'step-wizard',
426
+ progressBar: 'progress-bar-editor',
427
+ rate: 'rate-picker-editor',
428
+ documentFileTypeFilter: 'document-file-type-filter',
429
+ entityDefinitionProvider: 'entity-definition-provider-editor',
430
+ };
431
+ //#endregion
432
+
433
+ //#region ---- Widget contracts ----
434
+ //#endregion
435
+
436
+ //#endregion
14
437
 
15
438
  // ============================================
16
439
  // WORKFLOW INSTANCE v3.0.0 TYPES
@@ -18,6 +441,379 @@ const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = 'Widget:Preview';
18
441
  // Compatible with Elsa backend while using ACoreX naming conventions
19
442
  // ============================================
20
443
 
444
+ // Note:
445
+ // Previous versions defined dedicated activity result/command types here
446
+ // (AXPActivityResult / AXPActivity) that wrapped output and outcome.
447
+ // Activities are now modeled directly as AXPCommand with outcome stored in
448
+ // AXPExecuteCommandResult.metadata.outcome.
449
+
450
+ //#region ---- Workflow contracts ----
451
+ //#endregion
452
+
453
+ //#region ---- System status types ----
454
+ /** Standard system status types used across the platform. */
455
+ var AXPSystemStatusType;
456
+ (function (AXPSystemStatusType) {
457
+ AXPSystemStatusType["Todo"] = "todo";
458
+ AXPSystemStatusType["InProgress"] = "in-progress";
459
+ AXPSystemStatusType["InReview"] = "in-review";
460
+ AXPSystemStatusType["Open"] = "open";
461
+ AXPSystemStatusType["Closed"] = "closed";
462
+ AXPSystemStatusType["Blocked"] = "blocked";
463
+ AXPSystemStatusType["Done"] = "done";
464
+ AXPSystemStatusType["Cancelled"] = "cancelled";
465
+ AXPSystemStatusType["Draft"] = "draft";
466
+ AXPSystemStatusType["PendingReview"] = "pending-review";
467
+ AXPSystemStatusType["WaitingSignOff"] = "waiting-sign-off";
468
+ AXPSystemStatusType["WaitingApproval"] = "waiting-approval";
469
+ AXPSystemStatusType["Approved"] = "approved";
470
+ AXPSystemStatusType["Published"] = "published";
471
+ AXPSystemStatusType["Archived"] = "archived";
472
+ AXPSystemStatusType["Rejected"] = "rejected";
473
+ AXPSystemStatusType["Active"] = "active";
474
+ AXPSystemStatusType["Inactive"] = "inactive";
475
+ AXPSystemStatusType["Pending"] = "pending";
476
+ AXPSystemStatusType["Completed"] = "completed";
477
+ AXPSystemStatusType["Suspended"] = "suspended";
478
+ AXPSystemStatusType["Failed"] = "failed";
479
+ AXPSystemStatusType["Review"] = "review";
480
+ AXPSystemStatusType["Expired"] = "expired";
481
+ })(AXPSystemStatusType || (AXPSystemStatusType = {}));
482
+ //#endregion
483
+
484
+ /**
485
+ * Status Definition Types
486
+ * Defines the structure for status definitions and their transitions
487
+ */
488
+ /**
489
+ * Abstract class for status providers
490
+ * Similar to AXPTaskBadgeProvider pattern
491
+ */
492
+ class AXPStatusProvider {
493
+ }
494
+ //#endregion
495
+
496
+ const i18n = (key) => `@general:statuses.${key}`;
497
+ /**
498
+ * Standard system status definitions
499
+ * Provides consistent status definitions across the platform
500
+ * Uses AXPStatusDefinition interface from status-definition.types.ts
501
+ */
502
+ const AXPSystemStatuses = Object.freeze({
503
+ Open: {
504
+ name: AXPSystemStatusType.Open,
505
+ title: i18n('open.title'),
506
+ icon: 'fa-light fa-circle',
507
+ color: 'secondary',
508
+ description: i18n('open.description'),
509
+ order: 1,
510
+ isInitial: true,
511
+ isFinal: false,
512
+ },
513
+ Closed: {
514
+ name: AXPSystemStatusType.Closed,
515
+ title: i18n('closed.title'),
516
+ icon: 'fa-light fa-circle',
517
+ color: 'danger',
518
+ description: i18n('closed.description'),
519
+ order: 2,
520
+ isInitial: false,
521
+ isFinal: true,
522
+ },
523
+ Todo: {
524
+ name: AXPSystemStatusType.Todo,
525
+ title: i18n('todo.title'),
526
+ icon: 'fa-light fa-circle',
527
+ color: 'secondary',
528
+ description: i18n('todo.description'),
529
+ order: 1,
530
+ isInitial: true,
531
+ isFinal: false,
532
+ },
533
+ InProgress: {
534
+ name: AXPSystemStatusType.InProgress,
535
+ title: i18n('in-progress.title'),
536
+ icon: 'fa-light fa-play',
537
+ color: 'info',
538
+ description: i18n('in-progress.description'),
539
+ order: 2,
540
+ isInitial: false,
541
+ isFinal: false,
542
+ },
543
+ InReview: {
544
+ name: AXPSystemStatusType.InReview,
545
+ title: i18n('in-review.title'),
546
+ icon: 'fa-light fa-eye',
547
+ color: 'info',
548
+ description: i18n('in-review.description'),
549
+ order: 3,
550
+ isInitial: false,
551
+ isFinal: false,
552
+ },
553
+ Blocked: {
554
+ name: AXPSystemStatusType.Blocked,
555
+ title: i18n('blocked.title'),
556
+ icon: 'fa-light fa-ban',
557
+ color: 'danger',
558
+ description: i18n('blocked.description'),
559
+ order: 4,
560
+ isInitial: false,
561
+ isFinal: false,
562
+ },
563
+ Done: {
564
+ name: AXPSystemStatusType.Done,
565
+ title: i18n('done.title'),
566
+ icon: 'fa-light fa-check-circle',
567
+ color: 'success',
568
+ description: i18n('done.description'),
569
+ order: 5,
570
+ isInitial: false,
571
+ isFinal: true,
572
+ },
573
+ Cancelled: {
574
+ name: AXPSystemStatusType.Cancelled,
575
+ title: i18n('cancelled.title'),
576
+ icon: 'fa-light fa-times-circle',
577
+ color: 'neutral',
578
+ description: i18n('cancelled.description'),
579
+ order: 6,
580
+ isInitial: false,
581
+ isFinal: true,
582
+ },
583
+ Draft: {
584
+ name: AXPSystemStatusType.Draft,
585
+ title: i18n('draft.title'),
586
+ icon: 'fa-light fa-file-pen',
587
+ color: 'neutral',
588
+ description: i18n('draft.description'),
589
+ order: 1,
590
+ isInitial: true,
591
+ isFinal: false,
592
+ },
593
+ PendingReview: {
594
+ name: AXPSystemStatusType.PendingReview,
595
+ title: i18n('pending-review.title'),
596
+ icon: 'fa-light fa-clock',
597
+ color: 'warning',
598
+ description: i18n('pending-review.description'),
599
+ order: 2,
600
+ isInitial: false,
601
+ isFinal: false,
602
+ },
603
+ WaitingSignOff: {
604
+ name: AXPSystemStatusType.WaitingSignOff,
605
+ title: i18n('waiting-sign-off.title'),
606
+ icon: 'fa-light fa-clock',
607
+ color: 'warning',
608
+ description: i18n('waiting-sign-off.description'),
609
+ order: 3,
610
+ isInitial: false,
611
+ isFinal: false,
612
+ },
613
+ WaitingApproval: {
614
+ name: AXPSystemStatusType.WaitingApproval,
615
+ title: i18n('waiting-approval.title'),
616
+ icon: 'fa-light fa-clock',
617
+ color: 'warning',
618
+ description: i18n('waiting-approval.description'),
619
+ order: 1,
620
+ isInitial: true,
621
+ isFinal: false,
622
+ },
623
+ Approved: {
624
+ name: AXPSystemStatusType.Approved,
625
+ title: i18n('approved.title'),
626
+ icon: 'fa-light fa-check-circle',
627
+ color: 'success',
628
+ description: i18n('approved.description'),
629
+ order: 3,
630
+ isInitial: false,
631
+ isFinal: false,
632
+ },
633
+ Published: {
634
+ name: AXPSystemStatusType.Published,
635
+ title: i18n('published.title'),
636
+ icon: 'fa-light fa-globe',
637
+ color: 'primary',
638
+ description: i18n('published.description'),
639
+ order: 4,
640
+ isInitial: false,
641
+ isFinal: false,
642
+ },
643
+ Archived: {
644
+ name: AXPSystemStatusType.Archived,
645
+ title: i18n('archived.title'),
646
+ icon: 'fa-light fa-archive',
647
+ color: 'danger',
648
+ description: i18n('archived.description'),
649
+ order: 5,
650
+ isInitial: false,
651
+ isFinal: true,
652
+ },
653
+ Rejected: {
654
+ name: AXPSystemStatusType.Rejected,
655
+ title: i18n('rejected.title'),
656
+ icon: 'fa-light fa-times-circle',
657
+ color: 'danger',
658
+ description: i18n('rejected.description'),
659
+ order: 6,
660
+ isInitial: false,
661
+ isFinal: true,
662
+ },
663
+ Active: {
664
+ name: AXPSystemStatusType.Active,
665
+ title: i18n('active.title'),
666
+ icon: 'fa-light fa-check-circle',
667
+ color: 'success',
668
+ description: i18n('active.description'),
669
+ order: 1,
670
+ isInitial: false,
671
+ isFinal: false,
672
+ },
673
+ Inactive: {
674
+ name: AXPSystemStatusType.Inactive,
675
+ title: i18n('inactive.title'),
676
+ icon: 'fa-light fa-circle',
677
+ color: 'secondary',
678
+ description: i18n('inactive.description'),
679
+ order: 2,
680
+ isInitial: false,
681
+ isFinal: false,
682
+ },
683
+ Pending: {
684
+ name: AXPSystemStatusType.Pending,
685
+ title: i18n('pending.title'),
686
+ icon: 'fa-light fa-clock',
687
+ color: 'warning',
688
+ description: i18n('pending.description'),
689
+ order: 1,
690
+ isInitial: true,
691
+ isFinal: false,
692
+ },
693
+ Completed: {
694
+ name: AXPSystemStatusType.Completed,
695
+ title: i18n('completed.title'),
696
+ icon: 'fa-light fa-check-circle',
697
+ color: 'success',
698
+ description: i18n('completed.description'),
699
+ order: 10,
700
+ isInitial: false,
701
+ isFinal: true,
702
+ },
703
+ Suspended: {
704
+ name: AXPSystemStatusType.Suspended,
705
+ title: i18n('suspended.title'),
706
+ icon: 'fa-light fa-pause-circle',
707
+ color: 'neutral',
708
+ description: i18n('suspended.description'),
709
+ order: 5,
710
+ isInitial: false,
711
+ isFinal: false,
712
+ },
713
+ Failed: {
714
+ name: AXPSystemStatusType.Failed,
715
+ title: i18n('failed.title'),
716
+ icon: 'fa-light fa-xmark-circle',
717
+ color: 'danger',
718
+ description: i18n('failed.description'),
719
+ order: 10,
720
+ isInitial: false,
721
+ isFinal: true,
722
+ },
723
+ Review: {
724
+ name: AXPSystemStatusType.Review,
725
+ title: i18n('review.title'),
726
+ icon: 'fa-light fa-eye',
727
+ color: 'info',
728
+ description: i18n('review.description'),
729
+ order: 3,
730
+ },
731
+ Expired: {
732
+ name: AXPSystemStatusType.Expired,
733
+ title: i18n('expired.title'),
734
+ icon: 'fa-light fa-clock',
735
+ color: 'danger',
736
+ description: i18n('expired.description'),
737
+ order: 10,
738
+ isInitial: false,
739
+ isFinal: true,
740
+ },
741
+ });
742
+ /**
743
+ * Get system status definition by type
744
+ * @param type - Status type
745
+ * @returns System status definition or undefined
746
+ */
747
+ function getSystemStatus(type) {
748
+ return Object.values(AXPSystemStatuses).find(status => status.name === type);
749
+ }
750
+ /**
751
+ * Resolves the visual appearance (color and icon) for status
752
+ * using the system statuses from the core module.
753
+ * @param statusType - Status type string
754
+ * @returns Color and icon for the status
755
+ */
756
+ function resolveStatusLook(statusType) {
757
+ const systemStatusType = statusType;
758
+ if (systemStatusType) {
759
+ const systemStatus = getSystemStatus(systemStatusType);
760
+ if (systemStatus) {
761
+ return {
762
+ color: systemStatus.color,
763
+ icon: systemStatus.icon || ''
764
+ };
765
+ }
766
+ }
767
+ return {
768
+ color: 'secondary',
769
+ icon: ''
770
+ };
771
+ }
772
+ /**
773
+ * Resolves the complete status information (title, description, icon, color) for a status
774
+ * using the system statuses from the core module.
775
+ * @param statusType - Status type string
776
+ * @returns Complete status information as AXPStatusDefinition
777
+ */
778
+ function getStatusInfo(statusType) {
779
+ const systemStatusType = statusType;
780
+ if (systemStatusType) {
781
+ const systemStatus = getSystemStatus(systemStatusType);
782
+ if (systemStatus) {
783
+ return systemStatus;
784
+ }
785
+ }
786
+ return {
787
+ name: statusType,
788
+ title: statusType,
789
+ description: `Status: ${statusType}`,
790
+ icon: '',
791
+ color: 'secondary'
792
+ };
793
+ }
794
+ /**
795
+ * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)
796
+ * @param statusType - Status type
797
+ * @param overrides - Optional overrides for the status definition
798
+ * @returns AXPStatusDefinition
799
+ */
800
+ function systemStatusToDefinition(statusType, overrides) {
801
+ const systemStatus = getSystemStatus(statusType);
802
+ if (!systemStatus) {
803
+ throw new Error(`System status ${statusType} not found`);
804
+ }
805
+ return {
806
+ ...systemStatus,
807
+ ...overrides,
808
+ };
809
+ }
810
+
811
+ //#region ---- Status contracts ----
812
+ //#endregion
813
+
814
+ //#region ---- Address Data Types ----
815
+ //#endregion
816
+
21
817
  var AXPFileStorageStatus;
22
818
  (function (AXPFileStorageStatus) {
23
819
  AXPFileStorageStatus["Temporary"] = "temporary";
@@ -27,6 +823,361 @@ var AXPFileStorageStatus;
27
823
  AXPFileStorageStatus["Error"] = "error";
28
824
  })(AXPFileStorageStatus || (AXPFileStorageStatus = {}));
29
825
 
826
+ //#region ---- AI output contract types ----
827
+ //#endregion
828
+
829
+ //#region ---- Spreadsheet data types ----
830
+ //#endregion
831
+
832
+ //#region ---- Domain contracts ----
833
+ //#endregion
834
+
835
+ //#region ---- Platform core datasource keys ----
836
+ /** Platform core datasource registry names. */
837
+ const AXPPlatformCoreDataSourceKeys = {
838
+ ModuleManifests: 'platform-module-manifests',
839
+ CatalogScopes: 'platform-catalog-scopes',
840
+ };
841
+ //#endregion
842
+
843
+ //#region ---- Regional setting keys ----
844
+ /**
845
+ * Regional and locale-related setting keys used by platform widgets and components.
846
+ * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
847
+ */
848
+ var AXPRegionalSetting;
849
+ (function (AXPRegionalSetting) {
850
+ AXPRegionalSetting["LocaleProfile"] = "LocaleManagement:Setting:Regional.LocaleProfile";
851
+ AXPRegionalSetting["TimeZone"] = "LocaleManagement:Setting:Regional.TimeZone";
852
+ AXPRegionalSetting["Language"] = "LocaleManagement:Setting:Regional.Language";
853
+ AXPRegionalSetting["Country"] = "LocaleManagement:Setting:Regional.Country";
854
+ AXPRegionalSetting["Calendar"] = "LocaleManagement:Setting:Regional.Calendar";
855
+ /** User-selected holiday calendars shown on the task board and other calendar views. */
856
+ AXPRegionalSetting["CalendarEvents"] = "LocaleManagement:Setting:Regional.CalendarEvents";
857
+ AXPRegionalSetting["FirstDayOfWeek"] = "LocaleManagement:Setting:Regional.FirstDayOfWeek";
858
+ AXPRegionalSetting["WeekendDays"] = "LocaleManagement:Setting:Regional.WeekendDays";
859
+ AXPRegionalSetting["ShortDate"] = "LocaleManagement:Setting:Regional.ShortDate";
860
+ AXPRegionalSetting["MediumDate"] = "LocaleManagement:Setting:Regional.MediumDate";
861
+ AXPRegionalSetting["LongDate"] = "LocaleManagement:Setting:Regional.LongDate";
862
+ AXPRegionalSetting["ShortTime"] = "LocaleManagement:Setting:Regional.ShortTime";
863
+ AXPRegionalSetting["MediumTime"] = "LocaleManagement:Setting:Regional.MediumTime";
864
+ AXPRegionalSetting["LongTime"] = "LocaleManagement:Setting:Regional.LongTime";
865
+ AXPRegionalSetting["MeasurementUnits"] = "LocaleManagement:Setting:Regional.MeasurementUnits";
866
+ AXPRegionalSetting["TemperatureUnits"] = "LocaleManagement:Setting:Regional.TemperatureUnits";
867
+ AXPRegionalSetting["DistanceUnits"] = "LocaleManagement:Setting:Regional.DistanceUnits";
868
+ AXPRegionalSetting["WeightUnits"] = "LocaleManagement:Setting:Regional.WeightUnits";
869
+ AXPRegionalSetting["VolumeUnits"] = "LocaleManagement:Setting:Regional.VolumeUnits";
870
+ AXPRegionalSetting["SpeedUnits"] = "LocaleManagement:Setting:Regional.SpeedUnits";
871
+ AXPRegionalSetting["AreaUnits"] = "LocaleManagement:Setting:Regional.AreaUnits";
872
+ /** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */
873
+ AXPRegionalSetting["MultiLanguageSupport"] = "LocaleManagement:Setting:Regional.MultiLanguageSupport";
874
+ })(AXPRegionalSetting || (AXPRegionalSetting = {}));
875
+ //#endregion
876
+
877
+ /** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives in contracts so consumers can reference it without importing the command implementation. */
878
+ const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = 'Widget:Preview';
879
+
880
+ //#region ---- Registry keys ----
881
+ //#endregion
882
+
883
+ //#region ---- Mock data shims (no @acorex/core, no @acorex/platform/core) ----
884
+ /**
885
+ * Builds a locale map for mock seed data (`en-US` + `fa-IR`).
886
+ * Standalone copy for connectivity mocks — no dependency on @acorex/core/translation.
887
+ */
888
+ function createMultiLanguageString(enUS, faIR) {
889
+ return {
890
+ 'en-US': enUS,
891
+ 'fa-IR': faIR ?? enUS,
892
+ };
893
+ }
894
+ /**
895
+ * Resolves {@link AXPMultiLanguageString} to a plain string for the given locale.
896
+ * Standalone copy for connectivity mocks — no dependency on @acorex/core/translation.
897
+ */
898
+ function resolveMultiLanguageString(value, locale) {
899
+ if (value == null || value === '') {
900
+ return '';
901
+ }
902
+ if (typeof value === 'string') {
903
+ return value;
904
+ }
905
+ const direct = value[locale];
906
+ if (typeof direct === 'string' && direct.length > 0) {
907
+ return direct;
908
+ }
909
+ const enUS = value['en-US'];
910
+ if (typeof enUS === 'string' && enUS.length > 0) {
911
+ return enUS;
912
+ }
913
+ for (const entry of Object.values(value)) {
914
+ if (typeof entry === 'string' && entry.length > 0) {
915
+ return entry;
916
+ }
917
+ }
918
+ return '';
919
+ }
920
+ /**
921
+ * Lightweight data helpers for mock seed files.
922
+ * Standalone copy for connectivity mocks — no dependency on @acorex/platform/core.
923
+ */
924
+ class AXPDataGenerator {
925
+ static uuid() {
926
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {
927
+ const random = (Math.random() * 16) | 0;
928
+ const value = char === 'x' ? random : (random & 0x3) | 0x8;
929
+ return value.toString(16);
930
+ });
931
+ }
932
+ static number(...args) {
933
+ let min = 0;
934
+ let max = 100;
935
+ if (args.length === 1)
936
+ max = args[0];
937
+ if (args.length === 2) {
938
+ min = args[0];
939
+ max = args[1];
940
+ }
941
+ return Math.floor(Math.random() * (max - min + 1)) + min;
942
+ }
943
+ static date(...args) {
944
+ let start = new Date(2000, 0, 1);
945
+ let end = new Date();
946
+ if (args.length === 1) {
947
+ start = args[0];
948
+ }
949
+ else if (args.length === 2) {
950
+ start = args[0];
951
+ end = args[1];
952
+ }
953
+ const startTime = start.getTime();
954
+ const endTime = end.getTime();
955
+ return new Date(startTime + Math.random() * (endTime - startTime));
956
+ }
957
+ static array(length = 5, generator) {
958
+ return Array.from({ length }, generator);
959
+ }
960
+ static pick(...args) {
961
+ if (args.length < 1) {
962
+ throw new Error('Invalid parameters');
963
+ }
964
+ const items = args[0];
965
+ const count = args[1] ?? 1;
966
+ if (count < 1) {
967
+ throw new Error('Count must be at least 1');
968
+ }
969
+ if (count >= items.length) {
970
+ return [...items].sort(() => Math.random() - 0.5);
971
+ }
972
+ const shuffled = items.slice();
973
+ for (let i = shuffled.length - 1; i > 0; i -= 1) {
974
+ const j = Math.floor(Math.random() * (i + 1));
975
+ [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
976
+ }
977
+ return count === 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);
978
+ }
979
+ static string(length = 10) {
980
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
981
+ return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
982
+ }
983
+ static boolean() {
984
+ return Math.random() >= 0.5;
985
+ }
986
+ static item(array = []) {
987
+ return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;
988
+ }
989
+ static color(format = 'hex') {
990
+ const h = Math.floor(Math.random() * 360);
991
+ const s = Math.floor(Math.random() * 20) + 60;
992
+ const l = Math.floor(Math.random() * 20) + 40;
993
+ if (format === 'hsl') {
994
+ return `hsl(${h}, ${s}%, ${l}%)`;
995
+ }
996
+ const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);
997
+ if (format === 'rgb') {
998
+ return `rgb(${r}, ${g}, ${b})`;
999
+ }
1000
+ const toHex = (val) => val.toString(16).padStart(2, '0');
1001
+ return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
1002
+ }
1003
+ static hslToRgb(h, s, l) {
1004
+ const c = (1 - Math.abs(2 * l - 1)) * s;
1005
+ const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
1006
+ const m = l - c / 2;
1007
+ let r = 0;
1008
+ let g = 0;
1009
+ let b = 0;
1010
+ if (h < 60)
1011
+ [r, g, b] = [c, x, 0];
1012
+ else if (h < 120)
1013
+ [r, g, b] = [x, c, 0];
1014
+ else if (h < 180)
1015
+ [r, g, b] = [0, c, x];
1016
+ else if (h < 240)
1017
+ [r, g, b] = [0, x, c];
1018
+ else if (h < 300)
1019
+ [r, g, b] = [x, 0, c];
1020
+ else
1021
+ [r, g, b] = [c, 0, x];
1022
+ return {
1023
+ r: Math.round((r + m) * 255),
1024
+ g: Math.round((g + m) * 255),
1025
+ b: Math.round((b + m) * 255),
1026
+ };
1027
+ }
1028
+ static alphanumeric(length = 10) {
1029
+ const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
1030
+ return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
1031
+ }
1032
+ static alphabet(length = 10) {
1033
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
1034
+ return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
1035
+ }
1036
+ static phone() {
1037
+ const areaCode = this.number(100, 999);
1038
+ const exchangeCode = this.number(100, 999);
1039
+ const lineNumber = this.number(1000, 9999);
1040
+ return `${areaCode}-${exchangeCode}-${lineNumber}`;
1041
+ }
1042
+ static firstName() {
1043
+ const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];
1044
+ return this.pick(firstNames);
1045
+ }
1046
+ static lastName() {
1047
+ const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];
1048
+ return this.pick(lastNames);
1049
+ }
1050
+ static email(...args) {
1051
+ const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];
1052
+ const domain = this.pick(domains);
1053
+ const separator = this.pick(['.', '_', '']);
1054
+ const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';
1055
+ if (args.length === 2) {
1056
+ const firstName = args[0].toLowerCase();
1057
+ const lastName = args[1].toLowerCase();
1058
+ return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
1059
+ }
1060
+ const firstName = this.firstName().toLowerCase();
1061
+ const lastName = this.lastName().toLowerCase();
1062
+ return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;
1063
+ }
1064
+ static country() {
1065
+ const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];
1066
+ return this.pick(countries);
1067
+ }
1068
+ static city() {
1069
+ const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];
1070
+ return this.pick(cities);
1071
+ }
1072
+ static state() {
1073
+ const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];
1074
+ return this.pick(states);
1075
+ }
1076
+ static address() {
1077
+ const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];
1078
+ const streetNumber = this.number(100, 9999);
1079
+ const street = this.pick(streets);
1080
+ const city = this.city();
1081
+ const state = this.state();
1082
+ const zip = this.number(10000, 99999);
1083
+ const country = this.country();
1084
+ return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;
1085
+ }
1086
+ static avatar() {
1087
+ return `https://avatar.iran.liara.run/public/${this.pick([35, 22, 16, 6, 31])}`;
1088
+ }
1089
+ }
1090
+ //#endregion
1091
+
1092
+ //#region ---- Mock shims ----
1093
+ //#endregion
1094
+
1095
+ //#region ---- Integration connection status ----
1096
+ const AXP_INTEGRATION_CONNECTION_STATUS = {
1097
+ NotConnected: 'NotConnected',
1098
+ PendingAuthorization: 'PendingAuthorization',
1099
+ Connected: 'Connected',
1100
+ Expired: 'Expired',
1101
+ RefreshRequired: 'RefreshRequired',
1102
+ Invalid: 'Invalid',
1103
+ Revoked: 'Revoked',
1104
+ Disabled: 'Disabled',
1105
+ Error: 'Error',
1106
+ };
1107
+ //#endregion
1108
+ //#region ---- Integration connection scope ----
1109
+ const AXP_INTEGRATION_CONNECTION_SCOPE = {
1110
+ User: 'user',
1111
+ Tenant: 'tenant',
1112
+ };
1113
+ //#endregion
1114
+ //#region ---- Integration auth method types ----
1115
+ const AXP_INTEGRATION_AUTH_METHOD_TYPE = {
1116
+ OAuth2: 'oauth2',
1117
+ Pat: 'pat',
1118
+ Basic: 'basic',
1119
+ ApiToken: 'apiToken',
1120
+ };
1121
+ //#endregion
1122
+ //#region ---- Integration categories ----
1123
+ const AXP_INTEGRATION_CATEGORY = {
1124
+ DevTools: 'dev-tools',
1125
+ Messaging: 'messaging',
1126
+ Productivity: 'productivity',
1127
+ Identity: 'identity',
1128
+ Storage: 'storage',
1129
+ Other: 'other',
1130
+ };
1131
+ //#endregion
1132
+ //#region ---- Integration capabilities ----
1133
+ const AXP_INTEGRATION_CAPABILITY = {
1134
+ Sync: 'sync',
1135
+ Search: 'search',
1136
+ Import: 'import',
1137
+ Export: 'export',
1138
+ Webhooks: 'webhooks',
1139
+ IssueTracking: 'issue-tracking',
1140
+ Messaging: 'messaging',
1141
+ FileStorage: 'file-storage',
1142
+ Calendar: 'calendar',
1143
+ Identity: 'identity',
1144
+ TimeLogging: 'time-logging',
1145
+ CustomActions: 'custom-actions',
1146
+ };
1147
+ //#endregion
1148
+
1149
+ //#endregion
1150
+
1151
+ //#endregion
1152
+ //#region ---- Integration errors ----
1153
+ class AXPIntegrationNotConnectedError extends Error {
1154
+ constructor(providerId, message) {
1155
+ super(message ?? `No connected integration found for provider '${providerId}'.`);
1156
+ this.providerId = providerId;
1157
+ this.name = 'AXPIntegrationNotConnectedError';
1158
+ }
1159
+ }
1160
+ class AXPIntegrationExpiredError extends Error {
1161
+ constructor(providerId, connectionId, message) {
1162
+ super(message ?? `Integration connection for '${providerId}' has expired.`);
1163
+ this.providerId = providerId;
1164
+ this.connectionId = connectionId;
1165
+ this.name = 'AXPIntegrationExpiredError';
1166
+ }
1167
+ }
1168
+ class AXPIntegrationMissingScopeError extends Error {
1169
+ constructor(providerId, missingScopes, message) {
1170
+ super(message ?? `Integration for '${providerId}' is missing required scopes.`);
1171
+ this.providerId = providerId;
1172
+ this.missingScopes = missingScopes;
1173
+ this.name = 'AXPIntegrationMissingScopeError';
1174
+ }
1175
+ }
1176
+ //#endregion
1177
+
1178
+ //#region ---- Integration contracts barrel ----
1179
+ //#endregion
1180
+
30
1181
  //#region ---- Contracts barrel ----
31
1182
  //#endregion
32
1183
 
@@ -34,5 +1185,5 @@ var AXPFileStorageStatus;
34
1185
  * Generated bundle index. Do not edit.
35
1186
  */
36
1187
 
37
- export { AXPFileStorageStatus, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY };
1188
+ export { AXPDataGenerator, AXPExportTemplateToken, AXPFileStorageStatus, AXPIntegrationExpiredError, AXPIntegrationMissingScopeError, AXPIntegrationNotConnectedError, AXPPlatformCoreDataSourceKeys, AXPPlatformScope, AXPRegionalSetting, AXPStatusProvider, AXPSystemActionType, AXPSystemStatusType, AXPSystemStatuses, AXPWidgetsCatalog, AXPWidgetsList, AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CAPABILITY, AXP_INTEGRATION_CATEGORY, AXP_INTEGRATION_CONNECTION_SCOPE, AXP_INTEGRATION_CONNECTION_STATUS, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, createMultiLanguageString, getNestedKeys, getStatusInfo, getSystemStatus, normalizeDefinitionCategories, resolveMultiLanguageString, resolvePlatformScopeKey, resolvePlatformScopeName, resolveStatusLook, systemStatusToDefinition };
38
1189
  //# sourceMappingURL=acorex-platform-contracts.mjs.map