@acorex-platform/framework-client 0.0.10 → 0.0.14

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 (119) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +285 -50
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CbzOYCnI.mjs → acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs} +55 -36
  4. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-Euotv9l0.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-framework-client-common-settings-dialog.helper-DQNOCRL6.mjs +29 -0
  6. package/fesm2022/acorex-platform-framework-client-common-settings-dialog.helper-DQNOCRL6.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-framework-client-common.mjs +1576 -408
  8. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-core.mjs +561 -25
  10. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +154 -42
  12. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CWVU3wXL.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs} +7 -7
  14. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CjnQ9hAJ.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs +77 -0
  16. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-fFen8w8M.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +2378 -1274
  18. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +92 -84
  20. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
  21. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CxBxxpmA.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs} +3 -3
  22. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-CxBxxpmA.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-BzUM-JMC.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-l0JAHKIH.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs} +6 -6
  24. package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-Ci_CTFtq.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs +256 -0
  26. package/fesm2022/acorex-platform-framework-client-layout-entity-gallery-page.component-DmiB__JR.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +17599 -17114
  28. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +120 -70
  30. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +302 -263
  32. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CpkWwygb.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs} +2 -2
  34. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CIwpAXbL.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-framework-client-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs} +3 -3
  36. package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-CazpERbX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-CmtTq2Mt.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs} +5 -5
  38. package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-CmtTq2Mt.mjs.map → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-DKkJi40s.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DSx0E3NV.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs} +3 -3
  40. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DSx0E3NV.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-DtYZfA79.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-DdfcGV1C.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs} +10 -10
  42. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-nMUtxAyy.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-CntopmDS.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs} +5 -5
  44. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DvUSZ4hJ.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs +61 -0
  46. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-BihIfkZW.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +2218 -1504
  48. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-framework-client-realtime.mjs +227 -0
  50. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-framework-client-runtime.mjs +201 -13
  52. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs +158 -0
  54. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-QIFX11dh.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs +119 -0
  56. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BBdellyL.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-D1a7UI71.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs} +5 -6
  58. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CIf1VWNW.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs +48 -0
  60. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-C_czT_JC.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs +42 -0
  62. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-C2Wu0YtF.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs +19 -0
  64. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DRz-kVsT.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +123 -96
  66. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  67. package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CXSGiTCK.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs} +3 -3
  68. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-column.component-Ci_oH7NE.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BY5clQ1J.mjs → acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs} +3 -3
  70. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-view.component-Lb1G2Xz7.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-DEL2YOTP.mjs → acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs} +11 -2
  72. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs.map +1 -0
  73. package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BXl8u4Yp.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs} +7 -7
  74. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-D4ubvFYf.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-i2sOOkVj.mjs → acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs} +7 -7
  76. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-Br8j_BF_.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +124 -112
  78. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-framework-client-workflow.mjs +26 -483
  80. package/fesm2022/acorex-platform-framework-client-workflow.mjs.map +1 -1
  81. package/package.json +14 -9
  82. package/types/acorex-platform-framework-client-auth.d.ts +76 -5
  83. package/types/acorex-platform-framework-client-common.d.ts +499 -129
  84. package/types/acorex-platform-framework-client-core.d.ts +291 -10
  85. package/types/acorex-platform-framework-client-layout-builder.d.ts +81 -31
  86. package/types/acorex-platform-framework-client-layout-components.d.ts +295 -41
  87. package/types/acorex-platform-framework-client-layout-entity.d.ts +1895 -1743
  88. package/types/acorex-platform-framework-client-layout-views.d.ts +8 -18
  89. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +20 -35
  90. package/types/acorex-platform-framework-client-layout-widgets.d.ts +167 -33
  91. package/types/acorex-platform-framework-client-realtime.d.ts +100 -0
  92. package/types/acorex-platform-framework-client-runtime.d.ts +60 -2
  93. package/types/acorex-platform-framework-client-themes-default.d.ts +4 -48
  94. package/types/acorex-platform-framework-client-workflow.d.ts +16 -127
  95. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CbzOYCnI.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CWVU3wXL.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-framework-client-layout-entity-file-list-popup.component-l0JAHKIH.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-CpkWwygb.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-framework-client-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-DdfcGV1C.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-CntopmDS.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-B5kSWxGk.mjs +0 -34
  103. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-B5kSWxGk.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DnTHwsDJ.mjs +0 -160
  105. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DnTHwsDJ.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BpR9g6QS.mjs +0 -121
  107. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-BpR9g6QS.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-D1a7UI71.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-D--_MIar.mjs +0 -48
  110. package/fesm2022/acorex-platform-framework-client-themes-default-error-401.component-D--_MIar.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-Byyqk8pH.mjs +0 -42
  112. package/fesm2022/acorex-platform-framework-client-themes-default-error-404.component-Byyqk8pH.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
  114. package/fesm2022/acorex-platform-framework-client-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-column.component-CXSGiTCK.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-framework-client-themes-shared-icon-chooser-view.component-BY5clQ1J.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DEL2YOTP.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-column.component-BXl8u4Yp.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-framework-client-themes-shared-theme-color-chooser-view.component-i2sOOkVj.mjs.map +0 -1
