@acorex/platform 21.0.0-next.5 → 21.0.0-next.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-auth.mjs +281 -23
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs +163 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +1047 -263
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +1138 -510
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +557 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +804 -186
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +6208 -2344
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +18632 -10286
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +538 -168
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +720 -456
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs +103 -0
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +116 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +8728 -4269
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +391 -166
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +19 -26
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1836 -67
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs} +24 -25
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +674 -573
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +1715 -535
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +37 -37
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +241 -4
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +598 -80
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +595 -132
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +193 -48
- package/types/acorex-platform-layout-components.d.ts +2979 -0
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +1601 -261
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +116 -55
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +272 -124
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1055 -157
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/types/acorex-platform-runtime.d.ts +571 -0
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +122 -5
- package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
- package/types/acorex-platform-workflow.d.ts +1884 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
- package/layout/components/index.d.ts +0 -1669
- package/runtime/index.d.ts +0 -307
- package/workflow/index.d.ts +0 -1808
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -1,8 +1,220 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, InjectionToken,
|
|
2
|
+
import { inject, Injectable, InjectionToken, EnvironmentInjector, runInInjectionContext, makeEnvironmentProviders, input, ElementRef, effect, Directive, isDevMode, NgModule } from '@angular/core';
|
|
3
3
|
import { AXPBroadcastEventService, AXPDistributedEventListenerService } from '@acorex/platform/core';
|
|
4
4
|
import { castArray } from 'lodash-es';
|
|
5
5
|
|
|
6
|
+
//#region ---- defineCommand ----
|
|
7
|
+
/**
|
|
8
|
+
* Typed identity helper for command metadata sidecars.
|
|
9
|
+
*/
|
|
10
|
+
function defineCommand(definition) {
|
|
11
|
+
return definition;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
|
|
15
|
+
//#region ---- Shared catalog categories (queries & commands) ----
|
|
16
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM = {
|
|
17
|
+
name: 'platform',
|
|
18
|
+
order: 1,
|
|
19
|
+
title: 'Platform',
|
|
20
|
+
};
|
|
21
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_ENTITY = {
|
|
22
|
+
name: 'entity',
|
|
23
|
+
order: 2,
|
|
24
|
+
title: 'Entity',
|
|
25
|
+
};
|
|
26
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_STORAGE = {
|
|
27
|
+
name: 'storage',
|
|
28
|
+
order: 3,
|
|
29
|
+
title: 'Storage',
|
|
30
|
+
};
|
|
31
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS = {
|
|
32
|
+
name: 'widgets',
|
|
33
|
+
order: 4,
|
|
34
|
+
title: 'Widgets',
|
|
35
|
+
};
|
|
36
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW = {
|
|
37
|
+
name: 'workflow',
|
|
38
|
+
order: 5,
|
|
39
|
+
title: 'Workflow',
|
|
40
|
+
};
|
|
41
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_UTILITY = {
|
|
42
|
+
name: 'utility',
|
|
43
|
+
order: 6,
|
|
44
|
+
title: 'Utility',
|
|
45
|
+
};
|
|
46
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS = {
|
|
47
|
+
name: 'settings',
|
|
48
|
+
order: 7,
|
|
49
|
+
title: 'Settings',
|
|
50
|
+
};
|
|
51
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS = {
|
|
52
|
+
name: 'ai-tools',
|
|
53
|
+
order: 8,
|
|
54
|
+
title: 'AI tools',
|
|
55
|
+
};
|
|
56
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_SECURITY = {
|
|
57
|
+
name: 'security',
|
|
58
|
+
order: 9,
|
|
59
|
+
title: 'Security',
|
|
60
|
+
};
|
|
61
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT = {
|
|
62
|
+
name: 'data-management',
|
|
63
|
+
order: 10,
|
|
64
|
+
title: 'Data management',
|
|
65
|
+
};
|
|
66
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT = {
|
|
67
|
+
name: 'assessment',
|
|
68
|
+
order: 11,
|
|
69
|
+
title: 'Assessment',
|
|
70
|
+
};
|
|
71
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_REPORT = {
|
|
72
|
+
name: 'report',
|
|
73
|
+
order: 12,
|
|
74
|
+
title: 'Report',
|
|
75
|
+
};
|
|
76
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION = {
|
|
77
|
+
name: 'organization',
|
|
78
|
+
order: 13,
|
|
79
|
+
title: 'Organization',
|
|
80
|
+
};
|
|
81
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_TENANT = {
|
|
82
|
+
name: 'tenant',
|
|
83
|
+
order: 14,
|
|
84
|
+
title: 'Tenant',
|
|
85
|
+
};
|
|
86
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL = {
|
|
87
|
+
name: 'human-capital',
|
|
88
|
+
order: 15,
|
|
89
|
+
title: 'Human capital',
|
|
90
|
+
};
|
|
91
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT = {
|
|
92
|
+
name: 'product',
|
|
93
|
+
order: 16,
|
|
94
|
+
title: 'Product',
|
|
95
|
+
};
|
|
96
|
+
const AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET = {
|
|
97
|
+
name: 'file-widget',
|
|
98
|
+
order: 17,
|
|
99
|
+
title: 'File widget',
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Shared build-time catalog metadata for command, query, and widget definition sidecars
|
|
105
|
+
* (`defineCommand`, `defineQuery`, `defineWidget`).
|
|
106
|
+
* Lives under `shared/` so consumers import one module without a "command" prefix on generic shapes.
|
|
107
|
+
*/
|
|
108
|
+
//#endregion
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Build-time command metadata for AXPCommand implementations.
|
|
112
|
+
* `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).
|
|
113
|
+
* Validation entries: only `rule` name and optional `options` (no title/message on rules).
|
|
114
|
+
* Do not import from Angular templates; sidecars may import `defineCommand` from `@acorex/platform/runtime`.
|
|
115
|
+
*
|
|
116
|
+
* Query metadata (fetch-only, no outcomes) is defined in `../queries/query-definition.types.ts` with `defineQuery`.
|
|
117
|
+
* Widget metadata sidecars use `../widgets/widget-definition.types.ts` with `defineWidget`.
|
|
118
|
+
*/
|
|
119
|
+
//#endregion
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Build-time command metadata only. Safe under Node (e.g. generate-runtime-catalog) without loading the command executor stack.
|
|
123
|
+
* Sidecars should import `defineCommand` from `@acorex/platform/runtime` (or this module for deep imports).
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
//#region ---- Imports ----
|
|
127
|
+
//#endregion
|
|
128
|
+
const COMMAND_EXECUTION_EVENT_KEY = '@commands:execution';
|
|
129
|
+
class AXPCommandEventsService {
|
|
130
|
+
constructor() {
|
|
131
|
+
//#region ---- Services & Dependencies ----
|
|
132
|
+
this.broadcast = inject(AXPBroadcastEventService);
|
|
133
|
+
this.distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
//#region ---- Public API ----
|
|
137
|
+
listen(handler) {
|
|
138
|
+
const subscription = this.broadcast
|
|
139
|
+
.listen(COMMAND_EXECUTION_EVENT_KEY)
|
|
140
|
+
.subscribe(({ data }) => handler(data));
|
|
141
|
+
return () => subscription.unsubscribe();
|
|
142
|
+
}
|
|
143
|
+
async emit(event) {
|
|
144
|
+
const safePayload = this.serializeForBroadcast(event);
|
|
145
|
+
this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, safePayload);
|
|
146
|
+
await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, safePayload);
|
|
147
|
+
}
|
|
148
|
+
//#endregion
|
|
149
|
+
//#region ---- Broadcast payload (structured-clone safe) ----
|
|
150
|
+
/**
|
|
151
|
+
* Removes functions, symbols, and cycles so {@link AXPBroadcastEventService.publish}
|
|
152
|
+
* can use `BroadcastChannel.postMessage` without DataCloneError (e.g. command input with `dialogRef`).
|
|
153
|
+
*/
|
|
154
|
+
serializeForBroadcast(event) {
|
|
155
|
+
return {
|
|
156
|
+
stage: event.stage,
|
|
157
|
+
key: event.key,
|
|
158
|
+
success: event.success,
|
|
159
|
+
input: this.stripNonSerializable(event.input),
|
|
160
|
+
result: event.result === undefined || event.result === null
|
|
161
|
+
? event.result
|
|
162
|
+
: this.stripNonSerializable(event.result),
|
|
163
|
+
error: event.error instanceof Error
|
|
164
|
+
? { name: event.error.name, message: event.error.message }
|
|
165
|
+
: this.stripNonSerializable(event.error),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
stripNonSerializable(value) {
|
|
169
|
+
const seen = new WeakSet();
|
|
170
|
+
const walk = (v) => {
|
|
171
|
+
if (v === null || v === undefined) {
|
|
172
|
+
return v;
|
|
173
|
+
}
|
|
174
|
+
const t = typeof v;
|
|
175
|
+
if (t === 'function' || t === 'symbol') {
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
if (t === 'bigint') {
|
|
179
|
+
return v.toString();
|
|
180
|
+
}
|
|
181
|
+
if (t !== 'object') {
|
|
182
|
+
return v;
|
|
183
|
+
}
|
|
184
|
+
if (v instanceof Date) {
|
|
185
|
+
return v.toISOString();
|
|
186
|
+
}
|
|
187
|
+
if (Array.isArray(v)) {
|
|
188
|
+
if (seen.has(v)) {
|
|
189
|
+
return '[Circular]';
|
|
190
|
+
}
|
|
191
|
+
seen.add(v);
|
|
192
|
+
return v.map((item) => walk(item)).filter((item) => item !== undefined);
|
|
193
|
+
}
|
|
194
|
+
if (seen.has(v)) {
|
|
195
|
+
return '[Circular]';
|
|
196
|
+
}
|
|
197
|
+
seen.add(v);
|
|
198
|
+
const obj = v;
|
|
199
|
+
const out = {};
|
|
200
|
+
for (const key of Object.keys(obj)) {
|
|
201
|
+
const child = walk(obj[key]);
|
|
202
|
+
if (child !== undefined) {
|
|
203
|
+
out[key] = child;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return out;
|
|
207
|
+
};
|
|
208
|
+
return walk(value);
|
|
209
|
+
}
|
|
210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
211
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandEventsService, providedIn: 'root' }); }
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandEventsService, decorators: [{
|
|
214
|
+
type: Injectable,
|
|
215
|
+
args: [{ providedIn: 'root' }]
|
|
216
|
+
}] });
|
|
217
|
+
|
|
6
218
|
//#endregion
|
|
7
219
|
//#region ---- Middleware Composition ----
|
|
8
220
|
/**
|
|
@@ -51,10 +263,10 @@ class AXPCommandRegistry {
|
|
|
51
263
|
this.registry.clear();
|
|
52
264
|
this.middlewares.length = 0;
|
|
53
265
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
267
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandRegistry, providedIn: 'root' }); }
|
|
56
268
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandRegistry, decorators: [{
|
|
58
270
|
type: Injectable,
|
|
59
271
|
args: [{ providedIn: 'root' }]
|
|
60
272
|
}] });
|
|
@@ -62,35 +274,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
62
274
|
// plugins/command.extension.token.ts
|
|
63
275
|
const AXP_COMMAND_EXTENSION = new InjectionToken('AXP_COMMAND_EXTENSION');
|
|
64
276
|
|
|
65
|
-
//#region ---- Imports ----
|
|
66
|
-
//#endregion
|
|
67
|
-
const COMMAND_EXECUTION_EVENT_KEY = '@commands:execution';
|
|
68
|
-
class AXPCommandEventsService {
|
|
69
|
-
constructor() {
|
|
70
|
-
//#region ---- Services & Dependencies ----
|
|
71
|
-
this.broadcast = inject(AXPBroadcastEventService);
|
|
72
|
-
this.distributedEvents = inject(AXPDistributedEventListenerService, { optional: true });
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region ---- Public API ----
|
|
76
|
-
listen(handler) {
|
|
77
|
-
const subscription = this.broadcast
|
|
78
|
-
.listen(COMMAND_EXECUTION_EVENT_KEY)
|
|
79
|
-
.subscribe(({ data }) => handler(data));
|
|
80
|
-
return () => subscription.unsubscribe();
|
|
81
|
-
}
|
|
82
|
-
async emit(event) {
|
|
83
|
-
this.broadcast.publish(COMMAND_EXECUTION_EVENT_KEY, event);
|
|
84
|
-
await this.distributedEvents?.dispatch(COMMAND_EXECUTION_EVENT_KEY, event);
|
|
85
|
-
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCommandEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
87
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCommandEventsService, providedIn: 'root' }); }
|
|
88
|
-
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCommandEventsService, decorators: [{
|
|
90
|
-
type: Injectable,
|
|
91
|
-
args: [{ providedIn: 'root' }]
|
|
92
|
-
}] });
|
|
93
|
-
|
|
94
277
|
class AXPCommandExecutor {
|
|
95
278
|
constructor() {
|
|
96
279
|
this.injector = inject(EnvironmentInjector);
|
|
@@ -149,10 +332,10 @@ class AXPCommandExecutor {
|
|
|
149
332
|
?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)
|
|
150
333
|
.map(ext => ext.middleware) ?? [];
|
|
151
334
|
}
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
153
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
335
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
336
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandExecutor, providedIn: 'root' }); }
|
|
154
337
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandExecutor, decorators: [{
|
|
156
339
|
type: Injectable,
|
|
157
340
|
args: [{ providedIn: 'root' }]
|
|
158
341
|
}] });
|
|
@@ -185,14 +368,47 @@ class AXPCommandService {
|
|
|
185
368
|
async execute(key, input) {
|
|
186
369
|
return this.executor.execute(key, input);
|
|
187
370
|
}
|
|
188
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
189
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
371
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
372
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandService, providedIn: 'root' }); }
|
|
190
373
|
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
374
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPCommandService, decorators: [{
|
|
192
375
|
type: Injectable,
|
|
193
376
|
args: [{ providedIn: 'root' }]
|
|
194
377
|
}] });
|
|
195
378
|
|
|
379
|
+
const AXP_COMMAND_MIDDLEWARE_SETUP = new InjectionToken('AXP_COMMAND_MIDDLEWARE_SETUP');
|
|
380
|
+
function provideCommandMiddleware(entries) {
|
|
381
|
+
const global = [];
|
|
382
|
+
const extensions = [];
|
|
383
|
+
for (const entry of entries) {
|
|
384
|
+
if (typeof entry === 'function') {
|
|
385
|
+
global.push(entry);
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
extensions.push(entry);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return makeEnvironmentProviders([
|
|
392
|
+
// Plugin middleware entries
|
|
393
|
+
...extensions.map(ext => ({
|
|
394
|
+
provide: AXP_COMMAND_EXTENSION,
|
|
395
|
+
useValue: ext,
|
|
396
|
+
multi: true
|
|
397
|
+
})),
|
|
398
|
+
// Global middleware setup (triggered via this token)
|
|
399
|
+
{
|
|
400
|
+
provide: AXP_COMMAND_MIDDLEWARE_SETUP,
|
|
401
|
+
useFactory: () => {
|
|
402
|
+
const registry = inject(AXPCommandRegistry);
|
|
403
|
+
for (const mw of global) {
|
|
404
|
+
registry.use(mw);
|
|
405
|
+
}
|
|
406
|
+
return true;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
]);
|
|
410
|
+
}
|
|
411
|
+
|
|
196
412
|
const AXP_COMMAND_SETUP = new InjectionToken('AXP_COMMAND_SETUP');
|
|
197
413
|
function provideCommandSetups(entries) {
|
|
198
414
|
return makeEnvironmentProviders([
|
|
@@ -229,50 +445,19 @@ function provideCommand(key, loader) {
|
|
|
229
445
|
]);
|
|
230
446
|
}
|
|
231
447
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
global.push(entry);
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
extensions.push(entry);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return makeEnvironmentProviders([
|
|
245
|
-
// Plugin middleware entries
|
|
246
|
-
...extensions.map(ext => ({
|
|
247
|
-
provide: AXP_COMMAND_EXTENSION,
|
|
248
|
-
useValue: ext,
|
|
249
|
-
multi: true
|
|
250
|
-
})),
|
|
251
|
-
// Global middleware setup (triggered via this token)
|
|
252
|
-
{
|
|
253
|
-
provide: AXP_COMMAND_MIDDLEWARE_SETUP,
|
|
254
|
-
useFactory: () => {
|
|
255
|
-
const registry = inject(AXPCommandRegistry);
|
|
256
|
-
for (const mw of global) {
|
|
257
|
-
registry.use(mw);
|
|
258
|
-
}
|
|
259
|
-
return true;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
]);
|
|
448
|
+
//#region ---- defineQuery ----
|
|
449
|
+
/**
|
|
450
|
+
* Typed identity helper for query metadata sidecars.
|
|
451
|
+
*/
|
|
452
|
+
function defineQuery(definition) {
|
|
453
|
+
return definition;
|
|
263
454
|
}
|
|
455
|
+
//#endregion
|
|
264
456
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const mw = middlewares[i];
|
|
270
|
-
const next = composed;
|
|
271
|
-
composed = (input) => mw(input, next);
|
|
272
|
-
}
|
|
273
|
-
return composed;
|
|
274
|
-
};
|
|
275
|
-
}
|
|
457
|
+
/**
|
|
458
|
+
* Build-time query metadata only. Safe under Node (e.g. generate-runtime-catalog) without loading the query executor stack.
|
|
459
|
+
* Sidecars should import `defineQuery` from `@acorex/platform/runtime` (or this module for deep imports).
|
|
460
|
+
*/
|
|
276
461
|
|
|
277
462
|
// queries/query.registry.ts
|
|
278
463
|
class AXPQueryRegistry {
|
|
@@ -305,10 +490,10 @@ class AXPQueryRegistry {
|
|
|
305
490
|
this.registry.clear();
|
|
306
491
|
this.middlewares.length = 0;
|
|
307
492
|
}
|
|
308
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
309
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
493
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
494
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryRegistry, providedIn: 'root' }); }
|
|
310
495
|
}
|
|
311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
496
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryRegistry, decorators: [{
|
|
312
497
|
type: Injectable,
|
|
313
498
|
args: [{ providedIn: 'root' }]
|
|
314
499
|
}] });
|
|
@@ -316,6 +501,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
316
501
|
// plugins/query.extension.token.ts
|
|
317
502
|
const AXP_QUERY_EXTENSION = new InjectionToken('AXP_QUERY_EXTENSION');
|
|
318
503
|
|
|
504
|
+
const AXP_QUERY_MIDDLEWARE_SETUP = new InjectionToken('AXP_QUERY_MIDDLEWARE_SETUP');
|
|
505
|
+
function provideQueryMiddleware(entries) {
|
|
506
|
+
const global = [];
|
|
507
|
+
const extensions = [];
|
|
508
|
+
for (const entry of entries) {
|
|
509
|
+
if (typeof entry === 'function') {
|
|
510
|
+
global.push(entry);
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
extensions.push(entry);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
return makeEnvironmentProviders([
|
|
517
|
+
// Plugin middleware entries
|
|
518
|
+
...extensions.map(ext => ({
|
|
519
|
+
provide: AXP_QUERY_EXTENSION,
|
|
520
|
+
useValue: ext,
|
|
521
|
+
multi: true
|
|
522
|
+
})),
|
|
523
|
+
// Global middleware setup (triggered via this token)
|
|
524
|
+
{
|
|
525
|
+
provide: AXP_QUERY_MIDDLEWARE_SETUP,
|
|
526
|
+
useFactory: () => {
|
|
527
|
+
const registry = inject(AXPQueryRegistry);
|
|
528
|
+
for (const mw of global) {
|
|
529
|
+
registry.use(mw);
|
|
530
|
+
}
|
|
531
|
+
return true;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
]);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
const AXP_QUERY_SETUP = new InjectionToken('AXP_QUERY_SETUP');
|
|
538
|
+
function provideQuerySetups(entries) {
|
|
539
|
+
return makeEnvironmentProviders([
|
|
540
|
+
{
|
|
541
|
+
provide: AXP_QUERY_SETUP,
|
|
542
|
+
useFactory: () => {
|
|
543
|
+
const registry = inject(AXPQueryRegistry);
|
|
544
|
+
const injector = inject(EnvironmentInjector);
|
|
545
|
+
for (const entry of entries) {
|
|
546
|
+
registry.register(entry.key, async () => {
|
|
547
|
+
const CommandType = await entry.loader();
|
|
548
|
+
return injector.get(CommandType);
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
return true;
|
|
552
|
+
},
|
|
553
|
+
multi: true
|
|
554
|
+
}
|
|
555
|
+
]);
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Build-time query metadata for AXPQuery implementations.
|
|
560
|
+
* Mirrors command metadata shape except there are no `outcomes` (queries only `fetch`).
|
|
561
|
+
* Shares {@link AXPCatalogMetadataDefinitionBase} with commands and widgets; `inputs` / `outputs` live on the base.
|
|
562
|
+
*/
|
|
563
|
+
//#endregion
|
|
564
|
+
|
|
565
|
+
function composeQueryMiddlewares(middlewares) {
|
|
566
|
+
return (handler) => {
|
|
567
|
+
let composed = handler;
|
|
568
|
+
for (let i = middlewares.length - 1; i >= 0; i--) {
|
|
569
|
+
const mw = middlewares[i];
|
|
570
|
+
const next = composed;
|
|
571
|
+
composed = (input) => mw(input, next);
|
|
572
|
+
}
|
|
573
|
+
return composed;
|
|
574
|
+
};
|
|
575
|
+
}
|
|
576
|
+
|
|
319
577
|
class AXPQueryExecutor {
|
|
320
578
|
constructor() {
|
|
321
579
|
this.injector = inject(EnvironmentInjector);
|
|
@@ -342,10 +600,10 @@ class AXPQueryExecutor {
|
|
|
342
600
|
?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)
|
|
343
601
|
.map(ext => ext.middleware) ?? [];
|
|
344
602
|
}
|
|
345
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
346
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
603
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
604
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryExecutor, providedIn: 'root' }); }
|
|
347
605
|
}
|
|
348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
606
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryExecutor, decorators: [{
|
|
349
607
|
type: Injectable,
|
|
350
608
|
args: [{ providedIn: 'root' }]
|
|
351
609
|
}] });
|
|
@@ -378,67 +636,34 @@ class AXPQueryService {
|
|
|
378
636
|
async fetch(key, input) {
|
|
379
637
|
return this.executor.fetch(key, input);
|
|
380
638
|
}
|
|
381
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
382
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
639
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
640
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryService, providedIn: 'root' }); }
|
|
383
641
|
}
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
642
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQueryService, decorators: [{
|
|
385
643
|
type: Injectable,
|
|
386
644
|
args: [{ providedIn: 'root' }]
|
|
387
645
|
}] });
|
|
388
646
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
const registry = inject(AXPQueryRegistry);
|
|
396
|
-
const injector = inject(EnvironmentInjector);
|
|
397
|
-
for (const entry of entries) {
|
|
398
|
-
registry.register(entry.key, async () => {
|
|
399
|
-
const CommandType = await entry.loader();
|
|
400
|
-
return injector.get(CommandType);
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
return true;
|
|
404
|
-
},
|
|
405
|
-
multi: true
|
|
406
|
-
}
|
|
407
|
-
]);
|
|
647
|
+
//#region ---- defineWidget ----
|
|
648
|
+
/**
|
|
649
|
+
* Typed identity helper for widget metadata sidecars.
|
|
650
|
+
*/
|
|
651
|
+
function defineWidget(definition) {
|
|
652
|
+
return definition;
|
|
408
653
|
}
|
|
654
|
+
//#endregion
|
|
409
655
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
}
|
|
422
|
-
return makeEnvironmentProviders([
|
|
423
|
-
// Plugin middleware entries
|
|
424
|
-
...extensions.map(ext => ({
|
|
425
|
-
provide: AXP_QUERY_EXTENSION,
|
|
426
|
-
useValue: ext,
|
|
427
|
-
multi: true
|
|
428
|
-
})),
|
|
429
|
-
// Global middleware setup (triggered via this token)
|
|
430
|
-
{
|
|
431
|
-
provide: AXP_QUERY_MIDDLEWARE_SETUP,
|
|
432
|
-
useFactory: () => {
|
|
433
|
-
const registry = inject(AXPQueryRegistry);
|
|
434
|
-
for (const mw of global) {
|
|
435
|
-
registry.use(mw);
|
|
436
|
-
}
|
|
437
|
-
return true;
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
]);
|
|
441
|
-
}
|
|
656
|
+
/**
|
|
657
|
+
* Build-time widget metadata only. Safe for tooling without loading layout widget components.
|
|
658
|
+
* Sidecars should import `defineWidget` from `@acorex/platform/runtime` (or this module for deep imports).
|
|
659
|
+
*/
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Build-time widget metadata sidecars (parallel to {@link AXPWidgetConfig} in layout/widget-core).
|
|
663
|
+
* Extends {@link AXPCatalogMetadataDefinitionBase}; `inputs` / `outputs` use the same schema rows as commands/queries.
|
|
664
|
+
* Sidecars may import `defineWidget` from `@acorex/platform/runtime`.
|
|
665
|
+
*/
|
|
666
|
+
//#endregion
|
|
442
667
|
|
|
443
668
|
function composeViewMiddlewares(middlewares) {
|
|
444
669
|
return (handler) => {
|
|
@@ -482,10 +707,10 @@ class AXPViewRegistry {
|
|
|
482
707
|
this.registry.clear();
|
|
483
708
|
this.middlewares.length = 0;
|
|
484
709
|
}
|
|
485
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
486
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
710
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
711
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewRegistry, providedIn: 'root' }); }
|
|
487
712
|
}
|
|
488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewRegistry, decorators: [{
|
|
489
714
|
type: Injectable,
|
|
490
715
|
args: [{ providedIn: 'root' }]
|
|
491
716
|
}] });
|
|
@@ -518,10 +743,10 @@ class AXPViewExecutor {
|
|
|
518
743
|
?.filter(ext => ext.target instanceof RegExp ? ext.target.test(key) : ext.target === key)
|
|
519
744
|
.map(ext => ext.middleware) ?? [];
|
|
520
745
|
}
|
|
521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
522
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
746
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
747
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewExecutor, providedIn: 'root' }); }
|
|
523
748
|
}
|
|
524
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
749
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewExecutor, decorators: [{
|
|
525
750
|
type: Injectable,
|
|
526
751
|
args: [{ providedIn: 'root' }]
|
|
527
752
|
}] });
|
|
@@ -555,10 +780,10 @@ class AXPViewService {
|
|
|
555
780
|
async provide(key, input) {
|
|
556
781
|
return this.executor.provide(key, input);
|
|
557
782
|
}
|
|
558
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
559
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
783
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
784
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewService, providedIn: 'root' }); }
|
|
560
785
|
}
|
|
561
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
786
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPViewService, decorators: [{
|
|
562
787
|
type: Injectable,
|
|
563
788
|
args: [{ providedIn: 'root' }]
|
|
564
789
|
}] });
|
|
@@ -674,10 +899,10 @@ class AXPPolicyEngineRegistry {
|
|
|
674
899
|
await composed(context);
|
|
675
900
|
return context;
|
|
676
901
|
}
|
|
677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
678
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
902
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
903
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineRegistry, providedIn: 'root' }); }
|
|
679
904
|
}
|
|
680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineRegistry, decorators: [{
|
|
681
906
|
type: Injectable,
|
|
682
907
|
args: [{ providedIn: 'root' }]
|
|
683
908
|
}] });
|
|
@@ -726,10 +951,10 @@ class AXPPolicyEngineService {
|
|
|
726
951
|
// }
|
|
727
952
|
// }
|
|
728
953
|
}
|
|
729
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
730
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
954
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
955
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineService, providedIn: 'root' }); }
|
|
731
956
|
}
|
|
732
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
957
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineService, decorators: [{
|
|
733
958
|
type: Injectable,
|
|
734
959
|
args: [{
|
|
735
960
|
providedIn: 'root'
|
|
@@ -738,7 +963,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
738
963
|
|
|
739
964
|
class AXPPolicyEngineDirective {
|
|
740
965
|
constructor() {
|
|
741
|
-
this.policy = input.required(...(ngDevMode ?
|
|
966
|
+
this.policy = input.required({ ...(ngDevMode ? { debugName: "policy" } : /* istanbul ignore next */ {}), alias: 'axp-apply-policy' });
|
|
742
967
|
this.service = inject(AXPPolicyEngineService);
|
|
743
968
|
this.elementRef = inject((ElementRef));
|
|
744
969
|
this.#eff = effect(async () => {
|
|
@@ -751,13 +976,13 @@ class AXPPolicyEngineDirective {
|
|
|
751
976
|
policies: castArray(policy),
|
|
752
977
|
sender: this.elementRef.nativeElement
|
|
753
978
|
});
|
|
754
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
979
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
755
980
|
}
|
|
756
981
|
#eff;
|
|
757
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
758
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
982
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
983
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: AXPPolicyEngineDirective, isStandalone: true, selector: "[axp-apply-policy]", inputs: { policy: { classPropertyName: "policy", publicName: "axp-apply-policy", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
759
984
|
}
|
|
760
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
985
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPPolicyEngineDirective, decorators: [{
|
|
761
986
|
type: Directive,
|
|
762
987
|
args: [{
|
|
763
988
|
selector: '[axp-apply-policy]',
|
|
@@ -830,11 +1055,11 @@ class AXPRuntimeModule {
|
|
|
830
1055
|
console.log('[AXPRuntimeModule] Policy Engine Setup:', this._policyEngineSetup);
|
|
831
1056
|
}
|
|
832
1057
|
}
|
|
833
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
834
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
835
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1058
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRuntimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1059
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPRuntimeModule }); }
|
|
1060
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRuntimeModule }); }
|
|
836
1061
|
}
|
|
837
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1062
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRuntimeModule, decorators: [{
|
|
838
1063
|
type: NgModule
|
|
839
1064
|
}], ctorParameters: () => [] });
|
|
840
1065
|
|
|
@@ -844,5 +1069,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
844
1069
|
* Generated bundle index. Do not edit.
|
|
845
1070
|
*/
|
|
846
1071
|
|
|
847
|
-
export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
|
|
1072
|
+
export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS as AXP_COMMAND_DEFINITION_CATEGORY_AI_TOOLS, AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT as AXP_COMMAND_DEFINITION_CATEGORY_ASSESSMENT, AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT as AXP_COMMAND_DEFINITION_CATEGORY_DATA_MANAGEMENT, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_COMMAND_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET as AXP_COMMAND_DEFINITION_CATEGORY_FILE_WIDGET, AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL as AXP_COMMAND_DEFINITION_CATEGORY_HUMAN_CAPITAL, AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION as AXP_COMMAND_DEFINITION_CATEGORY_ORGANIZATION, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT as AXP_COMMAND_DEFINITION_CATEGORY_PRODUCT, AXP_CATALOG_DEFINITION_CATEGORY_REPORT as AXP_COMMAND_DEFINITION_CATEGORY_REPORT, AXP_CATALOG_DEFINITION_CATEGORY_SECURITY as AXP_COMMAND_DEFINITION_CATEGORY_SECURITY, AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS as AXP_COMMAND_DEFINITION_CATEGORY_SETTINGS, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_COMMAND_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_TENANT as AXP_COMMAND_DEFINITION_CATEGORY_TENANT, AXP_CATALOG_DEFINITION_CATEGORY_UTILITY as AXP_COMMAND_DEFINITION_CATEGORY_UTILITY, AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW as AXP_COMMAND_DEFINITION_CATEGORY_WORKFLOW, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_QUERY_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_QUERY_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_QUERY_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS as AXP_QUERY_DEFINITION_CATEGORY_WIDGETS, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, defineCommand, defineQuery, defineWidget, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
|
|
848
1073
|
//# sourceMappingURL=acorex-platform-runtime.mjs.map
|