@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.
Files changed (33) hide show
  1. package/common/index.d.ts +2 -2
  2. package/core/index.d.ts +1 -0
  3. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-layout-builder.mjs +38 -117
  6. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-components.mjs +1 -9
  8. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-entity.mjs +2725 -1727
  10. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-views.mjs +2 -1
  12. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  13. 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
  14. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs.map +1 -0
  15. 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
  16. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-layout-widgets.mjs +5 -5
  18. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  19. 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
  20. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +1 -0
  21. 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
  22. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CenhnHXi.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-themes-default.mjs +5 -5
  24. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  25. package/layout/builder/index.d.ts +6 -33
  26. package/layout/entity/index.d.ts +145 -22
  27. package/package.json +13 -13
  28. package/fesm2022/acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs +0 -83
  29. package/fesm2022/acorex-platform-layout-entity-create-entity.command-Bui87lV1.mjs.map +0 -1
  30. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +0 -1
  31. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map +0 -1
  32. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-xtWnr98z.mjs.map +0 -1
  33. 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 and evaluate data when inputs change (optimized with RxJS)
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
- * Generate layout hash for change detection (short hash)
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 simpleHash;
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
  }
@@ -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
- isHidden: _angular_core.Signal<string | boolean>;
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(id: string): IPropertyFilterStage;
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 AXPEntityDynamicDialogService implements IEntitySelectorStage {
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<AXPEntityDynamicDialogService, never>;
1113
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDynamicDialogService>;
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
- * Resets search state and refreshes tree to show normal view
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, AXPEntityDynamicDialogService, AXPEntityEventDispatcherService, 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, 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, columnWidthMiddlewareFactory, columnWidthMiddlewareProvider, createColumnWidthMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, detectEntityChanges, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider };
2038
- export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryTreeSelectorData, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, 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 };
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.19",
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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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFidWxhci1kYXRhLWVkaXQtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cy9zcmMvbGliL3dpZGdldHMvZWRpdG9ycy90YWJ1bGFyLWRhdGEvdGFidWxhci1kYXRhLWVkaXQtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUVMLGlCQUFpQixHQUdsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFtQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7Ozs7QUFvRnRDLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFqRnJFOztRQW9GRSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBRzVCLHVCQUFrQixHQUF1QjtZQUN2QztnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsK0JBQStCO2dCQUNyQyxJQUFJLEVBQUUsa0NBQWtDO2dCQUN4QyxtQkFBbUI7Z0JBQ25CLG9CQUFvQjtnQkFDcEIsS0FBSyxFQUFFLFFBQVE7YUFDaEI7U0FDRixDQUFDO1FBMEJRLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUN0QyxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7b0JBQ2pELE9BQU87d0JBQ0wsR0FBRyxDQUFDO3dCQUNKLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7d0JBQzNCLE9BQU8sRUFBRSxFQUFFO3FCQUNaLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTFCLE9BQU87b0JBQ0wsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNsQixLQUFLLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtpQkFDNUIsQ0FBQztZQUNKLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQztZQUNYLEdBQUcsRUFBRSxVQUFVO1NBQ2hCLENBQUMsQ0FBQztRQUVPLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sZ0RBQUMsQ0FBQztLQThDMUQ7SUEzRm9CLFFBQVE7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVwRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEMsT0FBTztnQkFDTCxHQUFHLEdBQUc7Z0JBQ04sT0FBTyxFQUFFO29CQUNQLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztvQkFDdEIsZUFBZSxFQUFFO3dCQUNmOzRCQUNFLElBQUksRUFBRSxVQUFVO3lCQUNqQjtxQkFDRjtpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUF5QkQsbUJBQW1CLENBQUMsQ0FBa0M7UUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNULE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYztTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBMkIsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM3RSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtZQUM5QyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQscUJBQXFCLENBQUMsQ0FBTTtRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBNkI7UUFDakUsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQXFCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOytHQTVHVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qiw2TUEvRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCwyREFFQyxZQUFZLDhCQUNaLGlCQUFpQixzVkFDakIsY0FBYyw2WEFDZCxtQkFBbUIsOFpBQ25CLGlCQUFpQix5Z0NBQ2pCLG1CQUFtQiw4QkFDbkIsWUFBWTs7NEZBR0gsNEJBQTRCO2tCQWpGeEMsU0FBUzttQkFBQztvQkFDVCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsWUFBWTtxQkFDYjtpQkFDRjtrRUFnRWtELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYRGF0YVRhYmxlQ29tcG9uZW50LFxuICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgQVhSb3dDb21tYW5kSXRlbSxcbiAgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBEYXRhR2VuZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQVGFidWxhckRhdGFDb2x1bW4gfSBmcm9tICcuL3RhYnVsYXItd2lkZ2V0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiY29udGV4dFwiIChvbkNvbnRleHRDaGFuZ2VkKT1cImhhbmRsZUNvbnRleHRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPGF4LWZvcm0gI2Zvcm0+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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"}