@@ -1,18 +1,17 @@
1
+ import { filter, Subject } from 'rxjs';
1
2
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, InjectionToken, Optional, Inject, NgModule } from '@angular/core';
3
- import { Subject, filter } from 'rxjs';
4
- import { cloneDeep, get, set } from 'lodash-es';
5
- import { setSmart } from '@acorex-platform/framework-shared/core';
3
+ import { Injectable, InjectionToken, inject, NgModule } from '@angular/core';
6
4
  import { AXPContextEvalFactory, AXPExpressionEvaluatorService, AXPDebugService, AXPDataGenerator } from '@acorex-platform/framework-client/core';
7
5
  import { AXTranslationService } from '@acorex/core/translation';
8
6
  import { AXPCommandService } from '@acorex-platform/framework-client/runtime';
9
7
 
10
- class AXPWorkflowError extends Error {
11
- constructor(message, inner = null) {
12
- super(message);
13
- this.inner = inner;
14
- this.name = 'AXPWorkflowError';
15
- }
8
+ function createWorkFlowEvent(type) {
9
+ const eventCreator = ((payload) => ({ type, payload }));
10
+ eventCreator.type = type;
11
+ return eventCreator;
12
+ }
13
+ function ofType(...allowedTypes) {
14
+ return filter((event) => allowedTypes.some((creator) => event.type === creator.type) && event.payload !== undefined);
16
15
  }
17
16
 
18
17
  class AXPWorkflowEventService {
@@ -35,387 +34,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
35
34
  }]
36
35
  }] });
37
36
 
