@acorex/platform 18.0.1 → 18.0.2
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/esm2022/themes/default/acorex-platform-themes-default.mjs +5 -0
- package/esm2022/themes/default/index.mjs +3 -0
- package/esm2022/themes/default/lib/default.module.mjs +74 -0
- package/esm2022/themes/default/lib/entity-reuse.strategy.mjs +21 -0
- package/esm2022/themes/default/lib/layout.routes.mjs +20 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +114 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +93 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-list-view.component.mjs +157 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +64 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +61 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +82 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +77 -0
- package/esm2022/themes/default/lib/layouts/root-layout/components/footer/footer.component.mjs +14 -0
- package/esm2022/themes/default/lib/layouts/root-layout/components/header/header.component.mjs +29 -0
- package/esm2022/themes/default/lib/layouts/root-layout/index.mjs +5 -0
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.component.mjs +78 -0
- package/esm2022/themes/default/lib/layouts/root-layout/root-layout.module.mjs +91 -0
- package/esm2022/themes/default/lib/pages/errors/error-401/error-401.component.mjs +28 -0
- package/esm2022/themes/default/lib/pages/errors/error-404/error-404.component.mjs +22 -0
- package/esm2022/themes/default/lib/pages/errors/error-offline/error-offline.component.mjs +16 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs +96 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Buanq4is.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs +85 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-F7dr-osu.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-Djuin07Z.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-C-RyiLkk.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-WCfy9-cr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +681 -0
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -0
- package/package.json +7 -1
- package/themes/default/README.md +3 -0
- package/themes/default/index.d.ts +2 -0
- package/themes/default/lib/default.module.d.ts +8 -0
- package/themes/default/lib/entity-reuse.strategy.d.ts +8 -0
- package/themes/default/lib/layout.routes.d.ts +2 -0
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +24 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +17 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-list-view.component.d.ts +29 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +18 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +16 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +16 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +13 -0
- package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +5 -0
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +10 -0
- package/themes/default/lib/layouts/root-layout/index.d.ts +4 -0
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +32 -0
- package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +24 -0
- package/themes/default/lib/pages/errors/error-401/error-401.component.d.ts +10 -0
- package/themes/default/lib/pages/errors/error-404/error-404.component.d.ts +8 -0
- package/themes/default/lib/pages/errors/error-offline/error-offline.component.d.ts +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-themes-default.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/root-layout/components/footer/footer.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/components/footer/footer.component.html","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/components/header/header.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/components/header/header.component.html","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/root-layout.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/root-layout.component.html","../../../../libs/platform/themes/default/src/lib/layouts/root-layout/root-layout.module.ts","../../../../libs/platform/themes/default/src/lib/layout.routes.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-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-list-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-list-view.component.html","../../../../libs/platform/themes/default/src/lib/entity-reuse.strategy.ts","../../../../libs/platform/themes/default/src/lib/default.module.ts","../../../../libs/platform/themes/default/src/acorex-platform-themes-default.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'axp-dashboard-admin-footer',\r\n templateUrl: './footer.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [],\r\n host: {\r\n class: 'ax-h-10 ax-flex ax-item-center ax-justify-between ax-bg-surface ax-px-6 ax-border-t',\r\n },\r\n})\r\nexport class AXPRootLayoutFooterComponent {\r\n}\r\n","<div class=\"ax-flex ax-items-center ax-justify-start ax-gap-1\">\r\n <axp-component-slot name=\"footer-start\"></axp-component-slot>\r\n</div>\r\n<div class=\"ax-flex ax-items-center ax-justify-end ax-gap-1\">\r\n <axp-component-slot name=\"footer-end\"></axp-component-slot>\r\n</div>","\r\nimport { AXPAdminLayoutState, AXPLayoutRootDrawerToggle, getRootDrawer } from '@acorex/platform/common';\r\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\n\r\n\r\n@Component({\r\n selector: 'axp-dashboard-admin-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b',\r\n },\r\n})\r\nexport class AXPRootLayoutHeaderComponent {\r\n\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n private router = inject(Router);\r\n\r\n protected isOpen = this.store.select(getRootDrawer());\r\n\r\n menuClick() {\r\n this.store.dispatch(AXPLayoutRootDrawerToggle());\r\n }\r\n\r\n logoClick() {\r\n this.router.navigate(['/']);\r\n }\r\n}\r\n","<div class=\"ax-w-full ax-flex ax-justify-between\">\r\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\r\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\r\n </div>\r\n <div class=\"ax-flex ax-items-center\">\r\n <div\r\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\r\n (click)=\"menuClick()\">\r\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !(isOpen | async) }\"> </i>\r\n </div>\r\n <axp-component-slot name=\"header-start\"></axp-component-slot>\r\n </div>\r\n <div class=\"ax-flex ax-items-center\">\r\n <axp-component-slot name=\"header-end\"></axp-component-slot>\r\n </div>\r\n</div>","import { AXDrawerComponent } from '@acorex/components/drawer';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport {\r\n AXPMenuItem,\r\n AXPRouteUtilityService,\r\n AXP_MENU_LOADER,\r\n AXP_PLATFORM_CONFIG_TOKEN,\r\n AXPNavigateAction,\r\n AXPLayoutService,\r\n AXPAdminLayoutState,\r\n AXPLayoutRootDrawerClose,\r\n getRootDrawer,\r\n isSmallScreen,\r\n} from '@acorex/platform/common';\r\nimport { Component, ViewChild, ViewEncapsulation, WritableSignal, inject, signal } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n templateUrl: './root-layout.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: AXUnsubscriber,\r\n },\r\n ],\r\n})\r\nexport class AXPRootLayoutComponent {\r\n @ViewChild('drawer') drawer!: AXDrawerComponent;\r\n\r\n private manuLoader = inject(AXP_MENU_LOADER);\r\n private config = inject(AXP_PLATFORM_CONFIG_TOKEN);\r\n private _layoutService = inject(AXPLayoutService);\r\n public get layoutService() {\r\n return this._layoutService;\r\n }\r\n public set layoutService(value) {\r\n this._layoutService = value;\r\n }\r\n private subscriber = inject(AXUnsubscriber);\r\n\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n private routeUtilService = inject(AXPRouteUtilityService);\r\n protected isActiveRoute = (item: AXPMenuItem) => this.routeUtilService.isRouteActive(item);\r\n protected logo = this.config.logo;\r\n\r\n protected isOpen = this.store.select(getRootDrawer());\r\n protected isSM = this.store.select(isSmallScreen());\r\n protected isLoading: WritableSignal<boolean> = signal(false);\r\n protected showNavigationProgress: WritableSignal<boolean> = signal(false);\r\n protected menuItems$: Observable<AXPMenuItem[]> = this.manuLoader.getItems(1);\r\n\r\n constructor() {\r\n this.layoutService.navigationLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {\r\n this.showNavigationProgress.set(value);\r\n });\r\n //\r\n this.layoutService.overlayLoading$.pipe(this.subscriber.takeUntilDestroy).subscribe((value) => {\r\n this.isLoading.set(value);\r\n });\r\n }\r\n\r\n protected handleMenuClick(e: any, item: AXPMenuItem) {\r\n if (item.path && item.children?.length) return;\r\n if (item.command) {\r\n this.store.dispatch(item.command);\r\n } else if (item.path) {\r\n this.store.dispatch(AXPNavigateAction({ payload: { commands: item.path } }));\r\n }\r\n }\r\n\r\n protected handleCollapsedChange(value: boolean) {\r\n if (value) this.store.dispatch(AXPLayoutRootDrawerClose());\r\n }\r\n}\r\n","<ax-drawer-container>\r\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\"(isSM | async) ? 'overlay' : 'push'\"\r\n (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content\r\n class=\"ax-w-64 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\r\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\r\n <axp-logo [source]=\"logo?.light\"></axp-logo>\r\n </header>\r\n <div class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\r\n <ax-side-menu>\r\n <ng-container *ngFor=\"let node of this.menuItems$ | async\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: node }\">\r\n </ng-container>\r\n </ax-side-menu>\r\n <ng-template #sideMenu let-item>\r\n @if(item.type=='group') {\r\n <ax-title *permission=\"item.data?.requiredPermission;\">{{ item.text }}</ax-title>\r\n } @else {\r\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"handleMenuClick($event, item)\"\r\n [active]=\"isActiveRoute(item) && !item.children?.length\" [isCollapsed]=\"item.opened == true ? false : true\">\r\n <ax-prefix>\r\n <ax-icon [class]=\"item.icon\"></ax-icon>\r\n </ax-prefix>\r\n {{ item.text }}\r\n <ng-container *ngIf=\"item.children\">\r\n <ng-container *ngFor=\"let child of item.children\" [ngTemplateOutlet]=\"sideMenu\"\r\n [ngTemplateOutletContext]=\"{ $implicit: child }\">\r\n </ng-container>\r\n </ng-container>\r\n </ax-side-menu-item>\r\n }\r\n </ng-template>\r\n </div>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\r\n @if(showNavigationProgress())\r\n {\r\n <div class=\"axp-navigating-progress\">\r\n <div></div>\r\n </div>\r\n }\r\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\r\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"isLoading()\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\r\n </ax-content>\r\n</ax-drawer-container>","import { AXAvatarModule } from '@acorex/components/avatar';\r\nimport { AXBadgeModule } from '@acorex/components/badge';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXSideMenuModule } from '@acorex/components/side-menu';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXPRootLayoutComponent } from './root-layout.component';\r\nimport { AXPAuthModule } from '@acorex/platform/auth';\r\nimport { AXPComponentSlotModule, AXPLogoComponent } from '@acorex/platform/common';\r\nimport { AXPRootLayoutHeaderComponent } from './components/header/header.component';\r\nimport { AXPRootLayoutFooterComponent } from './components/footer/footer.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXDropdownModule,\r\n AXAvatarModule,\r\n AXImageModule,\r\n AXImageModule,\r\n AXPopoverModule,\r\n AXBadgeModule,\r\n AXTabsModule,\r\n AXDrawerModule,\r\n AXSideMenuModule,\r\n AXLoadingModule,\r\n AXPLogoComponent,\r\n AXPAuthModule,\r\n AXPComponentSlotModule,\r\n ],\r\n exports: [],\r\n declarations: [\r\n AXPRootLayoutFooterComponent,\r\n AXPRootLayoutHeaderComponent,\r\n AXPRootLayoutComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class AXPAdminRootLayoutModule { }\r\n","import { Route } from '@angular/router';\r\nexport const routes: Route[] = [\r\n {\r\n path: 'error',\r\n children: [\r\n {\r\n path: 'offline',\r\n loadComponent: () => import('./pages/errors/error-offline/error-offline.component').then(c => c.AXPErrorOfflineComponent),\r\n },\r\n {\r\n path: '404',\r\n loadComponent: () => import('./pages/errors/error-404/error-404.component').then(c => c.AXPError404Component),\r\n },\r\n {\r\n path: '401',\r\n loadComponent: () => import('./pages/errors/error-401/error-401.component').then(c => c.AXPError401Component),\r\n },\r\n ]\r\n },\r\n];\r\n","import { AXActionSheetModule, AXActionSheetService } from '@acorex/components/action-sheet';\r\nimport { AXDataTableComponent, AXDataTableModule, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';\r\nimport { AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport { AXPGridLayoutDirective, AXPLayoutService, AXPStickyDirective } from '@acorex/platform/common';\r\nimport { AXBadgeModule } from '@acorex/components/badge';\r\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogModule } from '@acorex/components/dialog';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { AXTooltipModule } from '@acorex/components/tooltip';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXPAuthModule } from '@acorex/platform/auth';\r\nimport { AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';\r\n\r\n@Component({\r\n selector: 'axp-entity-detail-list-view',\r\n templateUrl: 'entity-detail-list-view.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [AXUnsubscriber],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXBadgeModule,\r\n AXDropdownModule,\r\n AXPopoverModule,\r\n AXFormModule,\r\n AXActionSheetModule,\r\n AXDrawerModule,\r\n AXDialogModule,\r\n AXLoadingModule,\r\n AXTabsModule,\r\n AXTooltipModule,\r\n AXBreadcrumbsModule,\r\n AXSearchBoxModule,\r\n AXDataTableModule,\r\n //\r\n AXPLayoutBuilderModule,\r\n AXPWidgetsModule,\r\n AXPStickyDirective,\r\n AXPGridLayoutDirective,\r\n AXPAuthModule,\r\n ],\r\n standalone: true,\r\n})\r\nexport class AXPEntityDetailListViewComponent {\r\n\r\n private layout = inject(AXPLayoutService);\r\n\r\n @Input('viewModel')\r\n vm: AXPEntityDetailListViewModel;\r\n\r\n protected focusedRow: any;\r\n //\r\n @ViewChild('grid') grid!: AXDataTableComponent;\r\n\r\n constructor(\r\n private actionSheetService: AXActionSheetService,\r\n private unsubscriber: AXUnsubscriber,\r\n protected platform: AXPlatform,\r\n ) {\r\n }\r\n\r\n\r\n handleChangeSearchValue(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.vm.applyInlineFilter(e.value);\r\n }\r\n }\r\n\r\n private dropdownRowItems: AXRowCommandItem[] = [\r\n {\r\n text: 'Details',\r\n icon: 'fa-solid fa-eye',\r\n name: 'open-entity',\r\n divided: true,\r\n },\r\n {\r\n text: 'Delete',\r\n icon: 'fa-solid fa-trash-can',\r\n name: 'delete-entity',\r\n color: 'danger',\r\n disabled: true,\r\n },\r\n ];\r\n\r\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\r\n const d: AXRowCommandItemClickEvent = {\r\n component: e.component,\r\n name: this.dropdownRowItems[0].name,\r\n data: e.data,\r\n };\r\n this.handleRowCommandClick(d);\r\n }\r\n\r\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\r\n return Promise.resolve(this.dropdownRowItems);\r\n };\r\n\r\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\r\n this.vm.executeCommand(e.name, e.data);\r\n }\r\n\r\n}\r\n","<div class=\"ax-flex ax-p-2\">\r\n <div class=\"ax-flex ax-flex-1 ax-overflow-auto ax-h-48\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1 \" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n </ax-data-table>\r\n </div>\r\n</div>","import { AXActionSheetModule } from '@acorex/components/action-sheet';\r\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogModule } from '@acorex/components/dialog';\r\nimport { AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { AXPAdminLayoutState, AXPStickyDirective, getChildDrawer, isSmallScreen } from '@acorex/platform/common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\r\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\r\nimport { AXPEntityDetailListViewComponent } from '../entity-detail-list-view/entity-detail-list-view.component';\r\nimport { AXPEntityMasterSingleViewModel } from '@acorex/platform/layout/entity';\r\n@Component({\r\n templateUrl: './entity-master-single-view.component.html',\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n AXDecoratorModule,\r\n AXDropdownModule,\r\n AXPopoverModule,\r\n AXFormModule,\r\n AXActionSheetModule,\r\n AXDrawerModule,\r\n AXDialogModule,\r\n AXLoadingModule,\r\n AXTabsModule,\r\n AXButtonModule,\r\n AXBreadcrumbsModule,\r\n //\r\n AXPLayoutBuilderModule,\r\n AXPWidgetsModule,\r\n AXPStickyDirective,\r\n AXPGridLayoutDirective,\r\n //\r\n AXPEntityDetailListViewComponent\r\n ],\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXPEntityMasterSingleViewComponent {\r\n private activeRoute = inject(ActivatedRoute);\r\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterSingleViewModel;\r\n //\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n protected isSM = this.store.select(isSmallScreen());\r\n protected isOpen = this.store.select(getChildDrawer());\r\n\r\n\r\n protected selectedTabIndex = signal(0);\r\n\r\n handleActiveTabChanged(e: any) {\r\n this.selectedTabIndex.set(e.index);\r\n }\r\n}","<ax-drawer-container>\r\n <!-- <ax-drawer #drawer location=\"start\" [collapsed]=\"!(isOpen | async)\" [mode]=\" (isSM | async) ? 'overlay' : 'push'\"\r\n *ngIf=\"loader.hasSections$ | async\" (collapsedChange)=\"handleCollapsedChange($event)\">\r\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\r\n <p class=\"ax-text-xl ax-font-bold ax-mb-6\">{{loader.sectionTitle}}</p>\r\n <ax-tabs look=\"with-line\" location=\"start\">\r\n @for(tab of (loader.sections$ | async); track tab.name)\r\n {\r\n <ax-tab-item [text]=\"tab.title\" [active]=\"isActive(tab)\" (onClick)=\"handleMenuClick($event,tab)\"\r\n [disabled]=\"editForm.context\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n </ax-content>\r\n </ax-drawer> -->\r\n <ax-content #content class=\"ax-overflow-x-hidden\">\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-min-h-full ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyOffset]=\"50\"\r\n [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\r\n [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index)\r\n {\r\n <ng-container>\r\n @if(tr.separated)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n <!----- Finish Toolbar ----->\r\n <!--------------------------------------------------------------->\r\n <ax-tabs [look]=\"'classic'\" class=\"ax-mt-4 ax-font-semibold\">\r\n <ax-tab-item text=\"Overview\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"History\">\r\n </ax-tab-item>\r\n <ax-tab-item text=\"Comments\">\r\n </ax-tab-item>\r\n </ax-tabs>\r\n </div>\r\n <!-- Begin Sections -->\r\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\r\n @for(section of vm.sections(); track section.name()) {\r\n <div class=\"ax-card ax-shadow-md ax-mt-2\" [gridLayout]=\"section.layout()\">\r\n <ax-form #form>\r\n <axp-widgets-container [context]=\"vm.context()\">\r\n <div class=\"ax-card-header !ax-py-2 !ax-px-4\">\r\n <p>\r\n <span class=\"!ax-text-lg ax-font-semibold \">{{ section.title()\r\n }}</span>\r\n <br>\r\n @if(section.description()) {\r\n <span class=\"ax-text-sm ax-font-normal ax-text-gray-500\">{{ section.description()\r\n }}</span>\r\n }\r\n </p>\r\n @if(section.editable()) {\r\n <ax-button class=\"ax-xs\" color=\"ghost\" [look]=\"'blank'\"\r\n (onClick)=\"vm.executeCommand('modify-entity-section',section)\">\r\n <ax-icon class=\"fa-solid fa-pen ax-text-gray-600\"> </ax-icon>\r\n </ax-button>\r\n }\r\n </div>\r\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\r\n @for(attr of section.props(); track $index) {\r\n <div class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\">\r\n <div>\r\n <div>\r\n <span class=\"ax-font-semibold\">{{ attr.title() }}</span>\r\n </div>\r\n </div>\r\n <div class=\"ax-text-neutral-500\">\r\n <axp-widget-renderer [node]=\"attr.node()\"> </axp-widget-renderer>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </axp-widgets-container>\r\n </ax-form>\r\n </div>\r\n }\r\n </div>\r\n <!-- Finish Sections -->\r\n <!--------------------------------------------------------------->\r\n @if(vm.relatedEntities().length)\r\n {\r\n <ax-tabs [look]=\"'default'\" class=\"ax-mt-2 ax-font-semibold\" #tab\r\n (onActiveTabChanged)=\"handleActiveTabChanged($event)\">\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <ax-tab-item [text]=\"e.title()\" [key]=\"index.toString()\">\r\n </ax-tab-item>\r\n }\r\n </ax-tabs>\r\n @for(e of vm.relatedEntities();track $index;let index= $index){\r\n <div [class.ax-hidden]=\"$index!=selectedTabIndex()\">\r\n <axp-entity-detail-list-view [viewModel]=\"e\"></axp-entity-detail-list-view>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </ax-content>\r\n</ax-drawer-container>","import { AXValueChangedEvent } from '@acorex/components/common';\r\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDragPlaceholder, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { AXPAdminLayoutState, isSmallScreen } from '@acorex/platform/common';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXSwitchModule } from '@acorex/components/switch';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-columns',\r\n templateUrl: './list-view-option-columns.component.html',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n CdkDragPlaceholder,\r\n CdkDragHandle,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXSwitchModule,\r\n ],\r\n standalone: true,\r\n})\r\nexport class AXPListViewOptionsColumnsComponent {\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n\r\n @Input('viewModel')\r\n public vm!: AXPEntityMasterListViewModel;\r\n protected isSM = this.store.select(isSmallScreen());\r\n\r\n @Output()\r\n public onClosed = new EventEmitter<void>();\r\n\r\n\r\n\r\n\r\n handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string) {\r\n if (e.isUserInteraction) {\r\n const col = this.vm.columns().find(c => c.name == name);\r\n if (col) {\r\n col.visible = e.value ?? true;\r\n }\r\n }\r\n }\r\n\r\n protected drop(event: CdkDragDrop<unknown[]>) {\r\n moveItemInArray(this.vm.columns(), event.previousIndex, event.currentIndex);\r\n }\r\n\r\n protected handleClose() {\r\n this.onClosed.emit();\r\n }\r\n protected handleResetClick() {\r\n this.vm.resetColumns();\r\n }\r\n\r\n protected handleApplyClick() {\r\n this.onClosed.emit();\r\n }\r\n}\r\n","<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Columns</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\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\">\r\n @for(item of vm.columns();track item.name)\r\n {\r\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\r\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\r\n </div>\r\n <ax-switch class=\"ax-sm\" [ngModel]=\"item.visible\"\r\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"></ax-switch>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>","import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDragPlaceholder, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXSwitchModule } from '@acorex/components/switch';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXImageModule } from '@acorex/components/image';\r\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\r\nimport { AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';\r\n\r\n@Component({\r\n selector: 'axp-list-view-option-sorting',\r\n templateUrl: './list-view-option-sorting.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CdkDropList,\r\n CdkDrag,\r\n CdkDragPlaceholder,\r\n CdkDragHandle,\r\n AXButtonModule,\r\n AXImageModule,\r\n AXDecoratorModule,\r\n AXSwitchModule,\r\n AXSelectBoxModule\r\n ],\r\n})\r\nexport class AXPListViewOptionSortingComponent {\r\n protected isSM = false;\r\n\r\n @Output()\r\n public onClosed = new EventEmitter<void>();\r\n\r\n @Input('viewModel')\r\n public vm!: AXPEntityMasterListViewModel;\r\n\r\n\r\n protected drop(event: CdkDragDrop<unknown[]>) {\r\n moveItemInArray(this.vm.sortableFields(), event.previousIndex, event.currentIndex);\r\n }\r\n\r\n protected changeItemSort(item: AXPEntityMasterListViewSortPropViewModel) {\r\n item.dir = ((item.dir == 'asc' ? 'desc' : 'asc'));\r\n }\r\n\r\n protected handleClose() {\r\n this.onClosed.emit();\r\n }\r\n protected handleResetClick() {\r\n this.vm.resetSorts();\r\n }\r\n\r\n protected handleApplyClick() {\r\n this.onClosed.emit();\r\n }\r\n}\r\n","<ax-header class=\"ax-flex ax-items-center\">\r\n <h2 class=\"ax-text-xl ax-font-bold\">Sorts</h2>\r\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\r\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\r\n </ax-button>\r\n</ax-header>\r\n<div class=\"ax-flex ax-p-4 ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\r\n [class.ax-h-[calc(100vh-310px)]]=\"vm.sortedCount()==0\">\r\n @if(vm.sortedCount()==0){\r\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\r\n <ax-image src=\"assets/documents.svg\"></ax-image>\r\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\r\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to sort</span>\r\n </div>\r\n }\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\"\r\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-max-h-[calc(100vh-310px)] ax-overflow-auto\">\r\n @for(item of vm.sortedFields();track $index)\r\n {\r\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\r\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\r\n <ax-select-box [dataSource]=\"vm.sortableFields()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\r\n </ax-select-box>\r\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\r\n <ax-icon [class.ax-text-primary]=\"item.dir == 'asc'\"\r\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"></ax-icon>\r\n <ax-icon [class.ax-text-primary]=\"item.dir == 'desc'\"\r\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"></ax-icon>\r\n </ax-button>\r\n <ax-button look=\"blank\" (onClick)=\"vm.removeSort(item.name)\">\r\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\r\n </ax-button>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"ax-flex ax-gap-2\">\r\n <div class=\"ax-w-full\" #addField>\r\n @if(vm.sortedCount()==0){\r\n <div class=\"ax-flex ax-justify-center ax-w-full\">\r\n <ax-button (onClick)=\"vm.addSort()\" color=\"primary\" text=\"Add field\" look=\"outline\"\r\n class=\"ax-md ax-w-56\"></ax-button>\r\n </div>\r\n }@else if(vm.canAddMoreSort()) {\r\n <ax-button (onClick)=\"vm.addSort()\" color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\r\n <ax-button text=\"Apply\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\r\n <ax-button text=\"Reset\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\r\n</ax-footer>","import { AXActionSheetModule, AXActionSheetService } from '@acorex/components/action-sheet';\r\nimport { AXDataTableComponent, AXDataTableModule, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';\r\nimport { AXDrawerModule } from '@acorex/components/drawer';\r\nimport { AXPlatform } from '@acorex/core/platform';\r\nimport { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation, effect, inject } from '@angular/core';\r\nimport { ActivatedRoute, RouterModule } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { AXPAdminLayoutState, AXPGridLayoutDirective, AXPLayoutService, AXPStickyDirective, getChildDrawer, isSmallScreen } from '@acorex/platform/common';\r\nimport { AXBadgeModule } from '@acorex/components/badge';\r\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXDialogModule } from '@acorex/components/dialog';\r\nimport { AXDropdownModule } from '@acorex/components/dropdown';\r\nimport { AXFormModule } from '@acorex/components/form';\r\nimport { AXLoadingModule } from '@acorex/components/loading';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXTabsModule } from '@acorex/components/tabs';\r\nimport { AXTooltipModule } from '@acorex/components/tooltip';\r\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\r\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXPAuthModule } from '@acorex/platform/auth';\r\nimport { AXPListViewOptionsColumnsComponent } from './list-view-option-columns/list-view-option-columns.component';\r\nimport { AXPListViewOptionSortingComponent } from './list-view-option-sorting/list-view-option-sorting.component';\r\nimport { AXValueChangedEvent } from '@acorex/components/common';\r\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\r\n\r\n@Component({\r\n templateUrl: 'entity-list-view.component.html',\r\n styleUrls: ['entity-list-view.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n AXButtonModule,\r\n AXDecoratorModule,\r\n AXBadgeModule,\r\n AXDropdownModule,\r\n AXPopoverModule,\r\n AXFormModule,\r\n AXActionSheetModule,\r\n AXDrawerModule,\r\n AXDialogModule,\r\n AXLoadingModule,\r\n AXTabsModule,\r\n AXTooltipModule,\r\n AXBreadcrumbsModule,\r\n AXSearchBoxModule,\r\n AXDataTableModule,\r\n //\r\n AXPLayoutBuilderModule,\r\n AXPWidgetsModule,\r\n AXPStickyDirective,\r\n AXPGridLayoutDirective,\r\n AXPAuthModule,\r\n //\r\n AXPListViewOptionsColumnsComponent,\r\n AXPListViewOptionSortingComponent\r\n\r\n ],\r\n standalone: true,\r\n})\r\nexport class AXPEntityMasterListViewComponent {\r\n\r\n private layout = inject(AXPLayoutService);\r\n private activeRoute = inject(ActivatedRoute);\r\n\r\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterListViewModel;\r\n\r\n //\r\n private store = inject(Store<AXPAdminLayoutState>);\r\n protected isSM = this.store.select(isSmallScreen());\r\n protected isOpen = this.store.select(getChildDrawer());\r\n //\r\n protected focusedRow: any;\r\n //\r\n @ViewChild('grid') grid!: AXDataTableComponent;\r\n\r\n constructor(\r\n private actionSheetService: AXActionSheetService,\r\n protected platform: AXPlatform,\r\n ) {\r\n effect(() => {\r\n this.grid.selectedRows = this.vm.selectedItems();\r\n }, { allowSignalWrites: true })\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.vm.setView();\r\n }\r\n\r\n protected closeDrawer(name: string, collapsed: boolean) {\r\n if (collapsed) {\r\n switch (name) {\r\n case 'conditions':\r\n //this.loader.resetConditions();\r\n break;\r\n case 'columns':\r\n this.vm.applyColumns()\r\n break;\r\n case 'sorts':\r\n this.vm.applySorts();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n handleChangeSearchValue(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.vm.applyInlineFilter(e.value);\r\n }\r\n }\r\n\r\n private dropdownRowItems: AXRowCommandItem[] = [\r\n {\r\n text: 'Details',\r\n icon: 'fa-solid fa-eye',\r\n name: 'open-entity',\r\n divided: true,\r\n },\r\n {\r\n text: 'Delete',\r\n icon: 'fa-solid fa-trash-can',\r\n name: 'delete-entity',\r\n color: 'danger',\r\n disabled: true,\r\n },\r\n ];\r\n\r\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\r\n const d: AXRowCommandItemClickEvent = {\r\n component: e.component,\r\n name: this.dropdownRowItems[0].name,\r\n data: e.data,\r\n };\r\n this.handleRowCommandClick(d);\r\n }\r\n\r\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\r\n return Promise.resolve(this.dropdownRowItems);\r\n };\r\n\r\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\r\n this.vm.executeCommand(e.name, e.data);\r\n }\r\n\r\n protected async handleSelectedRowsChange(rows: unknown[]) {\r\n this.vm.selectedItems.set(rows);\r\n }\r\n\r\n}\r\n","<ax-drawer-container>\r\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\" #content>\r\n <div\r\n class=\"ax-flex ax-flex-col ax-gap-4 ax-px-4 ax-pb-4 md:ax-px-6 ax-bg-surface ax-border-b md:ax-border-0 md:ax-bg-default\">\r\n <div class=\"ax-flex ax-flex-col ax-pt-4 ax-gap-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\r\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\r\n <!-------- Begin Toolbar -------->\r\n <!-------- Begin Line 1 -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <!-------- Begin Title -------->\r\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\r\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\r\n <div class=\"ax-text-xl md:ax-text-3xl ax-font-bold\">{{ vm.title()}}</div>\r\n @if(vm.description())\r\n {\r\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">{{\r\n vm.description() }}</div>\r\n }\r\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\" [class.ax-hidden]=\"isSM | async\">\r\n <ng-template #divider>\r\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\r\n </ng-template>\r\n @for(b of vm.beardcrumbs();track $index;let last=$last)\r\n {\r\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\r\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\r\n @if(b.icon)\r\n {\r\n <i [class]=\"b.icon\"></i>\r\n }\r\n {{b.title}}\r\n </ax-breadcrumbs-item>\r\n }\r\n </ax-breadcrumbs>\r\n </div>\r\n </div>\r\n <!-------- Finish Title -------->\r\n <!--------------------------------------------------------------->\r\n <!-- Begin Action Menu -->\r\n <div class=\"ax-flex ax-items-center ax-gap-3\">\r\n @for(tr of vm.primaryActions();track $index)\r\n {\r\n <ax-button [text]=\"tr.title\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n }\r\n @if(vm.secondaryActions().length) {\r\n <ax-button [text]=\"(isSM | async) ? null : 'Actions'\" color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\r\n </ax-prefix>\r\n <ax-dropdown-panel>\r\n <ax-button-item-list>\r\n @for(tr of vm.secondaryActions();track $index;let first=$first)\r\n {\r\n <ng-container>\r\n @if(tr.separated && !$first)\r\n {\r\n <ax-divider></ax-divider>\r\n }\r\n <ax-button-item [text]=\"tr.title\" class=\"ax-font-semibold ax-text-{{tr.color}}\"\r\n (onClick)=\"vm.executeCommand(tr.name)\">\r\n <ax-prefix>\r\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n }\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n }\r\n </div>\r\n <!-- Finish Action Menu -->\r\n </div>\r\n\r\n <!-------- Finish Line 1 -------->\r\n\r\n <!-------- Begin Line 2 -------->\r\n <div class=\"ax-flex ax-justify-between ax-items-center\">\r\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\r\n <!-------- Begin Selection -------->\r\n\r\n @if(vm.hasSelectedItems())\r\n {\r\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\r\n <span class=\"ax-text-xl ax-font-bold\"> {{ vm.selectedItems().length }} Items Selected </span>\r\n <span (click)=\"vm.clearSelection()\"\r\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">Clear\r\n Items</span>\r\n </div>\r\n\r\n <!-------- Finish Selection -------->\r\n\r\n } @else {\r\n\r\n <!-------- Begin View -------->\r\n\r\n <ax-button [text]=\"vm.view().title\" #views color=\"ghost\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-eye\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <i class=\"fa-solid fa-caret-down\"></i>\r\n </ax-suffix>\r\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\r\n <ax-button-item-list class=\"ax-bg-surface\">\r\n <ax-title class=\"ax-font-bold ax-opacity-100\">Public Views</ax-title>\r\n <ax-button-item *ngFor=\"let v of vm.views()\" [text]=\"v.title\" [class.ax-bg-on-surface]=\"vm.view()==v\"\r\n (onClick)=\"vm.setView(v.name)\"></ax-button-item>\r\n <!-- <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\r\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\r\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\r\n <ax-suffix>\r\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\r\n <ax-icon class=\"far fa-edit\"> </ax-icon>\r\n </ax-button>\r\n </ax-suffix>\r\n </ax-button-item> -->\r\n <!-- <ng-container *feature=\"'axp-entity-list-custom-view'\">\r\n <ax-divider></ax-divider>\r\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\r\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\r\n </ng-container> -->\r\n </ax-button-item-list>\r\n </ax-dropdown-panel>\r\n </ax-button>\r\n <!-------- Finish View -------->\r\n\r\n <!-------- Begin Inline Search -------->\r\n\r\n @if(vm.hasInlineFilters())\r\n {\r\n <div class=\"ax-w-72\" *feature=\"'axp-entity-list-inline-filter'\">\r\n <ax-search-box [placeholder]=\"'Search on '+vm.inlineFiltersPlaceholders().join(', ')\"\r\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\r\n </div>\r\n }\r\n }\r\n <!-------- Finish Inline Search -------->\r\n </div>\r\n\r\n <!-- Begin View Action Menu -->\r\n @if(!vm.hasSelectedItems())\r\n {\r\n <div class=\"ax-flex ax-gap-3\">\r\n <ax-button text=\"Columns\" color=\"ghost\" (onClick)=\"columnsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge [text]=\"vm.visibleColumnCount().toString()\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"conditionsDrawer.open()\"\r\n *feature=\"'axp-entity-list-advance-filter'\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-sliders\"></i>\r\n </ax-prefix>\r\n <ax-suffix>\r\n <ax-badge text=\"3\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n </ax-button>\r\n @if(vm.canSort())\r\n {\r\n <ax-button text=\"Sort\" color=\"ghost\" (onClick)=\"sortsDrawer.open()\">\r\n <ax-prefix>\r\n <i class=\"fa-solid fa-bars-sort\"></i>\r\n </ax-prefix>\r\n @if(vm.sortedCount())\r\n {\r\n <ax-suffix>\r\n <ax-badge [text]=\"vm.sortedCount().toString()\" color=\"primary\"></ax-badge>\r\n </ax-suffix>\r\n }\r\n </ax-button>\r\n }\r\n </div>\r\n }\r\n <!-- Finish View Action Menu -->\r\n </div>\r\n <!-------- Finish Line 2 -------->\r\n\r\n <!----- Finish Toolbar ----->\r\n\r\n </div>\r\n </div>\r\n <!----- Begin DataTable ----->\r\n <div class=\"ax-flex ax-flex-1 ax-px-6 ax-py-4 ax-overflow-auto\">\r\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\r\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\r\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\r\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\r\n @for(col of vm.columns();track col.name) {\r\n @if(col.visible)\r\n {\r\n <axp-widget-column-renderer [caption]=\"col.title\" [node]=\"col.node()\"></axp-widget-column-renderer>\r\n }\r\n }\r\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\r\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\r\n </ax-data-table>\r\n </div>\r\n <!----- Finish DataTable ----->\r\n </ax-content>\r\n\r\n <ax-drawer (collapsedChange)=\"closeDrawer('columns', $event)\" #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-columns [viewModel]=\"vm\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('conditions', $event)\" #conditionsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\r\n <!-- <axp-list-view-option-conditions [loader]=\"loader\"\r\n (onClosed)=\"conditionsDrawer.close()\"></axp-list-view-option-conditions> -->\r\n </ax-content>\r\n </ax-drawer>\r\n <ax-drawer (collapsedChange)=\"closeDrawer('sorts', $event)\" #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\r\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\r\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [viewModel]=\"vm\"></axp-list-view-option-sorting>\r\n </ax-content>\r\n </ax-drawer>\r\n</ax-drawer-container>","import { ActivatedRouteSnapshot, RouteReuseStrategy, DetachedRouteHandle } from '@angular/router';\r\nimport { AXPEntityMasterSingleViewComponent } from './layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component';\r\nimport { AXPEntityMasterListViewComponent } from './layouts/entity-layouts/entity-master-list-view/entity-list-view.component';\r\n\r\n\r\nexport class AXPEntityReuseStrategy implements RouteReuseStrategy {\r\n\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void { }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return false;\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\r\n return null;\r\n }\r\n\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n if (future.component === AXPEntityMasterListViewComponent || future.component === AXPEntityMasterSingleViewComponent) {\r\n return false;\r\n }\r\n\r\n return future.routeConfig === curr.routeConfig;\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { RouteReuseStrategy, RouterModule } from \"@angular/router\";\r\nimport { routes } from \"./layout.routes\";\r\nimport { AXPCommonModule } from \"@acorex/platform/common\";\r\nimport { AXPRootLayoutComponent } from \"./layouts/root-layout\";\r\nimport { AXPEntityReuseStrategy } from \"./entity-reuse.strategy\";\r\nimport { AXP_ENTITY_CONFIG_TOKEN, AXPEntityConfigs } from \"@acorex/platform/layout/entity\";\r\n@NgModule({\r\n imports: [\r\n RouterModule.forChild(routes),\r\n AXPCommonModule,\r\n ],\r\n exports: [],\r\n declarations: [],\r\n providers: [\r\n {\r\n provide: AXP_ENTITY_CONFIG_TOKEN,\r\n useValue: {\r\n viewers: {\r\n root: () => AXPRootLayoutComponent,\r\n master: {\r\n single: () => import('./layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component')\r\n .then(c => c.AXPEntityMasterSingleViewComponent),\r\n ///\r\n create: () => import('./layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component')\r\n .then(c => c.AXPEntityMasterCreateViewComponent),\r\n ///\r\n modify: () => import('./layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component')\r\n .then(c => c.AXPEntityMasterModifyViewComponent),\r\n //\r\n list: () => import('./layouts/entity-layouts/entity-master-list-view/entity-list-view.component')\r\n .then(c => c.AXPEntityMasterListViewComponent)\r\n }\r\n }\r\n } as AXPEntityConfigs\r\n },\r\n { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy }\r\n ]\r\n})\r\nexport class AXPDefaultThemeModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i6","i7","i9.AXPRootLayoutFooterComponent","i10.AXPRootLayoutHeaderComponent","i3","i4","i5","i8","i10","i9","i12","i13","i14"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.0.0",
|
|
6
6
|
"@angular/core": ">=18.0.0",
|
|
@@ -89,6 +89,12 @@
|
|
|
89
89
|
"esm2022": "./esm2022/layout/entity/acorex-platform-layout-entity.mjs",
|
|
90
90
|
"esm": "./esm2022/layout/entity/acorex-platform-layout-entity.mjs",
|
|
91
91
|
"default": "./fesm2022/acorex-platform-layout-entity.mjs"
|
|
92
|
+
},
|
|
93
|
+
"./themes/default": {
|
|
94
|
+
"types": "./themes/default/index.d.ts",
|
|
95
|
+
"esm2022": "./esm2022/themes/default/acorex-platform-themes-default.mjs",
|
|
96
|
+
"esm": "./esm2022/themes/default/acorex-platform-themes-default.mjs",
|
|
97
|
+
"default": "./fesm2022/acorex-platform-themes-default.mjs"
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
100
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/router";
|
|
3
|
+
import * as i2 from "@acorex/platform/common";
|
|
4
|
+
export declare class AXPDefaultThemeModule {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPDefaultThemeModule, never>;
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXPDefaultThemeModule, never, [typeof i1.RouterModule, typeof i2.AXPCommonModule], never>;
|
|
7
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXPDefaultThemeModule>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ActivatedRouteSnapshot, RouteReuseStrategy, DetachedRouteHandle } from '@angular/router';
|
|
2
|
+
export declare class AXPEntityReuseStrategy implements RouteReuseStrategy {
|
|
3
|
+
shouldDetach(route: ActivatedRouteSnapshot): boolean;
|
|
4
|
+
store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void;
|
|
5
|
+
shouldAttach(route: ActivatedRouteSnapshot): boolean;
|
|
6
|
+
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null;
|
|
7
|
+
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
|
|
8
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AXActionSheetService } from '@acorex/components/action-sheet';
|
|
2
|
+
import { AXDataTableComponent, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
|
|
3
|
+
import { AXPlatform } from '@acorex/core/platform';
|
|
4
|
+
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
5
|
+
import { AXValueChangedEvent } from '@acorex/components/common';
|
|
6
|
+
import { AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class AXPEntityDetailListViewComponent {
|
|
9
|
+
private actionSheetService;
|
|
10
|
+
private unsubscriber;
|
|
11
|
+
protected platform: AXPlatform;
|
|
12
|
+
private layout;
|
|
13
|
+
vm: AXPEntityDetailListViewModel;
|
|
14
|
+
protected focusedRow: any;
|
|
15
|
+
grid: AXDataTableComponent;
|
|
16
|
+
constructor(actionSheetService: AXActionSheetService, unsubscriber: AXUnsubscriber, platform: AXPlatform);
|
|
17
|
+
handleChangeSearchValue(e: AXValueChangedEvent): void;
|
|
18
|
+
private dropdownRowItems;
|
|
19
|
+
protected handleRowDbClick(e: AXDataTableRowDbClick): void;
|
|
20
|
+
protected getDropdownRowItems: (rowData: unknown) => Promise<AXRowCommandItem[]>;
|
|
21
|
+
protected handleRowCommandClick(e: AXRowCommandItemClickEvent): Promise<void>;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityDetailListViewComponent, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPEntityDetailListViewComponent, "axp-entity-detail-list-view", never, { "vm": { "alias": "viewModel"; "required": false; }; }, {}, never, never, true, never>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AXFormComponent } from '@acorex/components/form';
|
|
2
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
3
|
+
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
|
4
|
+
import { AXPEntityMasterCreateViewModel } from '@acorex/platform/layout/entity';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
|
|
7
|
+
protected vm: AXPEntityMasterCreateViewModel;
|
|
8
|
+
protected workflow: AXPWorkflowService;
|
|
9
|
+
protected handleCloseClick(): void;
|
|
10
|
+
protected handleBackClick(): Promise<void>;
|
|
11
|
+
protected handleNextClick(form: AXFormComponent): Promise<void>;
|
|
12
|
+
protected handleSaveClick(form: AXFormComponent): Promise<void>;
|
|
13
|
+
protected handleSaveAndNewClick(form: AXFormComponent): Promise<void>;
|
|
14
|
+
protected handleContextChange(data: any): Promise<void>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityMasterCreateViewComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPEntityMasterCreateViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AXActionSheetService } from '@acorex/components/action-sheet';
|
|
2
|
+
import { AXDataTableComponent, AXDataTableRowDbClick, AXRowCommandItem, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
|
|
3
|
+
import { AXPlatform } from '@acorex/core/platform';
|
|
4
|
+
import { AXValueChangedEvent } from '@acorex/components/common';
|
|
5
|
+
import { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class AXPEntityMasterListViewComponent {
|
|
8
|
+
private actionSheetService;
|
|
9
|
+
protected platform: AXPlatform;
|
|
10
|
+
private layout;
|
|
11
|
+
private activeRoute;
|
|
12
|
+
protected readonly vm: AXPEntityMasterListViewModel;
|
|
13
|
+
private store;
|
|
14
|
+
protected isSM: import("rxjs").Observable<boolean>;
|
|
15
|
+
protected isOpen: import("rxjs").Observable<boolean>;
|
|
16
|
+
protected focusedRow: any;
|
|
17
|
+
grid: AXDataTableComponent;
|
|
18
|
+
constructor(actionSheetService: AXActionSheetService, platform: AXPlatform);
|
|
19
|
+
ngAfterViewInit(): void;
|
|
20
|
+
protected closeDrawer(name: string, collapsed: boolean): void;
|
|
21
|
+
handleChangeSearchValue(e: AXValueChangedEvent): void;
|
|
22
|
+
private dropdownRowItems;
|
|
23
|
+
protected handleRowDbClick(e: AXDataTableRowDbClick): void;
|
|
24
|
+
protected getDropdownRowItems: (rowData: unknown) => Promise<AXRowCommandItem[]>;
|
|
25
|
+
protected handleRowCommandClick(e: AXRowCommandItemClickEvent): Promise<void>;
|
|
26
|
+
protected handleSelectedRowsChange(rows: unknown[]): Promise<void>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityMasterListViewComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPEntityMasterListViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AXValueChangedEvent } from '@acorex/components/common';
|
|
2
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
3
|
+
import { EventEmitter } from '@angular/core';
|
|
4
|
+
import { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AXPListViewOptionsColumnsComponent {
|
|
7
|
+
private store;
|
|
8
|
+
vm: AXPEntityMasterListViewModel;
|
|
9
|
+
protected isSM: import("rxjs").Observable<boolean>;
|
|
10
|
+
onClosed: EventEmitter<void>;
|
|
11
|
+
handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string): void;
|
|
12
|
+
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
13
|
+
protected handleClose(): void;
|
|
14
|
+
protected handleResetClick(): void;
|
|
15
|
+
protected handleApplyClick(): void;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPListViewOptionsColumnsComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPListViewOptionsColumnsComponent, "axp-list-view-option-columns", never, { "vm": { "alias": "viewModel"; "required": false; }; }, { "onClosed": "onClosed"; }, never, never, true, never>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
2
|
+
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AXPListViewOptionSortingComponent {
|
|
6
|
+
protected isSM: boolean;
|
|
7
|
+
onClosed: EventEmitter<void>;
|
|
8
|
+
vm: AXPEntityMasterListViewModel;
|
|
9
|
+
protected drop(event: CdkDragDrop<unknown[]>): void;
|
|
10
|
+
protected changeItemSort(item: AXPEntityMasterListViewSortPropViewModel): void;
|
|
11
|
+
protected handleClose(): void;
|
|
12
|
+
protected handleResetClick(): void;
|
|
13
|
+
protected handleApplyClick(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPListViewOptionSortingComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPListViewOptionSortingComponent, "axp-list-view-option-sorting", never, { "vm": { "alias": "viewModel"; "required": false; }; }, { "onClosed": "onClosed"; }, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AXFormComponent } from '@acorex/components/form';
|
|
2
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
3
|
+
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
|
4
|
+
import { AXPEntityMasterUpdateViewModel } from '@acorex/platform/layout/entity';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {
|
|
7
|
+
protected vm: AXPEntityMasterUpdateViewModel;
|
|
8
|
+
protected workflow: AXPWorkflowService;
|
|
9
|
+
protected handleCloseClick(): void;
|
|
10
|
+
protected handleSaveClick(form: AXFormComponent): Promise<void>;
|
|
11
|
+
protected handleSectionDiscard(form: AXFormComponent): Promise<void>;
|
|
12
|
+
protected handleSectionReset(form: AXFormComponent): Promise<void>;
|
|
13
|
+
protected handleContextChange(data: any): Promise<void>;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityMasterModifyViewComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPEntityMasterModifyViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AXPEntityMasterSingleViewModel } from '@acorex/platform/layout/entity';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPEntityMasterSingleViewComponent {
|
|
4
|
+
private activeRoute;
|
|
5
|
+
protected readonly vm: AXPEntityMasterSingleViewModel;
|
|
6
|
+
private store;
|
|
7
|
+
protected isSM: import("rxjs").Observable<boolean>;
|
|
8
|
+
protected isOpen: import("rxjs").Observable<boolean>;
|
|
9
|
+
protected selectedTabIndex: import("@angular/core").WritableSignal<number>;
|
|
10
|
+
handleActiveTabChanged(e: any): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityMasterSingleViewComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPEntityMasterSingleViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXPRootLayoutFooterComponent {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPRootLayoutFooterComponent, never>;
|
|
4
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPRootLayoutFooterComponent, "axp-dashboard-admin-footer", never, {}, {}, never, never, false, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXPRootLayoutHeaderComponent {
|
|
3
|
+
private store;
|
|
4
|
+
private router;
|
|
5
|
+
protected isOpen: import("rxjs").Observable<boolean>;
|
|
6
|
+
menuClick(): void;
|
|
7
|
+
logoClick(): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPRootLayoutHeaderComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPRootLayoutHeaderComponent, "axp-dashboard-admin-header", never, {}, {}, never, never, false, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AXDrawerComponent } from '@acorex/components/drawer';
|
|
2
|
+
import { AXPMenuItem, AXPLayoutService } from '@acorex/platform/common';
|
|
3
|
+
import { WritableSignal } from '@angular/core';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AXPRootLayoutComponent {
|
|
7
|
+
drawer: AXDrawerComponent;
|
|
8
|
+
private manuLoader;
|
|
9
|
+
private config;
|
|
10
|
+
private _layoutService;
|
|
11
|
+
get layoutService(): AXPLayoutService;
|
|
12
|
+
set layoutService(value: AXPLayoutService);
|
|
13
|
+
private subscriber;
|
|
14
|
+
private store;
|
|
15
|
+
private routeUtilService;
|
|
16
|
+
protected isActiveRoute: (item: AXPMenuItem) => boolean;
|
|
17
|
+
protected logo: {
|
|
18
|
+
dark?: import("@acorex/platform/common").AXPLogoConfig | undefined;
|
|
19
|
+
light?: import("@acorex/platform/common").AXPLogoConfig | undefined;
|
|
20
|
+
colored?: import("@acorex/platform/common").AXPLogoConfig | undefined;
|
|
21
|
+
} | undefined;
|
|
22
|
+
protected isOpen: Observable<boolean>;
|
|
23
|
+
protected isSM: Observable<boolean>;
|
|
24
|
+
protected isLoading: WritableSignal<boolean>;
|
|
25
|
+
protected showNavigationProgress: WritableSignal<boolean>;
|
|
26
|
+
protected menuItems$: Observable<AXPMenuItem[]>;
|
|
27
|
+
constructor();
|
|
28
|
+
protected handleMenuClick(e: any, item: AXPMenuItem): void;
|
|
29
|
+
protected handleCollapsedChange(value: boolean): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPRootLayoutComponent, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPRootLayoutComponent, "ng-component", never, {}, {}, never, never, false, never>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./components/footer/footer.component";
|
|
3
|
+
import * as i2 from "./components/header/header.component";
|
|
4
|
+
import * as i3 from "./root-layout.component";
|
|
5
|
+
import * as i4 from "@angular/common";
|
|
6
|
+
import * as i5 from "@angular/router";
|
|
7
|
+
import * as i6 from "@acorex/components/button";
|
|
8
|
+
import * as i7 from "@acorex/components/decorators";
|
|
9
|
+
import * as i8 from "@acorex/components/dropdown";
|
|
10
|
+
import * as i9 from "@acorex/components/avatar";
|
|
11
|
+
import * as i10 from "@acorex/components/image";
|
|
12
|
+
import * as i11 from "@acorex/components/popover";
|
|
13
|
+
import * as i12 from "@acorex/components/badge";
|
|
14
|
+
import * as i13 from "@acorex/components/tabs";
|
|
15
|
+
import * as i14 from "@acorex/components/drawer";
|
|
16
|
+
import * as i15 from "@acorex/components/side-menu";
|
|
17
|
+
import * as i16 from "@acorex/components/loading";
|
|
18
|
+
import * as i17 from "@acorex/platform/common";
|
|
19
|
+
import * as i18 from "@acorex/platform/auth";
|
|
20
|
+
export declare class AXPAdminRootLayoutModule {
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPAdminRootLayoutModule, never>;
|
|
22
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXPAdminRootLayoutModule, [typeof i1.AXPRootLayoutFooterComponent, typeof i2.AXPRootLayoutHeaderComponent, typeof i3.AXPRootLayoutComponent], [typeof i4.CommonModule, typeof i5.RouterModule, typeof i6.AXButtonModule, typeof i7.AXDecoratorModule, typeof i8.AXDropdownModule, typeof i9.AXAvatarModule, typeof i10.AXImageModule, typeof i10.AXImageModule, typeof i11.AXPopoverModule, typeof i12.AXBadgeModule, typeof i13.AXTabsModule, typeof i14.AXDrawerModule, typeof i15.AXSideMenuModule, typeof i16.AXLoadingModule, typeof i17.AXPLogoComponent, typeof i18.AXPAuthModule, typeof i17.AXPComponentSlotModule], never>;
|
|
23
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXPAdminRootLayoutModule>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXPError401Component {
|
|
3
|
+
private sessionService;
|
|
4
|
+
private router;
|
|
5
|
+
protected isAuthorized$: import("rxjs").Observable<boolean>;
|
|
6
|
+
protected handleHomeClick(): void;
|
|
7
|
+
protected handleSignInClick(): void;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPError401Component, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPError401Component, "axp-error-401", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXPError404Component {
|
|
3
|
+
private sessionService;
|
|
4
|
+
private router;
|
|
5
|
+
goHome(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPError404Component, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPError404Component, "axp-error-404", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPErrorOfflineComponent implements OnInit {
|
|
4
|
+
constructor();
|
|
5
|
+
ngOnInit(): void;
|
|
6
|
+
goHome(): void;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPErrorOfflineComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPErrorOfflineComponent, "axp-error-offline", never, {}, {}, never, never, true, never>;
|
|
9
|
+
}
|