@acorex/platform 19.2.17 → 19.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/search/search-definition.builder.d.ts +0 -1
- package/common/lib/search/search.types.d.ts +12 -0
- package/common/lib/utils/filter-cleaner.d.ts +2 -0
- package/common/lib/utils/index.d.ts +1 -0
- package/core/lib/directives/dbl-click.directive.d.ts +11 -0
- package/core/lib/directives/index.d.ts +1 -0
- package/core/lib/types.d.ts +8 -0
- package/fesm2022/acorex-platform-common.mjs +25 -9
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +41 -2
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +8 -8
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +103 -96
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-search.mjs +33 -11
- package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-pcNF_wd0.mjs → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-pcNF_wd0.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DbHEBpPW.mjs → acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs} +20 -60
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DOPzt7dM.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DOPzt7dM.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs +135 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs.map → acorex-platform-themes-default-error-401.component-Ycz5LYvk.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs.map → acorex-platform-themes-default-error-404.component-DvVSMoRS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs} +2 -2
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs.map → acorex-platform-themes-default-error-offline.component-DU6dstng.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs +128 -0
- package/fesm2022/acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs +74 -0
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-DiDSZx-u.mjs → acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs} +3 -3
- package/fesm2022/{acorex-platform-themes-default-theme-palette-preview.page-DiDSZx-u.mjs.map → acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +63 -36
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +5 -3
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BLUSF9_9.mjs → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BLUSF9_9.mjs.map → acorex-platform-widgets-button-widget-designer.component-DVhi_mBH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DIbfD0SV.mjs → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DIbfD0SV.mjs.map → acorex-platform-widgets-rich-text-popup.component-CXLjPrFq.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-C5FtQN9y.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-C5FtQN9y.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-u2RCVYRB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DFopYaFk.mjs → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs} +2 -2
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DFopYaFk.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-BiO5M_eY.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +1172 -269
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -2
- package/layout/entity/lib/entity-storage-service.d.ts +4 -0
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -0
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +2 -1
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +3 -1
- package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +4 -0
- package/layout/search/lib/search.viewmodel.d.ts +2 -0
- package/package.json +1 -1
- package/themes/default/lib/layouts/base/{simple-page/simple-page.component.d.ts → base-page.component.d.ts} +19 -4
- package/themes/default/lib/layouts/base/base-page.types.d.ts +9 -0
- package/themes/default/lib/layouts/base/index.d.ts +2 -0
- package/themes/default/lib/layouts/base/simple-page/index.d.ts +0 -1
- package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +2 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -3
- package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +1 -0
- package/themes/shared/lib/components/layout-elements/layout-actions.component.d.ts +1 -1
- package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +13 -0
- package/widgets/lib/widgets/advance/gallery/index.d.ts +2 -1
- package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +5 -0
- package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget-edit.component.d.ts +32 -2
- package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +15 -0
- package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +16 -3
- package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +1 -1
- package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget-edit.component.d.ts +2 -2
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DbHEBpPW.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CjX7NZpi.mjs +0 -130
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CjX7NZpi.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-search-popup.component-BXWbI4Ei.mjs +0 -127
- package/fesm2022/acorex-platform-themes-default-search-popup.component-BXWbI4Ei.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-page.component-BQRGixPo.mjs +0 -74
- package/fesm2022/acorex-platform-themes-default-setting-page.component-BQRGixPo.mjs.map +0 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.d.ts +0 -14
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { AXActionSheetModule } from '@acorex/components/action-sheet';
|
|
2
|
-
import * as i8
|
|
2
|
+
import * as i8 from '@acorex/components/data-table';
|
|
3
3
|
import { AXDataTableModule } from '@acorex/components/data-table';
|
|
4
4
|
import { AXDrawerModule } from '@acorex/components/drawer';
|
|
5
5
|
import * as i1$1 from '@acorex/core/platform';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
-
import { inject, Injector, input, model, ChangeDetectionStrategy, Component, EventEmitter, effect, Output, Input,
|
|
7
|
+
import { inject, Injector, input, model, ChangeDetectionStrategy, Component, EventEmitter, effect, Output, Input, signal, viewChild, computed, ViewEncapsulation } from '@angular/core';
|
|
8
8
|
import * as i1$2 from '@angular/router';
|
|
9
9
|
import { ActivatedRoute, RouterModule } from '@angular/router';
|
|
10
10
|
import * as i6$3 from '@acorex/components/badge';
|
|
11
11
|
import { AXBadgeModule } from '@acorex/components/badge';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i1$3 from '@acorex/components/breadcrumbs';
|
|
13
13
|
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
|
14
14
|
import * as i4 from '@acorex/components/button';
|
|
15
15
|
import { AXButtonModule } from '@acorex/components/button';
|
|
@@ -22,7 +22,7 @@ import { AXFormModule } from '@acorex/components/form';
|
|
|
22
22
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
23
23
|
import * as i10 from '@acorex/components/popover';
|
|
24
24
|
import { AXPopoverModule } from '@acorex/components/popover';
|
|
25
|
-
import * as i7$
|
|
25
|
+
import * as i7$1 from '@acorex/components/search-box';
|
|
26
26
|
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
27
27
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
28
28
|
import { AXTooltipModule } from '@acorex/components/tooltip';
|
|
@@ -33,16 +33,16 @@ import { AXPAuthModule } from '@acorex/platform/auth';
|
|
|
33
33
|
import { AXPSettingService, AXPStickyDirective } from '@acorex/platform/common';
|
|
34
34
|
import * as i6$1 from '@acorex/platform/layout/builder';
|
|
35
35
|
import { AXPLayoutBuilderModule, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
|
|
36
|
-
import {
|
|
36
|
+
import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutToolbarComponent, AXPThemeLayoutEndSideComponent } from '@acorex/platform/themes/shared';
|
|
37
37
|
import { AXPWidgetsModule } from '@acorex/platform/widgets';
|
|
38
38
|
import { CdkDropList, CdkDrag, CdkDragHandle, moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
39
39
|
import * as i1 from '@angular/common';
|
|
40
40
|
import { CommonModule } from '@angular/common';
|
|
41
41
|
import * as i2 from '@angular/forms';
|
|
42
42
|
import { FormsModule } from '@angular/forms';
|
|
43
|
-
import * as i7$
|
|
43
|
+
import * as i7$2 from '@acorex/components/dropdown-button';
|
|
44
44
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
45
|
-
import {
|
|
45
|
+
import { AXPBasePageComponent, AXPSimplePageLayout } from './acorex-platform-themes-default.mjs';
|
|
46
46
|
import * as i7 from '@acorex/components/image';
|
|
47
47
|
import { AXImageModule } from '@acorex/components/image';
|
|
48
48
|
import * as i6$2 from '@acorex/components/label';
|
|
@@ -69,7 +69,7 @@ class AXPSimpleFiltersViewComponent {
|
|
|
69
69
|
this.vm.initializeFilters();
|
|
70
70
|
}
|
|
71
71
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimpleFiltersViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSimpleFiltersViewComponent, isStandalone: true, selector: "axp-simple-filters-view", inputs: { availAbleFilters: { classPropertyName: "availAbleFilters", publicName: "availAbleFilters", isSignal: true, isRequired: true, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filters: "filtersChange" }, providers: [AXPLayoutBuilderService], ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\">\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"blank\"\n class=\"ax-sm ax-mx-2\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover #fieldsPopover [target]=\"addField\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\" [offsetX]=\"15\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list [valueField]=\"'field'\" [textField]=\"'title'\" [ngModel]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\" [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\" [multiple]=\"true\"></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\" class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i6$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i6$2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i9.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i10.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSimpleFiltersViewComponent, isStandalone: true, selector: "axp-simple-filters-view", inputs: { availAbleFilters: { classPropertyName: "availAbleFilters", publicName: "availAbleFilters", isSignal: true, isRequired: true, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filters: "filtersChange" }, providers: [AXPLayoutBuilderService], ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\">\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"blank\"\n class=\"ax-sm ax-mx-2\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover #fieldsPopover [target]=\"addField\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\" [offsetX]=\"15\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list [valueField]=\"'field'\" [textField]=\"'title'\" [ngModel]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\" [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\" [multiple]=\"true\"></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\" class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: i4.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: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i6$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i6$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i6$2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i9.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i10.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimpleFiltersViewComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
@@ -137,44 +137,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
137
137
|
type: Output
|
|
138
138
|
}] } });
|
|
139
139
|
|
|
140
|
-
class AXPListViewOptionFiltersComponent {
|
|
141
|
-
constructor() {
|
|
142
|
-
this.onClosed = new EventEmitter();
|
|
143
|
-
}
|
|
144
|
-
handleClose() {
|
|
145
|
-
this.onClosed.emit();
|
|
146
|
-
}
|
|
147
|
-
handleResetClick() {
|
|
148
|
-
this.vm.resetFilters();
|
|
149
|
-
}
|
|
150
|
-
handleDiscardClick() {
|
|
151
|
-
this.vm.discardFilters();
|
|
152
|
-
}
|
|
153
|
-
handleApplyClick() {
|
|
154
|
-
this.vm.applyFilterAndSort();
|
|
155
|
-
this.onClosed.emit();
|
|
156
|
-
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPListViewOptionFiltersComponent, isStandalone: true, selector: "axp-list-view-option-filters", inputs: { vm: ["viewModel", "vm"] }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header>\n <h2>{{ 'filter.title' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-px-4 ax-py-2\">\n <ng-content></ng-content>\n</div>\n\n<axp-layout-footer>\n <axp-layout-suffix>\n <ax-button [text]=\"'filter.apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-dropdown-button [color]=\"'default'\" [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('filter.reset' | translate | async) || 'reset'\" look=\"solid\"\n (onClick)=\"handleResetClick()\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-suffix>\n</axp-layout-footer>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.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: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7$1.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-title-bar, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
159
|
-
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionFiltersComponent, decorators: [{
|
|
161
|
-
type: Component,
|
|
162
|
-
args: [{ selector: 'axp-list-view-option-filters', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [
|
|
163
|
-
CommonModule,
|
|
164
|
-
AXDecoratorModule,
|
|
165
|
-
AXButtonModule,
|
|
166
|
-
AXTranslationModule,
|
|
167
|
-
AXDropdownButtonModule,
|
|
168
|
-
AXPThemeLayoutBlockComponent,
|
|
169
|
-
AXPThemeLayoutFooterComponent,
|
|
170
|
-
], template: "<ax-header>\n <h2>{{ 'filter.title' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-px-4 ax-py-2\">\n <ng-content></ng-content>\n</div>\n\n<axp-layout-footer>\n <axp-layout-suffix>\n <ax-button [text]=\"'filter.apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-dropdown-button [color]=\"'default'\" [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('filter.reset' | translate | async) || 'reset'\" look=\"solid\"\n (onClick)=\"handleResetClick()\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-suffix>\n</axp-layout-footer>" }]
|
|
171
|
-
}], ctorParameters: () => [], propDecorators: { vm: [{
|
|
172
|
-
type: Input,
|
|
173
|
-
args: ['viewModel']
|
|
174
|
-
}], onClosed: [{
|
|
175
|
-
type: Output
|
|
176
|
-
}] } });
|
|
177
|
-
|
|
178
140
|
class AXPListViewOptionSortingComponent {
|
|
179
141
|
constructor() {
|
|
180
142
|
this.isSM = false;
|
|
@@ -196,7 +158,7 @@ class AXPListViewOptionSortingComponent {
|
|
|
196
158
|
item.dir = newDirection;
|
|
197
159
|
}
|
|
198
160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionSortingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPListViewOptionSortingComponent, isStandalone: true, selector: "axp-list-view-option-sorting", inputs: { vm: ["viewModel", "vm"] }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXSelectBoxModule }] }); }
|
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPListViewOptionSortingComponent, isStandalone: true, selector: "axp-list-view-option-sorting", inputs: { vm: ["viewModel", "vm"] }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.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: AXImageModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXSwitchModule }, { kind: "ngmodule", type: AXSelectBoxModule }] }); }
|
|
200
162
|
}
|
|
201
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPListViewOptionSortingComponent, decorators: [{
|
|
202
164
|
type: Component,
|
|
@@ -220,7 +182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
220
182
|
args: ['viewModel']
|
|
221
183
|
}] } });
|
|
222
184
|
|
|
223
|
-
class AXPEntityMasterListViewComponent extends
|
|
185
|
+
class AXPEntityMasterListViewComponent extends AXPBasePageComponent {
|
|
224
186
|
constructor(platform) {
|
|
225
187
|
super();
|
|
226
188
|
this.platform = platform;
|
|
@@ -231,6 +193,8 @@ class AXPEntityMasterListViewComponent extends AXPSimplePageComponent {
|
|
|
231
193
|
//
|
|
232
194
|
this.searchBarShown = signal(true);
|
|
233
195
|
this.activeEndSideView = signal('column');
|
|
196
|
+
// @ViewChild('grid', { static: true}) grid: AXDataTableComponent;
|
|
197
|
+
this.grid = viewChild('grid');
|
|
234
198
|
this.commandRowItems = computed(() => {
|
|
235
199
|
return this.vm.primaryRowActions().map((c) => {
|
|
236
200
|
return {
|
|
@@ -249,8 +213,8 @@ class AXPEntityMasterListViewComponent extends AXPSimplePageComponent {
|
|
|
249
213
|
return this.commandRowItems();
|
|
250
214
|
};
|
|
251
215
|
effect(() => {
|
|
252
|
-
if (this.grid) {
|
|
253
|
-
this.grid.selectedRows = this.vm.selectedItems();
|
|
216
|
+
if (this.grid()) {
|
|
217
|
+
this.grid().selectedRows = this.vm.selectedItems();
|
|
254
218
|
}
|
|
255
219
|
});
|
|
256
220
|
//
|
|
@@ -258,10 +222,10 @@ class AXPEntityMasterListViewComponent extends AXPSimplePageComponent {
|
|
|
258
222
|
const refreshTargetId = e.meta?.refreshTargetId;
|
|
259
223
|
if (e.action == 'refresh') {
|
|
260
224
|
if (refreshTargetId) {
|
|
261
|
-
this.grid
|
|
225
|
+
this.grid()?.refreshItemChildren(refreshTargetId);
|
|
262
226
|
}
|
|
263
227
|
else {
|
|
264
|
-
this.grid
|
|
228
|
+
this.grid()?.refresh();
|
|
265
229
|
}
|
|
266
230
|
}
|
|
267
231
|
});
|
|
@@ -377,13 +341,13 @@ class AXPEntityMasterListViewComponent extends AXPSimplePageComponent {
|
|
|
377
341
|
this.vm.destroy();
|
|
378
342
|
}
|
|
379
343
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1$1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
380
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\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 }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.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: AXBadgeModule }, { kind: "component", type: i6$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i8.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i8.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7$2.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8$1.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i8$1.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i8$1.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8$1.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8$1.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "ngmodule", type:
|
|
344
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\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 }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.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: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.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: AXBadgeModule }, { kind: "component", type: i6$3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4$2.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i1$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i8.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "ngmodule", type:
|
|
381
345
|
//
|
|
382
346
|
AXPLayoutBuilderModule }, { kind: "component", type: i6$1.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "directive", type: i5.AXPFeatureDirective, selector: "[feature]", inputs: ["feature", "featureElse"] }, { kind: "component", type:
|
|
383
347
|
//
|
|
384
348
|
AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: ["viewModel"], outputs: ["onClosed"] }, { kind: "component", type: AXPListViewOptionSortingComponent, selector: "axp-list-view-option-sorting", inputs: ["viewModel"], outputs: ["onClosed"] }, { kind: "component", type: AXPSimpleFiltersViewComponent, selector: "axp-simple-filters-view", inputs: ["availAbleFilters", "filters"], outputs: ["filtersChange"] }, { kind: "component", type:
|
|
385
349
|
//
|
|
386
|
-
AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-title-bar, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-layout-page-header" }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-layout-actions-secondary" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "component", type: AXPThemeLayoutEndSideComponent, selector: "axp-layout-page-end-side" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7$
|
|
350
|
+
AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-title-bar, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutFooterComponent, selector: "axp-layout-footer, axp-layout-page-footer" }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-layout-page-header" }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-layout-actions-secondary" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "component", type: AXPThemeLayoutEndSideComponent, selector: "axp-layout-page-end-side" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7$2.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
387
351
|
}
|
|
388
352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityMasterListViewComponent, decorators: [{
|
|
389
353
|
type: Component,
|
|
@@ -417,7 +381,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
417
381
|
AXPListViewOptionsColumnsComponent,
|
|
418
382
|
AXPListViewOptionSortingComponent,
|
|
419
383
|
AXPSimpleFiltersViewComponent,
|
|
420
|
-
AXPListViewOptionFiltersComponent,
|
|
421
384
|
//
|
|
422
385
|
AXPSimplePageLayout,
|
|
423
386
|
AXPThemeLayoutBlockComponent,
|
|
@@ -431,10 +394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
431
394
|
AXPThemeLayoutEndSideComponent,
|
|
432
395
|
AXDropdownButtonModule,
|
|
433
396
|
], template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\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 }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n", styles: [".cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\n"] }]
|
|
434
|
-
}], ctorParameters: () => [{ type: i1$1.AXPlatform }]
|
|
435
|
-
type: ViewChild,
|
|
436
|
-
args: ['grid', { static: true }]
|
|
437
|
-
}] } });
|
|
397
|
+
}], ctorParameters: () => [{ type: i1$1.AXPlatform }] });
|
|
438
398
|
|
|
439
399
|
export { AXPEntityMasterListViewComponent };
|
|
440
|
-
//# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-
|
|
400
|
+
//# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map
|
package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.html"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPFilterDefinition, AXPFilterQuery } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPFiltersViewModel } from '@acorex/platform/layout/filters';\nimport { CdkDrag, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Injector,\n input,\n InputSignal,\n model,\n ModelSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-simple-filters-view',\n templateUrl: 'filters-view.component.html',\n providers: [AXPLayoutBuilderService],\n imports: [\n FormsModule,\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXPLayoutBuilderModule,\n AXImageModule,\n AXLabelModule,\n AXBadgeModule,\n AXSelectionListModule,\n AXPopoverModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPSimpleFiltersViewComponent {\n protected vm = inject(AXPFiltersViewModel);\n protected injector = inject(Injector);\n\n availAbleFilters: InputSignal<AXPFilterDefinition[]> = input.required();\n\n filters: ModelSignal<AXPFilterQuery> = model.required();\n\n ngAfterViewInit(): void {\n this.vm.setAvailableFilters(this.availAbleFilters());\n this.vm.setFiltersModel(this.filters);\n this.vm.initializeFilters();\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\">\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"blank\"\n class=\"ax-sm ax-mx-2\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'filter.addField' | translate | async\" look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"></ax-button>\n </div>\n }\n </div>\n <ax-popover #fieldsPopover [target]=\"addField\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\" [offsetX]=\"15\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list [valueField]=\"'field'\" [textField]=\"'title'\" [ngModel]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\" [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\" [multiple]=\"true\"></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\" class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\" color=\"primary\">\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>","import { AXButtonModule } from '@acorex/components/button';\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSettingService } from '@acorex/platform/common';\n\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, effect, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { cloneDeep } from 'lodash-es';\n\n@Component({\n selector: 'axp-list-view-option-columns',\n templateUrl: './list-view-option-columns.component.html',\n imports: [\n CommonModule,\n FormsModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXButtonModule,\n AXDecoratorModule,\n AXSwitchModule,\n AXTranslationModule,\n ],\n})\nexport class AXPListViewOptionsColumnsComponent {\n protected settings = inject(AXPSettingService);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n columnsChanged = effect(() => {\n this.vm.onColumnsChanged(this.vm.columns());\n //.map((c) => ({ visible: c.visible, name: c.name }))\n });\n\n handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string) {\n if (e.isUserInteraction) {\n this.vm.columns.update((prev) => {\n return prev.map((c: any) => {\n return c.name === name ? { ...c, visible: e.value ?? true } : c;\n });\n });\n }\n }\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n const columns = cloneDeep(this.vm.columns());\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n this.vm.columns.set(columns);\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.columns();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n }\n </div>\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-list-view-option-sorting',\n templateUrl: './list-view-option-sorting.component.html',\n imports: [\n AXTranslationModule,\n CommonModule,\n FormsModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXButtonModule,\n AXImageModule,\n AXDecoratorModule,\n AXSwitchModule,\n AXSelectBoxModule,\n ],\n})\nexport class AXPListViewOptionSortingComponent {\n protected isSM = false;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n moveItemInArray(this.vm.sortedFields(), event.previousIndex, event.currentIndex);\n }\n\n protected changeItemSort(item: AXPEntityMasterListViewSortPropViewModel) {\n const newDirection = item.dir === 'asc' ? 'desc' : item.dir === 'desc' ? undefined : 'asc';\n\n this.vm.sortedFields.update((prev) => {\n return prev.map((field) => {\n if (field.name === item.name) {\n return { ...field, dir: newDirection };\n }\n return field;\n });\n });\n\n item.dir = newDirection;\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXDataTableRowDbClick,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n onColumnSizeChangedEvent,\n} from '@acorex/components/data-table';\nimport { AXDrawerComponent, AXDrawerModule } from '@acorex/components/drawer';\nimport { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDataPagerChangedEvent } from '@acorex/components/data-pager';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule, translateSync } from '@acorex/core/translation';\nimport { AXPAuthModule } from '@acorex/platform/auth';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport {\n AXPLayoutThemeService,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutEndSideComponent,\n AXPThemeLayoutFooterComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutPageHeaderComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n AXPThemeLayoutPageSecondaryActionsComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex/platform/themes/shared';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPBasePageComponent, AXPSimplePageLayout } from '../../base';\nimport { AXPSimpleFiltersViewComponent } from '../../filters-layout/simple-filter-builder/filters-view.component';\nimport { AXPListViewOptionsColumnsComponent } from './list-view-option-columns/list-view-option-columns.component';\nimport { AXPListViewOptionSortingComponent } from './list-view-option-sorting/list-view-option-sorting.component';\n\n@Component({\n templateUrl: 'entity-master-list-view.component.html',\n styleUrls: ['entity-master-list-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXBreadcrumbsModule,\n AXSearchBoxModule,\n AXDataTableModule,\n AXTranslationModule,\n DragDropModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPStickyDirective,\n AXPAuthModule,\n //\n AXPListViewOptionsColumnsComponent,\n AXPListViewOptionSortingComponent,\n AXPSimpleFiltersViewComponent,\n //\n AXPSimplePageLayout,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutFooterComponent,\n AXPThemeLayoutPageHeaderComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n AXPThemeLayoutPageSecondaryActionsComponent,\n AXPThemeLayoutToolbarComponent,\n AXPThemeLayoutEndSideComponent,\n AXDropdownButtonModule,\n ],\n})\nexport class AXPEntityMasterListViewComponent extends AXPBasePageComponent {\n private activeRoute = inject(ActivatedRoute);\n\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterListViewModel;\n\n //\n protected store = inject(AXPLayoutThemeService);\n //\n protected searchBarShown = signal(true);\n protected activeEndSideView = signal<'column' | 'filter' | 'sort'>('column');\n\n // @ViewChild('grid', { static: true}) grid: AXDataTableComponent;\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n constructor(protected platform: AXPlatform) {\n super();\n effect(() => {\n if (this.grid()) {\n this.grid()!.selectedRows = this.vm.selectedItems();\n }\n });\n //\n this.vm.events$.subscribe(async (e) => {\n const refreshTargetId = e.meta?.refreshTargetId;\n if (e.action == 'refresh') {\n if (refreshTargetId) {\n this.grid()?.refreshItemChildren(refreshTargetId);\n } else {\n this.grid()?.refresh();\n }\n }\n });\n }\n\n ngAfterViewInit() {\n this.vm.setView();\n }\n\n protected closeFiltersDrawer(e: AXDrawerComponent, collapsed: boolean) {\n if (collapsed) {\n e.close();\n this.vm.discardFilters();\n }\n }\n\n handleChangeSearchValue(e: AXValueChangedEvent) {\n if (e.isUserInteraction) {\n this.vm.applyInlineFilter(e.value);\n }\n }\n\n protected onColumnSizeChanged(e: onColumnSizeChangedEvent) {\n if (e.isUserInteraction && e.type === 'end') {\n this.vm.saveSettings('columnSizes', e.data);\n }\n }\n\n protected onPageChanged(e: AXDataPagerChangedEvent) {\n if (e.isUserInteraction) {\n const pageSizeChanged = e.take != this.vm.dataSource.pageSize;\n if (pageSizeChanged) {\n this.vm.saveSettings('pageSize', e.take);\n }\n }\n }\n\n protected async dropdownRowItems(rowData: any): Promise<AXRowCommandItem[]> {\n return (await this.vm.secondaryRowActions(rowData)).map((c) => ({\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n disabled: c.disabled,\n })) as AXRowCommandItem[];\n }\n\n private commandRowItems = computed<AXRowCommandItem[]>(() => {\n return this.vm.primaryRowActions().map((c) => {\n return {\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n disabled: c.disabled,\n } as AXRowCommandItem;\n });\n });\n\n protected async handleRowDbClick(e: AXDataTableRowDbClick) {\n //TODO: find a way for default action\n const item = [...this.commandRowItems(), ...(await this.dropdownRowItems(e.data))][0];\n if (item) {\n const d: AXRowCommandItemClickEvent = {\n component: e.component,\n name: item.name,\n data: e.data,\n };\n this.handleRowCommandClick(d);\n }\n }\n\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\n return Promise.resolve(this.dropdownRowItems(rowData));\n };\n\n protected getCommandRowItems = (): AXRowCommandItem[] => {\n return this.commandRowItems();\n };\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n this.vm.executeCommand(e.name, e.data);\n }\n\n protected async handleSelectedRowsChange(rows: unknown[]) {\n this.vm.selectedItems.set(rows);\n }\n\n protected makeResponsive<t>(value: t): t | string {\n if (this.platform.is('Mobile') || this.platform.is('SM')) {\n return '';\n } else {\n return value;\n }\n }\n\n protected toggleSideBar(sideBar?: 'column' | 'filter' | 'sort') {\n this.toggleEndSide();\n if (sideBar) {\n this.activeEndSideView.set(sideBar);\n }\n }\n\n protected toggleSearchBar() {\n this.searchBarShown.update((v) => !v);\n }\n\n protected handleResetClick(sideBar: 'filter' | 'sort' | 'column') {\n switch (sideBar) {\n case 'filter': {\n this.vm.resetFilters();\n break;\n }\n case 'sort': {\n this.vm.resetSorts();\n break;\n }\n case 'column': {\n this.vm.resetColumns();\n break;\n }\n }\n }\n\n protected handleDiscardClick(sideBar: 'filter' | 'sort' | 'column') {\n switch (sideBar) {\n case 'filter': {\n this.vm.discardFilters();\n break;\n }\n case 'sort': {\n this.vm.resetSorts();\n break;\n }\n case 'column': {\n this.vm.resetColumns();\n break;\n }\n }\n }\n\n protected handleApplyClick(sideBar: 'filter' | 'sort' | 'column') {\n this.vm.applyFilterAndSort();\n this.toggleEndSide();\n }\n\n ngOnDestroy(): void {\n this.vm.destroy();\n }\n}\n","<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <!-- Breadcrumbs -->\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"store.isSmall()\" class=\"ax-opacity-50\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\">\n {{ t(b.title) | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <!-- Title & Description -->\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\n @if(vm.description()) {\n <axp-layout-description #sticky=\"axpSticky\" [axpSticky]=\"'ax-hidden'\">\n {{ t(vm.description()) | async }}\n </axp-layout-description>\n }\n\n <!-- Actions -->\n <axp-layout-actions>\n <!-- Primary Actions -->\n <axp-layout-actions-primary>\n @for(tr of vm.primaryActions();track $index) {\n <ax-button\n [disabled]=\"tr.disabled\"\n [text]=\"tr.title | translate | async\"\n [color]=\"tr.color\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </axp-layout-actions-primary>\n\n <!-- Secondary Actions -->\n @if(vm.secondaryActions().length) {\n <axp-layout-actions-secondary>\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [color]=\"tr.color\"\n [disabled]=\"tr.disabled\"\n [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </axp-layout-actions-secondary>\n }\n </axp-layout-actions>\n\n <!-- Toolbar -->\n <axp-layout-toolbar>\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-- Selection/View Section -->\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ t('itemsSelected', { scope: 'common' }) | async }}\n </span>\n <span (click)=\"vm.clearSelection()\" class=\"ax-text-sm ax-text-primary-500 ax-underline ax-cursor-pointer\">{{\n t('unselect', { scope: 'common' }) | async\n }}</span>\n </div>\n } @else {\n <!-- View Selector -->\n <ax-button [text]=\"vm.view().title | translate | async\" #views [color]=\"'default'\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{ 'entity.public-view' | translate | async }}</ax-title>\n <ax-button-item\n *ngFor=\"let v of vm.views()\"\n [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\"\n (onClick)=\"vm.setView(v.name)\"\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <!-- Inline Search -->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"(t('widget.lookup.search') | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n } }\n </div>\n\n <!-- View Actions -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" [color]=\"'default'\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon>\n </ax-button>\n }\n\n <ax-button\n [text]=\"makeResponsive('entity.columns' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('column')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n\n <ax-button\n [text]=\"makeResponsive('filter.title' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('filter')\"\n *feature=\"'axp-entity-list-advance-filter'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge\n [text]=\"makeResponsive(vm.simpleFilters().filters?.length?.toString() || '0')\"\n color=\"primary\"\n ></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button\n [text]=\"makeResponsive('entity.sort' | translate | async)\"\n [color]=\"'default'\"\n (onClick)=\"toggleSideBar('sort')\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n </axp-layout-toolbar>\n\n <!-- Mobile Search Bar -->\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box\n [class.collapsed-search-box]=\"searchBarShown()\"\n class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-page-header>\n\n <!-- Content -->\n <axp-layout-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\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 }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-layout-page-content>\n\n <axp-layout-page-end-side class=\"!ax-min-w-80\">\n <axp-layout-header\n class=\"!ax-flex-row ax-justify-between ax-items-center ax-bg-light ax-border-light ax-border-b !ax-py-2\"\n >\n <axp-layout-suffix>\n <ax-button (onClick)=\"toggleEndSide()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n </axp-layout-suffix>\n <axp-layout-title class=\"ax-w-max\">\n {{ activeEndSideView() + '.title' | translate | async }}\n </axp-layout-title>\n </axp-layout-header>\n <axp-layout-content class=\"ax-px-4 ax-py-2\">\n @switch (activeEndSideView()) { @case ('column') {\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n } @case ('filter') {\n\n <axp-simple-filters-view\n [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"\n ></axp-simple-filters-view>\n } @case ('sort') {\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n } }\n </axp-layout-content>\n <axp-layout-footer class=\"ax-flex ax-bg-light ax-gap-2 ax-py-2 ax-px-4\">\n <axp-layout-prefix>\n <ax-button\n [text]=\"'filter.apply' | translate | async\"\n color=\"primary\"\n (onClick)=\"handleApplyClick(activeEndSideView())\"\n ></ax-button>\n <ax-dropdown-button\n [color]=\"'default'\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick(activeEndSideView())\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick(activeEndSideView())\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-prefix>\n </axp-layout-footer>\n </axp-layout-page-end-side>\n</axp-layout-simple-page>\n"],"names":["i1","i2","i5","i6","i3","i4","i7","i9","i10","i12","i13","i14"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgDa,6BAA6B,CAAA;AAvB1C,IAAA,WAAA,GAAA;AAwBY,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAErC,QAAA,IAAA,CAAA,gBAAgB,GAAuC,KAAK,CAAC,QAAQ,EAAE;AAEvE,QAAA,IAAA,CAAA,OAAO,GAAgC,KAAK,CAAC,QAAQ,EAAE;AAOxD;IALC,eAAe,GAAA;QACb,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE;;8GAXlB,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EApB7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA,CAAC,uBAAuB,CAAC,0BC5BtC,4sHAyEM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CF,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,sBAAsB,EACtB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,kKACb,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,WAAW,EACX,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,wcACP,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKJ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAvBzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAExB,SAAA,EAAA,CAAC,uBAAuB,CAAC,EAC3B,OAAA,EAAA;wBACP,WAAW;wBACX,YAAY;wBACZ,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;wBACnB,sBAAsB;wBACtB,aAAa;wBACb,aAAa;wBACb,aAAa;wBACb,qBAAqB;wBACrB,eAAe;wBACf,WAAW;wBACX,OAAO;wBACP,aAAa;AACd,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4sHAAA,EAAA;;;MEjBpC,kCAAkC,CAAA;AAf/C,IAAA,WAAA,GAAA;AAgBY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAMvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AAE1C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;;AAE7C,SAAC,CAAC;AAiBH;IAfC,sBAAsB,CAAC,CAA+B,EAAE,IAAY,EAAA;AAClE,QAAA,IAAI,CAAC,CAAC,iBAAiB,EAAE;YACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC9B,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAAI;oBACzB,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,GAAG,CAAC;AACjE,iBAAC,CAAC;AACJ,aAAC,CAAC;;;AAII,IAAA,IAAI,CAAC,KAA6B,EAAA;QAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5C,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;;8GA3BnB,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,gKC7B/C,i2BAiBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDCI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+VACX,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,8FACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,oSACd,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGV,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAf9C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAE/B,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,OAAO;wBACP,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;AACpB,qBAAA,EAAA,QAAA,EAAA,i2BAAA,EAAA;8BAMM,EAAE,EAAA,CAAA;sBADR,KAAK;uBAAC,WAAW;gBAIX,QAAQ,EAAA,CAAA;sBADd;;;MENU,iCAAiC,CAAA;AAjB9C,IAAA,WAAA,GAAA;QAkBY,IAAI,CAAA,IAAA,GAAG,KAAK;AAGf,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AAuB3C;AAlBW,IAAA,IAAI,CAAC,KAA6B,EAAA;AAC1C,QAAA,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;;AAGxE,IAAA,cAAc,CAAC,IAA8C,EAAA;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,SAAS,GAAG,KAAK;QAE1F,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AACnC,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;gBACxB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;oBAC5B,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE;;AAExC,gBAAA,OAAO,KAAK;AACd,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,GAAG,GAAG,YAAY;;8GAzBd,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7B9C,svCAwBA,EDRI,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8FACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,EACb,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,8BACb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,iBAAiB,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGR,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAjB7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAE/B,OAAA,EAAA;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,WAAW;wBACX,WAAW;wBACX,OAAO;wBACP,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EAAA,svCAAA,EAAA;8BAMM,QAAQ,EAAA,CAAA;sBADd;gBAIM,EAAE,EAAA,CAAA;sBADR,KAAK;uBAAC,WAAW;;;AE+Ed,MAAO,gCAAiC,SAAQ,oBAAoB,CAAA;AAcxE,IAAA,WAAA,CAAsB,QAAoB,EAAA;AACxC,QAAA,KAAK,EAAE;QADa,IAAQ,CAAA,QAAA,GAAR,QAAQ;AAbtB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;QAEzB,IAAE,CAAA,EAAA,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAiC;;AAGlF,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC;;AAErC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAA+B,QAAQ,CAAC;;AAGlE,QAAA,IAAA,CAAA,IAAI,GAAG,SAAS,CAAuB,MAAM,CAAC;AAgEhD,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAqB,MAAK;AAC1D,YAAA,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAC3C,OAAO;oBACL,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,oBAAA,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACD;AACvB,aAAC,CAAC;AACJ,SAAC,CAAC;AAeQ,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,OAAgB,KAAiC;YAChF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACxD,SAAC;QAES,IAAkB,CAAA,kBAAA,GAAG,MAAyB;AACtD,YAAA,OAAO,IAAI,CAAC,eAAe,EAAE;AAC/B,SAAC;QA3FC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACf,gBAAA,IAAI,CAAC,IAAI,EAAG,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;AAEvD,SAAC,CAAC;;QAEF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAI;AACpC,YAAA,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe;AAC/C,YAAA,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,EAAE;gBACzB,IAAI,eAAe,EAAE;oBACnB,IAAI,CAAC,IAAI,EAAE,EAAE,mBAAmB,CAAC,eAAe,CAAC;;qBAC5C;AACL,oBAAA,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE;;;AAG5B,SAAC,CAAC;;IAGJ,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;;IAGT,kBAAkB,CAAC,CAAoB,EAAE,SAAkB,EAAA;QACnE,IAAI,SAAS,EAAE;YACb,CAAC,CAAC,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;;;AAI5B,IAAA,uBAAuB,CAAC,CAAsB,EAAA;AAC5C,QAAA,IAAI,CAAC,CAAC,iBAAiB,EAAE;YACvB,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;;;AAI5B,IAAA,mBAAmB,CAAC,CAA2B,EAAA;QACvD,IAAI,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;YAC3C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC;;;AAIrC,IAAA,aAAa,CAAC,CAA0B,EAAA;AAChD,QAAA,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACvB,YAAA,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ;YAC7D,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;;;;IAKpC,MAAM,gBAAgB,CAAC,OAAY,EAAA;AAC3C,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;YAC9D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,YAAA,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACrB,SAAA,CAAC,CAAuB;;IAejB,MAAM,gBAAgB,CAAC,CAAwB,EAAA;;QAEvD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,CAAC,GAA+B;gBACpC,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,CAAC,CAAC,IAAI;aACb;AACD,YAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;;;IAYvB,MAAM,qBAAqB,CAAC,CAA6B,EAAA;AACjE,QAAA,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;;IAG9B,MAAM,wBAAwB,CAAC,IAAe,EAAA;QACtD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;;AAGvB,IAAA,cAAc,CAAI,KAAQ,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACxD,YAAA,OAAO,EAAE;;aACJ;AACL,YAAA,OAAO,KAAK;;;AAIN,IAAA,aAAa,CAAC,OAAsC,EAAA;QAC5D,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;;;IAI7B,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG7B,IAAA,gBAAgB,CAAC,OAAqC,EAAA;QAC9D,QAAQ,OAAO;YACb,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;gBACtB;;YAEF,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;gBACpB;;YAEF,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;gBACtB;;;;AAKI,IAAA,kBAAkB,CAAC,OAAqC,EAAA;QAChE,QAAQ,OAAO;YACb,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;gBACxB;;YAEF,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE;gBACpB;;YAEF,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;gBACtB;;;;AAKI,IAAA,gBAAgB,CAAC,OAAqC,EAAA;AAC9D,QAAA,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE;QAC5B,IAAI,CAAC,aAAa,EAAE;;IAGtB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;;8GAhLR,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,UAAA,EAAA,CAAA,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,6MClH7C,s/VAoSA,EAAA,MAAA,EAAA,CAAA,8zDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7NI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8BACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,2IACb,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8BACnB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,8BACf,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,mPACnB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8KACnB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AAEd,gBAAA,sBAAsB,EACtB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,oLAClB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAEb,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClC,iCAAiC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjC,6BAA6B,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAE7B,gBAAA,mBAAmB,mEACnB,4BAA4B,EAAA,QAAA,EAAA,wUAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,6BAA6B,EAC7B,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,6BAA6B,sFAC7B,iCAAiC,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjC,8BAA8B,EAC9B,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,yCAAyC,uEACzC,2CAA2C,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3C,8BAA8B,EAC9B,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,8BAA8B,oEAC9B,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGb,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAjD5C,SAAS;AAGO,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,cAAc;wBACd,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;wBAChB,eAAe;wBACf,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,mBAAmB;wBACnB,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;wBACnB,cAAc;;wBAEd,sBAAsB;wBACtB,gBAAgB;wBAChB,kBAAkB;wBAClB,aAAa;;wBAEb,kCAAkC;wBAClC,iCAAiC;wBACjC,6BAA6B;;wBAE7B,mBAAmB;wBACnB,4BAA4B;wBAC5B,6BAA6B;wBAC7B,6BAA6B;wBAC7B,iCAAiC;wBACjC,8BAA8B;wBAC9B,yCAAyC;wBACzC,2CAA2C;wBAC3C,8BAA8B;wBAC9B,8BAA8B;wBAC9B,sBAAsB;AACvB,qBAAA,EAAA,QAAA,EAAA,s/VAAA,EAAA,MAAA,EAAA,CAAA,8zDAAA,CAAA,EAAA;;;;;"}
|