38
- class AXPWorkflowContext {
39
- constructor(initialData = {}) {
40
- this.variables = {};
41
- this.stepOutputs = new Map();
42
- this.variables = cloneDeep(initialData);
43
- }
44
- setVariable(key, value) {
45
- setSmart(this.variables, key, value);
46
- }
47
- setVariables(context = {}) {
48
- this.variables = { ...this.variables, ...context };
49
- }
50
- getVariable(key) {
51
- return !key ? this.variables : get(this.variables, key);
52
- }
53
- setOutput(key, output) {
54
- this.stepOutputs.set(key, output);
55
- }
56
- setOutputs(values) {
57
- this.stepOutputs = new Map([...this.stepOutputs, ...values]);
58
- }
59
- getOutput(key) {
60
- return this.stepOutputs.get(key);
61
- }
62
- }
63
- class AXPWorkflowAction {
64
- constructor() {
65
- this.eventService = inject(AXPWorkflowEventService);
66
- }
67
- dispatch(event) {
68
- this.eventService.dispatch(event);
69
- }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
71
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction }); }
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, decorators: [{
74
- type: Injectable
75
- }] });
76
- class AXPWorkflowFunction {
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
78
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction }); }
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, decorators: [{
81
- type: Injectable
82
- }] });
83
- function createWorkFlowEvent(type) {
84
- const eventCreator = (payload) => ({ type, payload });
85
- eventCreator.type = type;
86
- return eventCreator;
87
- }
88
- function ofType(...allowedTypes) {
89
- return filter((event) => allowedTypes.some((type) => event.type === type.type));
90
- }
91
-
92
- //#region ---- Contracts barrel ----
93
- //#endregion
94
-
95
- class AXPWorkflowRegistryService {
96
- constructor() {
97
- this.functionsMap = new Map();
98
- this.actionsMap = new Map();
99
- this.workflowsMap = new Map();
100
- }
101
- registerWorkflow(name, workflow) {
102
- this.workflowsMap.set(name, workflow);
103
- }
104
- getWorkflow(name) {
105
- return this.workflowsMap.get(name);
106
- }
107
- registerAction(name, action) {
108
- this.actionsMap.set(name, action);
109
- }
110
- getAction(name) {
111
- return this.actionsMap.get(name);
112
- }
113
- registerFunction(name, func) {
114
- this.functionsMap.set(name, func);
115
- }
116
- getFunction(name) {
117
- return this.functionsMap.get(name);
118
- }
119
- getFunctionNames() {
120
- return Array.from(this.functionsMap.keys());
121
- }
122
- getStep(workflowName, stepName) {
123
- const workflow = this.workflowsMap.get(workflowName);
124
- if (workflow) {
125
- const steps = workflow.steps;
126
- return steps[stepName];
127
- }
128
- return undefined;
129
- }
130
- updateStepInWorkflow(workflowName, stepName, step) {
131
- const workflow = this.workflowsMap.get(workflowName);
132
- if (workflow) {
133
- const steps = workflow.steps;
134
- if (steps[stepName]) {
135
- steps[stepName] = step;
136
- }
137
- else {
138
- throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);
139
- }
140
- }
141
- else {
142
- throw new Error(`Workflow with name ${workflowName} does not exist.`);
143
- }
144
- }
145
- addStepToWorkflow(workflowName, stepName, step) {
146
- const workflow = this.workflowsMap.get(workflowName);
147
- if (workflow) {
148
- const steps = workflow.steps;
149
- if (!steps[stepName]) {
150
- steps[stepName] = step;
151
- }
152
- else {
153
- throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);
154
- }
155
- }
156
- else {
157
- throw new Error(`Workflow with name ${workflowName} does not exist.`);
158
- }
159
- }
160
- addAfterStep(workflowId, stepId, newStepId, newStepAction, conditionExpression) {
161
- const step = this.getStep(workflowId, stepId);
162
- if (step != undefined) {
163
- this.addStepToWorkflow(workflowId, newStepId, {
164
- action: newStepAction,
165
- nextSteps: step.nextSteps,
166
- });
167
- this.updateStepInWorkflow(workflowId, stepId, {
168
- ...step,
169
- nextSteps: [
170
- {
171
- conditions: [{ type: 'SINGLE', expression: conditionExpression }],
172
- nextStepId: newStepId,
173
- },
174
- ],
175
- });
176
- }
177
- }
178
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
179
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }
180
- }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{
182
- type: Injectable,
183
- args: [{
184
- providedIn: 'root',
185
- }]
186
- }] });
187
-
188
- class AXPWorkflowDecideAction extends AXPWorkflowAction {
189
- async execute(context) {
190
- // its a fake action
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
193
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{
196
- type: Injectable,
197
- args: [{
198
- providedIn: 'root',
199
- }]
200
- }] });
201
-
202
- class AXPWorkflowService {
203
- get events$() {
204
- return this.eventService.events$;
205
- }
206
- constructor(registryService, injector) {
207
- this.registryService = registryService;
208
- this.injector = injector;
209
- this.eventService = inject(AXPWorkflowEventService);
210
- }
211
- exists(name) {
212
- return !!this.registryService.getWorkflow(name);
213
- }
214
- async execute(workflow, initialContext = null) {
215
- // Instantiate or retrieve the workflow
216
- const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;
217
- let currentStepId = wk.startStepId;
218
- const context = initialContext instanceof AXPWorkflowContext
219
- ? initialContext
220
- : new AXPWorkflowContext(this.processData(initialContext) ?? {});
221
- // Initialize context with initial variables
222
- while (currentStepId) {
223
- const currentStep = wk.steps[currentStepId];
224
- if (!currentStep) {
225
- throw new AXPWorkflowError(`Step '${currentStepId}' not found in the workflow steps.`);
226
- }
227
- // Instantiate or retrieve the action
228
- const action = typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;
229
- //
230
- if (currentStep.input) {
231
- let inputs = {};
232
- await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);
233
- await new Promise((resolve) => setTimeout(async () => {
234
- Object.assign(action, inputs);
235
- resolve(0);
236
- }));
237
- }
238
- try {
239
- await new Promise((resolve) => setTimeout(async () => {
240
- await action.execute(context);
241
- resolve(0);
242
- }, 0));
243
- }
244
- catch (error) {
245
- console.error(error);
246
- throw new AXPWorkflowError('Workflow Error', error);
247
- }
248
- // Determine the next step based on the conditions
249
- const nextStepInfo = await this.determineNextStep(currentStep, context);
250
- if (nextStepInfo) {
251
- currentStepId = nextStepInfo.nextStepId;
252
- }
253
- else {
254
- break; // Exit the loop if no next step is determined
255
- }
256
- }
257
- return context;
258
- }
259
- processData(initialContext) {
260
- //TODO: update values with expressions and return new object
261
- return initialContext;
262
- }
263
- getActionInstance(actionName) {
264
- const actionType = this.registryService.getAction(actionName);
265
- if (!actionType) {
266
- throw new AXPWorkflowError(`Action type '${actionName}' not found in the registry.`);
267
- }
268
- return this.injector.get(actionType);
269
- }
270
- getWorkflowInstance(workflowName) {
271
- const workflowType = this.registryService.getWorkflow(workflowName);
272
- if (!workflowType) {
273
- throw new AXPWorkflowError(`Workflow type '${workflowName}' not found in the registry.`);
274
- }
275
- return workflowType;
276
- }
277
- async determineNextStep(currentStep, context) {
278
- if (!currentStep.nextSteps) {
279
- return null;
280
- }
281
- for (const nextStep of currentStep.nextSteps) {
282
- if (await this.evaluateCondition(nextStep.conditions, context)) {
283
- return nextStep;
284
- }
285
- }
286
- return null;
287
- }
288
- async evaluateCondition(conditions, context) {
289
- if (!conditions || conditions.length === 0) {
290
- return true; // If no conditions, the step proceeds
291
- }
292
- // Map each condition to a promise using evaluateSingleCondition
293
- const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));
294
- // Wait for all promises to resolve
295
- const results = await Promise.all(conditionPromises);
296
- // Check if every condition is true
297
- return results.every((result) => result);
298
- }
299
- async evaluateSingleCondition(condition, context) {
300
- switch (condition.type) {
301
- case 'SINGLE':
302
- return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context));
303
- case 'AND':
304
- // Evaluate all conditions with 'AND' logic
305
- const andConditions = condition.conditions ?? [];
306
- const andResults = await Promise.all(andConditions.map((cond) => this.evaluateSingleCondition(cond, context)));
307
- return andResults.every((result) => result);
308
- case 'OR':
309
- // Evaluate all conditions with 'OR' logic
310
- const orConditions = condition.conditions ?? [];
311
- const orResults = await Promise.all(orConditions.map((cond) => this.evaluateSingleCondition(cond, context)));
312
- return orResults.some((result) => result);
313
- default:
314
- throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);
315
- }
316
- }
317
- //TODO: return any and recursively update object, update scopes
318
- async evaluateExpression(templateExpression, context) {
319
- try {
320
- let expression = '';
321
- if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {
322
- const expressionMatch = templateExpression.match(/\{\{\s*(.*?)\s*\}\}/);
323
- if (!expressionMatch) {
324
- throw Error(`No valid expression found in "${templateExpression}"`);
325
- }
326
- expression = expressionMatch[1];
327
- }
328
- else {
329
- expression = templateExpression;
330
- }
331
- // Create a scope that includes context and registered functions
332
- const scope = { context, ...this.createFunctionScope() };
333
- // Evaluating the expression within the created scope
334
- const sandbox = new Function('scope', `return (async function() { with (scope) { return ${expression}; } })();`);
335
- const result = await sandbox(scope);
336
- return result;
337
- }
338
- catch (error) {
339
- console.error('Error evaluating expression:', error);
340
- return false;
341
- }
342
- }
343
- async processInputs(obj, inputs, pathPrefix = '', context = {}) {
344
- if (!obj) {
345
- return;
346
- }
347
- for await (const i of Object.entries(obj)) {
348
- const key = i[0];
349
- const value = i[1];
350
- const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
351
- if (typeof value === 'string' && value.trim().includes('{{')) {
352
- const expValue = await this.evaluateExpression(value, context);
353
- set(inputs, currentPath, expValue);
354
- }
355
- else if (typeof value === 'object' &&
356
- value !== null &&
357
- (value.constructor === Object || Array.isArray(value))) {
358
- // Recursively handle nested objects
359
- this.processInputs(value, inputs, currentPath, context);
360
- }
361
- else {
362
- // Apply static values directly
363
- set(inputs, currentPath, value);
364
- }
365
- }
366
- }
367
- createFunctionScope() {
368
- const scope = {};
369
- this.registryService.getFunctionNames().forEach((name) => {
370
- scope[name] = this.getFunctionInstance(name).execute;
371
- });
372
- return { methods: { scope } };
373
- }
374
- getFunctionInstance(functionName) {
375
- const functionType = this.registryService.getFunction(functionName);
376
- if (!functionType) {
377
- throw new AXPWorkflowError(`Function type '${functionName}' not found in the registry.`);
378
- }
379
- return this.injector.get(functionType);
380
- }
381
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, deps: [{ token: AXPWorkflowRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
382
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }
383
- }
384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, decorators: [{
385
- type: Injectable,
386
- args: [{
387
- providedIn: 'root',
388
- }]
389
- }], ctorParameters: () => [{ type: AXPWorkflowRegistryService }, { type: i0.Injector }] });
390
-
391
- class AXPStartWorkflowAction extends AXPWorkflowAction {
392
- constructor() {
393
- super(...arguments);
394
- this.workflowService = inject(AXPWorkflowService);
395
- }
396
- async execute(context) {
397
- //console.log("start WK current context", context);
398
- //console.log("start WK input context", this.context);
399
- if (this.context)
400
- context.setVariables(this.context);
401
- //console.log("start WK merged context", context);
402
- try {
403
- await this.workflowService.execute(this.workflow, context);
404
- }
405
- catch (e) {
406
- throw e;
407
- }
408
- }
409
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
410
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }
411
- }
412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{
413
- type: Injectable,
414
- args: [{
415
- providedIn: 'root',
416
- }]
417
- }] });
418
-
419
37
  const AXP_ACTIVITY_PROVIDER = new InjectionToken('AXP_ACTIVITY_PROVIDER', {
420
38
  factory: () => [],
421
39
  });
