@acorex/platform 21.0.0-next.24 → 21.0.0-next.33
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 +121 -27
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +677 -267
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +393 -111
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +554 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +3373 -872
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +244 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.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-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.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-q30grR3z.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-BGQqY5Mw.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
- 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--rzP7scF.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-DHlgsHa7.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 +5924 -4049
- 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 +220 -169
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.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-CgB_tlPU.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 +1667 -61
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.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-Cp5Th57U.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.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +208 -91
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +34 -34
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
- package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
- /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { signal, computed, Injectable, InjectionToken, inject, ElementRef, effect, untracked, Injector, ChangeDetectorRef, ViewChild, Input, ChangeDetectionStrategy, Component, EventEmitter, Output, input, output, ViewContainerRef, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { convertArrayToDataSource, AXDataSource } from '@acorex/cdk/common';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { AXPContextStore, AXPDataSourceDefinitionProviderService, extractValue, AXPExpressionEvaluatorService, getSmart } from '@acorex/platform/core';
|
|
5
|
+
import { set, merge, cloneDeep, isNil, get, isEqual, isUndefined, isObjectLike, sum, isEmpty, isString } from 'lodash-es';
|
|
6
6
|
import { Subject, BehaviorSubject, filter } from 'rxjs';
|
|
7
|
-
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
|
8
7
|
import * as i1$1 from '@acorex/components/skeleton';
|
|
9
8
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
10
9
|
import * as i2 from '@acorex/core/translation';
|
|
@@ -15,123 +14,6 @@ import { CommonModule } from '@angular/common';
|
|
|
15
14
|
import { AXDataTableColumnComponent, AXBaseDataTable } from '@acorex/components/data-table';
|
|
16
15
|
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
17
16
|
|
|
18
|
-
class AXPWidgetCoreContextChangeEvent {
|
|
19
|
-
}
|
|
20
|
-
const AXPWidgetCoreContextStore = signalStore(
|
|
21
|
-
// Initial State
|
|
22
|
-
withState(() => ({
|
|
23
|
-
data: {}, // Shared context data
|
|
24
|
-
state: 'initiated', // Current state
|
|
25
|
-
initialSnapshot: {}, // Snapshot of the first initialized state
|
|
26
|
-
previousSnapshot: {}, // Snapshot of the previous state
|
|
27
|
-
lastChange: {
|
|
28
|
-
state: 'initiated',
|
|
29
|
-
}, // Last change event
|
|
30
|
-
})),
|
|
31
|
-
// Computed Signals
|
|
32
|
-
withComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({
|
|
33
|
-
isChanged: computed(() => state() === 'changed'),
|
|
34
|
-
isReset: computed(() => state() === 'restored'),
|
|
35
|
-
isInitiated: computed(() => state() === 'initiated'),
|
|
36
|
-
isEmpty: computed(() => Object.keys(data()).length === 0),
|
|
37
|
-
isDirty: computed(() => !isEqual(data(), previousSnapshot())),
|
|
38
|
-
snapshot: computed(() => cloneDeep(data())), // Current data snapshot
|
|
39
|
-
initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot
|
|
40
|
-
previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot
|
|
41
|
-
changeEvent: computed(() => lastChange()), // Reactive last change event
|
|
42
|
-
})),
|
|
43
|
-
// Methods for State Management
|
|
44
|
-
withMethods((store) => ({
|
|
45
|
-
// Update a specific value
|
|
46
|
-
update(path, value) {
|
|
47
|
-
const currentData = cloneDeep(store.data());
|
|
48
|
-
const oldValue = get(currentData, path);
|
|
49
|
-
// Skip if the value hasn't changed
|
|
50
|
-
if (isEqual(oldValue, value)) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
// Update the value and prepare the change event
|
|
54
|
-
const updatedData = setSmart(currentData, path, value);
|
|
55
|
-
const changeEvent = {
|
|
56
|
-
oldValue,
|
|
57
|
-
newValue: value,
|
|
58
|
-
path,
|
|
59
|
-
state: 'changed',
|
|
60
|
-
data: updatedData,
|
|
61
|
-
};
|
|
62
|
-
// Patch the state
|
|
63
|
-
patchState(store, {
|
|
64
|
-
previousSnapshot: store.snapshot(), // Save the previous state
|
|
65
|
-
data: updatedData,
|
|
66
|
-
state: 'changed',
|
|
67
|
-
lastChange: changeEvent,
|
|
68
|
-
});
|
|
69
|
-
},
|
|
70
|
-
patch(context, skipDirtyTracking = false) {
|
|
71
|
-
const currentData = cloneDeep(store.data());
|
|
72
|
-
// Update the value and prepare the change event
|
|
73
|
-
const updatedData = { ...currentData, ...context };
|
|
74
|
-
const changeEvent = {
|
|
75
|
-
state: 'patch',
|
|
76
|
-
data: updatedData,
|
|
77
|
-
};
|
|
78
|
-
// Patch the state
|
|
79
|
-
patchState(store, {
|
|
80
|
-
...(skipDirtyTracking ? {} : { previousSnapshot: store.snapshot() }), // Only update previousSnapshot if not skipping dirty tracking
|
|
81
|
-
data: updatedData,
|
|
82
|
-
state: 'changed',
|
|
83
|
-
lastChange: changeEvent,
|
|
84
|
-
});
|
|
85
|
-
},
|
|
86
|
-
// Reset to the initial state
|
|
87
|
-
reset() {
|
|
88
|
-
const initialData = store.initial();
|
|
89
|
-
const changeEvent = {
|
|
90
|
-
oldValue: cloneDeep(store.data()), // Current data becomes old value
|
|
91
|
-
newValue: cloneDeep(initialData), // Reset to the initial state
|
|
92
|
-
path: '',
|
|
93
|
-
state: 'restored',
|
|
94
|
-
data: initialData,
|
|
95
|
-
};
|
|
96
|
-
patchState(store, {
|
|
97
|
-
previousSnapshot: store.snapshot(), // Save the previous state
|
|
98
|
-
data: initialData,
|
|
99
|
-
state: 'restored',
|
|
100
|
-
lastChange: changeEvent,
|
|
101
|
-
});
|
|
102
|
-
},
|
|
103
|
-
// Initialize the state
|
|
104
|
-
set(initialData) {
|
|
105
|
-
const currentData = store.data();
|
|
106
|
-
if (isEqual(currentData, initialData)) {
|
|
107
|
-
return; // Skip if the current state matches the initial state
|
|
108
|
-
}
|
|
109
|
-
console.log('initialData', initialData);
|
|
110
|
-
const changeEvent = {
|
|
111
|
-
oldValue: null,
|
|
112
|
-
newValue: cloneDeep(initialData),
|
|
113
|
-
path: '',
|
|
114
|
-
state: 'initiated',
|
|
115
|
-
data: initialData,
|
|
116
|
-
};
|
|
117
|
-
patchState(store, {
|
|
118
|
-
initialSnapshot: cloneDeep(initialData), // Save the initial state
|
|
119
|
-
previousSnapshot: store.snapshot(), // Save the current state as the previous
|
|
120
|
-
data: initialData,
|
|
121
|
-
state: 'initiated',
|
|
122
|
-
lastChange: changeEvent,
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
// Get a specific value
|
|
126
|
-
getValue(path) {
|
|
127
|
-
return get(store.data(), path);
|
|
128
|
-
},
|
|
129
|
-
// Check if a path exists in the context
|
|
130
|
-
hasValue(path) {
|
|
131
|
-
return has(store.data(), path);
|
|
132
|
-
},
|
|
133
|
-
})));
|
|
134
|
-
|
|
135
17
|
var AXPPageStatus;
|
|
136
18
|
(function (AXPPageStatus) {
|
|
137
19
|
// Idle statuses
|
|
@@ -171,17 +53,17 @@ class AXPWidgetCoreElement {
|
|
|
171
53
|
}
|
|
172
54
|
class AXPWidgetCoreService {
|
|
173
55
|
constructor() {
|
|
174
|
-
this.variables$ = signal({}, ...(ngDevMode ? [{ debugName: "variables$" }] : []));
|
|
175
|
-
this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: "functions$" }] : []));
|
|
56
|
+
this.variables$ = signal({}, ...(ngDevMode ? [{ debugName: "variables$" }] : /* istanbul ignore next */ []));
|
|
57
|
+
this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: "functions$" }] : /* istanbul ignore next */ []));
|
|
176
58
|
this.onRefresh = new Subject();
|
|
177
59
|
this.widgets = new Map();
|
|
178
60
|
this.onWidgetRegistered = new Subject();
|
|
179
|
-
this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: "status$" }] : []));
|
|
61
|
+
this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: "status$" }] : /* istanbul ignore next */ []));
|
|
180
62
|
this.status = this.status$.asReadonly();
|
|
181
63
|
this.isBusy = computed(() => {
|
|
182
64
|
return [AXPPageStatus.Processing, AXPPageStatus.Submitting, AXPPageStatus.Rendering].includes(this.status());
|
|
183
|
-
}, ...(ngDevMode ? [{ debugName: "isBusy" }] : []));
|
|
184
|
-
this.registeredWidgetsCount = signal(0, ...(ngDevMode ? [{ debugName: "registeredWidgetsCount" }] : []));
|
|
65
|
+
}, ...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
66
|
+
this.registeredWidgetsCount = signal(0, ...(ngDevMode ? [{ debugName: "registeredWidgetsCount" }] : /* istanbul ignore next */ []));
|
|
185
67
|
}
|
|
186
68
|
get variables() {
|
|
187
69
|
return this.variables$();
|
|
@@ -286,10 +168,10 @@ class AXPWidgetCoreService {
|
|
|
286
168
|
return Array.from(this.widgets.keys());
|
|
287
169
|
}
|
|
288
170
|
ngOnDestroy() { }
|
|
289
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
290
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
172
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreService }); }
|
|
291
173
|
}
|
|
292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreService, decorators: [{
|
|
293
175
|
type: Injectable
|
|
294
176
|
}] });
|
|
295
177
|
|
|
@@ -319,6 +201,7 @@ const AXPWidgetsCatalog = {
|
|
|
319
201
|
pageLayout: 'page-layout',
|
|
320
202
|
repeaterLayout: 'repeater-layout',
|
|
321
203
|
textBlockLayout: 'text-block-layout',
|
|
204
|
+
alertBoxLayout: 'alert-box-layout',
|
|
322
205
|
fileUploader: 'file-uploader',
|
|
323
206
|
fileTypeExtension: 'file-type-extension',
|
|
324
207
|
map: 'map',
|
|
@@ -387,6 +270,7 @@ const AXPWidgetsCatalog = {
|
|
|
387
270
|
advancedWeather: 'advanced-weather',
|
|
388
271
|
metaData: 'meta-data-editor',
|
|
389
272
|
templateEditor: 'template-box-editor',
|
|
273
|
+
templateContentEditor: 'template-content-editor',
|
|
390
274
|
panel: 'panel',
|
|
391
275
|
notification: 'notification',
|
|
392
276
|
taskBoard: 'task-board',
|
|
@@ -398,7 +282,9 @@ const AXPWidgetsCatalog = {
|
|
|
398
282
|
documentUploader: 'document-uploader',
|
|
399
283
|
stepWizard: 'step-wizard',
|
|
400
284
|
progressBar: 'progress-bar-editor',
|
|
401
|
-
rate: 'rate-picker-editor'
|
|
285
|
+
rate: 'rate-picker-editor',
|
|
286
|
+
documentFileTypeFilter: 'document-file-type-filter',
|
|
287
|
+
entityDefinitionProvider: 'entity-definition-provider-editor',
|
|
402
288
|
};
|
|
403
289
|
|
|
404
290
|
function cloneProperty(property, values) {
|
|
@@ -453,7 +339,7 @@ function createBooleanProperty(ctor) {
|
|
|
453
339
|
type: AXPWidgetsCatalog.toggle,
|
|
454
340
|
},
|
|
455
341
|
},
|
|
456
|
-
visible: ctor.visible
|
|
342
|
+
visible: !isNil(ctor.visible) ? ctor.visible : true,
|
|
457
343
|
binding: {
|
|
458
344
|
enabled: true,
|
|
459
345
|
},
|
|
@@ -480,7 +366,7 @@ function createSelectProperty(ctor) {
|
|
|
480
366
|
},
|
|
481
367
|
},
|
|
482
368
|
},
|
|
483
|
-
visible: ctor.visible
|
|
369
|
+
visible: !isNil(ctor.visible) ? ctor.visible : true,
|
|
484
370
|
};
|
|
485
371
|
}
|
|
486
372
|
const AXP_WIDGET_TOKEN = new InjectionToken('AXP_WIDGET_TOKEN');
|
|
@@ -492,22 +378,22 @@ class AXPBaseWidgetComponent extends AXPWidgetCoreElement {
|
|
|
492
378
|
this.token = inject(AXP_WIDGET_TOKEN);
|
|
493
379
|
this.host = inject(ElementRef).nativeElement;
|
|
494
380
|
this.layoutService = inject(AXPWidgetCoreService);
|
|
495
|
-
this.contextService = inject(
|
|
381
|
+
this.contextService = inject(AXPContextStore);
|
|
496
382
|
this.config = this.token.config;
|
|
497
383
|
this.node = this.token.node;
|
|
498
384
|
this.name = this.token.node.name;
|
|
499
385
|
this.component = this;
|
|
500
|
-
this._options = signal(this.token.options ?? {}, ...(ngDevMode ? [{ debugName: "_options" }] : []));
|
|
386
|
+
this._options = signal(this.token.options ?? {}, ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
|
|
501
387
|
this.options = this._options.asReadonly();
|
|
502
388
|
this.onOptionsChanged = new Subject();
|
|
503
|
-
this._status = signal(AXPWidgetStatus.Rendering, ...(ngDevMode ? [{ debugName: "_status" }] : []));
|
|
389
|
+
this._status = signal(AXPWidgetStatus.Rendering, ...(ngDevMode ? [{ debugName: "_status" }] : /* istanbul ignore next */ []));
|
|
504
390
|
this.status = this._status.asReadonly();
|
|
505
391
|
this.onStatusChanged = new BehaviorSubject(this._status());
|
|
506
392
|
this.#statusEffect = effect(() => {
|
|
507
393
|
this.onStatusChanged.next(this.status());
|
|
508
|
-
}, ...(ngDevMode ? [{ debugName: "#statusEffect" }] : []));
|
|
509
|
-
this.isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()), ...(ngDevMode ? [{ debugName: "isBusy" }] : []));
|
|
510
|
-
this._children = signal(this.token.node.children ?? [], ...(ngDevMode ? [{ debugName: "_children" }] : []));
|
|
394
|
+
}, ...(ngDevMode ? [{ debugName: "#statusEffect" }] : /* istanbul ignore next */ []));
|
|
395
|
+
this.isBusy = computed(() => [AXPWidgetStatus.Rendering, AXPWidgetStatus.Processing].includes(this.status()), ...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
396
|
+
this._children = signal(this.token.node.children ?? [], ...(ngDevMode ? [{ debugName: "_children" }] : /* istanbul ignore next */ []));
|
|
511
397
|
this.children = this._children.asReadonly();
|
|
512
398
|
}
|
|
513
399
|
get id() {
|
|
@@ -554,10 +440,10 @@ class AXPBaseWidgetComponent extends AXPWidgetCoreElement {
|
|
|
554
440
|
this._children.set([...children]);
|
|
555
441
|
}
|
|
556
442
|
onAdded() { }
|
|
557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
558
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
443
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
444
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBaseWidgetComponent }); }
|
|
559
445
|
}
|
|
560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBaseWidgetComponent, decorators: [{
|
|
561
447
|
type: Injectable
|
|
562
448
|
}] });
|
|
563
449
|
class AXPLayoutBaseWidgetComponent extends AXPBaseWidgetComponent {
|
|
@@ -568,10 +454,10 @@ class AXPLayoutBaseWidgetComponent extends AXPBaseWidgetComponent {
|
|
|
568
454
|
}
|
|
569
455
|
super.ngOnInit();
|
|
570
456
|
}
|
|
571
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
572
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
457
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLayoutBaseWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
458
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLayoutBaseWidgetComponent }); }
|
|
573
459
|
}
|
|
574
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPLayoutBaseWidgetComponent, decorators: [{
|
|
575
461
|
type: Injectable
|
|
576
462
|
}] });
|
|
577
463
|
class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
@@ -582,11 +468,11 @@ class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
582
468
|
this._isValueWidget = false;
|
|
583
469
|
this.isValueWidget = () => this._isValueWidget;
|
|
584
470
|
this.onValueChanged = new Subject();
|
|
585
|
-
this.fullPath = signal(null, ...(ngDevMode ? [{ debugName: "fullPath" }] : []));
|
|
586
|
-
this.parentPath = signal(null, ...(ngDevMode ? [{ debugName: "parentPath" }] : []));
|
|
471
|
+
this.fullPath = signal(null, ...(ngDevMode ? [{ debugName: "fullPath" }] : /* istanbul ignore next */ []));
|
|
472
|
+
this.parentPath = signal(null, ...(ngDevMode ? [{ debugName: "parentPath" }] : /* istanbul ignore next */ []));
|
|
587
473
|
this.getValue = computed(() => {
|
|
588
474
|
return this.fullPath() ? this.extractValue(this.fullPath()) : null;
|
|
589
|
-
}, ...(ngDevMode ?
|
|
475
|
+
}, { ...(ngDevMode ? { debugName: "getValue" } : /* istanbul ignore next */ {}), equal: isEqual });
|
|
590
476
|
this.validationRules = computed(() => {
|
|
591
477
|
const validationsRaw = this.options()['validations'];
|
|
592
478
|
if (validationsRaw == null) {
|
|
@@ -599,7 +485,7 @@ class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
599
485
|
message: c.message,
|
|
600
486
|
options: c.options,
|
|
601
487
|
}));
|
|
602
|
-
}, ...(ngDevMode ? [{ debugName: "validationRules" }] : []));
|
|
488
|
+
}, ...(ngDevMode ? [{ debugName: "validationRules" }] : /* istanbul ignore next */ []));
|
|
603
489
|
}
|
|
604
490
|
ngOnInit() {
|
|
605
491
|
this._isValueWidget = this.config.properties?.some((c) => c.name == 'path') ?? false;
|
|
@@ -629,7 +515,12 @@ class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
629
515
|
if (isNil(value) && isNil(oldValue)) {
|
|
630
516
|
return;
|
|
631
517
|
}
|
|
632
|
-
|
|
518
|
+
// Reordered arrays must persist even when items are deep-equal (e.g. empty row objects).
|
|
519
|
+
const isArrayReorder = Array.isArray(oldValue) &&
|
|
520
|
+
Array.isArray(value) &&
|
|
521
|
+
oldValue.length === value.length &&
|
|
522
|
+
oldValue.some((v, i) => v !== value[i]);
|
|
523
|
+
if (!isArrayReorder && isEqual(oldValue, value)) {
|
|
633
524
|
return;
|
|
634
525
|
}
|
|
635
526
|
if (this.fullPath()) {
|
|
@@ -676,23 +567,23 @@ class AXPValueWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
676
567
|
this.setValue(e.value);
|
|
677
568
|
}
|
|
678
569
|
}
|
|
679
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
680
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
570
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPValueWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
571
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPValueWidgetComponent }); }
|
|
681
572
|
}
|
|
682
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPValueWidgetComponent, decorators: [{
|
|
683
574
|
type: Injectable
|
|
684
575
|
}] });
|
|
685
576
|
class AXPDataListWidgetComponent extends AXPValueWidgetComponent {
|
|
686
577
|
constructor() {
|
|
687
578
|
super(...arguments);
|
|
688
579
|
this.dataService = inject(AXPDataSourceDefinitionProviderService);
|
|
689
|
-
this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: "textField" }] : []));
|
|
690
|
-
this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: "valueField" }] : []));
|
|
580
|
+
this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: "textField" }] : /* istanbul ignore next */ []));
|
|
581
|
+
this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: "valueField" }] : /* istanbul ignore next */ []));
|
|
691
582
|
this.textTemplate = computed(() => isNil(this.options()['textTemplate'])
|
|
692
583
|
? undefined
|
|
693
|
-
: this.options()['textTemplate'].replace(/{/g, '{{').replace(/}/g, '}}'), ...(ngDevMode ? [{ debugName: "textTemplate" }] : []));
|
|
694
|
-
this.dataSource = signal(convertArrayToDataSource([]), ...(ngDevMode ? [{ debugName: "dataSource" }] : []));
|
|
695
|
-
this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
|
|
584
|
+
: this.options()['textTemplate'].replace(/{/g, '{{').replace(/}/g, '}}'), ...(ngDevMode ? [{ debugName: "textTemplate" }] : /* istanbul ignore next */ []));
|
|
585
|
+
this.dataSource = signal(convertArrayToDataSource([]), ...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
|
|
586
|
+
this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
|
|
696
587
|
//#region ---- DataSource Loading Effect ----
|
|
697
588
|
/**
|
|
698
589
|
* Track the last loaded string dataSource reference to prevent infinite loops
|
|
@@ -772,7 +663,7 @@ class AXPDataListWidgetComponent extends AXPValueWidgetComponent {
|
|
|
772
663
|
this.dataSource.set(convertArrayToDataSource([]));
|
|
773
664
|
}
|
|
774
665
|
});
|
|
775
|
-
}, ...(ngDevMode ? [{ debugName: "rf" }] : []));
|
|
666
|
+
}, ...(ngDevMode ? [{ debugName: "rf" }] : /* istanbul ignore next */ []));
|
|
776
667
|
this.effect2 = effect(async () => {
|
|
777
668
|
const value = this.getValue();
|
|
778
669
|
const items = [];
|
|
@@ -783,7 +674,7 @@ class AXPDataListWidgetComponent extends AXPValueWidgetComponent {
|
|
|
783
674
|
items.push(await this.extractItem(value));
|
|
784
675
|
}
|
|
785
676
|
this.selectedItems.set(items.filter((c) => c != null));
|
|
786
|
-
}, ...(ngDevMode ? [{ debugName: "effect2" }] : []));
|
|
677
|
+
}, ...(ngDevMode ? [{ debugName: "effect2" }] : /* istanbul ignore next */ []));
|
|
787
678
|
}
|
|
788
679
|
//#endregion
|
|
789
680
|
async extractItem(item) {
|
|
@@ -808,10 +699,10 @@ class AXPDataListWidgetComponent extends AXPValueWidgetComponent {
|
|
|
808
699
|
[this.textField()]: item,
|
|
809
700
|
};
|
|
810
701
|
}
|
|
811
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
812
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
702
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
703
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataListWidgetComponent }); }
|
|
813
704
|
}
|
|
814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
705
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataListWidgetComponent, decorators: [{
|
|
815
706
|
type: Injectable
|
|
816
707
|
}] });
|
|
817
708
|
class AXPColumnWidgetComponent {
|
|
@@ -829,10 +720,10 @@ class AXPColumnWidgetComponent {
|
|
|
829
720
|
return this.rawValue;
|
|
830
721
|
};
|
|
831
722
|
}
|
|
832
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
833
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
723
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColumnWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
724
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColumnWidgetComponent }); }
|
|
834
725
|
}
|
|
835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
726
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColumnWidgetComponent, decorators: [{
|
|
836
727
|
type: Injectable
|
|
837
728
|
}] });
|
|
838
729
|
|
|
@@ -861,7 +752,7 @@ class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
861
752
|
style['overflow-y'] = overflowY ?? '';
|
|
862
753
|
style['direction'] = direction ?? '';
|
|
863
754
|
return style;
|
|
864
|
-
}, ...(ngDevMode ? [{ debugName: "hostBoxStyle" }] : []));
|
|
755
|
+
}, ...(ngDevMode ? [{ debugName: "hostBoxStyle" }] : /* istanbul ignore next */ []));
|
|
865
756
|
this.blockStyle = computed(() => {
|
|
866
757
|
const options = this.options();
|
|
867
758
|
const style = { ...this.hostBoxStyle() };
|
|
@@ -878,47 +769,47 @@ class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
|
878
769
|
style['height'] = height ?? '';
|
|
879
770
|
style['max-height'] = maxHeight ?? '';
|
|
880
771
|
return style;
|
|
881
|
-
}, ...(ngDevMode ? [{ debugName: "blockStyle" }] : []));
|
|
772
|
+
}, ...(ngDevMode ? [{ debugName: "blockStyle" }] : /* istanbul ignore next */ []));
|
|
882
773
|
this.inlineStyle = computed(() => {
|
|
883
774
|
return { ...this.hostBoxStyle() };
|
|
884
|
-
}, ...(ngDevMode ? [{ debugName: "inlineStyle" }] : []));
|
|
775
|
+
}, ...(ngDevMode ? [{ debugName: "inlineStyle" }] : /* istanbul ignore next */ []));
|
|
885
776
|
this.blockClass = computed(() => {
|
|
886
777
|
return {
|
|
887
778
|
'ax-block': true,
|
|
888
779
|
'ax-w-full': true,
|
|
889
780
|
// 'ax-widget-outline': true,
|
|
890
781
|
};
|
|
891
|
-
}, ...(ngDevMode ? [{ debugName: "blockClass" }] : []));
|
|
782
|
+
}, ...(ngDevMode ? [{ debugName: "blockClass" }] : /* istanbul ignore next */ []));
|
|
892
783
|
this.inlineClass = computed(() => {
|
|
893
784
|
return {
|
|
894
785
|
'ax-inline-block': true,
|
|
895
786
|
};
|
|
896
|
-
}, ...(ngDevMode ? [{ debugName: "inlineClass" }] : []));
|
|
787
|
+
}, ...(ngDevMode ? [{ debugName: "inlineClass" }] : /* istanbul ignore next */ []));
|
|
897
788
|
}
|
|
898
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
899
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
789
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
790
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent }); }
|
|
900
791
|
}
|
|
901
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBoxModelLayoutWidgetComponent, decorators: [{
|
|
902
793
|
type: Injectable
|
|
903
794
|
}] });
|
|
904
795
|
|
|
905
796
|
class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
|
|
906
797
|
constructor() {
|
|
907
798
|
super(...arguments);
|
|
908
|
-
this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
909
|
-
this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
799
|
+
this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
800
|
+
this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
910
801
|
}
|
|
911
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
912
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
802
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
803
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent }); }
|
|
913
804
|
}
|
|
914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
805
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPBlockBaseLayoutWidgetComponent, decorators: [{
|
|
915
806
|
type: Injectable
|
|
916
807
|
}] });
|
|
917
808
|
|
|
918
809
|
class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
919
810
|
constructor() {
|
|
920
811
|
super(...arguments);
|
|
921
|
-
this.flex = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "flex" }] : []));
|
|
812
|
+
this.flex = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "flex" }] : /* istanbul ignore next */ []));
|
|
922
813
|
this.hostFlexStyle = computed(() => {
|
|
923
814
|
const blockStyle = this.blockStyle();
|
|
924
815
|
const style = { ...blockStyle };
|
|
@@ -957,45 +848,45 @@ class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent
|
|
|
957
848
|
style['gap'] = flex.gap;
|
|
958
849
|
}
|
|
959
850
|
return style;
|
|
960
|
-
}, ...(ngDevMode ? [{ debugName: "hostFlexStyle" }] : []));
|
|
851
|
+
}, ...(ngDevMode ? [{ debugName: "hostFlexStyle" }] : /* istanbul ignore next */ []));
|
|
961
852
|
this.hostFlexClass = computed(() => {
|
|
962
853
|
return {
|
|
963
854
|
...this.blockClass(),
|
|
964
855
|
'ax-flex': true,
|
|
965
856
|
'ax-h-full': true,
|
|
966
857
|
};
|
|
967
|
-
}, ...(ngDevMode ? [{ debugName: "hostFlexClass" }] : []));
|
|
858
|
+
}, ...(ngDevMode ? [{ debugName: "hostFlexClass" }] : /* istanbul ignore next */ []));
|
|
968
859
|
this.hostClass = computed(() => {
|
|
969
860
|
return this.hostFlexClass();
|
|
970
|
-
}, ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
861
|
+
}, ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
971
862
|
this.hostStyle = computed(() => {
|
|
972
863
|
return this.hostFlexStyle();
|
|
973
|
-
}, ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
864
|
+
}, ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
974
865
|
}
|
|
975
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
976
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
866
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
867
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent }); }
|
|
977
868
|
}
|
|
978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
869
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexBaseLayoutWidgetComponent, decorators: [{
|
|
979
870
|
type: Injectable
|
|
980
871
|
}] });
|
|
981
872
|
|
|
982
873
|
class AXPInlineBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
|
|
983
874
|
constructor() {
|
|
984
875
|
super(...arguments);
|
|
985
|
-
this.hostClass = computed(() => this.inlineClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
986
|
-
this.hostStyle = computed(() => this.inlineStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
876
|
+
this.hostClass = computed(() => this.inlineClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
877
|
+
this.hostStyle = computed(() => this.inlineStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
987
878
|
}
|
|
988
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
989
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
879
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
880
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent }); }
|
|
990
881
|
}
|
|
991
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
882
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPInlineBaseLayoutWidgetComponent, decorators: [{
|
|
992
883
|
type: Injectable
|
|
993
884
|
}] });
|
|
994
885
|
|
|
995
886
|
class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComponent {
|
|
996
887
|
constructor() {
|
|
997
888
|
super(...arguments);
|
|
998
|
-
this.flexItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "flexItem" }] : []));
|
|
889
|
+
this.flexItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "flexItem" }] : /* istanbul ignore next */ []));
|
|
999
890
|
this.hostFlexItemStyle = computed(() => {
|
|
1000
891
|
const inlineStyle = this.blockStyle();
|
|
1001
892
|
const style = { ...inlineStyle };
|
|
@@ -1031,37 +922,37 @@ class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComp
|
|
|
1031
922
|
style['align-self'] = fi.alignSelf;
|
|
1032
923
|
}
|
|
1033
924
|
return style;
|
|
1034
|
-
}, ...(ngDevMode ? [{ debugName: "hostFlexItemStyle" }] : []));
|
|
925
|
+
}, ...(ngDevMode ? [{ debugName: "hostFlexItemStyle" }] : /* istanbul ignore next */ []));
|
|
1035
926
|
this.hostFlexItemClass = computed(() => {
|
|
1036
927
|
return {
|
|
1037
928
|
...this.blockClass(),
|
|
1038
929
|
};
|
|
1039
|
-
}, ...(ngDevMode ? [{ debugName: "hostFlexItemClass" }] : []));
|
|
930
|
+
}, ...(ngDevMode ? [{ debugName: "hostFlexItemClass" }] : /* istanbul ignore next */ []));
|
|
1040
931
|
this.hostClass = computed(() => {
|
|
1041
932
|
return this.hostFlexItemClass();
|
|
1042
|
-
}, ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
933
|
+
}, ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
1043
934
|
this.hostStyle = computed(() => {
|
|
1044
935
|
return this.hostFlexItemStyle();
|
|
1045
|
-
}, ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
936
|
+
}, ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
1046
937
|
}
|
|
1047
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1048
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
938
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
939
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent }); }
|
|
1049
940
|
}
|
|
1050
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
941
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFlexItemBaseLayoutWidgetComponent, decorators: [{
|
|
1051
942
|
type: Injectable
|
|
1052
943
|
}] });
|
|
1053
944
|
|
|
1054
945
|
class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
1055
946
|
constructor() {
|
|
1056
947
|
super(...arguments);
|
|
1057
|
-
this.grid = computed(() => this.options()?.['grid'], ...(ngDevMode ? [{ debugName: "grid" }] : []));
|
|
948
|
+
this.grid = computed(() => this.options()?.['grid'], ...(ngDevMode ? [{ debugName: "grid" }] : /* istanbul ignore next */ []));
|
|
1058
949
|
this.hostGridStyle = computed(() => {
|
|
1059
950
|
const style = { ...this.inlineStyle() };
|
|
1060
951
|
const g = this.grid()?.default;
|
|
1061
952
|
if (g?.gap)
|
|
1062
953
|
style['gap'] = g.gap;
|
|
1063
954
|
return style;
|
|
1064
|
-
}, ...(ngDevMode ? [{ debugName: "hostGridStyle" }] : []));
|
|
955
|
+
}, ...(ngDevMode ? [{ debugName: "hostGridStyle" }] : /* istanbul ignore next */ []));
|
|
1065
956
|
this.hostGridClass = computed(() => {
|
|
1066
957
|
const cls = {
|
|
1067
958
|
...this.inlineClass(),
|
|
@@ -1078,21 +969,21 @@ class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent
|
|
|
1078
969
|
if (g?.autoFlow)
|
|
1079
970
|
cls[`lg:ax-grid-flow-${g.autoFlow}`] = true;
|
|
1080
971
|
return cls;
|
|
1081
|
-
}, ...(ngDevMode ? [{ debugName: "hostGridClass" }] : []));
|
|
1082
|
-
this.hostClass = computed(() => this.hostGridClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
1083
|
-
this.hostStyle = computed(() => this.hostGridStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
972
|
+
}, ...(ngDevMode ? [{ debugName: "hostGridClass" }] : /* istanbul ignore next */ []));
|
|
973
|
+
this.hostClass = computed(() => this.hostGridClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
974
|
+
this.hostStyle = computed(() => this.hostGridStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
1084
975
|
}
|
|
1085
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1086
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
976
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
977
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent }); }
|
|
1087
978
|
}
|
|
1088
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
979
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridBaseLayoutWidgetComponent, decorators: [{
|
|
1089
980
|
type: Injectable
|
|
1090
981
|
}] });
|
|
1091
982
|
|
|
1092
983
|
class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetComponent {
|
|
1093
984
|
constructor() {
|
|
1094
985
|
super(...arguments);
|
|
1095
|
-
this.gridItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "gridItem" }] : []));
|
|
986
|
+
this.gridItem = computed(() => this.options(), ...(ngDevMode ? [{ debugName: "gridItem" }] : /* istanbul ignore next */ []));
|
|
1096
987
|
this.hostGridItemStyle = computed(() => {
|
|
1097
988
|
const style = { ...this.hostFlexStyle() };
|
|
1098
989
|
const g = this.gridItem();
|
|
@@ -1101,10 +992,13 @@ class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetCompon
|
|
|
1101
992
|
if (g?.justifySelf)
|
|
1102
993
|
style['justify-self'] = g.justifySelf;
|
|
1103
994
|
return style;
|
|
1104
|
-
}, ...(ngDevMode ? [{ debugName: "hostGridItemStyle" }] : []));
|
|
995
|
+
}, ...(ngDevMode ? [{ debugName: "hostGridItemStyle" }] : /* istanbul ignore next */ []));
|
|
1105
996
|
this.hostGridItemClass = computed(() => {
|
|
1106
997
|
const cls = { ...this.hostFlexClass() };
|
|
1107
998
|
const g = this.gridItem();
|
|
999
|
+
// Mobile-first: full width on small screens so items stack vertically and don't overflow
|
|
1000
|
+
cls['ax-col-span-12'] = true;
|
|
1001
|
+
// Large screens: apply defined placement so multi-column layout works on desktop
|
|
1108
1002
|
if (g?.colSpan)
|
|
1109
1003
|
cls[`lg:ax-col-span-${g.colSpan}`] = true;
|
|
1110
1004
|
if (g?.colStart)
|
|
@@ -1118,14 +1012,14 @@ class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetCompon
|
|
|
1118
1012
|
if (g?.rowEnd)
|
|
1119
1013
|
cls[`lg:ax-row-end-${g.rowEnd}`] = true;
|
|
1120
1014
|
return cls;
|
|
1121
|
-
}, ...(ngDevMode ? [{ debugName: "hostGridItemClass" }] : []));
|
|
1122
|
-
this.hostClass = computed(() => this.hostGridItemClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
1123
|
-
this.hostStyle = computed(() => this.hostGridItemStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
1015
|
+
}, ...(ngDevMode ? [{ debugName: "hostGridItemClass" }] : /* istanbul ignore next */ []));
|
|
1016
|
+
this.hostClass = computed(() => this.hostGridItemClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
1017
|
+
this.hostStyle = computed(() => this.hostGridItemStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
1124
1018
|
}
|
|
1125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1126
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1019
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1020
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent }); }
|
|
1127
1021
|
}
|
|
1128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1022
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPGridItemBaseLayoutWidgetComponent, decorators: [{
|
|
1129
1023
|
type: Injectable
|
|
1130
1024
|
}] });
|
|
1131
1025
|
|
|
@@ -1134,27 +1028,27 @@ class AXPTableBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponen
|
|
|
1134
1028
|
super(...arguments);
|
|
1135
1029
|
this.hostTableClass = computed(() => ({
|
|
1136
1030
|
...this.blockClass(),
|
|
1137
|
-
}), ...(ngDevMode ? [{ debugName: "hostTableClass" }] : []));
|
|
1031
|
+
}), ...(ngDevMode ? [{ debugName: "hostTableClass" }] : /* istanbul ignore next */ []));
|
|
1138
1032
|
this.hostTableStyle = computed(() => {
|
|
1139
1033
|
const style = { ...this.blockStyle() };
|
|
1140
1034
|
style['overflow-x'] = 'auto';
|
|
1141
1035
|
return style;
|
|
1142
|
-
}, ...(ngDevMode ? [{ debugName: "hostTableStyle" }] : []));
|
|
1143
|
-
this.hostClass = computed(() => this.hostTableClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
1144
|
-
this.hostStyle = computed(() => this.hostTableStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
1036
|
+
}, ...(ngDevMode ? [{ debugName: "hostTableStyle" }] : /* istanbul ignore next */ []));
|
|
1037
|
+
this.hostClass = computed(() => this.hostTableClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
1038
|
+
this.hostStyle = computed(() => this.hostTableStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
1145
1039
|
}
|
|
1146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1147
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1040
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1041
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent }); }
|
|
1148
1042
|
}
|
|
1149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1043
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableBaseLayoutWidgetComponent, decorators: [{
|
|
1150
1044
|
type: Injectable
|
|
1151
1045
|
}] });
|
|
1152
1046
|
|
|
1153
1047
|
class AXPTableItemOpsBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
1154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1155
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1048
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1049
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent }); }
|
|
1156
1050
|
}
|
|
1157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1051
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemOpsBaseLayoutWidgetComponent, decorators: [{
|
|
1158
1052
|
type: Injectable
|
|
1159
1053
|
}] });
|
|
1160
1054
|
|
|
@@ -1164,57 +1058,105 @@ class AXPTableItemBaseLayoutWidgetComponent extends AXPTableItemOpsBaseLayoutWid
|
|
|
1164
1058
|
this.colSpan = computed(() => {
|
|
1165
1059
|
const v = this.options()?.colSpan;
|
|
1166
1060
|
return v ? Math.max(1, v) : 1;
|
|
1167
|
-
}, ...(ngDevMode ? [{ debugName: "colSpan" }] : []));
|
|
1061
|
+
}, ...(ngDevMode ? [{ debugName: "colSpan" }] : /* istanbul ignore next */ []));
|
|
1168
1062
|
this.rowSpan = computed(() => {
|
|
1169
1063
|
const v = this.options()?.rowSpan;
|
|
1170
1064
|
return v ? Math.max(1, v) : 1;
|
|
1171
|
-
}, ...(ngDevMode ? [{ debugName: "rowSpan" }] : []));
|
|
1172
|
-
this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : []));
|
|
1173
|
-
this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : []));
|
|
1065
|
+
}, ...(ngDevMode ? [{ debugName: "rowSpan" }] : /* istanbul ignore next */ []));
|
|
1066
|
+
this.hostClass = computed(() => this.blockClass(), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
1067
|
+
this.hostStyle = computed(() => this.blockStyle(), ...(ngDevMode ? [{ debugName: "hostStyle" }] : /* istanbul ignore next */ []));
|
|
1174
1068
|
}
|
|
1175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1176
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1069
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1070
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent }); }
|
|
1177
1071
|
}
|
|
1178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1072
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTableItemBaseLayoutWidgetComponent, decorators: [{
|
|
1179
1073
|
type: Injectable
|
|
1180
1074
|
}] });
|
|
1181
1075
|
|
|
1076
|
+
//#region ---- Imports ----
|
|
1077
|
+
/**
|
|
1078
|
+
* Injection token for widget definition providers.
|
|
1079
|
+
* Modules register their widget providers using this token (multi: true).
|
|
1080
|
+
*/
|
|
1081
|
+
const AXP_WIDGET_DEFINITION_PROVIDER = new InjectionToken('AXP_WIDGET_DEFINITION_PROVIDER', {
|
|
1082
|
+
factory: () => [],
|
|
1083
|
+
});
|
|
1084
|
+
//#endregion
|
|
1085
|
+
|
|
1086
|
+
//#region ---- Build widget map (shared with tooling / snapshot scripts) ----
|
|
1087
|
+
//TODO RECHECK THIS FUNCTION s.hosseini
|
|
1088
|
+
/**
|
|
1089
|
+
* Merges core + extended widgets the same way as AXPWidgetRegistryService.ensureBuilt().
|
|
1090
|
+
* Use with concrete providers (e.g. AXPCoreWidgetsProvider, AXPEntityWidgetsProvider) in Node scripts without DI.
|
|
1091
|
+
*/
|
|
1092
|
+
function buildWidgetRegistryMapFromProviders(providers) {
|
|
1093
|
+
const types = new Map();
|
|
1094
|
+
const AXPExtendedWidgets = [];
|
|
1095
|
+
for (const provider of providers) {
|
|
1096
|
+
const widgets = provider.getWidgets?.() ?? [];
|
|
1097
|
+
for (const w of widgets) {
|
|
1098
|
+
types.set(w.name, w);
|
|
1099
|
+
}
|
|
1100
|
+
const extended = provider.getExtendedWidgets?.() ?? [];
|
|
1101
|
+
AXPExtendedWidgets.push(...extended);
|
|
1102
|
+
}
|
|
1103
|
+
for (const { parentName, widget } of AXPExtendedWidgets) {
|
|
1104
|
+
const parent = types.get(parentName);
|
|
1105
|
+
if (parent) {
|
|
1106
|
+
const merged = merge({}, parent, widget);
|
|
1107
|
+
merged.name = widget.name;
|
|
1108
|
+
types.set(merged.name, merged);
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
1111
|
+
return types;
|
|
1112
|
+
}
|
|
1113
|
+
//#endregion
|
|
1114
|
+
//#region ---- Widget Registry Service (Token-Based) ----
|
|
1115
|
+
/**
|
|
1116
|
+
* Aggregates widgets from all AXP_WIDGET_DEFINITION_PROVIDER instances.
|
|
1117
|
+
* Token-based like AXP_MENU_PROVIDER / AXP_PERMISSION_DEFINITION_PROVIDER / AXP_SETTING_DEFINITION_PROVIDER.
|
|
1118
|
+
* No separate registry - widgets come solely from providers.
|
|
1119
|
+
*/
|
|
1182
1120
|
class AXPWidgetRegistryService {
|
|
1183
|
-
/**
|
|
1184
|
-
*
|
|
1185
|
-
*/
|
|
1186
1121
|
constructor() {
|
|
1187
|
-
this.
|
|
1188
|
-
|
|
1189
|
-
}
|
|
1190
|
-
register(widget) {
|
|
1191
|
-
this.types.set(widget.name, widget);
|
|
1122
|
+
this._providers = inject(AXP_WIDGET_DEFINITION_PROVIDER, { optional: true }) ?? [];
|
|
1123
|
+
this._types = null;
|
|
1192
1124
|
}
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
this.
|
|
1125
|
+
/**
|
|
1126
|
+
* Lazy-build widget map from all providers.
|
|
1127
|
+
*/
|
|
1128
|
+
ensureBuilt() {
|
|
1129
|
+
if (this._types)
|
|
1130
|
+
return this._types;
|
|
1131
|
+
this._types = buildWidgetRegistryMapFromProviders(this._providers);
|
|
1132
|
+
return this._types;
|
|
1198
1133
|
}
|
|
1199
1134
|
resolve(name) {
|
|
1200
|
-
const widget = this.
|
|
1135
|
+
const widget = this.ensureBuilt().get(name);
|
|
1201
1136
|
if (!widget) {
|
|
1202
1137
|
throw new Error(`Widget with name "${name}" does not exist.`);
|
|
1203
1138
|
}
|
|
1204
1139
|
return widget;
|
|
1205
1140
|
}
|
|
1141
|
+
/**
|
|
1142
|
+
* Registered widget config when present; otherwise `undefined`. Does not throw — use when
|
|
1143
|
+
* {@link resolve}'s value may be a non-widget id (e.g. data-source row id in dynamic field configurator).
|
|
1144
|
+
*/
|
|
1145
|
+
getOptional(name) {
|
|
1146
|
+
return this.ensureBuilt().get(name);
|
|
1147
|
+
}
|
|
1206
1148
|
all() {
|
|
1207
|
-
return Array.from(this.
|
|
1149
|
+
return Array.from(this.ensureBuilt().values());
|
|
1208
1150
|
}
|
|
1209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1210
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1152
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetRegistryService, providedIn: 'root' }); }
|
|
1211
1153
|
}
|
|
1212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetRegistryService, decorators: [{
|
|
1213
1155
|
type: Injectable,
|
|
1214
1156
|
args: [{
|
|
1215
1157
|
providedIn: 'root',
|
|
1216
1158
|
}]
|
|
1217
|
-
}]
|
|
1159
|
+
}] });
|
|
1218
1160
|
|
|
1219
1161
|
class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
1220
1162
|
constructor() {
|
|
@@ -1222,8 +1164,8 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
1222
1164
|
this.widgetRegistery = inject(AXPWidgetRegistryService);
|
|
1223
1165
|
this.grid = inject(AXBaseDataTable);
|
|
1224
1166
|
this.expressionEvaluator = inject(AXPExpressionEvaluatorService);
|
|
1225
|
-
this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: "mergedOptions" }] : []));
|
|
1226
|
-
this.loadingRow = signal(null, ...(ngDevMode ? [{ debugName: "loadingRow" }] : []));
|
|
1167
|
+
this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: "mergedOptions" }] : /* istanbul ignore next */ []));
|
|
1168
|
+
this.loadingRow = signal(null, ...(ngDevMode ? [{ debugName: "loadingRow" }] : /* istanbul ignore next */ []));
|
|
1227
1169
|
this.rowInjectorsCache = new Map();
|
|
1228
1170
|
this.hasExpressions = false;
|
|
1229
1171
|
this.pendingEvaluations = new Set();
|
|
@@ -1464,8 +1406,8 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
1464
1406
|
}
|
|
1465
1407
|
return rowInjector;
|
|
1466
1408
|
}
|
|
1467
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1468
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1409
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetColumnRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1410
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPWidgetColumnRendererComponent, isStandalone: false, selector: "axp-widget-column-renderer", inputs: { caption: "caption", customExpandIcon: "customExpandIcon", customCollapseIcon: "customCollapseIcon", customWidth: "customWidth", node: "node", footerTemplate: "footerTemplate", expandHandler: "expandHandler", cellTemplate: "cellTemplate", headerTemplate: "headerTemplate" }, providers: [
|
|
1469
1411
|
AXPWidgetCoreService,
|
|
1470
1412
|
{ provide: AXDataTableColumnComponent, useExisting: AXPWidgetColumnRendererComponent },
|
|
1471
1413
|
], viewQueries: [{ propertyName: "_contentFooterTemplate", first: true, predicate: ["footer"], descendants: true }, { propertyName: "_contentCellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
@@ -1499,9 +1441,9 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
|
1499
1441
|
</div>
|
|
1500
1442
|
</ng-template>
|
|
1501
1443
|
<ng-template #footer></ng-template>
|
|
1502
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"
|
|
1444
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1503
1445
|
}
|
|
1504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1446
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetColumnRendererComponent, decorators: [{
|
|
1505
1447
|
type: Component,
|
|
1506
1448
|
args: [{
|
|
1507
1449
|
selector: 'axp-widget-column-renderer',
|
|
@@ -1581,15 +1523,15 @@ class AXPWidgetContainerComponent {
|
|
|
1581
1523
|
this.builderService.setFunctions(v);
|
|
1582
1524
|
}
|
|
1583
1525
|
constructor() {
|
|
1584
|
-
this.contextService = inject(
|
|
1526
|
+
this.contextService = inject(AXPContextStore);
|
|
1585
1527
|
this.builderService = inject(AXPWidgetCoreService);
|
|
1586
1528
|
this.onContextChanged = new EventEmitter();
|
|
1587
1529
|
this.status = computed(() => {
|
|
1588
1530
|
return this.builderService.status();
|
|
1589
|
-
}, ...(ngDevMode ? [{ debugName: "status" }] : []));
|
|
1531
|
+
}, ...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
1590
1532
|
this.isBusy = computed(() => {
|
|
1591
1533
|
return this.builderService.isBusy();
|
|
1592
|
-
}, ...(ngDevMode ? [{ debugName: "isBusy" }] : []));
|
|
1534
|
+
}, ...(ngDevMode ? [{ debugName: "isBusy" }] : /* istanbul ignore next */ []));
|
|
1593
1535
|
effect(() => {
|
|
1594
1536
|
if (this.contextService.isChanged()) {
|
|
1595
1537
|
this.onContextChanged.emit(this.contextService.changeEvent());
|
|
@@ -1602,17 +1544,17 @@ class AXPWidgetContainerComponent {
|
|
|
1602
1544
|
find(name) {
|
|
1603
1545
|
return this.builderService.waitForWidget(name);
|
|
1604
1546
|
}
|
|
1605
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1606
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1547
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1548
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPWidgetContainerComponent, isStandalone: false, selector: "axp-widgets-container", inputs: { context: "context", functions: "functions" }, outputs: { onContextChanged: "onContextChanged" }, host: { styleAttribute: "display: contents;" }, providers: [AXPWidgetCoreService, AXPContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1607
1549
|
}
|
|
1608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetContainerComponent, decorators: [{
|
|
1609
1551
|
type: Component,
|
|
1610
1552
|
args: [{
|
|
1611
1553
|
selector: 'axp-widgets-container',
|
|
1612
1554
|
template: `<ng-content></ng-content>`,
|
|
1613
1555
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1614
1556
|
host: { style: 'display: contents;' },
|
|
1615
|
-
providers: [AXPWidgetCoreService,
|
|
1557
|
+
providers: [AXPWidgetCoreService, AXPContextStore],
|
|
1616
1558
|
standalone: false,
|
|
1617
1559
|
}]
|
|
1618
1560
|
}], ctorParameters: () => [], propDecorators: { onContextChanged: [{
|
|
@@ -1624,12 +1566,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1624
1566
|
}] } });
|
|
1625
1567
|
|
|
1626
1568
|
class AXPWidgetPlaceholderComponent {
|
|
1627
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1628
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1569
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1570
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPWidgetPlaceholderComponent, isStandalone: true, selector: "axp-widget-placeholder", ngImport: i0, template: `<div>
|
|
1629
1571
|
<ax-skeleton class="ax-w-full ax-h-10 ax-rounded-md"></ax-skeleton>
|
|
1630
1572
|
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i1$1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1631
1573
|
}
|
|
1632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetPlaceholderComponent, decorators: [{
|
|
1633
1575
|
type: Component,
|
|
1634
1576
|
args: [{
|
|
1635
1577
|
selector: 'axp-widget-placeholder',
|
|
@@ -1646,11 +1588,11 @@ class AXPWidgetRendererDirective {
|
|
|
1646
1588
|
//#endregion
|
|
1647
1589
|
//#endregion
|
|
1648
1590
|
constructor() {
|
|
1649
|
-
this.parentNode = input(...(ngDevMode ? [undefined, { debugName: "parentNode" }] : []));
|
|
1650
|
-
this.index = input(...(ngDevMode ? [undefined, { debugName: "index" }] : []));
|
|
1651
|
-
this.mode = input.required(...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
1652
|
-
this.node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
|
|
1653
|
-
this._options = signal({}, ...(ngDevMode ? [{ debugName: "_options" }] : []));
|
|
1591
|
+
this.parentNode = input(...(ngDevMode ? [undefined, { debugName: "parentNode" }] : /* istanbul ignore next */ []));
|
|
1592
|
+
this.index = input(...(ngDevMode ? [undefined, { debugName: "index" }] : /* istanbul ignore next */ []));
|
|
1593
|
+
this.mode = input.required(...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
1594
|
+
this.node = input.required(...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
|
|
1595
|
+
this._options = signal({}, ...(ngDevMode ? [{ debugName: "_options" }] : /* istanbul ignore next */ []));
|
|
1654
1596
|
this.options = this._options.asReadonly();
|
|
1655
1597
|
this.onOptionsChanged = output();
|
|
1656
1598
|
this.onValueChanged = output();
|
|
@@ -1659,22 +1601,22 @@ class AXPWidgetRendererDirective {
|
|
|
1659
1601
|
/**
|
|
1660
1602
|
* Signal that emits the component reference when it's ready
|
|
1661
1603
|
*/
|
|
1662
|
-
this._componentRefSignal = signal(null, ...(ngDevMode ? [{ debugName: "_componentRefSignal" }] : []));
|
|
1604
|
+
this._componentRefSignal = signal(null, ...(ngDevMode ? [{ debugName: "_componentRefSignal" }] : /* istanbul ignore next */ []));
|
|
1663
1605
|
this.componentRefSignal = this._componentRefSignal.asReadonly();
|
|
1664
1606
|
//#endregion
|
|
1665
1607
|
//#region ---- Properties ----
|
|
1666
|
-
this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: "mergedOptions" }] : []));
|
|
1608
|
+
this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: "mergedOptions" }] : /* istanbul ignore next */ []));
|
|
1667
1609
|
this.injector = inject(Injector);
|
|
1668
1610
|
this.builderService = inject(AXPWidgetCoreService);
|
|
1669
|
-
this.contextService = inject(
|
|
1611
|
+
this.contextService = inject(AXPContextStore);
|
|
1670
1612
|
this.widgetRegistery = inject(AXPWidgetRegistryService);
|
|
1671
1613
|
this.unsubscriber = inject(AXUnsubscriber);
|
|
1672
1614
|
this.translateService = inject(AXTranslationService);
|
|
1673
1615
|
this.widgetService = inject(AXPWidgetRegistryService);
|
|
1674
1616
|
this.expressionEvaluator = inject(AXPExpressionEvaluatorService);
|
|
1675
1617
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
1676
|
-
this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
1677
|
-
this.isVisible = signal(true, ...(ngDevMode ? [{ debugName: "isVisible" }] : []));
|
|
1618
|
+
this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
1619
|
+
this.isVisible = signal(true, ...(ngDevMode ? [{ debugName: "isVisible" }] : /* istanbul ignore next */ []));
|
|
1678
1620
|
this.expressionEvaluators = new Map();
|
|
1679
1621
|
this.renderTimeoutId = null;
|
|
1680
1622
|
this.hasInitialRender = false;
|
|
@@ -1852,77 +1794,88 @@ class AXPWidgetRendererDirective {
|
|
|
1852
1794
|
}
|
|
1853
1795
|
return false;
|
|
1854
1796
|
}
|
|
1797
|
+
/**
|
|
1798
|
+
* True when a context store path used in an expression (`context.eval`, `context.options`) is
|
|
1799
|
+
* affected by `changedPath`.
|
|
1800
|
+
*/
|
|
1801
|
+
contextStorePathDependsOnChangedPath(evalPath, changedPath) {
|
|
1802
|
+
const normalizePath = (p) => {
|
|
1803
|
+
if (!p)
|
|
1804
|
+
return p;
|
|
1805
|
+
const parts = p.split('.');
|
|
1806
|
+
const last = parts[parts.length - 1];
|
|
1807
|
+
if (last && last.endsWith('Id')) {
|
|
1808
|
+
parts.splice(parts.length - 1, 1, last.slice(0, -2), 'id');
|
|
1809
|
+
}
|
|
1810
|
+
return parts.join('.');
|
|
1811
|
+
};
|
|
1812
|
+
const isSegmentSuffix = (a, b) => {
|
|
1813
|
+
if (!a || !b)
|
|
1814
|
+
return false;
|
|
1815
|
+
const pa = a.split('.');
|
|
1816
|
+
const pb = b.split('.');
|
|
1817
|
+
if (pb.length > pa.length)
|
|
1818
|
+
return false;
|
|
1819
|
+
for (let i = 1; i <= pb.length; i++) {
|
|
1820
|
+
if (pa[pa.length - i] !== pb[pb.length - i])
|
|
1821
|
+
return false;
|
|
1822
|
+
}
|
|
1823
|
+
return true;
|
|
1824
|
+
};
|
|
1825
|
+
const evalNorm = normalizePath(evalPath);
|
|
1826
|
+
const changedNorm = normalizePath(changedPath);
|
|
1827
|
+
const rawMatch = evalPath === changedPath ||
|
|
1828
|
+
evalPath.startsWith(changedPath + '.') ||
|
|
1829
|
+
changedPath.startsWith(evalPath + '.') ||
|
|
1830
|
+
isSegmentSuffix(evalPath, changedPath) ||
|
|
1831
|
+
isSegmentSuffix(changedPath, evalPath);
|
|
1832
|
+
const normMatch = evalNorm === changedNorm ||
|
|
1833
|
+
evalNorm.startsWith(changedNorm + '.') ||
|
|
1834
|
+
changedNorm.startsWith(evalNorm + '.') ||
|
|
1835
|
+
isSegmentSuffix(evalNorm, changedNorm) ||
|
|
1836
|
+
isSegmentSuffix(changedNorm, evalNorm);
|
|
1837
|
+
if (rawMatch || normMatch) {
|
|
1838
|
+
return true;
|
|
1839
|
+
}
|
|
1840
|
+
return this.isPathAlias(evalPath, changedPath);
|
|
1841
|
+
}
|
|
1842
|
+
/**
|
|
1843
|
+
* Whether an expression template string reads context store paths affected by `changedPath`.
|
|
1844
|
+
*/
|
|
1845
|
+
expressionTextDependsOnContextPath(expressionValue, changedPath) {
|
|
1846
|
+
const contextEvalRegex = /context\.eval\(['"]([^'\"]+)['"]\)/g;
|
|
1847
|
+
let match;
|
|
1848
|
+
while ((match = contextEvalRegex.exec(expressionValue)) !== null) {
|
|
1849
|
+
if (this.contextStorePathDependsOnChangedPath(match[1], changedPath)) {
|
|
1850
|
+
return true;
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
const contextOptionsQuoted = /context\.options\(\s*['"]([^'"]*)['"]\s*\)/g;
|
|
1854
|
+
while ((match = contextOptionsQuoted.exec(expressionValue)) !== null) {
|
|
1855
|
+
const sub = match[1];
|
|
1856
|
+
const evalPath = sub === '' ? 'options' : `options.${sub}`;
|
|
1857
|
+
if (this.contextStorePathDependsOnChangedPath(evalPath, changedPath)) {
|
|
1858
|
+
return true;
|
|
1859
|
+
}
|
|
1860
|
+
}
|
|
1861
|
+
const contextOptionsEmpty = /context\.options\(\s*\)/g;
|
|
1862
|
+
while ((match = contextOptionsEmpty.exec(expressionValue)) !== null) {
|
|
1863
|
+
if (this.contextStorePathDependsOnChangedPath('options', changedPath)) {
|
|
1864
|
+
return true;
|
|
1865
|
+
}
|
|
1866
|
+
}
|
|
1867
|
+
return false;
|
|
1868
|
+
}
|
|
1855
1869
|
hasExpressionDependency(changedPath) {
|
|
1856
|
-
// Check if any cached expressions depend on the changed path
|
|
1857
1870
|
for (const [path, evaluator] of this.expressionEvaluators) {
|
|
1858
|
-
// Check if the expression path itself contains the changed path
|
|
1859
1871
|
if (path.includes(changedPath)) {
|
|
1860
1872
|
return true;
|
|
1861
1873
|
}
|
|
1862
|
-
// Parse the actual expression content to check for context.eval() calls
|
|
1863
|
-
// We need to get the original expression string to analyze it
|
|
1864
1874
|
const node = this.node();
|
|
1865
1875
|
const expressionValue = this.getExpressionValueFromNode(node, path);
|
|
1866
1876
|
if (expressionValue && typeof expressionValue === 'string') {
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
let match;
|
|
1870
|
-
while ((match = contextEvalRegex.exec(expressionValue)) !== null) {
|
|
1871
|
-
const evalPath = match[1];
|
|
1872
|
-
// Normalize Id-suffixed segments to dot-id form (e.g., 'typeId' -> 'type.id', 'person.typeId' -> 'person.type.id')
|
|
1873
|
-
const normalizePath = (p) => {
|
|
1874
|
-
if (!p)
|
|
1875
|
-
return p;
|
|
1876
|
-
const parts = p.split('.');
|
|
1877
|
-
const last = parts[parts.length - 1];
|
|
1878
|
-
if (last && last.endsWith('Id')) {
|
|
1879
|
-
parts.splice(parts.length - 1, 1, last.slice(0, -2), 'id');
|
|
1880
|
-
}
|
|
1881
|
-
return parts.join('.');
|
|
1882
|
-
};
|
|
1883
|
-
const isSegmentSuffix = (a, b) => {
|
|
1884
|
-
if (!a || !b)
|
|
1885
|
-
return false;
|
|
1886
|
-
const pa = a.split('.');
|
|
1887
|
-
const pb = b.split('.');
|
|
1888
|
-
if (pb.length > pa.length)
|
|
1889
|
-
return false;
|
|
1890
|
-
for (let i = 1; i <= pb.length; i++) {
|
|
1891
|
-
if (pa[pa.length - i] !== pb[pb.length - i])
|
|
1892
|
-
return false;
|
|
1893
|
-
}
|
|
1894
|
-
return true;
|
|
1895
|
-
};
|
|
1896
|
-
const evalNorm = normalizePath(evalPath);
|
|
1897
|
-
const changedNorm = normalizePath(changedPath);
|
|
1898
|
-
// Debug log for dependency check
|
|
1899
|
-
// console.log(
|
|
1900
|
-
// `🧭 [${this.node().type}] dep-check expr='${path}', changed='${changedPath}', eval='${evalPath}', evalNorm='${evalNorm}', changedNorm='${changedNorm}'`,
|
|
1901
|
-
// );
|
|
1902
|
-
// Generic direct and hierarchical dependency checks (raw and normalized)
|
|
1903
|
-
const rawMatch = evalPath === changedPath ||
|
|
1904
|
-
evalPath.startsWith(changedPath + '.') ||
|
|
1905
|
-
changedPath.startsWith(evalPath + '.') ||
|
|
1906
|
-
isSegmentSuffix(evalPath, changedPath) ||
|
|
1907
|
-
isSegmentSuffix(changedPath, evalPath);
|
|
1908
|
-
const normMatch = evalNorm === changedNorm ||
|
|
1909
|
-
evalNorm.startsWith(changedNorm + '.') ||
|
|
1910
|
-
changedNorm.startsWith(evalNorm + '.') ||
|
|
1911
|
-
isSegmentSuffix(evalNorm, changedNorm) ||
|
|
1912
|
-
isSegmentSuffix(changedNorm, evalNorm);
|
|
1913
|
-
if (rawMatch || normMatch) {
|
|
1914
|
-
// console.log(
|
|
1915
|
-
// `🔍 [${this.node().type}] Expression '${path}' depends on '${changedPath}' via context.eval('${evalPath}') (generic match)`,
|
|
1916
|
-
// );
|
|
1917
|
-
return true;
|
|
1918
|
-
}
|
|
1919
|
-
// Check for path aliases/mappings (e.g., typeId.id <-> type.id)
|
|
1920
|
-
if (this.isPathAlias(evalPath, changedPath)) {
|
|
1921
|
-
// console.log(
|
|
1922
|
-
// `🔍 [${this.node().type}] Expression '${path}' depends on '${changedPath}' via context.eval('${evalPath}') (path alias)`,
|
|
1923
|
-
// );
|
|
1924
|
-
return true;
|
|
1925
|
-
}
|
|
1877
|
+
if (this.expressionTextDependsOnContextPath(expressionValue, changedPath)) {
|
|
1878
|
+
return true;
|
|
1926
1879
|
}
|
|
1927
1880
|
}
|
|
1928
1881
|
}
|
|
@@ -2009,20 +1962,8 @@ class AXPWidgetRendererDirective {
|
|
|
2009
1962
|
const visibility = node.options?.['visible'] || this.mergedOptions()?.visible;
|
|
2010
1963
|
if (!visibility || typeof visibility !== 'string')
|
|
2011
1964
|
return false;
|
|
2012
|
-
// Check if visibility expression depends on the changed path
|
|
2013
1965
|
if (this.expressionEvaluator.isExpression(visibility)) {
|
|
2014
|
-
|
|
2015
|
-
const contextEvalRegex = /context\.eval\(['"]([^'\"]+)['"]\)/g;
|
|
2016
|
-
let match;
|
|
2017
|
-
while ((match = contextEvalRegex.exec(visibility)) !== null) {
|
|
2018
|
-
const evalPath = match[1];
|
|
2019
|
-
// Check for direct or hierarchical dependency
|
|
2020
|
-
if (evalPath === changedPath ||
|
|
2021
|
-
evalPath.startsWith(changedPath + '.') ||
|
|
2022
|
-
changedPath.startsWith(evalPath + '.')) {
|
|
2023
|
-
return true;
|
|
2024
|
-
}
|
|
2025
|
-
}
|
|
1966
|
+
return this.expressionTextDependsOnContextPath(visibility, changedPath);
|
|
2026
1967
|
}
|
|
2027
1968
|
return false;
|
|
2028
1969
|
}
|
|
@@ -2438,6 +2379,17 @@ class AXPWidgetRendererDirective {
|
|
|
2438
2379
|
isDirty: () => {
|
|
2439
2380
|
return this.contextService.isDirty();
|
|
2440
2381
|
},
|
|
2382
|
+
/**
|
|
2383
|
+
* Host/widget-under-edit `options` from the shared context store (same values as
|
|
2384
|
+
* `context.eval('options' + (path ? '.' + path : ''))`), not `widget.options` on the nested
|
|
2385
|
+
* property field instance. Uses one `getValue` so smart-path behavior matches `context.eval`.
|
|
2386
|
+
*/
|
|
2387
|
+
options: (path) => {
|
|
2388
|
+
if (path == null || path === '') {
|
|
2389
|
+
return this.contextService.getValue('options');
|
|
2390
|
+
}
|
|
2391
|
+
return this.contextService.getValue(`options.${path}`);
|
|
2392
|
+
},
|
|
2441
2393
|
};
|
|
2442
2394
|
}
|
|
2443
2395
|
getEventScope() {
|
|
@@ -2476,6 +2428,16 @@ class AXPWidgetRendererDirective {
|
|
|
2476
2428
|
}
|
|
2477
2429
|
getWidgetScope() {
|
|
2478
2430
|
return {
|
|
2431
|
+
/** Resolved options for this renderer's widget instance (not the host / property-viewer target). */
|
|
2432
|
+
options: (path) => {
|
|
2433
|
+
const opts = this.instance && typeof this.instance.options === 'function'
|
|
2434
|
+
? this.instance.options()
|
|
2435
|
+
: this.mergedOptions();
|
|
2436
|
+
if (path == null || path === '') {
|
|
2437
|
+
return opts;
|
|
2438
|
+
}
|
|
2439
|
+
return getSmart(opts, path);
|
|
2440
|
+
},
|
|
2479
2441
|
call: (name, ...args) => {
|
|
2480
2442
|
this.instance.call(name, ...args);
|
|
2481
2443
|
},
|
|
@@ -2581,14 +2543,14 @@ class AXPWidgetRendererDirective {
|
|
|
2581
2543
|
// console.error('Error evaluating action expression:', templateExpression, error);
|
|
2582
2544
|
}
|
|
2583
2545
|
}
|
|
2584
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2585
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
2546
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2547
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: AXPWidgetRendererDirective, isStandalone: false, selector: "[axp-widget-renderer]", inputs: { parentNode: { classPropertyName: "parentNode", publicName: "parentNode", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onOptionsChanged: "onOptionsChanged", onValueChanged: "onValueChanged", onLoad: "onLoad" }, providers: [
|
|
2586
2548
|
{
|
|
2587
2549
|
provide: AXUnsubscriber,
|
|
2588
2550
|
},
|
|
2589
2551
|
], exportAs: ["widgetRenderer"], usesOnChanges: true, ngImport: i0 }); }
|
|
2590
2552
|
}
|
|
2591
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetRendererDirective, decorators: [{
|
|
2592
2554
|
type: Directive,
|
|
2593
2555
|
args: [{
|
|
2594
2556
|
selector: '[axp-widget-renderer]',
|
|
@@ -2604,63 +2566,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
2604
2566
|
|
|
2605
2567
|
const COMPONENTS = [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective];
|
|
2606
2568
|
class AXPWidgetCoreModule {
|
|
2607
|
-
static
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
providers: [
|
|
2611
|
-
{
|
|
2612
|
-
provide: 'AXPWidgetCoreModuleFactory',
|
|
2613
|
-
useFactory: (registry) => async () => {
|
|
2614
|
-
await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);
|
|
2615
|
-
await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);
|
|
2616
|
-
},
|
|
2617
|
-
deps: [AXPWidgetRegistryService],
|
|
2618
|
-
multi: true,
|
|
2619
|
-
},
|
|
2620
|
-
],
|
|
2621
|
-
};
|
|
2622
|
-
}
|
|
2623
|
-
static forChild(config) {
|
|
2624
|
-
return {
|
|
2625
|
-
ngModule: AXPWidgetCoreModule,
|
|
2626
|
-
providers: [
|
|
2627
|
-
{
|
|
2628
|
-
provide: 'AXPWidgetCoreModuleFactory',
|
|
2629
|
-
useFactory: (registry) => async () => {
|
|
2630
|
-
await Promise.all(config?.widgets?.map((w) => Promise.resolve(registry.register(w))) || []);
|
|
2631
|
-
await Promise.all(config?.extendedWidgets?.map((ew) => Promise.resolve(registry.extend(ew.parentName, ew.widget))) || []);
|
|
2632
|
-
},
|
|
2633
|
-
deps: [AXPWidgetRegistryService],
|
|
2634
|
-
multi: true,
|
|
2635
|
-
},
|
|
2636
|
-
],
|
|
2637
|
-
};
|
|
2638
|
-
}
|
|
2639
|
-
/**
|
|
2640
|
-
* @ignore
|
|
2641
|
-
*/
|
|
2642
|
-
constructor(instances) {
|
|
2643
|
-
instances?.forEach((f) => {
|
|
2644
|
-
f();
|
|
2645
|
-
});
|
|
2646
|
-
}
|
|
2647
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPWidgetCoreModule, deps: [{ token: 'AXPWidgetCoreModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2648
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.16", ngImport: i0, type: AXPWidgetCoreModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }
|
|
2649
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AXPWidgetCoreModule, imports: [CommonModule, PortalModule, AXSkeletonModule, CommonModule, AXTranslationModule] }); }
|
|
2569
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2570
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreModule, declarations: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective], imports: [CommonModule, PortalModule, AXSkeletonModule, AXTranslationModule], exports: [AXPWidgetContainerComponent, AXPWidgetColumnRendererComponent, AXPWidgetRendererDirective] }); }
|
|
2571
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreModule, imports: [CommonModule, PortalModule, AXSkeletonModule, AXTranslationModule] }); }
|
|
2650
2572
|
}
|
|
2651
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetCoreModule, decorators: [{
|
|
2652
2574
|
type: NgModule,
|
|
2653
2575
|
args: [{
|
|
2654
|
-
imports: [CommonModule, PortalModule, AXSkeletonModule,
|
|
2576
|
+
imports: [CommonModule, PortalModule, AXSkeletonModule, AXTranslationModule],
|
|
2655
2577
|
exports: [...COMPONENTS],
|
|
2656
2578
|
declarations: [...COMPONENTS],
|
|
2579
|
+
providers: [],
|
|
2657
2580
|
}]
|
|
2658
|
-
}]
|
|
2659
|
-
type: Optional
|
|
2660
|
-
}, {
|
|
2661
|
-
type: Inject,
|
|
2662
|
-
args: ['AXPWidgetCoreModuleFactory']
|
|
2663
|
-
}] }] });
|
|
2581
|
+
}] });
|
|
2664
2582
|
|
|
2665
2583
|
class AXPPropertyEditorHelper {
|
|
2666
2584
|
static expandShorthand(values) {
|
|
@@ -2944,6 +2862,13 @@ class AXPWidgetSerializationHelper {
|
|
|
2944
2862
|
}
|
|
2945
2863
|
//#endregion
|
|
2946
2864
|
|
|
2865
|
+
/** Normalizes widget categories to an array for iteration and serialization. */
|
|
2866
|
+
function normalizeWidgetCategories(categories) {
|
|
2867
|
+
if (categories == null) {
|
|
2868
|
+
return [];
|
|
2869
|
+
}
|
|
2870
|
+
return Array.isArray(categories) ? categories : [categories];
|
|
2871
|
+
}
|
|
2947
2872
|
const AXP_WIDGETS_LAYOUT_CATEGORY = {
|
|
2948
2873
|
name: 'layout',
|
|
2949
2874
|
order: 1,
|
|
@@ -2964,11 +2889,18 @@ const AXP_WIDGETS_ADVANCE_CATEGORY = {
|
|
|
2964
2889
|
order: 4,
|
|
2965
2890
|
title: 'Advance',
|
|
2966
2891
|
};
|
|
2892
|
+
/** Widgets exposed to AI assistants for structured rendering (see Widgets:GetForAI). */
|
|
2893
|
+
const AXP_WIDGETS_AI_CATEGORY = {
|
|
2894
|
+
name: 'ai',
|
|
2895
|
+
order: 5,
|
|
2896
|
+
title: 'AI',
|
|
2897
|
+
};
|
|
2967
2898
|
const AXP_WIDGETS_CATEGORIES = [
|
|
2968
2899
|
AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
2969
2900
|
AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2970
2901
|
AXP_WIDGETS_ACTION_CATEGORY,
|
|
2971
2902
|
AXP_WIDGETS_ADVANCE_CATEGORY,
|
|
2903
|
+
AXP_WIDGETS_AI_CATEGORY,
|
|
2972
2904
|
];
|
|
2973
2905
|
|
|
2974
2906
|
var AXPWidgetGroupEnum;
|
|
@@ -2983,9 +2915,36 @@ var AXPWidgetGroupEnum;
|
|
|
2983
2915
|
AXPWidgetGroupEnum["UtilityWidget"] = "utility-widget";
|
|
2984
2916
|
})(AXPWidgetGroupEnum || (AXPWidgetGroupEnum = {}));
|
|
2985
2917
|
|
|
2918
|
+
//#region ---- Helpers ----
|
|
2919
|
+
/**
|
|
2920
|
+
* True when the widget declares the AI category (see {@link AXP_WIDGETS_AI_CATEGORY}).
|
|
2921
|
+
*/
|
|
2922
|
+
function hasAiWidgetCategory(config) {
|
|
2923
|
+
return normalizeWidgetCategories(config.categories).some((c) => c.name === AXP_WIDGETS_AI_CATEGORY.name);
|
|
2924
|
+
}
|
|
2925
|
+
//#endregion
|
|
2926
|
+
//#region ---- Public API ----
|
|
2927
|
+
/**
|
|
2928
|
+
* Resolves AI catalog visibility using {@link AXPWidgetConfig.aiCatalog} and the AI widget category.
|
|
2929
|
+
* - `exclude`: never listed.
|
|
2930
|
+
* - `include`: always listed (override when the widget cannot declare the AI category yet).
|
|
2931
|
+
* - `inherit` / omitted: listed only if {@link hasAiWidgetCategory} is true.
|
|
2932
|
+
*/
|
|
2933
|
+
function isWidgetAiCatalogIncluded(config) {
|
|
2934
|
+
const mode = config.aiCatalog ?? 'inherit';
|
|
2935
|
+
if (mode === 'exclude') {
|
|
2936
|
+
return false;
|
|
2937
|
+
}
|
|
2938
|
+
if (mode === 'include') {
|
|
2939
|
+
return true;
|
|
2940
|
+
}
|
|
2941
|
+
return hasAiWidgetCategory(config);
|
|
2942
|
+
}
|
|
2943
|
+
//#endregion
|
|
2944
|
+
|
|
2986
2945
|
/**
|
|
2987
2946
|
* Generated bundle index. Do not edit.
|
|
2988
2947
|
*/
|
|
2989
2948
|
|
|
2990
|
-
export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent,
|
|
2949
|
+
export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, hasAiWidgetCategory, isWidgetAiCatalogIncluded, normalizeWidgetCategories };
|
|
2991
2950
|
//# sourceMappingURL=acorex-platform-layout-widget-core.mjs.map
|