@acorex/platform 19.3.0-next.5 → 19.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/common/lib/app/index.d.ts +0 -1
  2. package/common/lib/common.module.d.ts +1 -1
  3. package/common/lib/configs/app.config.d.ts +12 -3
  4. package/common/lib/home-page/home-page.service.d.ts +6 -0
  5. package/common/lib/layout/logo/logo.component.d.ts +4 -0
  6. package/common/lib/settings/settings.service.d.ts +4 -1
  7. package/common/lib/utils/index.d.ts +0 -1
  8. package/common/lib/utils/regional-util.service.d.ts +2 -2
  9. package/common/lib/utils/regional.types.d.ts +6 -16
  10. package/core/lib/index.d.ts +1 -0
  11. package/{common/lib/app → core/lib/startup}/app-startup.service.d.ts +1 -5
  12. package/core/lib/startup/app-startup.types.d.ts +6 -0
  13. package/core/lib/startup/index.d.ts +2 -0
  14. package/core/lib/types/logo.types.d.ts +5 -9
  15. package/fesm2022/acorex-platform-auth.mjs +5 -1
  16. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-common.mjs +130 -218
  18. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-core.mjs +42 -13
  20. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-builder.mjs +17 -0
  22. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-components.mjs +247 -0
  24. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-designer.mjs +2 -2
  26. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-entity.mjs +44 -20
  28. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-layout-search.mjs +4 -3
  30. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-layout-setting.mjs +5 -4
  32. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs → acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs} +5 -4
  34. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-themes-default.mjs +18 -20
  36. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  37. package/fesm2022/acorex-platform-themes-shared.mjs +22 -18
  38. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  39. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-1IseEVXQ.mjs} +2 -2
  40. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-1IseEVXQ.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-widgets.mjs +35 -3775
  42. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  43. package/layout/builder/lib/builder/context-store.service.d.ts +2 -1
  44. package/layout/builder/lib/builder/widget-base.component.d.ts +1 -0
  45. package/layout/builder/lib/builder/widget-container.component.d.ts +1 -0
  46. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  47. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +1 -0
  48. package/layout/components/README.md +3 -0
  49. package/layout/components/index.d.ts +1 -0
  50. package/layout/components/lib/user-avatar/index.d.ts +4 -0
  51. package/layout/components/lib/user-avatar/user-avatar.component.d.ts +27 -0
  52. package/layout/components/lib/user-avatar/user-avatar.provider.d.ts +3 -0
  53. package/layout/components/lib/user-avatar/user-avatar.service.d.ts +42 -0
  54. package/layout/components/lib/user-avatar/user-avatar.types.d.ts +12 -0
  55. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
  56. package/layout/entity/lib/entity.module.d.ts +1 -1
  57. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +1 -1
  58. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -0
  59. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -5
  60. package/layout/search/lib/search.module.d.ts +1 -1
  61. package/layout/setting/lib/settings.module.d.ts +1 -1
  62. package/package.json +8 -2
  63. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +12 -3
  64. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +12 -6
  65. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -1
  66. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +14 -5
  67. package/themes/shared/lib/shared.module.d.ts +1 -1
  68. package/widgets/lib/widgets/index.d.ts +0 -9
  69. package/common/lib/utils/data-generator.d.ts +0 -26
  70. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs.map +0 -1
  72. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +0 -41
  73. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.config.d.ts +0 -7
  74. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +0 -34
  75. package/widgets/lib/widgets/charts/bar-chart/index.d.ts +0 -2
  76. package/widgets/lib/widgets/charts/chart.type.d.ts +0 -3
  77. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.component.d.ts +0 -40
  78. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.config.d.ts +0 -7
  79. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar.types.d.ts +0 -50
  80. package/widgets/lib/widgets/charts/clock-calendar/index.d.ts +0 -3
  81. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.component.d.ts +0 -58
  82. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.config.d.ts +0 -7
  83. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +0 -67
  84. package/widgets/lib/widgets/charts/donut-chart/index.d.ts +0 -2
  85. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.component.d.ts +0 -69
  86. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.config.d.ts +0 -7
  87. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +0 -29
  88. package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +0 -3
  89. package/widgets/lib/widgets/charts/notification/index.d.ts +0 -3
  90. package/widgets/lib/widgets/charts/notification/notification-widget.component.d.ts +0 -54
  91. package/widgets/lib/widgets/charts/notification/notification-widget.config.d.ts +0 -10
  92. package/widgets/lib/widgets/charts/notification/notification.type.d.ts +0 -47
  93. package/widgets/lib/widgets/charts/shared/chart-base.component.d.ts +0 -44
  94. package/widgets/lib/widgets/charts/shared/chart-base.type.d.ts +0 -37
  95. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/chart-tooltip.component.d.ts +0 -28
  96. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/index.d.ts +0 -1
  97. package/widgets/lib/widgets/charts/sticky-note/index.d.ts +0 -2
  98. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.component.d.ts +0 -21
  99. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.config.d.ts +0 -7
  100. package/widgets/lib/widgets/charts/tasklist/index.d.ts +0 -3
  101. package/widgets/lib/widgets/charts/tasklist/tasklist-widget.component.d.ts +0 -34
  102. package/widgets/lib/widgets/charts/tasklist/tasklist-widget.config.d.ts +0 -7
  103. package/widgets/lib/widgets/charts/tasklist/tasklist.type.d.ts +0 -36
  104. package/widgets/lib/widgets/charts/weather/index.d.ts +0 -4
  105. package/widgets/lib/widgets/charts/weather/weather-services/index.d.ts +0 -3
  106. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.abstract.d.ts +0 -174
  107. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.key.d.ts +0 -2
  108. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.mock.service.d.ts +0 -47
  109. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.service.d.ts +0 -48
  110. package/widgets/lib/widgets/charts/weather/weather-widget.component.d.ts +0 -109
  111. package/widgets/lib/widgets/charts/weather/weather-widget.config.d.ts +0 -14
  112. package/widgets/lib/widgets/charts/weather/weather.module.d.ts +0 -11
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-category/entity-category.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-category/entity-category.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-toolbar-view/filters/entity-filter-toolbar.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.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 { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, input, signal, viewChild, ViewEncapsulation } from '@angular/core';\n\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTreeItemClickBaseEvent, AXTreeViewComponent, AXTreeViewModule } from '@acorex/components/tree-view';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity } from '@acorex/platform/common';\nimport { AXPEntityMasterListViewModel, AXPEntityResolver } from '@acorex/platform/layout/entity';\nimport {\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex/platform/themes/shared';\n\n@Component({\n selector: 'axp-entity-category',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXTreeViewModule,\n AXSkeletonModule,\n AXPThemeLayoutBlockComponent,\n AXSearchBoxModule,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n AXTranslationModule,\n ],\n templateUrl: './entity-category.component.html',\n styleUrl: './entity-category.component.scss',\n})\nexport class AXPEntityCategoryComponent {\n protected readonly entityResolver = inject(AXPEntityResolver);\n protected readonly translate = inject(AXTranslationService);\n\n vm = input.required<AXPEntityMasterListViewModel>();\n tree = viewChild<AXTreeViewComponent>('tree');\n searchValue = input('');\n\n isLoading = signal(true);\n\n protected categoryEntityDef!: AXPEntity | null;\n protected categoryEntityQueryFunc!: Function;\n protected basicQueryEvent = {\n skip: 0,\n take: 1000,\n };\n\n protected treeItems = signal<any[]>([\n {\n expand: true,\n children: [],\n },\n ]);\n\n ngOnInit(): void {\n this.getCategories();\n }\n\n async handleCategorySearchChange(e: AXValueChangedEvent) {\n if (this.categoryEntityDef) {\n this.isLoading.set(true);\n\n const categoryInlineFilters = this.categoryEntityDef.properties.filter((p) => p.options?.filter?.inline?.enabled);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n filters: [\n {\n filters: categoryInlineFilters.map((cif) => ({\n field: cif.name,\n operator: {\n type: 'contains',\n },\n value: e.value,\n })),\n logic: 'or',\n },\n {\n value: true,\n field: this.categoryEntityDef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n },\n ],\n logic: 'and',\n },\n };\n const res = await this.categoryEntityQueryFunc(event);\n\n this.treeItems.update((prev) => prev.map((item: any) => ({ ...item, children: res.items })));\n this.isLoading.set(false);\n }\n }\n\n protected async getCategories() {\n this.isLoading.set(true);\n this.categoryEntityDef = await this.getCategoryEntityDef();\n this.categoryEntityQueryFunc = this.categoryEntityDef?.queries.list?.execute as Function;\n const res = await this.categoryEntityQueryFunc(this.basicQueryEvent);\n const textField = this.vm().entityDef.category?.textField || 'title';\n const valueField = this.vm().entityDef.category?.valueField || 'id';\n const updatedItems = {\n expand: true,\n [textField]: await this.translate.translateAsync('allItems'),\n [valueField]: 'all',\n children: res.items,\n };\n this.treeItems.update((prev) => prev.map((_) => updatedItems));\n this.isLoading.set(false);\n }\n\n protected async handleCollapseChanged(e: AXTreeItemClickBaseEvent) {\n debugger;\n this.tree()?.setNodeLoading(e.data.id, true);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n field: this.categoryEntityDef?.parentKey,\n value: e.data.id,\n operator: {\n type: 'equal',\n },\n },\n };\n const children = await this.categoryEntityQueryFunc(event);\n this.treeItems.update((prev) =>\n prev.map((i) => ({\n ...i,\n children: prev[0].children.map((ti: any) => (ti.id === e.data.id ? { ...ti, children: children.items } : ti)),\n }))\n );\n\n this.tree()?.setNodeLoading(e.data.id, false);\n }\n\n protected async getCategoryEntityDef() {\n const [module, entity] = this.vm().entityDef.category?.entity?.split('.') || [];\n return await this.entityResolver.get(module, entity);\n }\n protected handleNodeClick(event: AXTreeItemClickBaseEvent) {\n const filters = this.vm()\n .entityDef.category?.applyConditions?.map((f) => {\n console.log({ f });\n return event.data[f.value] !== 'all'\n ? {\n field: f.name,\n value: event.data[f.value],\n operator: f.operator,\n }\n : null;\n })\n .filter((item) => item != null);\n const viewFilters = this.vm()\n .view()\n .conditions.map((i) => ({ ...i, field: i.name }));\n console.log({ viewFilters });\n const newFilters = [...viewFilters, ...filters!];\n // this.vm().filterQueries.update((prev) => [...prev, ...filters!]);\n this.vm().dataSource.filter({\n filters: newFilters,\n logic: 'and',\n });\n this.vm().dataSource.refresh();\n }\n}\n","<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n\n<axp-layout-header>\n <axp-layout-title>{{ vm().entityDef.category?.title || 'category' | translate | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n (onValueChanged)=\"handleCategorySearchChange($event)\"\n [delayTime]=\"300\"\n [placeholder]=\"'search.placeholder' | translate | async\"\n >\n </ax-search-box>\n </axp-layout-toolbar>\n</axp-layout-header>\n<axp-layout-content>\n @if(isLoading()){\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-3\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }@else if (treeItems()[0].children.length) {\n <div class=\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [textField]=\"vm().entityDef.category?.textField || 'title'\"\n [valueField]=\"vm().entityDef.category?.valueField || 'id'\"\n [expandedField]=\"'expand'\"\n [items]=\"treeItems()\"\n #tree\n >\n </ax-tree-view>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-center\"> No Record Found! </span>\n </div>\n }\n\n <ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n </ng-template>\n</axp-layout-content>\n","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]=\"'blank'\" 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 { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXEvent, AXHtmlEvent, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXCalendarService } from '@acorex/core/date-time';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { ALL_DEFAULT_OPERATORS, AXPFilterDefinition, AXPFilterQuery, AXPQueryFilter } from '@acorex/platform/common';\nimport {\n AXPLayoutBuilderModule,\n AXPLayoutContextChangeEvent,\n AXPWidgetTypesMap,\n} from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n linkedSignal,\n QueryList,\n signal,\n untracked,\n viewChild,\n ViewChildren,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-entity-filter-toolbar',\n templateUrl: './entity-filter-toolbar.component.html',\n styleUrl: '../entity-master-toolbar-view.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXTagBoxModule,\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXListNavigationModule,\n AXBadgeModule,\n ],\n providers: [],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityFilterToolbarComponent {\n constructor() {}\n\n protected translate = inject(AXTranslationService);\n protected calendarService = inject(AXCalendarService);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected tagBox = viewChild<AXTagBoxComponent>('tagBox');\n tagBoxInput!: any;\n\n @ViewChildren('caseItem') listItems!: QueryList<any>;\n\n protected selectedField = signal<string | null>(null);\n protected selectedFilters = linkedSignal<AXPFilterDefinition[]>(() =>\n this.convertQueriesToDefinitions(this.vm.view().conditions).map((i) => ({ ...i, readOnly: true }))\n );\n context = linkedSignal<any>(() => this.convertQueriesToContext(this.vm.view().conditions));\n\n protected activeFilter = signal<AXPFilterDefinition | null>(null);\n\n protected asyncTags = signal<any[]>([]);\n\n protected popover = viewChild<AXPopoverComponent>('popover');\n\n inputValue = signal<string>('');\n\n inlineFilters = () => {\n return this.vm.filtersDef.filter(\n (f) =>\n f.filterType.inline &&\n !this.selectedFilters().some(\n (sf) =>\n sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)\n )\n );\n };\n\n protected getDisplayValue = async (filter: AXPFilterDefinition, val: any) => {\n if (filter.widget.type === 'select-editor' || filter.widget.type === 'select-filter') {\n const dataSource: AXDataSource = filter.widget.options?.['dataSource'];\n const textField = filter.widget.options?.['textField'];\n const valueField = filter.widget.options?.['valueField'];\n if (dataSource?.config?.byKey) {\n if (Array.isArray(val)) {\n const results: unknown[] = await Promise.all(val.map((v) => dataSource.config.byKey!(v)));\n return results.map((data) => (data as Record<string, any>)[textField]).join(', ');\n } else {\n const data = (await dataSource.config.byKey(val)) as Record<string, any>;\n return data[textField];\n }\n } else if (Array.isArray(dataSource)) {\n if (Array.isArray(val)) {\n return dataSource.map((data) => (data as Record<string, any>)[textField]).join(', ');\n } else {\n const record: any = dataSource.find((d: any) => d[valueField] === val);\n return record ? record[textField] : '';\n }\n }\n }\n return typeof val === 'object' && !Array.isArray(val)\n ? `${this.convertIfISOStringDate(val.from)} and ${this.convertIfISOStringDate(val.to)}`\n : this.convertIfISOStringDate(val);\n };\n\n protected convertIfISOStringDate = (val: string) => {\n const isISOStringDate = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(val);\n if (isISOStringDate) {\n return this.calendarService.convert(val).date.toLocaleDateString();\n }\n return val;\n };\n\n convertQueriesToDefinitions(queries: AXPQueryFilter[]): AXPFilterDefinition[] {\n const properties = this.vm.properties;\n\n return queries.map((q) => {\n const property = properties.find((p) => p.name === q.name);\n\n return {\n field: q.name,\n operator: q.operator,\n value: q.value,\n title: property?.title || '',\n widget: {\n type: property?.schema.interface?.type as AXPWidgetTypesMap[keyof AXPWidgetTypesMap],\n options: property?.schema.interface?.options,\n },\n filterType: {\n inline: property?.options?.filter?.inline?.enabled || false,\n advance: property?.options?.filter?.advance?.enabled || false,\n },\n };\n });\n }\n\n convertQueriesToContext(queries: AXPQueryFilter[]): any {\n return queries.reduce((acc, q) => {\n acc[q.name] = { value: q.value, operation: q.operator };\n return acc;\n }, {} as any);\n }\n\n filterFields = () => {\n return this.vm.filtersDef.filter(\n (f) =>\n f.title.toUpperCase().includes(this.tagBox()?.inputValue()?.toUpperCase() || '') &&\n !this.selectedFilters().some(\n (sf) =>\n sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)\n )\n );\n };\n\n ngOnInit(): void {\n this.tagBoxInput = this.tagBox()?.getHostElement().querySelector('input');\n }\n\n handleSelectField(field: AXPFilterDefinition) {\n this.activeFilter.set(field);\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n }\n handleFieldKeyDown(e: KeyboardEvent, field: AXPFilterDefinition) {\n if (e.key === 'Enter') {\n this.handleSelectField(field);\n }\n }\n\n onContextChanged(e: AXPLayoutContextChangeEvent) {\n this.context.set(e.data);\n }\n\n handleApplyFilter() {\n if (this.activeFilter()) {\n this.selectedFilters.update((prev) => [...prev, this.activeFilter() as AXPFilterDefinition]);\n this.activeFilter.set(null);\n this.popover()?.close();\n }\n }\n\n handleButtonKeyDown(e: Event) {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]') as HTMLElement;\n if (firstItem) {\n firstItem.focus();\n e?.preventDefault();\n }\n }\n }\n\n handleKeyDown(e: AXHtmlEvent<KeyboardEvent>) {\n if (e.nativeEvent?.key === 'ArrowDown') {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]') as HTMLElement;\n if (firstItem) {\n firstItem.focus();\n e.nativeEvent?.preventDefault();\n }\n }\n } else {\n this.popover()?.open();\n }\n }\n\n #effect = effect(() => {\n const context = untracked(() => this.context());\n const convertedFilters: AXPFilterQuery[] = this.selectedFilters().map((f) => ({\n field: f.field,\n operator: context[f.field]?.operation,\n value: context[f.field]?.value,\n }));\n const newContext: any = {};\n convertedFilters.forEach((cf) => {\n newContext[cf.field] = {\n value: cf.value,\n operation: typeof cf.operator === 'string' ? { type: cf.operator } : cf.operator,\n };\n });\n\n this.context.set(newContext);\n\n this.vm.filterQueries.set(convertedFilters);\n\n this.vm.applyFilterAndSort();\n\n untracked(() => this.deactivateAllListItems());\n });\n\n handleSelectFilters(e: AXValueChangedEvent) {\n console.log(e);\n this.selectedFilters.update((prev) => {\n return e.value;\n });\n }\n\n protected getActiveOperator(filter: AXPFilterDefinition | null) {\n if (!filter) {\n return undefined;\n }\n\n const contextOperation = this.context()?.[filter.field]?.operation?.type;\n const operatorType = contextOperation || filter.operator?.type;\n\n return ALL_DEFAULT_OPERATORS.find((o) => o.name === operatorType)?.title;\n }\n\n handleSelectInlineFilter(filter: AXPFilterDefinition) {\n this.context.update((prev) => ({\n ...prev,\n [filter.field]: {\n value: this.tagBox()?.inputValue(),\n operation: { type: 'contains' },\n },\n }));\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n this.selectedFilters.update((prev) => [...prev, filter]);\n this.popover()?.close();\n }\n\n handleInlineFilterKeyDown(e: KeyboardEvent, filter: AXPFilterDefinition) {\n if (e.key === 'Enter') {\n this.handleSelectInlineFilter(filter);\n }\n }\n\n handlePopoverClosed(e: AXEvent) {\n this.activeFilter.set(null);\n }\n\n protected deactivateAllListItems(): void {\n if (this.listItems) {\n this.listItems.forEach((item) => {\n if (item.isActive()) {\n item.isActive.set(false);\n }\n });\n }\n }\n\n #effect2 = effect(() => {\n const filters = this.selectedFilters();\n const context = this.context();\n\n Promise.all(\n filters.map(async (filter) => {\n console.log({ filter });\n const val = context[filter.field]?.value;\n const displayValue = await this.getDisplayValue(filter, val);\n return {\n ...filter,\n query: `${this.translate.translateSync(filter.title)} ${this.getActiveOperator(filter)} '${displayValue}'`,\n // readOnly: true,\n };\n })\n ).then((results) => {\n this.asyncTags.set(results);\n });\n });\n}\n","<div class=\"ax-flex ax-items-center ax-gap-2 ax-p-2\">\n <ax-button (keydown)=\"handleButtonKeyDown($event)\" (onClick)=\"popover.open()\" #filterButton [look]=\"'blank'\">\n <ax-icon class=\"far fa-bars-filter ax-cursor-pointer\"> </ax-icon>\n </ax-button>\n <ax-tag-box\n [ngModel]=\"asyncTags()\"\n (onValueChanged)=\"handleSelectFilters($event)\"\n [textField]=\"'query'\"\n [valueField]=\"'id'\"\n [look]=\"'none'\"\n [readonlyField]=\"'readOnly'\"\n (onKeyDown)=\"handleKeyDown($event)\"\n [addOnEnter]=\"false\"\n [placeholder]=\"'filter.title' | translate | async\"\n #tagBox\n ></ax-tag-box>\n</div>\n\n<ax-popover\n [offsetY]=\"activeFilter() ? -30 : 0\"\n [target]=\"tagBoxInput\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n (onClosed)=\"handlePopoverClosed($event)\"\n [adaptivityEnabled]=\"true\"\n #popover\n>\n <div class=\"md:ax-min-w-72 ax-w-full\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n @if (activeFilter()) {\n <div class=\"ax-flex ax-flex-col ax-lightest-surface ax-rounded-md ax-shadow-md\">\n <ax-header class=\"ax-border-b ax-border-light ax-px-4 ax-py-2\">{{\n activeFilter()?.title! | translate | async\n }}</ax-header>\n <ax-content class=\"ax-p-4\">\n <div class=\"ax-mb-2\">\n <ax-badge [text]=\"getActiveOperator(activeFilter())!\"></ax-badge>\n </div>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n type: activeFilter()?.widget?.type || 'text-editor',\n path: activeFilter()?.field,\n options: activeFilter()?.widget?.options\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ax-content>\n <ax-footer class=\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\">\n <ax-button class=\"ax-xs\" [text]=\"'apply' | translate | async\" (onClick)=\"handleApplyFilter()\"></ax-button>\n </ax-footer>\n </div>\n }@else {\n <div axListNavigation #list=\"axListNavigation\" class=\"axp-list-items\">\n @if(tagBox.inputValue()){ @for(inlineFilter of inlineFilters(); track inlineFilter.field){\n <div\n axListNavigationItem\n #caseItem=\"axListNavigationItem\"\n [class.axp-state-focused]=\"caseItem.isActive()\"\n tabindex=\"0\"\n (click)=\"handleSelectInlineFilter(inlineFilter)\"\n (keydown)=\"handleInlineFilterKeyDown($event, inlineFilter)\"\n >\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{ tagBox.inputValue() }}'\n </div>\n }\n <span class=\"ax-w-full ax-border-t ax-border-light ax-my-1\"></span>\n } @for (field of filterFields(); track field.field) {\n <div\n axListNavigationItem\n #caseItem=\"axListNavigationItem\"\n [class.axp-state-focused]=\"caseItem.isActive()\"\n (click)=\"handleSelectField(field)\"\n (keydown)=\"handleFieldKeyDown($event, field)\"\n tabindex=\"0\"\n >\n <div class=\"ax-flex ax-items-end ax-gap-2\">\n <ax-icon class=\"ax-w-5\" [class]=\"'fa-light ' + field.icon\"> </ax-icon>\n {{ field.title | translate | async }}\n </div>\n </div>\n }\n </div>\n }\n </axp-widgets-container>\n </div>\n</ax-popover>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTabsComponent, AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n effect,\n Input,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'axp-entity-view-toolbar',\n templateUrl: './entity-view-toolbar.component.html',\n styleUrls: ['../entity-master-toolbar-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule, AXTabsModule],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityViewToolbarComponent implements AfterViewInit {\n protected tabs = viewChild<AXTabsComponent>('tabs');\n\n constructor() {}\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected isMounted = signal(false);\n\n ngAfterViewInit(): void {\n this.isMounted.set(true);\n }\n\n #effect = effect(() => {\n if (!this.isMounted()) return;\n const views = untracked(() => this.vm.views());\n if (!views) return;\n const selectedTab = views.findIndex((v) => v.name == this.vm.view().name);\n untracked(() => {\n if (selectedTab != -1) {\n this.tabs()?.select(selectedTab);\n }\n });\n });\n\n handleActiveChange(e: any) {\n console.log(e);\n }\n}\n","<ax-tabs #tabs [look]=\"'with-line'\" class=\"ax-font-semibold\">\n @for (item of vm.views(); track item.name) {\n <ax-tab-item\n (onClick)=\"vm.setView(item.name)\"\n [key]=\"item.name\"\n [text]=\"(item.title | translate | async) || 'item.title'\"\n >\n </ax-tab-item>\n }\n</ax-tabs>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { AXPEntityMasterListViewComponent } from '../entity-master-list-view/entity-master-list-view.component';\nimport { AXPListViewOptionsColumnsComponent } from '../entity-master-list-view/list-view-option-columns/list-view-option-columns.component';\nimport { AXPListViewOptionSortingComponent } from '../entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component';\nimport { AXPEntityFilterToolbarComponent } from './filters/entity-filter-toolbar.component';\nimport { AXPEntityViewToolbarComponent } from './views/entity-view-toolbar.component';\n\n@Component({\n selector: 'axp-entity-master-toolbar-view',\n templateUrl: './entity-master-toolbar-view.component.html',\n\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPEntityFilterToolbarComponent,\n AXPEntityViewToolbarComponent,\n AXPopoverModule,\n AXPListViewOptionSortingComponent,\n AXPListViewOptionsColumnsComponent,\n ],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityMasterToolbarViewComponent {\n protected layoutService = inject(AXPLayoutThemeService);\n protected parent = inject(AXPEntityMasterListViewComponent);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n}\n","<axp-entity-view-toolbar [viewModel]=\"vm\"></axp-entity-view-toolbar>\n<div class=\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\">\n <axp-entity-filter-toolbar [viewModel]=\"vm\"></axp-entity-filter-toolbar>\n\n <div class=\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\">\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ 'entity.columns' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n </div>\n </div>\n </ax-popover>\n @if(vm.canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ 'entity.sorts' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n </div>\n </div>\n </ax-popover>\n } @if(layoutService.isSmall()){\n <ax-button (onClick)=\"parent.toggleCategoryDrawer()\" [iconOnly]=\"true\" [color]=\"'default'\">\n <i class=\"fa-light fa-bars\"></i>\n </ax-button>\n }\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 { 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 { 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 { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport {\n AXPLayoutThemeService,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutStartSideComponent,\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 { AXPActionMenuItem, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPBasePage, AXPBasePageComponent, AXPPageLayoutComponent } from '../../base';\nimport { AXPEntityCategoryComponent } from '../entity-category/entity-category.component';\nimport { AXPEntityMasterToolbarViewComponent } from '../entity-master-toolbar-view/entity-master-toolbar-view.component';\n\n@Component({\n templateUrl: 'entity-master-list-view.component.html',\n styleUrls: ['entity-master-list-view.component.scss'],\n selector: 'axp-entity-master-list',\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 AXDropdownButtonModule,\n AXSearchBoxModule,\n AXDataTableModule,\n AXTranslationModule,\n DragDropModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPAuthModule,\n //\n AXPEntityMasterToolbarViewComponent,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXDropdownButtonModule,\n AXPThemeLayoutStartSideComponent,\n AXPEntityCategoryComponent,\n ],\n providers: [\n {\n provide: AXPBasePage,\n useExisting: AXPEntityMasterListViewComponent,\n },\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 protected categorySearchValue = signal('');\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 toggleCategoryDrawer() {\n this.toggleStartSide();\n }\n\n override getPageTitle(): string {\n return this.vm.title();\n }\n\n override async getPageDescription(): Promise<string> {\n const description = this.vm.description();\n if (description) {\n return this.translateService.translateAsync(description);\n }\n return '';\n }\n\n override getPageBreadcrumbs(): AXPBreadcrumbItem[] {\n return this.vm.beardcrumbs();\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return this.vm.primaryActions().map(\n (tr) =>\n ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n } as AXPActionMenuItem)\n );\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return this.vm.secondaryActions().map((tr) => ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n separated: tr.separated,\n }));\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n if (command) {\n this.vm.execute(command);\n }\n }\n}\n","<axp-page-layout *translate=\"let t\">\n @if(vm.entityDef.category){\n <axp-layout-start-side>\n <axp-entity-category class=\"ax-w-80\" [vm]=\"vm\" [searchValue]=\"categorySearchValue()\"></axp-entity-category>\n </axp-layout-start-side>\n }\n <axp-page-toolbar>\n <axp-entity-master-toolbar-view [viewModel]=\"vm\"></axp-entity-master-toolbar-view>\n </axp-page-toolbar>\n <axp-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-page-content>\n</axp-page-layout>\n"],"names":["i3","i5","i6","i2","i4","i7","i10","i1"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/components/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPDataGenerator } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPLayoutContextChangeEvent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPTabularDataColumn } from './tabular-widget.types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"ax-p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"ax-h-96 ax-overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type.name,\n options: column.options ?? {}\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if(!disabled){\n <div class=\"ax-flex ax-justify-end ax-py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'discard' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'Okay' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPLayoutBuilderModule,\n AXDataTableModule,\n AXTranslationModule,\n AXFormModule,\n ],\n})\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n context: any;\n columns: AXPTabularDataColumn[];\n disabled: boolean = false;\n defaultRowCount: number = 0;\n contextDiscard: any;\n\n getCommandRowItems: AXRowCommandItem[] = [\n {\n name: 'delete',\n text: \"t('delete', {scope : 'common'})\",\n icon: 'fa-light fa-trash ax-text-danger',\n //divided: boolean,\n //disabled: boolean,\n color: 'danger',\n },\n ];\n\n protected override ngOnInit(): void {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n\n this.columns = this.columns.map((col) => {\n return {\n ...col,\n options: {\n ...(col.options ?? {}),\n validationRules: [\n {\n rule: 'required',\n },\n ],\n },\n };\n });\n\n this.contextDiscard = cloneDeep(this.context);\n if (this.context == null || this.context?.length == 0) {\n for (let i = 0; i < this.defaultRowCount; i++) {\n this.addRecord();\n }\n }\n }\n\n protected dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x: any) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n handleContextChange(e: AXPLayoutContextChangeEvent) {\n this.context = e.data;\n }\n\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n\n addRecord() {\n console.log(this.columns);\n\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc: { [key: string]: any }, column) => {\n acc[column.name] = ''; // or any default value\n return acc;\n }, {});\n console.log(value);\n this.context = [...value, newRecord];\n this.grid()?.refresh();\n }\n\n handleSelectionChange(e: any) {\n console.log(e);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item: any) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n}\n"],"names":["i2","i3","i4","i5","i6","i7"],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { AXPChartBaseComponent } from '../shared/chart-base.component';
2
- import { AXPChartTooltipData } from '../shared/components/chart-tooltip';
3
- import { AXPBarChartData, AXPBarChartValue } from './bar-chart.type';
4
- import * as i0 from "@angular/core";
5
- export declare class AXPBarChartWidgetViewComponent extends AXPChartBaseComponent<AXPBarChartValue> {
6
- barClick: import("@angular/core").OutputEmitterRef<AXPBarChartData>;
7
- private readonly chartContainerEl;
8
- private svg;
9
- private chart;
10
- private xScale;
11
- private yScale;
12
- private xAxis;
13
- private yAxis;
14
- private width;
15
- private height;
16
- private margin;
17
- private _tooltipVisible;
18
- private _tooltipPosition;
19
- private _tooltipData;
20
- protected tooltipVisible: import("@angular/core").Signal<boolean>;
21
- protected tooltipPosition: import("@angular/core").Signal<{
22
- x: number;
23
- y: number;
24
- }>;
25
- protected tooltipData: import("@angular/core").Signal<AXPChartTooltipData>;
26
- protected barWidth: import("@angular/core").Signal<any>;
27
- protected cornerRadius: import("@angular/core").Signal<any>;
28
- protected createChart(): void;
29
- protected updateChart(): void;
30
- protected cleanupChart(): void;
31
- private setupDimensions;
32
- private setupScales;
33
- private createAxes;
34
- private renderBars;
35
- private handleBarHover;
36
- private updateTooltipPosition;
37
- private handleBarClick;
38
- private showNoDataMessage;
39
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPBarChartWidgetViewComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPBarChartWidgetViewComponent, "ng-component", never, {}, { "barClick": "barClick"; }, never, never, true, never>;
41
- }
@@ -1,7 +0,0 @@
1
- import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
- export declare const AXPBarChartWidget: AXPWidgetConfig;
3
- declare module '@acorex/platform/layout/builder' {
4
- interface AXPWidgetTypesMap {
5
- barChart: 'bar-chart';
6
- }
7
- }
@@ -1,34 +0,0 @@
1
- import { AXPChartDataBase, AXPChartOptionBase } from '../shared/chart-base.type';
2
- /**
3
- * Bar chart data item interface
4
- */
5
- export interface AXPBarChartData extends AXPChartDataBase {
6
- id: string;
7
- label: string;
8
- value: number;
9
- color?: string;
10
- }
11
- /**
12
- * Bar chart options interface
13
- */
14
- export interface AXPBarChartOption extends AXPChartOptionBase {
15
- width?: number;
16
- height?: number;
17
- margin?: {
18
- top: number;
19
- right: number;
20
- bottom: number;
21
- left: number;
22
- };
23
- showXAxis?: boolean;
24
- showYAxis?: boolean;
25
- showGrid?: boolean;
26
- showTooltip?: boolean;
27
- barWidth?: number;
28
- cornerRadius?: number;
29
- }
30
- /**
31
- * Bar chart data type returned by getValue()
32
- * Represents an array of bar chart data items
33
- */
34
- export type AXPBarChartValue = AXPBarChartData[];
@@ -1,2 +0,0 @@
1
- export * from './bar-chart-widget.component';
2
- export * from './bar-chart-widget.config';
@@ -1,3 +0,0 @@
1
- import { AXPWidgetCategory } from '@acorex/platform/layout/builder';
2
- export declare const AXP_WIDGETS_CHART_CATEGORY: AXPWidgetCategory;
3
- export declare const AXP_WIDGETS_UTILITY_CATEGORY: AXPWidgetCategory;
@@ -1,40 +0,0 @@
1
- import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
2
- import { OnDestroy, OnInit, Signal } from '@angular/core';
3
- import { AXPHourNumber } from './clock-calendar.types';
4
- import * as i0 from "@angular/core";
5
- export declare class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent implements OnInit, OnDestroy {
6
- private readonly cdr;
7
- protected currentTime: Date;
8
- protected currentDate: Date;
9
- private clockSubscription;
10
- protected readonly clockHours: number[];
11
- protected readonly clockHourNumbers: AXPHourNumber[];
12
- protected hourRotation: number;
13
- protected minuteRotation: number;
14
- protected secondRotation: number;
15
- protected readonly displayLayout: Signal<string>;
16
- protected readonly showDigitalClock: Signal<boolean>;
17
- protected readonly showAnalogClock: Signal<boolean>;
18
- protected readonly showDate: Signal<boolean>;
19
- protected readonly showDayOfWeek: Signal<boolean>;
20
- protected readonly use24Hour: Signal<boolean>;
21
- protected readonly showSeconds: Signal<boolean>;
22
- protected readonly dateFormat: Signal<string>;
23
- protected readonly timezone: Signal<string>;
24
- protected readonly showTimezoneIndicator: Signal<boolean>;
25
- protected readonly displayTimezone: Signal<string>;
26
- protected readonly timeFormat: Signal<string>;
27
- ngOnInit(): void;
28
- ngOnDestroy(): void;
29
- private startClockTimer;
30
- private stopClockTimer;
31
- private updateTime;
32
- private getAdjustedTime;
33
- private updateClockHandsRotation;
34
- protected initializeWidget(): void;
35
- protected updateWidget(): void;
36
- protected destroyWidget(): void;
37
- protected getDayOfWeek(): string;
38
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPClockCalendarWidgetViewComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPClockCalendarWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
40
- }
@@ -1,7 +0,0 @@
1
- import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
- export declare const AXPClockCalendarWidget: AXPWidgetConfig;
3
- declare module '@acorex/platform/layout/builder' {
4
- interface AXPWidgetTypesMap {
5
- clockCalendar: 'clock-calendar';
6
- }
7
- }
@@ -1,50 +0,0 @@
1
- /**
2
- * ACoreX Clock Calendar Widget Types
3
- * Contains all types and interfaces for the Clock Calendar widget
4
- */
5
- /**
6
- * Clock layout display options
7
- */
8
- export type AXPClockLayout = 'both' | 'digital' | 'analog';
9
- /**
10
- * Clock timezone options
11
- */
12
- export interface AXPTimezoneOption {
13
- id: string;
14
- title: string;
15
- }
16
- /**
17
- * Date format options
18
- */
19
- export interface AXPDateFormatOption {
20
- id: string;
21
- title: string;
22
- }
23
- /**
24
- * Hour number definition for the analog clock
25
- */
26
- export interface AXPHourNumber {
27
- number: number;
28
- angle: number;
29
- }
30
- /**
31
- * Widget options for configuring the clock-calendar
32
- */
33
- export interface AXPClockCalendarOptions {
34
- displayLayout?: AXPClockLayout;
35
- showDate?: boolean;
36
- showDayOfWeek?: boolean;
37
- use24Hour?: boolean;
38
- showSeconds?: boolean;
39
- showHourMarkers?: boolean;
40
- dateFormat?: string;
41
- timezone?: string;
42
- }
43
- /**
44
- * Common timezone options for the widget configuration
45
- */
46
- export declare const AXP_TIMEZONE_OPTIONS: AXPTimezoneOption[];
47
- /**
48
- * Common date format options for the widget configuration
49
- */
50
- export declare const AXP_DATE_FORMAT_OPTIONS: AXPDateFormatOption[];
@@ -1,3 +0,0 @@
1
- export * from './clock-calendar-widget.component';
2
- export * from './clock-calendar-widget.config';
3
- export * from './clock-calendar.types';
@@ -1,58 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { AXPChartBaseComponent } from '../shared/chart-base.component';
3
- import { AXPChartTooltipData } from '../shared/components/chart-tooltip';
4
- import { AXPDonutChartData, AXPDonutChartValue } from './donut-chart.type';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Donut Chart Widget Component
8
- * Displays data in a circular donut chart with interactive segments
9
- */
10
- export declare class AXPDonutChartWidgetViewComponent extends AXPChartBaseComponent<AXPDonutChartValue> {
11
- segmentClick: import("@angular/core").OutputEmitterRef<AXPDonutChartData>;
12
- protected cdr: ChangeDetectorRef;
13
- private readonly chartContainerEl;
14
- private svg;
15
- private pieData;
16
- private hiddenSegments;
17
- private _tooltipVisible;
18
- private _tooltipPosition;
19
- private _tooltipData;
20
- protected tooltipVisible: import("@angular/core").Signal<boolean>;
21
- protected tooltipPosition: import("@angular/core").Signal<{
22
- x: number;
23
- y: number;
24
- }>;
25
- protected tooltipData: import("@angular/core").Signal<AXPChartTooltipData>;
26
- protected showLegend: import("@angular/core").Signal<boolean>;
27
- protected showTooltip: import("@angular/core").Signal<boolean>;
28
- protected legendPosition: import("@angular/core").Signal<any>;
29
- protected donutWidth: import("@angular/core").Signal<any>;
30
- protected cornerRadius: import("@angular/core").Signal<any>;
31
- protected chartDataArray: import("@angular/core").Signal<AXPDonutChartData[] | (AXPDonutChartValue & any[])>;
32
- protected getColor(index: number): string;
33
- protected isSegmentHidden(id: string): boolean;
34
- protected onSegmentClick(item: AXPDonutChartData): void;
35
- protected onLegendMouseEnter(item: AXPDonutChartData): void;
36
- protected onLegendMouseLeave(): void;
37
- protected createChart(): void;
38
- protected updateChart(): void;
39
- protected cleanupChart(): void;
40
- private clearChart;
41
- private handleChartError;
42
- private setupDimensions;
43
- private renderDonutChart;
44
- private calculateChartLayout;
45
- private createSvgWithFilters;
46
- private createDonutSegments;
47
- private setupColorScale;
48
- private addSegmentsWithAnimation;
49
- private handleSegmentHover;
50
- private updateTooltipPosition;
51
- private toggleSegment;
52
- private calculateTotal;
53
- private showNoDataMessage;
54
- private showAllSegmentsHiddenMessage;
55
- private addTotalDisplay;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDonutChartWidgetViewComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPDonutChartWidgetViewComponent, "ng-component", never, {}, { "segmentClick": "segmentClick"; }, never, never, true, never>;
58
- }
@@ -1,7 +0,0 @@
1
- import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
- export declare const AXPDonutChartWidget: AXPWidgetConfig;
3
- declare module '@acorex/platform/layout/builder' {
4
- interface AXPWidgetTypesMap {
5
- donutChart: 'donut-chart';
6
- }
7
- }
@@ -1,67 +0,0 @@
1
- /**
2
- * Type definitions for the Donut Chart Widget
3
- */
4
- /**
5
- * Represents a single segment in the donut chart
6
- */
7
- export interface AXPDonutChartData {
8
- /**
9
- * Unique identifier for the segment
10
- */
11
- id: string;
12
- /**
13
- * Display name for the segment
14
- */
15
- name: string;
16
- /**
17
- * Numeric value represented by the segment
18
- */
19
- value: number;
20
- }
21
- /**
22
- * Configuration options for the donut chart
23
- */
24
- export interface AXPDonutChartOption {
25
- /**
26
- * Width of the chart in pixels (defaults to container width)
27
- */
28
- width?: number;
29
- /**
30
- * Height of the chart in pixels (defaults to container height)
31
- */
32
- height?: number;
33
- /**
34
- * Whether to show the chart legend (defaults to true)
35
- */
36
- showLegend?: boolean;
37
- /**
38
- * Position of the legend (defaults to 'right')
39
- * - 'right': Shows legend on the right side
40
- * - 'bottom': Shows legend at the bottom
41
- */
42
- legendPosition?: 'right' | 'bottom' | {
43
- id: string;
44
- };
45
- /**
46
- * Whether to show tooltips on segment hover (defaults to true)
47
- */
48
- showTooltip?: boolean;
49
- /**
50
- * Width of the donut ring (thickness) in percentage of radius (defaults to 35)
51
- */
52
- donutWidth?: number;
53
- /**
54
- * Radius of segment corners in pixels (defaults to 4)
55
- */
56
- cornerRadius?: number;
57
- }
58
- /**
59
- * Data structure provided to the chart component
60
- * Can be an array of AXPDonutChartData directly or wrapped in an object with data property
61
- */
62
- export interface AXPDonutChartValue {
63
- /**
64
- * Array of donut chart segments
65
- */
66
- data: AXPDonutChartData[];
67
- }
@@ -1,2 +0,0 @@
1
- export * from './donut-chart-widget.component';
2
- export * from './donut-chart-widget.config';