@@ -596,11 +214,21 @@ class AXPActivityDefinitionService {
596
214
  * Used by activity selector UIs (e.g. automation command configurator).
597
215
  */
598
216
  async getAllActivities() {
599
- const categories = await this.getCategories(undefined);
600
217
  const all = [];
601
- for (const cat of categories) {
602
- const activities = await this.getActivitiesByCategoryId(cat.id);
218
+ const visited = new Set();
219
+ const queue = await this.getCategories(undefined);
220
+ while (queue.length > 0) {
221
+ const category = queue.shift();
222
+ if (visited.has(category.id)) {
223
+ continue;
224
+ }
225
+ visited.add(category.id);
226
+ const activities = await this.getActivitiesByCategoryId(category.id);
603
227
  all.push(...activities);
228
+ if (category.childrenCount > 0) {
229
+ const children = await this.getCategories(category.id);
230
+ queue.push(...children);
231
+ }
604
232
  }
605
233
  return all;
606
234
  }
@@ -2713,89 +2341,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2713
2341
  }] });
2714
2342
 
2715
2343
  class AXPWorkflowModule {
2716
- static forRoot(config) {
2344
+ static forRoot() {
2717
2345
  return {
2718
2346
  ngModule: AXPWorkflowModule,
2719
- providers: [
2720
- {
2721
- provide: 'AXPWorkflowModuleFactory',
2722
- useFactory: (registry) => () => {
2723
- registry.registerAction('start-workflow', AXPStartWorkflowAction);
2724
- registry.registerAction('decide', AXPWorkflowDecideAction);
2725
- //
2726
- if (config?.functions) {
2727
- for (const [key, type] of Object.entries(config.functions)) {
2728
- registry.registerFunction(key, type);
2729
- }
2730
- }
2731
- //
2732
- if (config?.actions) {
2733
- for (const [key, type] of Object.entries(config.actions)) {
2734
- registry.registerAction(key, type);
2735
- }
2736
- }
2737
- //
2738
- if (config?.workflows) {
2739
- for (const [key, type] of Object.entries(config.workflows)) {
2740
- registry.registerWorkflow(key, type);
2741
- }
2742
- }
2743
- },
2744
- deps: [AXPWorkflowRegistryService],
2745
- multi: true,
2746
- },
2747
- ...Object.values(config?.actions ?? { AXPStartWorkflowAction }),
2748
- ...Object.values(config?.functions ?? {}),
2749
- ],
2750
2347
  };
2751
2348
  }
2752
- static forChild(config) {
2753
- return {
2754
- ngModule: AXPWorkflowModule,
2755
- providers: [
2756
- // Built-in activities are already registered in forRoot via @NgModule providers
2757
- // No need to register again in forChild
2758
- {
2759
- provide: 'AXPWorkflowModuleFactory',
2760
- useFactory: (registry) => () => {
2761
- registry.registerAction('start-workflow', AXPStartWorkflowAction);
2762
- registry.registerAction('decide', AXPWorkflowDecideAction);
2763
- //
2764
- if (config?.functions) {
2765
- for (const [key, type] of Object.entries(config.functions)) {
2766
- registry.registerFunction(key, type);
2767
- }
2768
- }
2769
- //
2770
- if (config?.actions) {
2771
- for (const [key, type] of Object.entries(config.actions)) {
2772
- registry.registerAction(key, type);
2773
- }
2774
- }
2775
- //
2776
- if (config?.workflows) {
2777
- for (const [key, type] of Object.entries(config.workflows)) {
2778
- registry.registerWorkflow(key, type);
2779
- }
2780
- }
2781
- },
2782
- deps: [AXPWorkflowRegistryService],
2783
- multi: true,
2784
- },
2785
- ...Object.values(config?.actions ?? {}),
2786
- ...Object.values(config?.functions ?? {}),
2787
- ],
2788
- };
2789
- }
2790
- /**
2791
- * @ignore
2792
- */
2793
- constructor(instances) {
2794
- instances?.forEach((f) => {
2795
- f();
2796
- });
2797
- }
2798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, deps: [{ token: 'AXPWorkflowModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2799
2350
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule }); }
2800
2351
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, providers: [
2801
2352
  AXPWorkflowLocalEngine,
@@ -2809,9 +2360,6 @@ class AXPWorkflowModule {
2809
2360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, decorators: [{
2810
2361
  type: NgModule,
2811
2362
  args: [{
2812
- imports: [],
2813
- exports: [],
2814
- declarations: [],
2815
2363
  providers: [
2816
2364
  AXPWorkflowLocalEngine,
2817
2365
  {
@@ -2821,16 +2369,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2821
2369
  AXPWorkflowManager,
2822
2370
  ],
2823
2371
  }]
2824
- }], ctorParameters: () => [{ type: undefined, decorators: [{
2825
- type: Optional
2826
- }, {
2827
- type: Inject,
2828
- args: ['AXPWorkflowModuleFactory']
2829
- }] }] });
2372
+ }] });
2830
2373
 
2831
2374
  /**
2832
2375
  * Generated bundle index. Do not edit.
2833
2376
  */
2834
2377
 
2835
- export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowInlineFrontendTask, axpIsWorkflowInteractiveFrontendTask, axpIsWorkflowTaskBoardActivityType, axpResolveWorkflowContinuationBeforeInteractive, axpShouldOfferBeforeInteractiveFlow, axpShouldOfferWorkflowContinuationAfterStep, axpShouldSkipBeforeInteractiveFromMetadata, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
2378
+ export { AXPActivityDefinitionService, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowEventService, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowInlineFrontendTask, axpIsWorkflowInteractiveFrontendTask, axpIsWorkflowTaskBoardActivityType, axpResolveWorkflowContinuationBeforeInteractive, axpShouldOfferBeforeInteractiveFlow, axpShouldOfferWorkflowContinuationAfterStep, axpShouldSkipBeforeInteractiveFromMetadata, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
2836
2379
  //# sourceMappingURL=acorex-platform-framework-client-workflow.mjs.map