@acorex/platform 20.6.0-next.19 → 20.6.0-next.20
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/common/index.d.ts +2 -2
- package/core/index.d.ts +1 -0
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +38 -117
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1 -9
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +2725 -1727
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +2 -1
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs} +2 -2
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs} +2 -2
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +5 -5
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-xtWnr98z.mjs → acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BbACUabi.mjs → acorex-platform-themes-default-entity-master-list-view.component-CenhnHXi.mjs} +453 -31
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CenhnHXi.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +5 -5
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/layout/builder/index.d.ts +6 -33
- package/layout/entity/index.d.ts +145 -22
- package/package.json +13 -13
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs +0 -83
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-xtWnr98z.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BbACUabi.mjs.map +0 -1
|
@@ -369,6 +369,7 @@ interface InheritanceContext {
|
|
|
369
369
|
readonly?: boolean | string;
|
|
370
370
|
direction?: 'rtl' | 'ltr';
|
|
371
371
|
visible?: boolean | string;
|
|
372
|
+
defaultValue?: any;
|
|
372
373
|
}
|
|
373
374
|
interface InheritedProperties {
|
|
374
375
|
mode: AXPWidgetRenderMode;
|
|
@@ -425,6 +426,7 @@ interface IWidgetBuilder {
|
|
|
425
426
|
visible(condition: boolean | string): IWidgetBuilder;
|
|
426
427
|
disabled(condition: boolean | string): IWidgetBuilder;
|
|
427
428
|
readonly(condition: boolean | string): IWidgetBuilder;
|
|
429
|
+
defaultValue(defaultValue: any): IWidgetBuilder;
|
|
428
430
|
direction(direction: 'rtl' | 'ltr'): IWidgetBuilder;
|
|
429
431
|
withInheritanceContext(context: InheritanceContext): IWidgetBuilder;
|
|
430
432
|
getInheritanceContext(): InheritanceContext;
|
|
@@ -522,6 +524,7 @@ interface IFormFieldBuilder extends IBaseContainerBuilder<IFormFieldBuilder>, IL
|
|
|
522
524
|
setOptions(options: AXPFormFieldOptions): IFormFieldBuilder;
|
|
523
525
|
setLabel(label: string): IFormFieldBuilder;
|
|
524
526
|
setShowLabel(showLabel: boolean): IFormFieldBuilder;
|
|
527
|
+
defaultValue(value: any): IFormFieldBuilder;
|
|
525
528
|
textBox(options?: Omit<TextBoxOptions, 'path'>): IFormFieldBuilder;
|
|
526
529
|
largeTextBox(options?: Omit<LargeTextBoxOptions, 'path'>): IFormFieldBuilder;
|
|
527
530
|
richText(options?: Omit<RichTextOptions, 'path'>): IFormFieldBuilder;
|
|
@@ -612,29 +615,12 @@ interface IStepWizardBuilder extends IBaseContainerBuilder<IStepWizardBuilder>,
|
|
|
612
615
|
|
|
613
616
|
declare class AXPLayoutRendererComponent implements OnInit {
|
|
614
617
|
#private;
|
|
615
|
-
private evaluatorService;
|
|
616
618
|
private conversionService;
|
|
617
|
-
/**
|
|
618
|
-
* Tracks the latest scheduled evaluation to ensure last-write-wins for async evaluate
|
|
619
|
-
*/
|
|
620
|
-
private evaluationRunId;
|
|
621
619
|
/**
|
|
622
620
|
* RxJS subjects for context management
|
|
623
621
|
*/
|
|
624
622
|
private contextUpdateSubject;
|
|
625
623
|
private contextChangeSubject;
|
|
626
|
-
/**
|
|
627
|
-
* Cache for expression evaluation results
|
|
628
|
-
*/
|
|
629
|
-
private expressionCache;
|
|
630
|
-
/**
|
|
631
|
-
* Cache for widget tree comparisons
|
|
632
|
-
*/
|
|
633
|
-
private widgetTreeCache;
|
|
634
|
-
/**
|
|
635
|
-
* Last layout hash for change detection
|
|
636
|
-
*/
|
|
637
|
-
private lastLayoutHash;
|
|
638
624
|
/**
|
|
639
625
|
* Form definition containing groups and fields OR widget tree
|
|
640
626
|
*/
|
|
@@ -653,10 +639,9 @@ declare class AXPLayoutRendererComponent implements OnInit {
|
|
|
653
639
|
mode: _angular_core.InputSignal<AXPDynamicFormMode>;
|
|
654
640
|
protected widgetTree: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
655
641
|
/**
|
|
656
|
-
* Convert
|
|
642
|
+
* Convert layout data to widget tree when inputs change
|
|
657
643
|
*/
|
|
658
644
|
conversionEffect: _angular_core.EffectRef;
|
|
659
|
-
protected expressionEvaluator(expression: any, context: any): Promise<any>;
|
|
660
645
|
/**
|
|
661
646
|
* Emitted when context change is initiated
|
|
662
647
|
*/
|
|
@@ -721,21 +706,9 @@ declare class AXPLayoutRendererComponent implements OnInit {
|
|
|
721
706
|
*/
|
|
722
707
|
private isFormDefinition;
|
|
723
708
|
/**
|
|
724
|
-
*
|
|
725
|
-
*/
|
|
726
|
-
private generateLayoutHash;
|
|
727
|
-
/**
|
|
728
|
-
* Generate cache key for expression evaluation (short hash)
|
|
729
|
-
*/
|
|
730
|
-
private generateCacheKey;
|
|
731
|
-
/**
|
|
732
|
-
* Generate a simple hash for context change detection
|
|
733
|
-
*/
|
|
734
|
-
private generateContextHash;
|
|
735
|
-
/**
|
|
736
|
-
* Simple hash function for generating short keys
|
|
709
|
+
* Type guard to check if the input is a widget node
|
|
737
710
|
*/
|
|
738
|
-
private
|
|
711
|
+
private isWidgetNode;
|
|
739
712
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutRendererComponent, never>;
|
|
740
713
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutRendererComponent, "axp-layout-renderer", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "context": "contextChange"; "contextInitiated": "contextInitiated"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
741
714
|
}
|
package/layout/entity/index.d.ts
CHANGED
|
@@ -26,6 +26,40 @@ import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
|
26
26
|
import { AXTextBoxComponent } from '@acorex/components/text-box';
|
|
27
27
|
import { AXPWidgetPropertiesChangedEvent } from '@acorex/platform/layout/components';
|
|
28
28
|
|
|
29
|
+
declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
|
|
30
|
+
private entityForm;
|
|
31
|
+
private settingsService;
|
|
32
|
+
private entityService;
|
|
33
|
+
private toastService;
|
|
34
|
+
private translationService;
|
|
35
|
+
private eventService;
|
|
36
|
+
protected context: {};
|
|
37
|
+
execute(input: any): Promise<AXPExecuteCommandResult<any>>;
|
|
38
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPCreateEntityCommand, never>;
|
|
39
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPCreateEntityCommand>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare class AXPUpdateEntityCommand implements AXPCommand<any, any> {
|
|
43
|
+
private readonly entityForm;
|
|
44
|
+
private readonly settingsService;
|
|
45
|
+
private readonly entityService;
|
|
46
|
+
private readonly toastService;
|
|
47
|
+
private readonly translationService;
|
|
48
|
+
private readonly eventService;
|
|
49
|
+
execute(input: any): Promise<AXPExecuteCommandResult<any>>;
|
|
50
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUpdateEntityCommand, never>;
|
|
51
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPUpdateEntityCommand>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
declare class AXPViewEntityDetailsCommand implements AXPCommand<any, any> {
|
|
55
|
+
private readonly entityForm;
|
|
56
|
+
private readonly entityService;
|
|
57
|
+
private readonly translationService;
|
|
58
|
+
execute(input: any): Promise<AXPExecuteCommandResult<any>>;
|
|
59
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPViewEntityDetailsCommand, never>;
|
|
60
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPViewEntityDetailsCommand>;
|
|
61
|
+
}
|
|
62
|
+
|
|
29
63
|
interface AXPOpenEntityDetailsCommandInput {
|
|
30
64
|
entity: string;
|
|
31
65
|
data: {
|
|
@@ -211,6 +245,11 @@ declare class AXPEntityDetailListViewModel {
|
|
|
211
245
|
getSecondaryActions(): Promise<AXPEntityCommandTriggerViewModel[]>;
|
|
212
246
|
}
|
|
213
247
|
|
|
248
|
+
declare const AXPEntityEventsKeys: {
|
|
249
|
+
REFRESH_LAYOUT: string;
|
|
250
|
+
REFRESH_DATA: string;
|
|
251
|
+
};
|
|
252
|
+
|
|
214
253
|
/**
|
|
215
254
|
* Entity Event Dispatcher - A wrapper for entity-specific events
|
|
216
255
|
* Handles pattern-based dispatching for entity operations with wildcard support
|
|
@@ -250,7 +289,7 @@ declare class AXPEntityCreateViewElementViewModel {
|
|
|
250
289
|
title: _angular_core.WritableSignal<string>;
|
|
251
290
|
description: _angular_core.WritableSignal<string | undefined>;
|
|
252
291
|
editable: _angular_core.Signal<boolean>;
|
|
253
|
-
|
|
292
|
+
isVisible: _angular_core.Signal<string | boolean>;
|
|
254
293
|
isRequired: _angular_core.Signal<boolean>;
|
|
255
294
|
layout: _angular_core.Signal<AXPEntityPropertyLayoutConfig>;
|
|
256
295
|
node: _angular_core.Signal<AXPWidgetNode>;
|
|
@@ -621,6 +660,27 @@ interface AXPEntityModifierProvider {
|
|
|
621
660
|
|
|
622
661
|
declare function ensureListActions(ctx: AXPEntityModifierContext): void;
|
|
623
662
|
declare function actionExists(actions: any[] | undefined, commandName: string, name?: string): boolean;
|
|
663
|
+
interface AXPEntityLayoutSectionLike {
|
|
664
|
+
id: string;
|
|
665
|
+
}
|
|
666
|
+
interface AXPEntityLayoutPropertyLike {
|
|
667
|
+
name: string;
|
|
668
|
+
}
|
|
669
|
+
interface AXPEntityLayoutLike<TSection extends AXPEntityLayoutSectionLike = AXPEntityLayoutSectionLike, TProperty extends AXPEntityLayoutPropertyLike = AXPEntityLayoutPropertyLike> {
|
|
670
|
+
sections: TSection[];
|
|
671
|
+
properties?: TProperty[];
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Clones `sections` and `properties` arrays to prevent accidental cross-interface mutations.
|
|
675
|
+
* Many entity definitions reuse the same array instances across create/update/single interfaces.
|
|
676
|
+
*/
|
|
677
|
+
declare function cloneLayoutArrays<TLayout extends AXPEntityLayoutLike>(layout: TLayout): TLayout & {
|
|
678
|
+
properties: NonNullable<TLayout['properties']>;
|
|
679
|
+
};
|
|
680
|
+
declare function ensureLayoutSection<TLayout extends AXPEntityLayoutLike>(layout: TLayout, section: TLayout['sections'][number]): void;
|
|
681
|
+
declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(layout: TLayout & {
|
|
682
|
+
properties: NonNullable<TLayout['properties']>;
|
|
683
|
+
}, prop: NonNullable<TLayout['properties']>[number]): void;
|
|
624
684
|
|
|
625
685
|
interface AXPEntityActionPlugin {
|
|
626
686
|
name: string;
|
|
@@ -1064,7 +1124,7 @@ declare class AXPCategoryTreeService {
|
|
|
1064
1124
|
*/
|
|
1065
1125
|
loadChildren(node: AXTreeViewNode, treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<AXTreeViewNode[]>;
|
|
1066
1126
|
/**
|
|
1067
|
-
* Search categories
|
|
1127
|
+
* Search categories recursively (all levels)
|
|
1068
1128
|
*/
|
|
1069
1129
|
searchCategories(searchValue: string, treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<Record<string, unknown>[] | null>;
|
|
1070
1130
|
/**
|
|
@@ -1081,9 +1141,11 @@ interface IEntitySelectorStage {
|
|
|
1081
1141
|
}
|
|
1082
1142
|
interface IInterfaceSelectorStage {
|
|
1083
1143
|
/** Use master.create interface */
|
|
1084
|
-
create(): IPropertyFilterStage;
|
|
1085
|
-
/** Use master.update interface */
|
|
1086
|
-
update(
|
|
1144
|
+
create(initialData?: any): IPropertyFilterStage;
|
|
1145
|
+
/** Use master.update interface. Accepts id (string) or full record data (object). */
|
|
1146
|
+
update(data: string | Record<string, any>): IPropertyFilterStage;
|
|
1147
|
+
/** Use master.single interface (read-only view). Accepts id (string) or full record data (object). */
|
|
1148
|
+
single(data: string | Record<string, any>): IPropertyFilterStage;
|
|
1087
1149
|
}
|
|
1088
1150
|
interface IPropertyFilterStage {
|
|
1089
1151
|
/** Only include provided property names (by AXPEntityProperty.name). Mutually exclusive with exclude(). */
|
|
@@ -1104,13 +1166,13 @@ interface IPropertyFilterStage {
|
|
|
1104
1166
|
show(): Promise<AXPDialogRef>;
|
|
1105
1167
|
mode(mode: 'edit' | 'view'): IPropertyFilterStage;
|
|
1106
1168
|
}
|
|
1107
|
-
declare class
|
|
1169
|
+
declare class AXPEntityFormBuilderService implements IEntitySelectorStage {
|
|
1108
1170
|
private readonly entityRegistry;
|
|
1109
1171
|
private readonly layoutBuilder;
|
|
1110
1172
|
private readonly deviceService;
|
|
1111
1173
|
entity(fullName: string): IInterfaceSelectorStage;
|
|
1112
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<
|
|
1113
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1174
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityFormBuilderService, never>;
|
|
1175
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityFormBuilderService>;
|
|
1114
1176
|
}
|
|
1115
1177
|
type CompatFormFieldBuilder = {
|
|
1116
1178
|
path(path: string): any;
|
|
@@ -1161,6 +1223,7 @@ declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
|
|
|
1161
1223
|
declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
|
|
1162
1224
|
declare function entityDetailsReferenceCondition(type: string): AXPQueryFilter[];
|
|
1163
1225
|
declare function entityDetailsEditAction(): AXPEntityAction;
|
|
1226
|
+
declare function entityDetailsNewEditAction(): AXPEntityAction;
|
|
1164
1227
|
declare function entityOverrideDetailsViewAction(): AXPEntityAction;
|
|
1165
1228
|
declare function entityDetailsCrudActions(parentId: string): AXPEntityAction[];
|
|
1166
1229
|
declare function entityDetailsReferenceCreateActions(type: string): AXPEntityAction[];
|
|
@@ -1180,17 +1243,9 @@ type AXPEntityChangeSet = {
|
|
|
1180
1243
|
*/
|
|
1181
1244
|
declare function detectEntityChanges(oldObj: any, newObj: any): AXPEntityChangeSet;
|
|
1182
1245
|
|
|
1183
|
-
interface AXPEntityCategoryTreeSelectorData {
|
|
1184
|
-
entityKey: string;
|
|
1185
|
-
textField: string;
|
|
1186
|
-
valueField: string;
|
|
1187
|
-
allowMultiple: boolean;
|
|
1188
|
-
selectedValues: string[];
|
|
1189
|
-
searchPlaceholder?: string;
|
|
1190
|
-
excludedNodeId?: string;
|
|
1191
|
-
}
|
|
1192
1246
|
declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent implements OnInit {
|
|
1193
1247
|
protected readonly categoryTreeService: AXPCategoryTreeService;
|
|
1248
|
+
private readonly translationService;
|
|
1194
1249
|
entityKey: _angular_core.WritableSignal<string>;
|
|
1195
1250
|
textField: _angular_core.WritableSignal<string>;
|
|
1196
1251
|
valueField: _angular_core.WritableSignal<string>;
|
|
@@ -1199,22 +1254,65 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1199
1254
|
selectedValues: _angular_core.WritableSignal<string[]>;
|
|
1200
1255
|
searchPlaceholder: _angular_core.WritableSignal<string>;
|
|
1201
1256
|
excludedNodeId: _angular_core.WritableSignal<string | undefined>;
|
|
1257
|
+
searchWithChildren: _angular_core.WritableSignal<boolean>;
|
|
1202
1258
|
protected tree: _angular_core.Signal<AXTreeViewComponent | undefined>;
|
|
1203
1259
|
protected loading: _angular_core.WritableSignal<boolean>;
|
|
1204
1260
|
protected selectedNodeIds: _angular_core.WritableSignal<string[]>;
|
|
1205
1261
|
protected searchValue: _angular_core.WritableSignal<string>;
|
|
1262
|
+
protected searchResultCount: _angular_core.WritableSignal<number>;
|
|
1263
|
+
protected isSearching: _angular_core.WritableSignal<boolean>;
|
|
1264
|
+
protected resultsFoundText: _angular_core.WritableSignal<string>;
|
|
1265
|
+
protected noRecordsTitle: _angular_core.WritableSignal<string>;
|
|
1266
|
+
private currentSearchTerm;
|
|
1267
|
+
private isRefreshing;
|
|
1268
|
+
/**
|
|
1269
|
+
* Computed property to check if we should show the "no search results" empty state.
|
|
1270
|
+
* Returns true when search is active, not searching, and no results found.
|
|
1271
|
+
*/
|
|
1272
|
+
protected readonly showNoSearchResults: _angular_core.Signal<boolean>;
|
|
1206
1273
|
protected treeData: CategoryTreeNodeData | null;
|
|
1207
1274
|
private treeConfig;
|
|
1208
|
-
private searchResults;
|
|
1209
1275
|
private nodeDataCache;
|
|
1276
|
+
private matchingNodeIds;
|
|
1277
|
+
private relevantNodeIds;
|
|
1278
|
+
private expandedNodesBeforeSearch;
|
|
1279
|
+
private nodesExpandedDuringSearch;
|
|
1210
1280
|
ngOnInit(): void;
|
|
1211
1281
|
private initializeTree;
|
|
1212
1282
|
/**
|
|
1213
|
-
* Handles search input value changes
|
|
1283
|
+
* Handles search input value changes - Uses server-side search for efficiency and reliability
|
|
1214
1284
|
*/
|
|
1215
1285
|
handleSearchChange(event: AXValueChangedEvent<string>): Promise<void>;
|
|
1216
1286
|
/**
|
|
1217
|
-
*
|
|
1287
|
+
* Collects all parent IDs for the given search results
|
|
1288
|
+
* Handles both nested 'parent' object and 'parentId' field in search results
|
|
1289
|
+
* Recursively fetches parent nodes to build the full parent chain
|
|
1290
|
+
*/
|
|
1291
|
+
private collectParentIds;
|
|
1292
|
+
/**
|
|
1293
|
+
* Collects children IDs for matching search results recursively
|
|
1294
|
+
* Adds all descendants (children, grandchildren, etc.) to relevantNodeIds so they appear in the filtered tree
|
|
1295
|
+
*/
|
|
1296
|
+
private collectChildrenIds;
|
|
1297
|
+
/**
|
|
1298
|
+
* Recursively collects all descendant IDs for a given node
|
|
1299
|
+
*/
|
|
1300
|
+
private collectChildrenRecursively;
|
|
1301
|
+
/**
|
|
1302
|
+
* Fetches a single item by ID from the server
|
|
1303
|
+
*/
|
|
1304
|
+
private fetchItemById;
|
|
1305
|
+
/**
|
|
1306
|
+
* Sorts parent IDs by their depth (root first, leaves last)
|
|
1307
|
+
* Optimized to use cached data and batch fetch missing items
|
|
1308
|
+
*/
|
|
1309
|
+
private sortParentsByDepth;
|
|
1310
|
+
/**
|
|
1311
|
+
* Updates translated messages for search results
|
|
1312
|
+
*/
|
|
1313
|
+
private updateTranslatedMessages;
|
|
1314
|
+
/**
|
|
1315
|
+
* Resets search state and restores tree to original expanded state
|
|
1218
1316
|
*/
|
|
1219
1317
|
private resetSearch;
|
|
1220
1318
|
protected onNodeToggle(event: AXTreeViewNodeToggleEvent): Promise<void>;
|
|
@@ -1224,6 +1322,10 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1224
1322
|
protected datasource: (id?: string) => Promise<AXTreeViewNode[]>;
|
|
1225
1323
|
protected onConfirm(): Promise<void>;
|
|
1226
1324
|
protected onCancel(): Promise<void>;
|
|
1325
|
+
/**
|
|
1326
|
+
* Checks if a node matches the current search term
|
|
1327
|
+
*/
|
|
1328
|
+
protected isMatchingNode(nodeId: string): boolean;
|
|
1227
1329
|
private updateSelectedNodes;
|
|
1228
1330
|
/**
|
|
1229
1331
|
* Loads node data for IDs that are selected but not yet in the cache.
|
|
@@ -1243,11 +1345,32 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
1243
1345
|
* Marks a node and its children as disabled if the node ID matches the excluded ID.
|
|
1244
1346
|
*/
|
|
1245
1347
|
private markNodeAsDisabled;
|
|
1348
|
+
/**
|
|
1349
|
+
* Processes root node: marks excluded as disabled, marks selected, and syncs selection with tree component
|
|
1350
|
+
*/
|
|
1351
|
+
private processRootNode;
|
|
1352
|
+
/**
|
|
1353
|
+
* Processes child nodes: marks excluded as disabled, marks selected, and syncs selection
|
|
1354
|
+
*/
|
|
1355
|
+
private processChildNodes;
|
|
1356
|
+
/**
|
|
1357
|
+
* Caches node data from items array
|
|
1358
|
+
*/
|
|
1359
|
+
private cacheNodeData;
|
|
1360
|
+
/**
|
|
1361
|
+
* Caches node data from tree nodes
|
|
1362
|
+
*/
|
|
1363
|
+
private cacheNodeDataFromNodes;
|
|
1246
1364
|
/**
|
|
1247
1365
|
* Calculate the full path from root to the selected node.
|
|
1248
1366
|
* Returns an array of strings like ["C", "B"] for node B under parent C.
|
|
1367
|
+
* Uses tree-view's getNodePath() API when available, otherwise falls back to manual calculation.
|
|
1249
1368
|
*/
|
|
1250
1369
|
private calculateNodePath;
|
|
1370
|
+
/**
|
|
1371
|
+
* Manual path calculation fallback
|
|
1372
|
+
*/
|
|
1373
|
+
private calculateNodePathManually;
|
|
1251
1374
|
/**
|
|
1252
1375
|
* Get the display title for a node.
|
|
1253
1376
|
*/
|
|
@@ -2034,5 +2157,5 @@ declare class AXPShowListViewAction extends AXPWorkflowAction {
|
|
|
2034
2157
|
}
|
|
2035
2158
|
declare const AXPShowListViewWorkflow: AXPWorkflow;
|
|
2036
2159
|
|
|
2037
|
-
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver,
|
|
2038
|
-
export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin,
|
|
2160
|
+
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityReferenceWidget, AXPEntityReferenceWidgetColumnComponent, AXPEntityReferenceWidgetDesignerComponent, AXPEntityReferenceWidgetEditComponent, AXPEntityReferenceWidgetPrintComponent, AXPEntityReferenceWidgetViewComponent, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLookupFilterWidget, AXPLookupFilterWidgetEditComponent, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXPWidgetSelectorWidget, AXPWidgetSelectorWidgetEditComponent, AXPWidgetSelectorWidgetViewComponent, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, DEFAULT_COLUMN_WIDTHS, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, actionExists, cloneLayoutArrays, columnWidthMiddlewareFactory, columnWidthMiddlewareProvider, createColumnWidthMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider };
|
|
2161
|
+
export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPOpenEntityDetailsCommandInput, AXPRecordControl, AXPRecordOwnership, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, ColumnWidthConfig, SectionOrderConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "20.6.0-next.
|
|
3
|
+
"version": "20.6.0-next.20",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
|
|
6
6
|
"@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
|
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
"types": "./index.d.ts",
|
|
28
28
|
"default": "./fesm2022/acorex-platform.mjs"
|
|
29
29
|
},
|
|
30
|
+
"./auth": {
|
|
31
|
+
"types": "./auth/index.d.ts",
|
|
32
|
+
"default": "./fesm2022/acorex-platform-auth.mjs"
|
|
33
|
+
},
|
|
30
34
|
"./common": {
|
|
31
35
|
"types": "./common/index.d.ts",
|
|
32
36
|
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
@@ -35,10 +39,6 @@
|
|
|
35
39
|
"types": "./core/index.d.ts",
|
|
36
40
|
"default": "./fesm2022/acorex-platform-core.mjs"
|
|
37
41
|
},
|
|
38
|
-
"./auth": {
|
|
39
|
-
"types": "./auth/index.d.ts",
|
|
40
|
-
"default": "./fesm2022/acorex-platform-auth.mjs"
|
|
41
|
-
},
|
|
42
42
|
"./domain": {
|
|
43
43
|
"types": "./domain/index.d.ts",
|
|
44
44
|
"default": "./fesm2022/acorex-platform-domain.mjs"
|
|
@@ -55,6 +55,14 @@
|
|
|
55
55
|
"types": "./workflow/index.d.ts",
|
|
56
56
|
"default": "./fesm2022/acorex-platform-workflow.mjs"
|
|
57
57
|
},
|
|
58
|
+
"./themes/default": {
|
|
59
|
+
"types": "./themes/default/index.d.ts",
|
|
60
|
+
"default": "./fesm2022/acorex-platform-themes-default.mjs"
|
|
61
|
+
},
|
|
62
|
+
"./themes/shared": {
|
|
63
|
+
"types": "./themes/shared/index.d.ts",
|
|
64
|
+
"default": "./fesm2022/acorex-platform-themes-shared.mjs"
|
|
65
|
+
},
|
|
58
66
|
"./layout/builder": {
|
|
59
67
|
"types": "./layout/builder/index.d.ts",
|
|
60
68
|
"default": "./fesm2022/acorex-platform-layout-builder.mjs"
|
|
@@ -82,14 +90,6 @@
|
|
|
82
90
|
"./layout/widgets": {
|
|
83
91
|
"types": "./layout/widgets/index.d.ts",
|
|
84
92
|
"default": "./fesm2022/acorex-platform-layout-widgets.mjs"
|
|
85
|
-
},
|
|
86
|
-
"./themes/default": {
|
|
87
|
-
"types": "./themes/default/index.d.ts",
|
|
88
|
-
"default": "./fesm2022/acorex-platform-themes-default.mjs"
|
|
89
|
-
},
|
|
90
|
-
"./themes/shared": {
|
|
91
|
-
"types": "./themes/shared/index.d.ts",
|
|
92
|
-
"default": "./fesm2022/acorex-platform-themes-shared.mjs"
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { AXToastService } from '@acorex/components/toast';
|
|
2
|
-
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, Injectable } from '@angular/core';
|
|
4
|
-
import { AXPEntityDynamicDialogService, AXPEntityDefinitionRegistryService } from './acorex-platform-layout-entity.mjs';
|
|
5
|
-
|
|
6
|
-
class AXPCreateEntityCommand {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.entityForm = inject(AXPEntityDynamicDialogService);
|
|
9
|
-
this.entityService = inject(AXPEntityDefinitionRegistryService);
|
|
10
|
-
this.toastService = inject(AXToastService);
|
|
11
|
-
this.context = {};
|
|
12
|
-
}
|
|
13
|
-
async execute(input) {
|
|
14
|
-
const { entity, entityInfo, data, options, metadata } = input;
|
|
15
|
-
const [moduleName, entityName] = (entity || '').split('.');
|
|
16
|
-
if (!moduleName || !entityName) {
|
|
17
|
-
return {
|
|
18
|
-
success: false,
|
|
19
|
-
message: {
|
|
20
|
-
text: 'Invalid entity identifier',
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const entityRef = await this.entityService.resolve(moduleName, entityName);
|
|
25
|
-
console.log({ input });
|
|
26
|
-
let dialogRef;
|
|
27
|
-
try {
|
|
28
|
-
let chain = this.entityForm.entity(`${moduleName}.${entityName}`).create();
|
|
29
|
-
if (entityInfo?.title) {
|
|
30
|
-
chain = chain.title(`Create ${entityInfo.title}`);
|
|
31
|
-
}
|
|
32
|
-
if (data) {
|
|
33
|
-
chain = chain.context(data);
|
|
34
|
-
}
|
|
35
|
-
dialogRef = await chain.show();
|
|
36
|
-
dialogRef.setLoading(true);
|
|
37
|
-
const context = dialogRef.context();
|
|
38
|
-
const createFn = entityRef.commands?.create?.execute;
|
|
39
|
-
if (!createFn) {
|
|
40
|
-
return {
|
|
41
|
-
success: false,
|
|
42
|
-
message: {
|
|
43
|
-
text: 'Create command is not available for the selected entity',
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
const result = await createFn(context);
|
|
48
|
-
if (result?.success) {
|
|
49
|
-
dialogRef.close();
|
|
50
|
-
}
|
|
51
|
-
return result ?? {
|
|
52
|
-
success: false,
|
|
53
|
-
message: {
|
|
54
|
-
text: 'Create command returned no result',
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
return {
|
|
60
|
-
success: false,
|
|
61
|
-
message: {
|
|
62
|
-
text: error instanceof Error ? error.message : 'Failed to create entity',
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
if (dialogRef) {
|
|
68
|
-
dialogRef.setLoading(false);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCreateEntityCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
73
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCreateEntityCommand, providedIn: 'root' }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPCreateEntityCommand, decorators: [{
|
|
76
|
-
type: Injectable,
|
|
77
|
-
args: [{
|
|
78
|
-
providedIn: 'root',
|
|
79
|
-
}]
|
|
80
|
-
}] });
|
|
81
|
-
|
|
82
|
-
export { AXPCreateEntityCommand };
|
|
83
|
-
//# sourceMappingURL=acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs","sources":["../tmp-esm2022/layout/entity/lib/commands/create-entity.command.js"],"sourcesContent":["import { AXToastService } from '@acorex/components/toast';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXPEntityDynamicDialogService } from '../services/entity-forms/entity-dynamic-form-dialog.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPCreateEntityCommand {\n constructor() {\n this.entityForm = inject(AXPEntityDynamicDialogService);\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.toastService = inject(AXToastService);\n this.context = {};\n }\n async execute(input) {\n const { entity, entityInfo, data, options, metadata } = input;\n const [moduleName, entityName] = (entity || '').split('.');\n if (!moduleName || !entityName) {\n return {\n success: false,\n message: {\n text: 'Invalid entity identifier',\n },\n };\n }\n const entityRef = await this.entityService.resolve(moduleName, entityName);\n console.log({ input });\n let dialogRef;\n try {\n let chain = this.entityForm.entity(`${moduleName}.${entityName}`).create();\n if (entityInfo?.title) {\n chain = chain.title(`Create ${entityInfo.title}`);\n }\n if (data) {\n chain = chain.context(data);\n }\n dialogRef = await chain.show();\n dialogRef.setLoading(true);\n const context = dialogRef.context();\n const createFn = entityRef.commands?.create?.execute;\n if (!createFn) {\n return {\n success: false,\n message: {\n text: 'Create command is not available for the selected entity',\n },\n };\n }\n const result = await createFn(context);\n if (result?.success) {\n dialogRef.close();\n }\n return result ?? {\n success: false,\n message: {\n text: 'Create command returned no result',\n },\n };\n }\n catch (error) {\n return {\n success: false,\n message: {\n text: error instanceof Error ? error.message : 'Failed to create entity',\n },\n };\n }\n finally {\n if (dialogRef) {\n dialogRef.setLoading(false);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCreateEntityCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCreateEntityCommand, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCreateEntityCommand, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvY29tbWFuZHMvY3JlYXRlLWVudGl0eS5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7QUFLNUcsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlVLGVBQVUsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzNELGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXBDLFlBQU8sR0FBRyxFQUFFLENBQUM7S0E2RXhCO0lBM0VDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBVTtRQUN0QixNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBV3ZELENBQUM7UUFDRixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLDJCQUEyQjtpQkFDbEM7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXZCLElBQUksU0FBYyxDQUFDO1FBRW5CLElBQUksQ0FBQztZQUNILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFM0UsSUFBSSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUVELFNBQVMsR0FBRyxNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUVILENBQUM7WUFDM0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE9BQU87b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSx5REFBeUQ7cUJBQ2hFO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsT0FBTyxNQUFNLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxtQ0FBbUM7aUJBQzFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtpQkFDekU7YUFDRixDQUFDO1FBQ0osQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FqRlUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUR5bmFtaWNEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LWZvcm1zL2VudGl0eS1keW5hbWljLWZvcm0tZGlhbG9nLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ3JlYXRlRW50aXR5Q29tbWFuZCBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8YW55LCBhbnk+IHtcbiAgcHJpdmF0ZSBlbnRpdHlGb3JtID0gaW5qZWN0KEFYUEVudGl0eUR5bmFtaWNEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0U2VydmljZSA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQgPSB7fTtcblxuICBhc3luYyBleGVjdXRlKGlucHV0OiBhbnkpOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PGFueT4+IHtcbiAgICBjb25zdCB7IGVudGl0eSwgZW50aXR5SW5mbywgZGF0YSwgb3B0aW9ucywgbWV0YWRhdGEgfSA9IGlucHV0IGFzIHtcbiAgICAgIGVudGl0eTogc3RyaW5nO1xuICAgICAgZW50aXR5SW5mbzoge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIG1vZHVsZTogc3RyaW5nO1xuICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICBwYXJlbnRLZXk6IHN0cmluZztcbiAgICAgIH07XG4gICAgICBkYXRhOiBhbnk7XG4gICAgICBvcHRpb25zOiBhbnk7XG4gICAgICBtZXRhZGF0YTogYW55O1xuICAgIH07XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gKGVudGl0eSB8fCAnJykuc3BsaXQoJy4nKTtcbiAgICBpZiAoIW1vZHVsZU5hbWUgfHwgIWVudGl0eU5hbWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogJ0ludmFsaWQgZW50aXR5IGlkZW50aWZpZXInLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG5cbiAgICBjb25zb2xlLmxvZyh7IGlucHV0IH0pO1xuXG4gICAgbGV0IGRpYWxvZ1JlZjogYW55O1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBjaGFpbiA9IHRoaXMuZW50aXR5Rm9ybS5lbnRpdHkoYCR7bW9kdWxlTmFtZX0uJHtlbnRpdHlOYW1lfWApLmNyZWF0ZSgpO1xuXG4gICAgICBpZiAoZW50aXR5SW5mbz8udGl0bGUpIHtcbiAgICAgICAgY2hhaW4gPSBjaGFpbi50aXRsZShgQ3JlYXRlICR7ZW50aXR5SW5mby50aXRsZX1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGNoYWluID0gY2hhaW4uY29udGV4dChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nUmVmID0gYXdhaXQgY2hhaW4uc2hvdygpO1xuICAgICAgZGlhbG9nUmVmLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICBjb25zdCBjb250ZXh0ID0gZGlhbG9nUmVmLmNvbnRleHQoKTtcbiAgICAgIGNvbnN0IGNyZWF0ZUZuID0gZW50aXR5UmVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgYXMgKFxuICAgICAgICBwYXlsb2FkOiBhbnksXG4gICAgICApID0+IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8YW55Pj47XG4gICAgICBpZiAoIWNyZWF0ZUZuKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgdGV4dDogJ0NyZWF0ZSBjb21tYW5kIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBzZWxlY3RlZCBlbnRpdHknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjcmVhdGVGbihjb250ZXh0KTtcbiAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0ID8/IHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiAnQ3JlYXRlIGNvbW1hbmQgcmV0dXJuZWQgbm8gcmVzdWx0JyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGNyZWF0ZSBlbnRpdHknLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGRpYWxvZ1JlZikge1xuICAgICAgICBkaWFsb2dSZWYuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
|
package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs","sources":["../tmp-esm2022/layout/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/platform/layout/widget-core\";\nimport * as i4 from \"@acorex/components/data-table\";\nimport * as i5 from \"@acorex/components/form\";\nimport * as i6 from \"@angular/common\";\nimport * as i7 from \"@acorex/core/translation\";\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.disabled = false;\n this.defaultRowCount = 0;\n this.getCommandRowItems = [\n {\n name: 'delete',\n text: \"@general:actions.delete.title\",\n icon: 'fa-light fa-trash ax-text-danger',\n //divided: boolean,\n //disabled: boolean,\n color: 'danger',\n },\n ];\n this.dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n }\n ngOnInit() {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n this.columns = this.columns.map((col) => {\n return {\n ...col,\n options: {\n ...(col.options ?? {}),\n validationRules: [\n {\n rule: 'required',\n },\n ],\n },\n };\n });\n this.contextDiscard = cloneDeep(this.context);\n if (this.context == null || this.context?.length == 0) {\n for (let i = 0; i < this.defaultRowCount; i++) {\n this.addRecord();\n }\n }\n }\n handleContextChange(e) {\n this.context = e.data;\n }\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n addRecord() {\n console.log(this.columns);\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc, column) => {\n acc[column.name] = ''; // or any default value\n return acc;\n }, {});\n console.log(value);\n this.context = [...value, newRecord];\n this.grid()?.refresh();\n }\n handleSelectionChange(e) {\n console.log(e);\n }\n async handleRowCommandClick(e) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n async handleSaveClick(form) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTabularDataPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPTabularDataPopupComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"ax-p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"ax-h-96 ax-overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type,\n options: column.options ?? {},\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if (!disabled) {\n <div class=\"ax-flex ax-justify-end ax-py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i3.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i3.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i4.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"selectedRows\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"noDataTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i4.AXDataTableTextColumnComponent, selector: \"ax-text-column\", inputs: [\"width\", \"caption\", \"allowSorting\", \"allowResizing\", \"fixed\", \"customExpandIcon\", \"customCollapseIcon\", \"dataField\", \"expandHandler\", \"wrapText\", \"cellTemplate\", \"footerTemplate\", \"headerTemplate\", \"format\", \"formatOptions\"] }, { kind: \"component\", type: i4.AXRowCommandColumnComponent, selector: \"ax-command-column\", inputs: [\"width\", \"caption\", \"fixed\", \"footerTemplate\", \"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i5.AXFormComponent, selector: \"ax-form\", inputs: [\"disabled\", \"readonly\", \"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i7.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTabularDataPopupComponent, decorators: [{\n type: Component,\n args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"ax-p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"ax-h-96 ax-overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type,\n options: column.options ?? {},\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if (!disabled) {\n <div class=\"ax-flex ax-justify-end ax-py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPWidgetCoreModule,\n AXDataTableModule,\n AXTranslationModule,\n AXFormModule,\n ],\n }]\n }], propDecorators: { grid: [{ type: i0.ViewChild, args: ['grid', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFidWxhci1kYXRhLWVkaXQtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvZWRpdG9ycy90YWJ1bGFyLWRhdGEvdGFidWxhci1kYXRhLWVkaXQtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUVMLGlCQUFpQixHQUdsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFtQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFvRnRDLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFqRnJFOztRQW9GRSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FB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Q0FBQyxPQUFPO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQTVHVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qiw2TUEvRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCwyREFFQyxZQUFZLDhCQUNaLGlCQUFpQixzVkFDakIsY0FBYyw2WEFDZCxtQkFBbUIsOFpBQ25CLGlCQUFpQix5Z0NBQ2pCLG1CQUFtQiw4QkFDbkIsWUFBWTs7NEZBR0gsNEJBQTRCO2tCQWpGeEMsU0FBUzttQkFBQztvQkFDVCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsWUFBWTtxQkFDYjtpQkFDRjtrRUFnRWtELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYRGF0YVRhYmxlQ29tcG9uZW50LFxuICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgQVhSb3dDb21tYW5kSXRlbSxcbiAgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBEYXRhR2VuZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQVGFidWxhckRhdGFDb2x1bW4gfSBmcm9tICcuL3RhYnVsYXItd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiY29udGV4dFwiIChvbkNvbnRleHRDaGFuZ2VkKT1cImhhbmRsZUNvbnRleHRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wLTRcIj5cbiAgICAgICAgICA8YXgtZGF0YS10YWJsZVxuICAgICAgICAgICAgI2dyaWRcbiAgICAgICAgICAgIFtwYWdpbmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2FsbG93UmVvcmRlcmluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJvd3NDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXG4gICAgICAgICAgICBjbGFzcz1cImF4LWgtOTYgYXgtb3ZlcmZsb3ctYXV0b1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8YXgtdGV4dC1jb2x1bW5cbiAgICAgICAgICAgICAgICB3aWR0aD1cIjIwMHB4XCJcbiAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCJjb2x1bW4udGl0bGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhRmllbGRdPVwiY29sdW1uLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY2VsbFwiXG4gICAgICAgICAgICAgICAgW2FsbG93UmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L2F4LXRleHQtY29sdW1uPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgYXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwie1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiBpdGVtLnJvd0luZGV4ICsgJy4nICsgY29sdW1uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBjb2x1bW4ub3B0aW9ucyA/PyB7fSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ2VkaXQnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8YXgtY29tbWFuZC1jb2x1bW5cbiAgICAgICAgICAgICAgZml4ZWQ9XCJlbmRcIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiZ2V0Q29tbWFuZFJvd0l0ZW1zLmxlbmd0aCAqIDYwICsgJ3B4J1wiXG4gICAgICAgICAgICAgIFtpdGVtc109XCJnZXRDb21tYW5kUm93SXRlbXNcIlxuICAgICAgICAgICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlUm93Q29tbWFuZENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgPjwvYXgtY29tbWFuZC1jb2x1bW4+XG4gICAgICAgICAgPC9heC1kYXRhLXRhYmxlPlxuICAgICAgICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWVuZCBheC1weS00XCI+XG4gICAgICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodGhpcy5jb250ZXh0ID8/IFtdKS5sZW5ndGggPyAnU3RhcnQgQWRkaW5nIEl0ZW1zJyA6ICdBZGQgWW91ciBGaXJzdCBJdGVtJ1wiXG4gICAgICAgICAgICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWRkUmVjb3JkKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTEwICBheC1jb2wtZW5kLTEzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXgtZm9vdGVyPlxuICAgICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLmRpc2NhcmQudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiAob25DbGljayk9XCJvbkNsb3NlRGlzY2FyZCgpXCI+PC9heC1idXR0b24+XG4gICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLm9rLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrKGZvcm0pXCJcbiAgICAgICAgICAgID48L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgICAgPC9heC1mb290ZXI+XG4gICAgICA8L2F4LWZvcm0+XG4gICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gIGAsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFidWxhckRhdGFQb3B1cENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBjb250ZXh0OiBhbnk7XG4gIGNvbHVtbnM6IEFYUFRhYnVsYXJEYXRhQ29sdW1uW107XG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlZmF1bHRSb3dDb3VudDogbnVtYmVyID0gMDtcbiAgY29udGV4dERpc2NhcmQ6IGFueTtcblxuICBnZXRDb21tYW5kUm93SXRlbXM6IEFYUm93Q29tbWFuZEl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnZGVsZXRlJyxcbiAgICAgIHRleHQ6IFwiQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUudGl0bGVcIixcbiAgICAgIGljb246ICdmYS1saWdodCBmYS10cmFzaCBheC10ZXh0LWRhbmdlcicsXG4gICAgICAvL2RpdmlkZWQ6IGJvb2xlYW4sXG4gICAgICAvL2Rpc2FibGVkOiBib29sZWFuLFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgIH0sXG4gIF07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbCkgPT4gY29sLm5hbWUgIT0gbnVsbCAmJiBjb2wubmFtZSAhPSAnJyAmJiBjb2wudHlwZSAhPSBudWxsKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29sLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgLi4uKGNvbC5vcHRpb25zID8/IHt9KSxcbiAgICAgICAgICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5jb250ZXh0RGlzY2FyZCA9IGNsb25lRGVlcCh0aGlzLmNvbnRleHQpO1xuICAgIGlmICh0aGlzLmNvbnRleHQgPT0gbnVsbCB8fCB0aGlzLmNvbnRleHQ/Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGVmYXVsdFJvd0NvdW50OyBpKyspIHtcbiAgICAgICAgdGhpcy5hZGRSZWNvcmQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGxvYWQ6IGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuY29udGV4dCA9ICh0aGlzLmNvbnRleHQgPz8gW10pLm1hcCgoeDogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICBpZDogQVhQRGF0YUdlbmVyYXRvci51dWlkKCksXG4gICAgICAgICAgb3B0aW9uczoge30sXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5jb250ZXh0O1xuICAgICAgY29uc29sZS5sb2codGhpcy5jb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IGl0ZW1zID8/IFtdLFxuICAgICAgICB0b3RhbDogKGl0ZW1zID8/IFtdKS5sZW5ndGgsXG4gICAgICB9O1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEsXG4gICAga2V5OiAnZ3JpZEl0ZW0nLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgZ3JpZCA9IHZpZXdDaGlsZDxBWERhdGFUYWJsZUNvbXBvbmVudD4oJ2dyaWQnKTtcblxuICBoYW5kbGVDb250ZXh0Q2hhbmdlKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBlLmRhdGE7XG4gIH1cblxuICBvbkNsb3NlRGlzY2FyZCgpIHtcbiAgICB0aGlzLmNsb3NlKHtcbiAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dERpc2NhcmQsXG4gICAgfSk7XG4gIH1cblxuICBhZGRSZWNvcmQoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5jb2x1bW5zKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb250ZXh0ID8/IFtdO1xuICAgIGNvbnN0IG5ld1JlY29yZCA9IHRoaXMuY29sdW1ucz8ucmVkdWNlKChhY2M6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNvbHVtbikgPT4ge1xuICAgICAgYWNjW2NvbHVtbi5uYW1lXSA9ICcnOyAvLyBvciBhbnkgZGVmYXVsdCB2YWx1ZVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgY29uc29sZS5sb2codmFsdWUpO1xuICAgIHRoaXMuY29udGV4dCA9IFsuLi52YWx1ZSwgbmV3UmVjb3JkXTtcbiAgICB0aGlzLmdyaWQoKT8ucmVmcmVzaCgpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKGU6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVJvd0NvbW1hbmRDbGljayhlOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCkge1xuICAgIGlmIChlLm5hbWUgPT0gJ2RlbGV0ZScpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY29udGV4dC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCAhPT0gZS5kYXRhLmlkKTtcbiAgICAgIHRoaXMuZ3JpZCgpPy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVDbGljayhmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1SZXN1bHQucnVsZXMpO1xuXG4gICAgaWYgKGZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICB0aGlzLmNsb3NlKHtcbiAgICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0="],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}
|