@acorex/platform 21.0.0-next.85 → 21.0.0-next.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-auth.mjs +1 -1
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-VfmZct9H.mjs} +43 -3
- package/fesm2022/acorex-platform-common-common-settings.provider-VfmZct9H.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +1709 -870
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-contracts.mjs +1160 -9
- package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +210 -131
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
- package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-domain.mjs +2 -50
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +59 -23
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +3 -2
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1114 -0
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +661 -742
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +333 -119
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +11 -105
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs} +4 -4
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +868 -57
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs → acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs} +2 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +740 -96
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +4 -3
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +6 -8
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +9 -5
- package/types/acorex-platform-auth.d.ts +2 -1
- package/types/acorex-platform-common.d.ts +419 -1083
- package/types/acorex-platform-contracts.d.ts +1791 -260
- package/types/acorex-platform-core.d.ts +2153 -2806
- package/types/acorex-platform-domain-contracts.d.ts +416 -0
- package/types/acorex-platform-domain.d.ts +4 -415
- package/types/acorex-platform-layout-builder.d.ts +2 -1
- package/types/acorex-platform-layout-components.d.ts +15 -4
- package/types/acorex-platform-layout-designer.d.ts +2 -1
- package/types/acorex-platform-layout-entity-contracts.d.ts +864 -0
- package/types/acorex-platform-layout-entity.d.ts +88 -269
- package/types/acorex-platform-layout-views.d.ts +48 -14
- package/types/acorex-platform-layout-widget-core.d.ts +9 -5
- package/types/acorex-platform-layout-widgets.d.ts +89 -13
- package/types/acorex-platform-runtime.d.ts +1 -1
- package/types/acorex-platform-themes-default.d.ts +173 -70
- package/types/acorex-platform-workflow.d.ts +5 -18
- package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
- package/fesm2022/acorex-platform-native.mjs +0 -155
- package/fesm2022/acorex-platform-native.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
- package/native/README.md +0 -4
- package/types/acorex-platform-native.d.ts +0 -28
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import * as _ngrx_signals from '@ngrx/signals';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { Signal } from '@angular/core';
|
|
3
|
+
import { AfterViewInit, OnDestroy, Signal } from '@angular/core';
|
|
4
4
|
import * as _acorex_platform_themes_shared from '@acorex/platform/themes/shared';
|
|
5
5
|
import { AXValueChangedEvent } from '@acorex/cdk/common';
|
|
6
6
|
import { AXActionSheetService } from '@acorex/components/action-sheet';
|
|
7
7
|
import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXRowCommandItemClickEvent, onColumnSizeChangedEvent, AXColumnsOrderChangedEvent } from '@acorex/components/data-table';
|
|
8
8
|
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
9
|
-
import
|
|
10
|
-
import { AXPDeviceService, AXPBreadcrumbItem, AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/core';
|
|
9
|
+
import { AXPDeviceService, AXPActionMenuItem } from '@acorex/platform/core';
|
|
11
10
|
import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';
|
|
12
11
|
import { AXPlatform } from '@acorex/core/platform';
|
|
12
|
+
import * as _acorex_platform_contracts from '@acorex/platform/contracts';
|
|
13
|
+
import { AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/contracts';
|
|
13
14
|
import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
|
|
14
|
-
import { AXDataPagerChangedEvent } from '@acorex/components/data-pager';
|
|
15
|
+
import { AXDataPagerChangedEvent, AXDataPagerMode } from '@acorex/components/data-pager';
|
|
15
16
|
import * as _acorex_platform_common from '@acorex/platform/common';
|
|
16
|
-
import { AXPMenuItem, AXPSettingsService, AXPMenuVisibilityService } from '@acorex/platform/common';
|
|
17
|
+
import { AXPTabNavigationService, AXPTabPreviewService, AXPTabDescriptor, AXPMenuItem, AXPSettingsService, AXPMenuVisibilityService } from '@acorex/platform/common';
|
|
18
|
+
import { AXContextMenuItemsClickEvent } from '@acorex/components/menu';
|
|
19
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
17
20
|
import { AXPTaskBadgeService } from '@acorex/platform/layout/components';
|
|
18
21
|
import { Router, UrlTree } from '@angular/router';
|
|
19
22
|
import { AXDrawerComponent } from '@acorex/components/drawer';
|
|
@@ -105,6 +108,38 @@ declare class AXPEntityDetailListViewComponent {
|
|
|
105
108
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailListViewComponent, "axp-entity-detail-list-view", never, { "vm": { "alias": "viewModel"; "required": false; }; }, {}, never, never, true, never>;
|
|
106
109
|
}
|
|
107
110
|
|
|
111
|
+
declare class AXPEntityMasterListCardListComponent {
|
|
112
|
+
protected readonly deviceService: AXPDeviceService;
|
|
113
|
+
vm: _angular_core.InputSignal<AXPEntityMasterListViewModel>;
|
|
114
|
+
pageChanged: _angular_core.OutputEmitterRef<AXDataPagerChangedEvent>;
|
|
115
|
+
protected pagerDisplayMode: _angular_core.Signal<AXDataPagerMode>;
|
|
116
|
+
protected items: _angular_core.WritableSignal<Record<string, unknown>[]>;
|
|
117
|
+
protected loading: _angular_core.WritableSignal<boolean>;
|
|
118
|
+
protected totalCount: _angular_core.WritableSignal<number>;
|
|
119
|
+
protected pageIndex: _angular_core.WritableSignal<number>;
|
|
120
|
+
protected pageSize: _angular_core.WritableSignal<number>;
|
|
121
|
+
protected showSelection: _angular_core.Signal<boolean>;
|
|
122
|
+
protected rowKey: _angular_core.Signal<string>;
|
|
123
|
+
protected skeletonCount: _angular_core.Signal<number>;
|
|
124
|
+
protected skeletonFieldCount: _angular_core.Signal<number>;
|
|
125
|
+
protected skeletonBadgeCount: _angular_core.Signal<number>;
|
|
126
|
+
protected skeletonShowFooter: _angular_core.Signal<boolean>;
|
|
127
|
+
protected skeletonPlaceholders: _angular_core.Signal<number[]>;
|
|
128
|
+
constructor();
|
|
129
|
+
reload(resetPagination?: boolean): Promise<void>;
|
|
130
|
+
/** Syncs visible items from the shared data source without triggering a load. */
|
|
131
|
+
syncFromDataSource(): void;
|
|
132
|
+
protected trackRow(index: number, row: Record<string, unknown> | undefined): string | number;
|
|
133
|
+
protected isRowSelected(row: Record<string, unknown>): boolean;
|
|
134
|
+
protected onRowSelectionChange(row: Record<string, unknown>, selected: boolean): void;
|
|
135
|
+
protected onCommandClick(name: string, row: Record<string, unknown>): Promise<void>;
|
|
136
|
+
protected onPageChanged(event: AXDataPagerChangedEvent): void;
|
|
137
|
+
private syncItemsFromDataSource;
|
|
138
|
+
private syncPagingFromDataSource;
|
|
139
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMasterListCardListComponent, never>;
|
|
140
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityMasterListCardListComponent, "axp-entity-master-list-card-list", never, { "vm": { "alias": "vm"; "required": true; "isSignal": true; }; }, { "pageChanged": "pageChanged"; }, never, never, true, never>;
|
|
141
|
+
}
|
|
142
|
+
|
|
108
143
|
declare class AXPEntityMasterListDataTableComponent {
|
|
109
144
|
vm: _angular_core.InputSignal<AXPEntityMasterListViewModel>;
|
|
110
145
|
pageChanged: _angular_core.OutputEmitterRef<AXDataPagerChangedEvent>;
|
|
@@ -131,7 +166,6 @@ declare class AXPEntityMasterListDataTableComponent {
|
|
|
131
166
|
declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
|
|
132
167
|
protected platform: AXPlatform;
|
|
133
168
|
private activeRoute;
|
|
134
|
-
private router;
|
|
135
169
|
protected readonly vm: AXPEntityMasterListViewModel;
|
|
136
170
|
protected store: {
|
|
137
171
|
currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
@@ -195,6 +229,7 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
|
|
|
195
229
|
protected activeEndSideView: _angular_core.WritableSignal<"sort" | "filter" | "column">;
|
|
196
230
|
protected categorySearchValue: _angular_core.WritableSignal<string>;
|
|
197
231
|
protected dataTable: _angular_core.Signal<AXPEntityMasterListDataTableComponent | undefined>;
|
|
232
|
+
protected cardList: _angular_core.Signal<AXPEntityMasterListCardListComponent | undefined>;
|
|
198
233
|
private queryParamSub?;
|
|
199
234
|
private initializedFromRoute;
|
|
200
235
|
private lastEvaluatedViewName;
|
|
@@ -307,18 +342,19 @@ declare class AXPRootLayoutHeaderComponent {
|
|
|
307
342
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
308
343
|
isPrinting: boolean;
|
|
309
344
|
}>;
|
|
345
|
+
protected readonly tabNavigation: AXPTabNavigationService;
|
|
310
346
|
protected readonly logo: {
|
|
311
347
|
icon: {
|
|
312
|
-
light:
|
|
313
|
-
dark:
|
|
348
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
349
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
314
350
|
};
|
|
315
351
|
text: {
|
|
316
|
-
light:
|
|
317
|
-
dark:
|
|
352
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
353
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
318
354
|
};
|
|
319
355
|
full: {
|
|
320
|
-
light:
|
|
321
|
-
dark:
|
|
356
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
357
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
322
358
|
};
|
|
323
359
|
} | undefined;
|
|
324
360
|
constructor();
|
|
@@ -328,6 +364,64 @@ declare class AXPRootLayoutHeaderComponent {
|
|
|
328
364
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootLayoutHeaderComponent, "axp-dashboard-admin-header", never, {}, {}, never, never, true, never>;
|
|
329
365
|
}
|
|
330
366
|
|
|
367
|
+
interface AXPRouteTabBarLayout {
|
|
368
|
+
tabWidthPx: number;
|
|
369
|
+
isScrollable: boolean;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
declare class AXPRouteTabBarComponent implements AfterViewInit, OnDestroy {
|
|
373
|
+
#private;
|
|
374
|
+
protected readonly tabNavigation: AXPTabNavigationService;
|
|
375
|
+
protected readonly tabPreviewService: AXPTabPreviewService;
|
|
376
|
+
private readonly translateService;
|
|
377
|
+
private readonly host;
|
|
378
|
+
private readonly tabStrip;
|
|
379
|
+
private readonly tabsScroll;
|
|
380
|
+
private readonly contextMenu;
|
|
381
|
+
private readonly suppressTabChange;
|
|
382
|
+
private readonly contextTabKey;
|
|
383
|
+
private readonly stripWidthPx;
|
|
384
|
+
protected readonly isTabDragging: _angular_core.WritableSignal<boolean>;
|
|
385
|
+
protected readonly inHeader: _angular_core.WritableSignal<boolean>;
|
|
386
|
+
private stripResizeObserver?;
|
|
387
|
+
protected readonly layout: _angular_core.Signal<AXPRouteTabBarLayout>;
|
|
388
|
+
protected readonly tabWidthPx: _angular_core.Signal<number>;
|
|
389
|
+
protected readonly hasHorizontalOverflow: _angular_core.WritableSignal<boolean>;
|
|
390
|
+
protected readonly canScrollForward: _angular_core.WritableSignal<boolean>;
|
|
391
|
+
protected readonly canScrollBackward: _angular_core.WritableSignal<boolean>;
|
|
392
|
+
protected readonly scrollForwardIcon: _angular_core.Signal<"fa-solid fa-chevron-right" | "fa-solid fa-chevron-left">;
|
|
393
|
+
protected readonly scrollBackwardIcon: _angular_core.Signal<"fa-solid fa-chevron-right" | "fa-solid fa-chevron-left">;
|
|
394
|
+
protected readonly isMiddlePanning: _angular_core.WritableSignal<boolean>;
|
|
395
|
+
private tabsScrollElement?;
|
|
396
|
+
private tabsScrollObserver?;
|
|
397
|
+
private middlePanSession;
|
|
398
|
+
private middlePanMoved;
|
|
399
|
+
ngAfterViewInit(): void;
|
|
400
|
+
ngOnDestroy(): void;
|
|
401
|
+
/** Scrolls the strip toward hidden tabs on the requested edge. */
|
|
402
|
+
protected scrollTabs(direction: 'forward' | 'backward'): void;
|
|
403
|
+
/** Starts middle-mouse drag scrolling on the tab strip. */
|
|
404
|
+
protected onTabsScrollMouseDown(event: MouseEvent): void;
|
|
405
|
+
/** Whether a tab can be dragged (home tab stays fixed at the start). */
|
|
406
|
+
protected isTabDragDisabled(tab: AXPTabDescriptor): boolean;
|
|
407
|
+
protected onTabDragStarted(): void;
|
|
408
|
+
protected onTabDragEnded(): void;
|
|
409
|
+
protected onTabDropped(event: CdkDragDrop<AXPTabDescriptor[]>): void;
|
|
410
|
+
protected onTabActivate(tab: AXPTabDescriptor, event: MouseEvent): Promise<void>;
|
|
411
|
+
/** Resolves tab metadata for context menu actions. */
|
|
412
|
+
protected findTab(key: string): AXPTabDescriptor | undefined;
|
|
413
|
+
/** Normalizes menu/page icon classes for `ax-icon`. */
|
|
414
|
+
protected resolveTabIcon(tab: AXPTabDescriptor): string;
|
|
415
|
+
/** Closes a tab when the close button is clicked. */
|
|
416
|
+
protected onTabCloseClick(tab: AXPTabDescriptor, event: MouseEvent): Promise<void>;
|
|
417
|
+
/** Closes a tab on middle mouse button click (browser-style). */
|
|
418
|
+
protected onTabMiddleClick(tab: AXPTabDescriptor, event: MouseEvent): Promise<void>;
|
|
419
|
+
protected openTabContextMenu(event: MouseEvent, key: string): Promise<void>;
|
|
420
|
+
protected handleTabContextMenuItemClick(event: AXContextMenuItemsClickEvent): Promise<void>;
|
|
421
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRouteTabBarComponent, never>;
|
|
422
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRouteTabBarComponent, "axp-route-tab-bar", never, {}, {}, never, never, true, never>;
|
|
423
|
+
}
|
|
424
|
+
|
|
331
425
|
declare class AXPRootLayoutMenuComponent {
|
|
332
426
|
protected menuStore: {
|
|
333
427
|
items: Signal<AXPMenuItem[]>;
|
|
@@ -411,7 +505,15 @@ declare class AXPRootLayoutMenuComponent {
|
|
|
411
505
|
protected badgeVisible: _angular_core.WritableSignal<boolean>;
|
|
412
506
|
protected readonly menuMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
|
|
413
507
|
ngOnInit(): Promise<void>;
|
|
414
|
-
onMenuItemClick(item: AXPMenuItem
|
|
508
|
+
onMenuItemClick(item: AXPMenuItem): void;
|
|
509
|
+
/**
|
|
510
|
+
* Determines whether a menu item should render as active.
|
|
511
|
+
* Do not bind `routerLink` on `ax-side-menu-item`: that component ignores the `active` input
|
|
512
|
+
* and only uses `RouterLinkActive`, which cannot match entity detail routes to list menu paths.
|
|
513
|
+
*/
|
|
514
|
+
protected isMenuItemActive(item: AXPMenuItem): boolean;
|
|
515
|
+
private isSameMenuItem;
|
|
516
|
+
protected getMenuItemRoutePath(item: AXPMenuItem): string | null;
|
|
415
517
|
protected sort(items: AXPMenuItem[]): AXPMenuItem[];
|
|
416
518
|
protected getMenuBadge(item: AXPMenuItem): Signal<number>;
|
|
417
519
|
/**
|
|
@@ -467,16 +569,16 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
467
569
|
private config;
|
|
468
570
|
protected logo: {
|
|
469
571
|
icon: {
|
|
470
|
-
light:
|
|
471
|
-
dark:
|
|
572
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
573
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
472
574
|
};
|
|
473
575
|
text: {
|
|
474
|
-
light:
|
|
475
|
-
dark:
|
|
576
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
577
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
476
578
|
};
|
|
477
579
|
full: {
|
|
478
|
-
light:
|
|
479
|
-
dark:
|
|
580
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
581
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
480
582
|
};
|
|
481
583
|
} | undefined;
|
|
482
584
|
protected store: {
|
|
@@ -543,23 +645,9 @@ declare class AXPRootHorizontalLayoutComponent {
|
|
|
543
645
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootHorizontalLayoutComponent, "axp-root-horizontal-layout", never, {}, {}, never, never, true, never>;
|
|
544
646
|
}
|
|
545
647
|
|
|
546
|
-
declare class
|
|
547
|
-
private
|
|
548
|
-
protected
|
|
549
|
-
icon: {
|
|
550
|
-
light: _acorex_platform_core.AXPLogoConfig;
|
|
551
|
-
dark: _acorex_platform_core.AXPLogoConfig;
|
|
552
|
-
};
|
|
553
|
-
text: {
|
|
554
|
-
light: _acorex_platform_core.AXPLogoConfig;
|
|
555
|
-
dark: _acorex_platform_core.AXPLogoConfig;
|
|
556
|
-
};
|
|
557
|
-
full: {
|
|
558
|
-
light: _acorex_platform_core.AXPLogoConfig;
|
|
559
|
-
dark: _acorex_platform_core.AXPLogoConfig;
|
|
560
|
-
};
|
|
561
|
-
} | undefined;
|
|
562
|
-
protected store: {
|
|
648
|
+
declare class AXPRootLayoutComponent {
|
|
649
|
+
#private;
|
|
650
|
+
protected layout: {
|
|
563
651
|
currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
564
652
|
currentPalette: _angular_core.Signal<string>;
|
|
565
653
|
systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
@@ -617,18 +705,50 @@ declare class AXPRootVerticalLayoutComponent {
|
|
|
617
705
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
618
706
|
isPrinting: boolean;
|
|
619
707
|
}>;
|
|
620
|
-
protected
|
|
708
|
+
protected menuStore: {
|
|
709
|
+
items: _angular_core.Signal<_acorex_platform_common.AXPMenuItem[]>;
|
|
710
|
+
selectedMenuItem: _ngrx_signals.DeepSignal<{
|
|
711
|
+
item: _acorex_platform_common.AXPMenuItem | null;
|
|
712
|
+
isFullMatch: boolean;
|
|
713
|
+
}>;
|
|
714
|
+
setMenuItems: (items: _acorex_platform_common.AXPMenuItem[]) => void;
|
|
715
|
+
selectMenuItemByRoute: (path: string) => void;
|
|
716
|
+
executeCommand: (item: _acorex_platform_common.AXPMenuItem) => void;
|
|
717
|
+
isItemOpen: (item: _acorex_platform_common.AXPMenuItem) => boolean;
|
|
718
|
+
} & _ngrx_signals.StateSource<{
|
|
719
|
+
items: _acorex_platform_common.AXPMenuItem[];
|
|
720
|
+
selectedMenuItem: {
|
|
721
|
+
item: _acorex_platform_common.AXPMenuItem | null;
|
|
722
|
+
isFullMatch: boolean;
|
|
723
|
+
};
|
|
724
|
+
}>;
|
|
621
725
|
protected router: Router;
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
static
|
|
726
|
+
private eventService;
|
|
727
|
+
private sessionService;
|
|
728
|
+
private unsubscriber;
|
|
729
|
+
private contextStore;
|
|
730
|
+
ngOnInit(): void;
|
|
731
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootLayoutComponent, never>;
|
|
732
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootLayoutComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
628
733
|
}
|
|
629
734
|
|
|
630
|
-
declare class
|
|
631
|
-
|
|
735
|
+
declare class AXPRootVerticalLayoutComponent {
|
|
736
|
+
private config;
|
|
737
|
+
protected logo: {
|
|
738
|
+
icon: {
|
|
739
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
740
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
741
|
+
};
|
|
742
|
+
text: {
|
|
743
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
744
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
745
|
+
};
|
|
746
|
+
full: {
|
|
747
|
+
light: _acorex_platform_contracts.AXPLogoConfig;
|
|
748
|
+
dark: _acorex_platform_contracts.AXPLogoConfig;
|
|
749
|
+
};
|
|
750
|
+
} | undefined;
|
|
751
|
+
protected store: {
|
|
632
752
|
currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
633
753
|
currentPalette: _angular_core.Signal<string>;
|
|
634
754
|
systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
|
|
@@ -686,31 +806,14 @@ declare class AXPRootLayoutComponent {
|
|
|
686
806
|
menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
|
|
687
807
|
isPrinting: boolean;
|
|
688
808
|
}>;
|
|
689
|
-
protected
|
|
690
|
-
items: _angular_core.Signal<_acorex_platform_common.AXPMenuItem[]>;
|
|
691
|
-
selectedMenuItem: _ngrx_signals.DeepSignal<{
|
|
692
|
-
item: _acorex_platform_common.AXPMenuItem | null;
|
|
693
|
-
isFullMatch: boolean;
|
|
694
|
-
}>;
|
|
695
|
-
setMenuItems: (items: _acorex_platform_common.AXPMenuItem[]) => void;
|
|
696
|
-
selectMenuItemByRoute: (path: string) => void;
|
|
697
|
-
executeCommand: (item: _acorex_platform_common.AXPMenuItem) => void;
|
|
698
|
-
isItemOpen: (item: _acorex_platform_common.AXPMenuItem) => boolean;
|
|
699
|
-
} & _ngrx_signals.StateSource<{
|
|
700
|
-
items: _acorex_platform_common.AXPMenuItem[];
|
|
701
|
-
selectedMenuItem: {
|
|
702
|
-
item: _acorex_platform_common.AXPMenuItem | null;
|
|
703
|
-
isFullMatch: boolean;
|
|
704
|
-
};
|
|
705
|
-
}>;
|
|
809
|
+
protected deviceService: AXPDeviceService;
|
|
706
810
|
protected router: Router;
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
static
|
|
713
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootLayoutComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
811
|
+
/** Recreates the drawer when switching overlay ↔ push to reset internal layout sizing. */
|
|
812
|
+
protected readonly sideMenuDrawerKey: _angular_core.Signal<"overlay" | "push">;
|
|
813
|
+
constructor();
|
|
814
|
+
protected handleResizingEnded(e: AXValueChangedEvent<number>): void;
|
|
815
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootVerticalLayoutComponent, never>;
|
|
816
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootVerticalLayoutComponent, "axp-root-vertical-layout", never, {}, {}, never, never, true, never>;
|
|
714
817
|
}
|
|
715
818
|
|
|
716
819
|
declare class AXPDefaultThemeModule {
|
|
@@ -719,4 +822,4 @@ declare class AXPDefaultThemeModule {
|
|
|
719
822
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPDefaultThemeModule>;
|
|
720
823
|
}
|
|
721
824
|
|
|
722
|
-
export { AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPEntityMasterListViewComponent, AXPRootHorizontalLayoutComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPRootVerticalLayoutComponent };
|
|
825
|
+
export { AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPEntityMasterListViewComponent, AXPRootHorizontalLayoutComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPRootVerticalLayoutComponent, AXPRouteTabBarComponent };
|
|
@@ -2,8 +2,9 @@ import * as rxjs from 'rxjs';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Type, ModuleWithProviders, Injector, InjectionToken } from '@angular/core';
|
|
5
|
-
import { AXPActivityCategory, AXPActivityDefinition, AXPWorkflowContinuationMetadata, AXPWorkflowContinuationBeforeInteractive, AXPWorkflowDefinition } from '@acorex/platform/contracts';
|
|
6
|
-
|
|
5
|
+
import { AXPActivityCategory, AXPActivityDefinition, AXPWorkflowContinuationMetadata, AXPWorkflowContinuationBeforeInteractive, AXPWorkflowCategory, AXPWorkflowDefinition } from '@acorex/platform/contracts';
|
|
6
|
+
export { AXPWorkflowCategory } from '@acorex/platform/contracts';
|
|
7
|
+
import { AXPExpressionEvaluatorScope } from '@acorex/platform/core';
|
|
7
8
|
|
|
8
9
|
declare class AXPWorkflowError extends Error {
|
|
9
10
|
inner: Error | null;
|
|
@@ -1057,6 +1058,7 @@ interface WorkflowExpressionContext {
|
|
|
1057
1058
|
* ```
|
|
1058
1059
|
*/
|
|
1059
1060
|
declare class WorkflowExpressionScopeService {
|
|
1061
|
+
private readonly contextEvalFactory;
|
|
1060
1062
|
/**
|
|
1061
1063
|
* Collect dot-notation key-value pairs from nested objects so that e.g.
|
|
1062
1064
|
* { metadata: { "metadata.questionnaire.id": "x" } } becomes { "metadata.questionnaire.id": "x" } at root.
|
|
@@ -1175,21 +1177,6 @@ declare function axpShouldOfferBeforeInteractiveFlow(context: AXPWorkflowContinu
|
|
|
1175
1177
|
*/
|
|
1176
1178
|
declare function axpShouldOfferWorkflowContinuationAfterStep(context: AXPWorkflowContinuationStepContext, activeBookmarkActivityIds: string[]): boolean;
|
|
1177
1179
|
|
|
1178
|
-
/**
|
|
1179
|
-
* Workflow Category - Extends AXPCategoryEntity for consistency and performance
|
|
1180
|
-
*
|
|
1181
|
-
* Inherited properties from AXPCategoryEntity:
|
|
1182
|
-
* - id: string - Unique identifier
|
|
1183
|
-
* - title: string - Display name
|
|
1184
|
-
* - description?: string - Category description
|
|
1185
|
-
* - parentId?: string - Parent category ID
|
|
1186
|
-
* - childrenCount: number - Direct child categories count (enables lazy loading)
|
|
1187
|
-
* - itemsCount?: number - Direct workflows count
|
|
1188
|
-
* - totalChildrenCount?: number - Total nested categories (optional, for analytics)
|
|
1189
|
-
* - totalItemsCount?: number - Total workflows in tree (optional, for analytics)
|
|
1190
|
-
*/
|
|
1191
|
-
interface AXPWorkflowCategory extends AXPCategoryEntity {
|
|
1192
|
-
}
|
|
1193
1180
|
type AXPWorkflowProviderToken = AXPWorkflowProvider | Promise<AXPWorkflowProvider>;
|
|
1194
1181
|
declare const AXP_WORKFLOW_PROVIDER: InjectionToken<AXPWorkflowProviderToken[]>;
|
|
1195
1182
|
interface AXPWorkflowProvider {
|
|
@@ -1352,4 +1339,4 @@ declare class AXPWorkflowDefinitionService {
|
|
|
1352
1339
|
}
|
|
1353
1340
|
|
|
1354
1341
|
export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowInlineFrontendTask, axpIsWorkflowInteractiveFrontendTask, axpIsWorkflowTaskBoardActivityType, axpResolveWorkflowContinuationBeforeInteractive, axpShouldOfferBeforeInteractiveFlow, axpShouldOfferWorkflowContinuationAfterStep, axpShouldSkipBeforeInteractiveFromMetadata, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
|
|
1355
|
-
export type { AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityProvider, AXPActivityProviderToken, AXPClaimWorkflowTaskRequest, AXPClaimWorkflowTaskResponse, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPReassignWorkflowTaskToSelfRequest, AXPReassignWorkflowTaskToSelfResponse, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPRevertResumeAfterDeclinedInteractiveContinuationRequest, AXPRevertResumeAfterDeclinedInteractiveContinuationResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPWorkflow, AXPWorkflowActionInput,
|
|
1342
|
+
export type { AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityProvider, AXPActivityProviderToken, AXPClaimWorkflowTaskRequest, AXPClaimWorkflowTaskResponse, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPReassignWorkflowTaskToSelfRequest, AXPReassignWorkflowTaskToSelfResponse, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPRevertResumeAfterDeclinedInteractiveContinuationRequest, AXPRevertResumeAfterDeclinedInteractiveContinuationResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowContinuationHook, AXPWorkflowContinuationOfferResult, AXPWorkflowContinuationStepContext, AXPWorkflowEngine, AXPWorkflowErrorCode, AXPWorkflowEvent, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowStep, AXPWorkflowTask, ActivityExecutionResult, WorkflowClaimTaskResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowReassignTaskToSelfResult, WorkflowResumeResult, WorkflowStartResult };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-common-common-settings.provider-Ytey9uhY.mjs","sources":["../../../../libs/platform/common/src/lib/configs/common-settings.provider.ts"],"sourcesContent":["import { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injectable, Injector } from '@angular/core';\nimport { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '../settings';\nimport { AXPCommonSettings } from './common-settings.key';\n\nconst I18N = '@general:settings';\n\n@Injectable()\nexport class AXPCommonSettingProvider implements AXPSettingDefinitionProvider {\n constructor(private _injector: Injector) {}\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Define the 'General Settings' group\n context\n .group('general')\n ?.addSection('notifications', `${I18N}.general.notifications.title`, `${I18N}.general.notifications.description`)\n // Add the 'Enable Operation Toasts' setting\n .addSetting({\n key: AXPCommonSettings.EnableOperationToasts,\n title: `${I18N}.general.notifications.enable-operation-toasts.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n\n description: `${I18N}.general.notifications.enable-operation-toasts.description`,\n })\n\n // End the 'Notifications' section\n .endSection()\n .addSection('entity', `${I18N}.general.entity.title`, `${I18N}.general.entity.description`)\n // Add the 'Enable Operation Toasts' setting\n .addSetting({\n key: AXPCommonSettings.EntityFilterApplyMode,\n title: `${I18N}.general.entity.filter-apply-mode.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: 'auto',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n label: null,\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'auto', text: `${I18N}.general.entity.filter-apply-mode.options.auto` },\n { value: 'manual', text: `${I18N}.general.entity.filter-apply-mode.options.manual` },\n ],\n },\n },\n\n description: `${I18N}.general.entity.filter-apply-mode.description`,\n })\n .addSetting({\n key: AXPCommonSettings.EntityListPersistenceMode,\n title: `${I18N}.general.entity.list-persistence-mode.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: 'persistent',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n label: null,\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'none', text: `${I18N}.general.entity.list-persistence-mode.options.none` },\n {\n value: 'persistent',\n text: `${I18N}.general.entity.list-persistence-mode.options.persistent`,\n },\n { value: 'route', text: `${I18N}.general.entity.list-persistence-mode.options.route` },\n ],\n },\n },\n description: `${I18N}.general.entity.list-persistence-mode.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowCategoryColumnsByDefault,\n title: `${I18N}.general.entity.show-category-columns-by-default.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-category-columns-by-default.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ApplyLayoutOrdering,\n title: `${I18N}.general.entity.apply-layout-ordering.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.apply-layout-ordering.description`,\n })\n .addSetting({\n key: AXPCommonSettings.RedirectToDetailsAfterCreate,\n title: `${I18N}.general.entity.redirect-to-details-after-create.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.redirect-to-details-after-create.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowPageBadge,\n title: `${I18N}.general.entity.show-page-badge.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-page-badge.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ConfirmUnsavedChanges,\n title: `${I18N}.general.entity.confirm-unsaved-changes.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.confirm-unsaved-changes.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowRowIndexColumn,\n title: `${I18N}.general.entity.show-row-index-column.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-row-index-column.description`,\n })\n\n // End the 'Entity Settings' section\n .endSection()\n // End the 'General Settings' group\n .endGroup();\n }\n}\n"],"names":[],"mappings":"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"}
|
package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { AXBadgeModule } from '@acorex/components/badge';
|
|
2
|
-
import * as i1 from '@acorex/platform/layout/widget-core';
|
|
3
|
-
import { AXPColumnWidgetComponent, AXPWidgetCoreModule, AXPWidgetCoreService } from '@acorex/platform/layout/widget-core';
|
|
4
|
-
import { AXButtonModule } from '@acorex/components/button';
|
|
5
|
-
import * as i3 from '@acorex/components/popover';
|
|
6
|
-
import { AXPopoverModule } from '@acorex/components/popover';
|
|
7
|
-
import * as i0 from '@angular/core';
|
|
8
|
-
import { viewChild, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
9
|
-
import { isNil } from 'lodash-es';
|
|
10
|
-
import { AXPContextStore } from '@acorex/platform/core';
|
|
11
|
-
|
|
12
|
-
class AXPRepeaterWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(...arguments);
|
|
15
|
-
//#region ---- View Children ----
|
|
16
|
-
this.moreButton = viewChild('moreButton', ...(ngDevMode ? [{ debugName: "moreButton" }] : /* istanbul ignore next */ []));
|
|
17
|
-
this.morePopover = viewChild('morePopover', ...(ngDevMode ? [{ debugName: "morePopover" }] : /* istanbul ignore next */ []));
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region ---- Properties ----
|
|
20
|
-
this.maxVisible = this.options['maxVisible'] ?? 2;
|
|
21
|
-
this.childWidgetNode = this.options['children']?.[0];
|
|
22
|
-
//#endregion
|
|
23
|
-
//#region ---- Signals ----
|
|
24
|
-
this.isMorePopoverOpen = signal(false, ...(ngDevMode ? [{ debugName: "isMorePopoverOpen" }] : /* istanbul ignore next */ []));
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region ---- Node Cache ----
|
|
27
|
-
// Cache nodes by index to prevent recreation on every change detection
|
|
28
|
-
this.nodeCache = new Map();
|
|
29
|
-
this.lastItems = [];
|
|
30
|
-
//#endregion
|
|
31
|
-
//#region ---- Computed Properties ----
|
|
32
|
-
this.displayItems = computed(() => {
|
|
33
|
-
if (isNil(this.rawValue)) {
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
const items = Array.isArray(this.rawValue) ? this.rawValue : [this.rawValue];
|
|
37
|
-
return items.filter((item) => item != null);
|
|
38
|
-
}, ...(ngDevMode ? [{ debugName: "displayItems" }] : /* istanbul ignore next */ []));
|
|
39
|
-
this.allItems = computed(() => this.displayItems(), ...(ngDevMode ? [{ debugName: "allItems" }] : /* istanbul ignore next */ []));
|
|
40
|
-
this.visibleItems = computed(() => {
|
|
41
|
-
const items = this.allItems();
|
|
42
|
-
return items.slice(0, this.maxVisible);
|
|
43
|
-
}, ...(ngDevMode ? [{ debugName: "visibleItems" }] : /* istanbul ignore next */ []));
|
|
44
|
-
this.hasMoreItems = computed(() => {
|
|
45
|
-
return this.allItems().length > this.maxVisible;
|
|
46
|
-
}, ...(ngDevMode ? [{ debugName: "hasMoreItems" }] : /* istanbul ignore next */ []));
|
|
47
|
-
this.remainingItemsCount = computed(() => {
|
|
48
|
-
return this.allItems().length - this.maxVisible;
|
|
49
|
-
}, ...(ngDevMode ? [{ debugName: "remainingItemsCount" }] : /* istanbul ignore next */ []));
|
|
50
|
-
}
|
|
51
|
-
// Clear cache when items change
|
|
52
|
-
clearCacheIfNeeded() {
|
|
53
|
-
const currentItems = this.allItems();
|
|
54
|
-
if (currentItems.length !== this.lastItems.length ||
|
|
55
|
-
currentItems.some((item, idx) => item !== this.lastItems[idx])) {
|
|
56
|
-
this.nodeCache.clear();
|
|
57
|
-
this.lastItems = [...currentItems];
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
//#region ---- Public Methods ----
|
|
62
|
-
showMoreItems() {
|
|
63
|
-
this.openMorePopover();
|
|
64
|
-
}
|
|
65
|
-
onMorePopoverOpenChange(event) {
|
|
66
|
-
this.isMorePopoverOpen.set(event);
|
|
67
|
-
}
|
|
68
|
-
getItemNode(item, index) {
|
|
69
|
-
if (!this.childWidgetNode) {
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
// Clear cache if items changed
|
|
73
|
-
this.clearCacheIfNeeded();
|
|
74
|
-
// Return cached node if exists
|
|
75
|
-
const cachedNode = this.nodeCache.get(index);
|
|
76
|
-
if (cachedNode) {
|
|
77
|
-
return cachedNode;
|
|
78
|
-
}
|
|
79
|
-
const child = this.childWidgetNode;
|
|
80
|
-
const childBindingRaw = child.path ?? child.name;
|
|
81
|
-
const childBinding = childBindingRaw != null && String(childBindingRaw).trim() !== '' ? String(childBindingRaw).trim() : '';
|
|
82
|
-
const baseItemPath = `${this.path}[${index}]`;
|
|
83
|
-
const itemPath = childBinding ? `${baseItemPath}.${childBinding}` : baseItemPath;
|
|
84
|
-
// Create new node and cache it
|
|
85
|
-
const node = {
|
|
86
|
-
...child,
|
|
87
|
-
path: itemPath,
|
|
88
|
-
defaultValue: item,
|
|
89
|
-
options: {
|
|
90
|
-
...child.options,
|
|
91
|
-
rawValue: item,
|
|
92
|
-
rowData: this.rowData,
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
this.nodeCache.set(index, node);
|
|
96
|
-
return node;
|
|
97
|
-
}
|
|
98
|
-
//#endregion
|
|
99
|
-
//#region ---- Private Methods ----
|
|
100
|
-
openMorePopover() {
|
|
101
|
-
if (this.morePopover() && this.moreButton()) {
|
|
102
|
-
this.morePopover().target = this.moreButton().nativeElement;
|
|
103
|
-
this.morePopover().open();
|
|
104
|
-
this.isMorePopoverOpen.set(true);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRepeaterWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPRepeaterWidgetColumnComponent, isStandalone: true, selector: "axp-repeater-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, providers: [AXPWidgetCoreService, AXPContextStore], viewQueries: [{ propertyName: "moreButton", first: true, predicate: ["moreButton"], descendants: true, isSignal: true }, { propertyName: "morePopover", first: true, predicate: ["morePopover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-gap-1 ax-items-center \">\n\n @for (item of visibleItems(); track $index) {\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\" [parentNode]=\"null\"\n [index]=\"$index\"></ng-container>\n }\n }@empty {\n <span class=\"ax-text-muted\">---</span>\n }\n\n\n @if (hasMoreItems()) {\n <span\n class=\"ax-absolute ax-flex ax-items-center ax-end-0 ax-px-1 ax-cursor-pointer ax-h-full hover:ax-primary-lighter\"\n (click)=\"showMoreItems()\" #moreButton>\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n</div>\n\n<!-- More Items Popover -->\n<ax-popover [openOn]=\"'manual'\" #morePopover (openChange)=\"onMorePopoverOpenChange($event)\">\n <div class=\"ax-lightest-surface ax-border ax-rounded-lg ax-shadow-lg ax-p-4 ax-min-w-[280px]\">\n <div class=\"ax-mb-4 ax-border-b ax-pb-2\">\n <h3 class=\"ax-text-base ax-font-semibold\">All {{ allItems().length }} Items</h3>\n </div>\n <div class=\"ax-max-h-64 ax-flex ax-flex-col ax-gap-3 ax-overflow-auto\" style=\"max-height: max(30dvh,10rem)\">\n @for (item of allItems(); track $index) {\n <div>\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\"\n [parentNode]=\"null\" [index]=\"$index\"></ng-container>\n }\n </div>\n }\n </div>\n </div>\n</ax-popover>", dependencies: [{ kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
109
|
-
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRepeaterWidgetColumnComponent, decorators: [{
|
|
111
|
-
type: Component,
|
|
112
|
-
args: [{ selector: 'axp-repeater-widget-column', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXBadgeModule, AXButtonModule, AXPopoverModule, AXPWidgetCoreModule], providers: [AXPWidgetCoreService, AXPContextStore], inputs: ['rawValue', 'rowData'], template: "<div class=\"ax-flex ax-gap-1 ax-items-center \">\n\n @for (item of visibleItems(); track $index) {\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\" [parentNode]=\"null\"\n [index]=\"$index\"></ng-container>\n }\n }@empty {\n <span class=\"ax-text-muted\">---</span>\n }\n\n\n @if (hasMoreItems()) {\n <span\n class=\"ax-absolute ax-flex ax-items-center ax-end-0 ax-px-1 ax-cursor-pointer ax-h-full hover:ax-primary-lighter\"\n (click)=\"showMoreItems()\" #moreButton>\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n</div>\n\n<!-- More Items Popover -->\n<ax-popover [openOn]=\"'manual'\" #morePopover (openChange)=\"onMorePopoverOpenChange($event)\">\n <div class=\"ax-lightest-surface ax-border ax-rounded-lg ax-shadow-lg ax-p-4 ax-min-w-[280px]\">\n <div class=\"ax-mb-4 ax-border-b ax-pb-2\">\n <h3 class=\"ax-text-base ax-font-semibold\">All {{ allItems().length }} Items</h3>\n </div>\n <div class=\"ax-max-h-64 ax-flex ax-flex-col ax-gap-3 ax-overflow-auto\" style=\"max-height: max(30dvh,10rem)\">\n @for (item of allItems(); track $index) {\n <div>\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\"\n [parentNode]=\"null\" [index]=\"$index\"></ng-container>\n }\n </div>\n }\n </div>\n </div>\n</ax-popover>" }]
|
|
113
|
-
}], propDecorators: { moreButton: [{ type: i0.ViewChild, args: ['moreButton', { isSignal: true }] }], morePopover: [{ type: i0.ViewChild, args: ['morePopover', { isSignal: true }] }] } });
|
|
114
|
-
|
|
115
|
-
export { AXPRepeaterWidgetColumnComponent };
|
|
116
|
-
//# sourceMappingURL=acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map
|
package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.ts","../../../../libs/platform/layout/widgets/src/lib/widgets/layout/repeater/repeater-widget-column.component.html"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent, AXPWidgetNode, AXPWidgetCoreModule, AXPWidgetCoreService } from '@acorex/platform/layout/widget-core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, signal, viewChild } from '@angular/core';\n\nimport { isNil } from 'lodash-es';\nimport { AXPContextStore } from '@acorex/platform/core';\n\n@Component({\n selector: 'axp-repeater-widget-column',\n templateUrl: './repeater-widget-column.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule, AXButtonModule, AXPopoverModule, AXPWidgetCoreModule],\n providers: [AXPWidgetCoreService, AXPContextStore],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXPRepeaterWidgetColumnComponent extends AXPColumnWidgetComponent<any[]> {\n //#region ---- View Children ----\n\n protected moreButton = viewChild<ElementRef>('moreButton');\n protected morePopover = viewChild<AXPopoverComponent>('morePopover');\n\n //#endregion\n\n //#region ---- Properties ----\n\n protected maxVisible: number = this.options['maxVisible'] ?? 2;\n protected childWidgetNode: AXPWidgetNode | undefined = this.options['children']?.[0];\n\n //#endregion\n\n //#region ---- Signals ----\n\n protected isMorePopoverOpen = signal(false);\n\n //#endregion\n\n //#region ---- Node Cache ----\n\n // Cache nodes by index to prevent recreation on every change detection\n private nodeCache = new Map<number, AXPWidgetNode>();\n private lastItems: any[] = [];\n\n // Clear cache when items change\n private clearCacheIfNeeded(): void {\n const currentItems = this.allItems();\n if (currentItems.length !== this.lastItems.length ||\n currentItems.some((item, idx) => item !== this.lastItems[idx])) {\n this.nodeCache.clear();\n this.lastItems = [...currentItems];\n }\n }\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected displayItems = computed(() => {\n if (isNil(this.rawValue)) {\n return [];\n }\n const items = Array.isArray(this.rawValue) ? this.rawValue : [this.rawValue];\n return items.filter((item) => item != null);\n });\n\n protected allItems = computed(() => this.displayItems());\n\n protected visibleItems = computed(() => {\n const items = this.allItems();\n return items.slice(0, this.maxVisible);\n });\n\n protected hasMoreItems = computed(() => {\n return this.allItems().length > this.maxVisible;\n });\n\n protected remainingItemsCount = computed(() => {\n return this.allItems().length - this.maxVisible;\n });\n\n //#endregion\n\n //#region ---- Public Methods ----\n\n protected showMoreItems(): void {\n this.openMorePopover();\n }\n\n protected onMorePopoverOpenChange(event: any): void {\n this.isMorePopoverOpen.set(event);\n }\n\n protected getItemNode(item: any, index: number): AXPWidgetNode | undefined {\n if (!this.childWidgetNode) {\n return undefined;\n }\n\n // Clear cache if items changed\n this.clearCacheIfNeeded();\n\n // Return cached node if exists\n const cachedNode = this.nodeCache.get(index);\n if (cachedNode) {\n return cachedNode;\n }\n\n const child = this.childWidgetNode;\n const childBindingRaw = child.path ?? child.name;\n const childBinding =\n childBindingRaw != null && String(childBindingRaw).trim() !== '' ? String(childBindingRaw).trim() : '';\n const baseItemPath = `${this.path}[${index}]`;\n const itemPath = childBinding ? `${baseItemPath}.${childBinding}` : baseItemPath;\n\n // Create new node and cache it\n const node: AXPWidgetNode = {\n ...child,\n path: itemPath,\n defaultValue: item,\n options: {\n ...child.options,\n rawValue: item,\n rowData: this.rowData,\n },\n };\n\n this.nodeCache.set(index, node);\n return node;\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n private openMorePopover(): void {\n if (this.morePopover() && this.moreButton()) {\n this.morePopover()!.target = this.moreButton()!.nativeElement;\n this.morePopover()!.open();\n this.isMorePopoverOpen.set(true);\n }\n }\n\n //#endregion\n}\n\n","<div class=\"ax-flex ax-gap-1 ax-items-center \">\n\n @for (item of visibleItems(); track $index) {\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\" [parentNode]=\"null\"\n [index]=\"$index\"></ng-container>\n }\n }@empty {\n <span class=\"ax-text-muted\">---</span>\n }\n\n\n @if (hasMoreItems()) {\n <span\n class=\"ax-absolute ax-flex ax-items-center ax-end-0 ax-px-1 ax-cursor-pointer ax-h-full hover:ax-primary-lighter\"\n (click)=\"showMoreItems()\" #moreButton>\n <i class=\"fa-light fa-ellipsis-vertical\"></i>\n </span>\n }\n</div>\n\n<!-- More Items Popover -->\n<ax-popover [openOn]=\"'manual'\" #morePopover (openChange)=\"onMorePopoverOpenChange($event)\">\n <div class=\"ax-lightest-surface ax-border ax-rounded-lg ax-shadow-lg ax-p-4 ax-min-w-[280px]\">\n <div class=\"ax-mb-4 ax-border-b ax-pb-2\">\n <h3 class=\"ax-text-base ax-font-semibold\">All {{ allItems().length }} Items</h3>\n </div>\n <div class=\"ax-max-h-64 ax-flex ax-flex-col ax-gap-3 ax-overflow-auto\" style=\"max-height: max(30dvh,10rem)\">\n @for (item of allItems(); track $index) {\n <div>\n @if (childWidgetNode) {\n <ng-container axp-widget-renderer [node]=\"getItemNode(item, $index)!\" [mode]=\"'view'\"\n [parentNode]=\"null\" [index]=\"$index\"></ng-container>\n }\n </div>\n }\n </div>\n </div>\n</ax-popover>"],"names":["i2"],"mappings":";;;;;;;;;;;AAiBM,MAAO,gCAAiC,SAAQ,wBAA+B,CAAA;AARrF,IAAA,WAAA,GAAA;;;AAWc,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAa,YAAY,iFAAC;AAChD,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAqB,aAAa,kFAAC;;;QAM1D,IAAA,CAAA,UAAU,GAAW,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;QACpD,IAAA,CAAA,eAAe,GAA8B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;;;AAM1E,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,wFAAC;;;;AAOnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAyB;QAC5C,IAAA,CAAA,SAAS,GAAU,EAAE;;;AAgBnB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACnC,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACtB,gBAAA,OAAO,EAAE;YACb;YACA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5E,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC;AAC/C,QAAA,CAAC,mFAAC;QAEQ,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAE9C,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACnC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1C,QAAA,CAAC,mFAAC;AAEQ,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;YACnC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;AACnD,QAAA,CAAC,mFAAC;AAEQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YAC1C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;AACnD,QAAA,CAAC,0FAAC;AAgEL,IAAA;;IAlGW,kBAAkB,GAAA;AACtB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE;QACpC,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM;YAC7C,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC;QACtC;IACJ;;;IAiCU,aAAa,GAAA;QACnB,IAAI,CAAC,eAAe,EAAE;IAC1B;AAEU,IAAA,uBAAuB,CAAC,KAAU,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;IACrC;IAEU,WAAW,CAAC,IAAS,EAAE,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,OAAO,SAAS;QACpB;;QAGA,IAAI,CAAC,kBAAkB,EAAE;;QAGzB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5C,IAAI,UAAU,EAAE;AACZ,YAAA,OAAO,UAAU;QACrB;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe;QAClC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;AAChD,QAAA,MAAM,YAAY,GACd,eAAe,IAAI,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;QAC1G,MAAM,YAAY,GAAG,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG;AAC7C,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,GAAG,YAAY;;AAGhF,QAAA,MAAM,IAAI,GAAkB;AACxB,YAAA,GAAG,KAAK;AACR,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,OAAO,EAAE;gBACL,GAAG,KAAK,CAAC,OAAO;AAChB,gBAAA,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;AACxB,aAAA;SACJ;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/B,QAAA,OAAO,IAAI;IACf;;;IAMQ,eAAe,GAAA;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACzC,YAAA,IAAI,CAAC,WAAW,EAAG,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAG,CAAC,aAAa;AAC7D,YAAA,IAAI,CAAC,WAAW,EAAG,CAAC,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QACpC;IACJ;8GA3HS,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAH9B,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdtD,mjDAsCa,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzBC,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,6XAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIpE,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAR5C,SAAS;+BACI,4BAA4B,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAA,SAAA,EACnE,CAAC,oBAAoB,EAAE,eAAe,CAAC,EAAA,MAAA,EAC1C,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,mjDAAA,EAAA;AAKc,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,YAAY,qEACH,aAAa,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;;;"}
|
package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPContextChangeEvent, 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 { AXPTabularDataColumn } from './tabular-widget.types';\n\n@Component({\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})\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n context: any;\n columns: AXPTabularDataColumn[];\n disabled: boolean = false;\n defaultRowCount: number = 0;\n contextDiscard: any;\n\n getCommandRowItems: AXRowCommandItem[] = [\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\n protected override ngOnInit(): void {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n\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\n protected dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x: any) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n handleContextChange(e: AXPContextChangeEvent) {\n this.context = e.data;\n }\n\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n\n addRecord() {\n console.log(this.columns);\n\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc: { [key: string]: any }, 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\n handleSelectionChange(e: any) {\n console.log(e);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item: any) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n}\n"],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":"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"}
|