@acorex/platform 19.1.7 → 19.1.9

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 (79) hide show
  1. package/common/lib/app/application.types.d.ts +4 -0
  2. package/common/lib/common.module.d.ts +8 -9
  3. package/common/lib/layout/menu/menu.types.d.ts +3 -2
  4. package/common/lib/layout/menu/search.provider.d.ts +2 -2
  5. package/common/lib/search/search-definition.builder.d.ts +5 -2
  6. package/common/lib/search/search.provider.d.ts +4 -0
  7. package/common/lib/search/search.service.d.ts +1 -0
  8. package/common/lib/search/search.types.d.ts +21 -5
  9. package/common/lib/settings/settings.service.d.ts +11 -5
  10. package/common/lib/store/common.actions.d.ts +0 -12
  11. package/common/lib/store/index.d.ts +0 -1
  12. package/common/lib/workflows/index.d.ts +1 -0
  13. package/common/lib/workflows/navigate.workflow.d.ts +13 -0
  14. package/core/lib/types.d.ts +19 -0
  15. package/fesm2022/acorex-platform-common.mjs +696 -705
  16. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-builder.mjs +2 -0
  19. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-designer.mjs +3 -3
  21. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-entity.mjs +172 -40
  23. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-search.mjs +87 -15
  25. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-setting.mjs +111 -5
  27. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  28. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BUL6ti4U.mjs → acorex-platform-themes-default-entity-master-list-view.component-BDjcOo6R.mjs} +3 -3
  29. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BDjcOo6R.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs +122 -0
  31. package/fesm2022/acorex-platform-themes-default-search-popup.component-gkiSZXm-.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-themes-default.mjs +11 -11
  33. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-themes-shared.mjs +9 -9
  35. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-widgets.mjs +1188 -509
  37. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  38. package/fesm2022/acorex-platform-workflow.mjs +10 -3
  39. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  40. package/layout/builder/lib/builder/widget-map.d.ts +2 -0
  41. package/layout/designer/lib/preview/preview.component.d.ts +2 -2
  42. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +6 -6
  43. package/layout/entity/lib/entity-registery.service.d.ts +16 -0
  44. package/layout/entity/lib/entity.config.d.ts +2 -2
  45. package/layout/entity/lib/entity.module.d.ts +3 -0
  46. package/layout/entity/lib/search-definition-command.provider.d.ts +4 -0
  47. package/layout/entity/lib/search-definition.provider.d.ts +6 -0
  48. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -1
  49. package/layout/search/lib/search.viewmodel.d.ts +21 -1
  50. package/layout/search/lib/workflows/search.workflow.d.ts +2 -1
  51. package/layout/setting/index.d.ts +1 -0
  52. package/{common/lib/settings → layout/setting/lib}/search-definition.provider.d.ts +1 -1
  53. package/layout/setting/lib/search.provider.d.ts +9 -0
  54. package/layout/setting/lib/settings.module.d.ts +9 -0
  55. package/package.json +5 -5
  56. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +2 -2
  57. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +10 -1
  58. package/themes/shared/lib/components/layout-elements/layout-list.component.d.ts +3 -3
  59. package/widgets/lib/properties/layout.props.d.ts +1 -0
  60. package/widgets/lib/widgets/index.d.ts +2 -0
  61. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +29 -0
  62. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +9 -0
  63. package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +7 -0
  64. package/widgets/lib/widgets/layout/advanced-grid/index.d.ts +3 -0
  65. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +7 -2
  66. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +6 -6
  67. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +50 -0
  68. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.config.d.ts +7 -0
  69. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +21 -0
  70. package/widgets/lib/widgets/property-editors/grid-options/index.d.ts +3 -0
  71. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +17 -2
  72. package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +5 -0
  73. package/workflow/lib/workflow.service.d.ts +1 -0
  74. package/workflow/lib/workflow.types.d.ts +1 -1
  75. package/common/lib/settings/search.provider.d.ts +0 -10
  76. package/common/lib/store/common.effects.d.ts +0 -13
  77. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BUL6ti4U.mjs.map +0 -1
  78. package/fesm2022/acorex-platform-themes-default-search-popup.component-Blpan821.mjs +0 -62
  79. package/fesm2022/acorex-platform-themes-default-search-popup.component-Blpan821.mjs.map +0 -1
@@ -6,21 +6,21 @@ export declare class AXPFlexOptionsWidgetEditComponent extends AXPWidgetComponen
6
6
  #private;
7
7
  private rendered;
8
8
  protected flexSides: AXPFlexBoxAlignmentOption[];
9
- protected flexDirection: import("@angular/core").WritableSignal<"row" | "row-reverse" | "column" | "column-reverse">;
9
+ protected flexDirection: import("@angular/core").WritableSignal<"row" | "column" | "row-reverse" | "column-reverse">;
10
10
  protected flexWrap: import("@angular/core").WritableSignal<"nowrap" | "wrap" | "wrap-reverse">;
11
11
  protected flexDirectionIsColumn: import("@angular/core").Signal<boolean>;
12
12
  protected flexDirectionIsReverse: import("@angular/core").Signal<boolean>;
13
13
  protected flexDirectionWithoutReverse: import("@angular/core").Signal<string>;
14
14
  protected gapMode: import("@angular/core").WritableSignal<"single" | "both">;
15
- protected gapUnit: import("@angular/core").WritableSignal<Record<"x" | "y" | "both", string>>;
15
+ protected gapUnit: import("@angular/core").WritableSignal<string>;
16
16
  protected gap: import("@angular/core").WritableSignal<Record<"x" | "y" | "both", number>>;
17
17
  protected lastGap: import("@angular/core").WritableSignal<number>;
18
18
  protected selectedJustify: import("@angular/core").WritableSignal<AXPFlexBoxOption>;
19
19
  protected selectedAlign: import("@angular/core").WritableSignal<AXPFlexBoxOption>;
20
- protected hoveredAlign: import("@angular/core").WritableSignal<"flex-start" | "flex-end" | "center" | "stretch" | "baseline" | null>;
21
- protected hoveredJustify: import("@angular/core").WritableSignal<"flex-start" | "flex-end" | "center" | "space-between" | "space-around" | null>;
22
- protected clickedAlign: import("@angular/core").WritableSignal<"flex-start" | "flex-end" | "center" | "stretch" | "baseline">;
23
- protected clickedJustify: import("@angular/core").WritableSignal<"flex-start" | "flex-end" | "center" | "space-between" | "space-around">;
20
+ protected hoveredAlign: import("@angular/core").WritableSignal<"center" | "stretch" | "flex-start" | "flex-end" | "baseline" | null>;
21
+ protected hoveredJustify: import("@angular/core").WritableSignal<"center" | "flex-start" | "flex-end" | "space-between" | "space-around" | null>;
22
+ protected clickedAlign: import("@angular/core").WritableSignal<"center" | "stretch" | "flex-start" | "flex-end" | "baseline">;
23
+ protected clickedJustify: import("@angular/core").WritableSignal<"center" | "flex-start" | "flex-end" | "space-between" | "space-around">;
24
24
  protected setWrapMode(type: AXPFlexBoxValues['flexWrap']): void;
25
25
  protected setGapMode(): void;
26
26
  protected setFlexDirection(type: AXPFlexBoxValues['flexDirection']): void;
@@ -0,0 +1,50 @@
1
+ import { AXDataSource, AXValueChangedEvent } from '@acorex/components/common';
2
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
3
+ import { AXPBreakpoints } from '../property-editor.type';
4
+ import { AXPGridBoxAlignmentOption, AXPGridBoxOption, AXPGridBoxValues, AXPGridBreakpointValues } from './grid-options-widget.type';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent<AXPGridBreakpointValues> {
7
+ #private;
8
+ private rendered;
9
+ protected gridSides: AXPGridBoxAlignmentOption[];
10
+ protected currentBreakpoint: import("@angular/core").WritableSignal<AXPBreakpoints>;
11
+ protected lastBreakpoint: import("@angular/core").WritableSignal<AXPBreakpoints>;
12
+ protected isBreakpointConfigured: import("@angular/core").WritableSignal<Record<string, boolean>>;
13
+ protected selectionItems: {
14
+ id: AXPBreakpoints;
15
+ text: string;
16
+ }[];
17
+ protected gridTemplateColumns: import("@angular/core").WritableSignal<number>;
18
+ protected gridTemplateRows: import("@angular/core").WritableSignal<number>;
19
+ protected gridDirection: import("@angular/core").WritableSignal<"row" | "column">;
20
+ protected gapUnit: import("@angular/core").WritableSignal<string>;
21
+ protected gap: import("@angular/core").WritableSignal<Record<"x" | "y", number>>;
22
+ protected gapMode: import("@angular/core").WritableSignal<"multiple" | "single">;
23
+ protected lastGap: import("@angular/core").WritableSignal<number>;
24
+ protected selectedJustify: import("@angular/core").WritableSignal<AXPGridBoxOption>;
25
+ protected selectedAlign: import("@angular/core").WritableSignal<AXPGridBoxOption>;
26
+ protected hoveredAlign: import("@angular/core").WritableSignal<"start" | "end" | "center" | "stretch" | null>;
27
+ protected hoveredJustify: import("@angular/core").WritableSignal<"start" | "end" | "center" | "stretch" | null>;
28
+ protected clickedAlign: import("@angular/core").WritableSignal<"start" | "end" | "center" | "stretch">;
29
+ protected clickedJustify: import("@angular/core").WritableSignal<"start" | "end" | "center" | "stretch">;
30
+ protected setGridDirection(value: AXPGridBoxValues['gridAutoFlow']): void;
31
+ protected setRowOrColumn(value: number, type: 'column' | 'row'): void;
32
+ protected toggleGapMode(): void;
33
+ protected setGap(size: number | [number, number], side: 'both' | 'x' | 'y'): void;
34
+ protected onClick(data: AXPGridBoxAlignmentOption): void;
35
+ protected onHover(data: AXPGridBoxAlignmentOption): void;
36
+ protected onHoverLeave(): void;
37
+ protected onJustifyChange(event: AXValueChangedEvent<any>): void;
38
+ protected onAlignChange(event: AXValueChangedEvent<any>): void;
39
+ protected changeBreakPoint(event: AXValueChangedEvent<any>): void;
40
+ protected resetBreakpoint(): void;
41
+ protected detectConfiguredBreakpoints(): void;
42
+ private saveValue;
43
+ protected justifyDataSource: AXDataSource<AXPGridBoxOption>;
44
+ protected alignDataSource: AXDataSource<AXPGridBoxOption>;
45
+ private findAlignNameById;
46
+ private findJustifyNameById;
47
+ initialValues(): void;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridOptionsWidgetEditComponent, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridOptionsWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
50
+ }
@@ -0,0 +1,7 @@
1
+ import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
+ export declare const AXPGridOptionsWidget: AXPWidgetConfig;
3
+ declare module '@acorex/platform/layout/builder' {
4
+ interface AXPWidgetTypesMap {
5
+ gridOptions: 'grid-options';
6
+ }
7
+ }
@@ -0,0 +1,21 @@
1
+ import { AXPBreakpointValues } from '../property-editor.type';
2
+ export type AXPGridBreakpointValues = AXPBreakpointValues<AXPGridBoxValues>;
3
+ export interface AXPGridBoxValues {
4
+ gridTemplateColumns: string;
5
+ gridTemplateRows: string;
6
+ gap: string;
7
+ justifyItems: 'start' | 'end' | 'center' | 'stretch';
8
+ alignItems: 'start' | 'end' | 'center' | 'stretch';
9
+ gridAutoFlow: 'row' | 'column';
10
+ }
11
+ export interface AXPGridBoxOption {
12
+ value: string;
13
+ label: string;
14
+ }
15
+ export interface AXPGridBoxAlignmentOption extends AXPGridBoxOption {
16
+ justifyItems: AXPGridBoxValues['justifyItems'];
17
+ alignItems: AXPGridBoxValues['alignItems'];
18
+ }
19
+ export declare const AXP_Grid_Box_Alignments: AXPGridBoxAlignmentOption[];
20
+ export declare const AXP_Grid_Box_Align_Items_Options: AXPGridBoxOption[];
21
+ export declare const AXP_Grid_Box_Justify_Items_Options: AXPGridBoxOption[];
@@ -0,0 +1,3 @@
1
+ export * from './grid-options-widget-editor.component';
2
+ export * from './grid-options-widget.config';
3
+ export * from './grid-options-widget.type';
@@ -76,8 +76,23 @@ export declare class AXPPropertyEditorHelper {
76
76
  * @returns An object containing the x and y values and units.
77
77
  * @throws Error If the gap string is invalid.
78
78
  */
79
- static parseGap(gapString: string): {
80
- units: Record<'x' | 'y', string>;
79
+ static parseGap(gap: string): {
81
80
  values: Record<'x' | 'y', number>;
81
+ unit: string;
82
82
  };
83
+ /**
84
+ * Extracts the repetition count from a CSS grid template string of the format "repeat(N, 1fr)".
85
+ *
86
+ * @param gridTemplate - The CSS grid template string, e.g., "repeat(5, 1fr)".
87
+ * @returns The number of repetitions as a number.
88
+ */
89
+ static parseGridTemplate(gridTemplate: string): number;
90
+ /**
91
+ * Creates a CSS grid template string of the format "repeat(N, 1fr)"
92
+ * based on the provided repetition count.
93
+ *
94
+ * @param repetitionCount - The number of repetitions.
95
+ * @returns The CSS grid template string, e.g., "repeat(5, 1fr)".
96
+ */
97
+ static createGridTemplate(repetitionCount: number): string;
83
98
  }
@@ -33,3 +33,8 @@ export declare const AXP_default_Border_Box_Value: AXPBorderBox<string | number>
33
33
  export declare const AXP_default_Border_Box_Units: AXPBorderBox<string>;
34
34
  export declare const AXP_default_Spacing_Box_Value: AXPSpacingBox<number>;
35
35
  export declare const AXP_default_Spacing_Box_Units: AXPSpacingBox<string>;
36
+ export type AXPBreakpoints = 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
37
+ export type AXPBreakpointValues<T> = {
38
+ [key in AXPBreakpoints]?: T;
39
+ };
40
+ export declare function findNonEmptyBreakpoints<T>(values: AXPBreakpointValues<T>): AXPBreakpoints[];
@@ -10,6 +10,7 @@ export declare class AXPWorkflowService {
10
10
  get events$(): Observable<AXPWorkflowEvent>;
11
11
  constructor(registryService: AXPWorkflowRegistryService, injector: Injector);
12
12
  execute(workflow: AXPWorkflow | string, initialContext?: AXPWorkflowContext | any | null): Promise<AXPWorkflowContext>;
13
+ private processData;
13
14
  private uuid;
14
15
  private getActionInstance;
15
16
  private getWorkflowInstance;
@@ -11,7 +11,7 @@ export declare class AXPWorkflowContext {
11
11
  private stepOutputs;
12
12
  setVariable(key: string, value: any): void;
13
13
  setVariables(context?: any): void;
14
- getVariable<T = any>(key: string): T;
14
+ getVariable<T = any>(key?: string | null): T;
15
15
  setOutput(key: string, output: any): void;
16
16
  setOutputs(values: Map<string, any>): void;
17
17
  getOutput<T = any>(key: string): T;
@@ -1,10 +0,0 @@
1
- import { AXPSearchProvider, AXPSearchResult } from '../search';
2
- import { AXPSettingDefinitionProviderService } from './setting-definition.provider';
3
- import { AXPSettingDefinition, AXPSettingDefinitionGroup } from './settings.types';
4
- export interface AXPSettingDefinitionSearch extends AXPSettingDefinition {
5
- group: AXPSettingDefinitionGroup;
6
- }
7
- export declare class AXPSettingSearchProvider implements AXPSearchProvider {
8
- settingService: AXPSettingDefinitionProviderService;
9
- search(text: string): Promise<AXPSearchResult[]>;
10
- }
@@ -1,13 +0,0 @@
1
- import { Router } from '@angular/router';
2
- import { Actions } from '@ngrx/effects';
3
- import { AXPSettingValueProviderService } from '../settings';
4
- import * as i0 from "@angular/core";
5
- export declare class AXPCommonEffects {
6
- private actions$;
7
- private router;
8
- private settingService;
9
- constructor(actions$: Actions, router: Router, settingService: AXPSettingValueProviderService);
10
- command$: import("rxjs").Observable<never> & import("@ngrx/effects").CreateEffectMetadata;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommonEffects, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommonEffects>;
13
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-BUL6ti4U.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.html"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPFilterDefinition, AXPFilterQuery } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPFiltersViewModel } from '@acorex/platform/layout/filters';\nimport { CdkDrag, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Injector,\n input,\n InputSignal,\n model,\n ModelSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-simple-filters-view',\n templateUrl: 'filters-view.component.html',\n providers: [AXPLayoutBuilderService],\n imports: [\n FormsModule,\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXPLayoutBuilderModule,\n AXImageModule,\n AXLabelModule,\n AXBadgeModule,\n AXSelectionListModule,\n AXPopoverModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPSimpleFiltersViewComponent {\n protected vm = inject(AXPFiltersViewModel);\n protected injector = inject(Injector);\n\n availAbleFilters: InputSignal<AXPFilterDefinition[]> = input.required();\n\n filters: ModelSignal<AXPFilterQuery> = model.required();\n\n ngAfterViewInit(): void {\n this.vm.setAvailableFilters(this.availAbleFilters());\n this.vm.setFiltersModel(this.filters);\n this.vm.initializeFilters();\n }\n}\n","<div\n class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\"\n [class.ax-h-[calc(100vh-310px)]]=\"!vm.activeFiltersCount()\"\n>\n @if(!vm.activeFiltersCount()){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'filter.emptyTitle' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{\n 'filter.emptyDescription' | translate | async\n }}</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-max-h-[calc(100vh-310px)] ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"vm.drop($event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of vm.activeFilters(); track $index ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ item.title | translate | async }}</ax-label>\n <!-- @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n } -->\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"vm.context.set($event.data)\">\n <ng-container axp-widget-renderer [node]=\"item.widget\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"vm.removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(vm.activeFiltersCount()){\n <ax-button\n color=\"primary\"\n [text]=\"'filter.addField' | translate | async\"\n look=\"blank\"\n class=\"ax-sm ax-mx-2\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n color=\"primary\"\n [text]=\"'filter.addField' | translate | async\"\n look=\"outline\"\n class=\"ax-md ax-mx-2 ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n <ax-popover\n #fieldsPopover\n [target]=\"addField\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"vm.resetFilterFields()\"\n [offsetX]=\"15\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">{{ 'filter.fields' | translate | async }}</ax-title>\n </div>\n <div class=\"ax-max-h-72 2xl:ax-max-h-80 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'field'\"\n [textField]=\"'title'\"\n [value]=\"vm.newFilters()\"\n (onValueChanged)=\"vm.onChoosingFiltersChange($event)\"\n [direction]=\"'vertical'\"\n [items]=\"vm.availableFilters()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"vm.onChoosingFiltersConfirm(); fieldsPopover.close()\"\n class=\"ax-sm\"\n [text]=\"'confirm' | translate | async\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n</div>\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 { AXPSettingValueProviderService } 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(AXPSettingValueProviderService);\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 protected handleClose() {\n this.onClosed.emit();\n }\n protected handleResetClick() {\n this.vm.resetColumns();\n }\n\n protected handleApplyClick() {\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">{{ 'entity.columns' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-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<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button [text]=\"'apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button [text]=\"'reset' | translate | async\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'axp-list-view-option-filters',\n templateUrl: './list-view-option-filters.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule, AXDropdownButtonModule],\n})\nexport class AXPListViewOptionFiltersComponent {\n constructor() {}\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n protected handleClose() {\n this.onClosed.emit();\n }\n\n protected handleResetClick() {\n this.vm.resetFilters();\n }\n\n protected handleDiscardClick() {\n this.vm.discardFilters();\n }\n\n protected handleApplyClick() {\n this.vm.applyFilterAndSort();\n\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">{{ 'filter.title' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-px-4 ax-py-2\">\n <ng-content></ng-content>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button [text]=\"'filter.apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-dropdown-button\n color=\"ghost\"\n [text]=\"('filter.discard' | translate | async) || 'discard'\"\n (onClick)=\"handleDiscardClick()\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('filter.reset' | translate | async) || 'reset'\"\n look=\"solid\"\n (onClick)=\"handleResetClick()\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n</ax-footer>\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 protected handleClose() {\n this.onClosed.emit();\n }\n protected handleResetClick() {\n this.vm.resetSorts();\n }\n\n protected handleApplyClick() {\n this.vm.applySorts();\n this.onClosed.emit();\n }\n}\n","<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">{{ 'entity.sort' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-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-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button [text]=\"'apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button [text]=\"'reset' | translate | async\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXDataTableRowDbClick,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDrawerComponent, AXDrawerModule } from '@acorex/components/drawer';\nimport { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule, translateSync } from '@acorex/core/translation';\nimport { AXPAuthModule } from '@acorex/platform/auth';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXPSimpleFiltersViewComponent } from '../../filters-layout/simple-filter-builder/filters-view.component';\nimport { AXPListViewOptionsColumnsComponent } from './list-view-option-columns/list-view-option-columns.component';\nimport { AXPListViewOptionFiltersComponent } from './list-view-option-filters/list-view-option-filters.component';\nimport { AXPListViewOptionSortingComponent } from './list-view-option-sorting/list-view-option-sorting.component';\n\n@Component({\n templateUrl: 'entity-master-list-view.component.html',\n styleUrls: ['entity-master-list-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXBreadcrumbsModule,\n AXSearchBoxModule,\n AXDataTableModule,\n AXTranslationModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPStickyDirective,\n AXPAuthModule,\n //\n AXPListViewOptionsColumnsComponent,\n AXPListViewOptionSortingComponent,\n AXPSimpleFiltersViewComponent,\n AXPListViewOptionFiltersComponent,\n ],\n})\nexport class AXPEntityMasterListViewComponent {\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\n @ViewChild('grid', { static: true }) grid: AXDataTableComponent;\n\n constructor(protected platform: AXPlatform) {\n effect(() => {\n this.grid.selectedRows = this.vm.selectedItems();\n });\n //\n this.vm.events$.subscribe((e) => {\n if (e.action == 'refresh') {\n this.grid.refresh();\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 dropdownRowItems = computed<AXRowCommandItem[]>(() => {\n return this.vm.secondaryRowActions().map(\n (c) =>\n ({\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n } as AXRowCommandItem)\n );\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 } as AXRowCommandItem;\n });\n });\n\n protected handleRowDbClick(e: AXDataTableRowDbClick) {\n //TODO: find a way for default action\n const item = [...this.commandRowItems(), ...this.dropdownRowItems()][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());\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 toggleSearchBar() {\n this.searchBarShown.set(!this.searchBarShown());\n }\n\n ngOnDestroy(): void {\n this.vm.destroy();\n }\n}\n","<ax-drawer-container>\n <ax-content class=\"ax-flex ax-flex-col ax-overflow-hidden\" #content>\n <div\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\">\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\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 -ax-mx-6 ax-shadow-xl'\" [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Toolbar -------->\n <!-------- Begin Line 1 -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ vm.title() | translate | async }}</div>\n @if(vm.description() ) {\n <div class=\"ax-text-sm ax-text-neutral-600\" [class.ax-hidden]=\"sticky.isSticky\">\n {{ vm.description()! | translate | async }}\n </div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\"\n [class.ax-hidden]=\"store.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"b.url\">\n @if(b.icon) {\n <i [class]=\"b.icon\"></i>\n }\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"tr.title | translate | async\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index;let first=$first) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item [color]=\"tr.color\" [text]=\"(tr.title | translate | async)!\"\n (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Finish Action Menu -->\n </div>\n\n <!-------- Finish Line 1 -------->\n\n <!-------- Begin Line 2 -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <!-------- Begin Selection -------->\n\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\">{{\n 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span>\n </div>\n\n <!-------- Finish Selection -------->\n\n } @else {\n\n <!-------- Begin View -------->\n\n <ax-button [text]=\"vm.view().title | translate | async\" #views color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-eye\"></i>\n </ax-prefix>\n <ax-suffix>\n <i class=\"fa-solid fa-caret-down\"></i>\n </ax-suffix>\n <ax-dropdown-panel [adaptivityEnabled]=\"true\">\n <ax-button-item-list class=\"ax-p-2\">\n <ax-title class=\"ax-font-bold ax-opacity-100\">{{\n 'entity.public-view' | translate | async\n }}</ax-title>\n <ax-button-item *ngFor=\"let v of vm.views()\" [text]=\"(v.title | translate | async)!\"\n [selected]=\"vm.view() == v\" (onClick)=\"vm.setView(v.name)\"></ax-button-item>\n <!-- <ax-title class=\"ax-font-bold ax-opacity-100\" *ngIf=\"hasCustomViews$ | async\">Created by me</ax-title>\n <ax-button-item class=\"ax-pe-4 ax-flex ax-justify-between\" *ngFor=\"let v of customViews$ | async\"\n [text]=\"v.title\" [class.ax-bg-on-surface]=\"(view$ | async) == v\" (onClick)=\"loader.setView(v.name)\">\n <ax-suffix>\n <ax-button (onClick)=\"updateViewPopup($event, v)\" class=\"ax-xs\" look=\"none\">\n <ax-icon class=\"far fa-edit\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-button-item> -->\n <!-- <ng-container *feature=\"'axp-entity-list-custom-view'\">\n <ax-divider></ax-divider>\n <ax-button-item text=\"Add Custom View\" (onClick)=\"addCustomViewPopup()\"\n class=\"ax-font-semibold ax-text-primary\"></ax-button-item>\n </ng-container> -->\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n <!-------- Finish View -------->\n\n <!-------- Begin Inline Search -------->\n @if(vm.hasInlineFilters() && !(this.platform.is('Mobile') || this.platform.is('SM'))) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\n </div>\n } }\n <!-------- Finish Inline Search -------->\n </div>\n <!-- Begin View Action Menu -->\n @if(!vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3\">\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-button (onClick)=\"toggleSearchBar()\" color=\"ghost\">\n <ax-icon class=\"fa-solid fa-search\"> </ax-icon> </ax-button>}\n\n <ax-button [text]=\"makeResponsive('entity.columns' | translate | async)\" color=\"ghost\"\n (onClick)=\"columnsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars\"></i>\n </ax-prefix>\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.visibleColumnCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n </ax-button>\n <ax-button text=\"Filters\" color=\"ghost\" (onClick)=\"filtersDrawer.open()\"\n *feature=\"'axp-entity-list-advance-filter'\">\n <ax-prefix>\n <i class=\"fa-solid fa-sliders\"></i>\n </ax-prefix>\n @if(vm.simpleFilters().filters?.length){\n <ax-suffix>\n <ax-badge [text]=\"vm.simpleFilters().filters?.length?.toString() || '0'\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n\n @if(vm.canSort()) {\n <ax-button [text]=\"makeResponsive('entity.sort' | translate | async)\" color=\"ghost\"\n (onClick)=\"sortsDrawer.open()\">\n <ax-prefix>\n <i class=\"fa-solid fa-bars-sort\"></i>\n </ax-prefix>\n @if(vm.sortedCount()) {\n <ax-suffix>\n <ax-badge [text]=\"makeResponsive(vm.sortedCount().toString())\" color=\"primary\"></ax-badge>\n </ax-suffix>\n }\n </ax-button>\n }\n </div>\n }\n <!-- Finish View Action Menu -->\n </div>\n <div>\n @if(vm.hasInlineFilters() && (this.platform.is('Mobile') || this.platform.is('SM'))) {\n <ax-search-box [class.collapsed-search-box]=\"searchBarShown()\" class=\"ax-transition-all\"\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"><ax-clear-button></ax-clear-button></ax-search-box>\n }\n </div>\n <!-------- Finish Line 2 -------->\n\n <!----- Finish Toolbar ----->\n </div>\n </div>\n <!----- Begin DataTable ----->\n <div class=\"ax-flex ax-flex-1 ax-px-6 ax-py-6 ax-pt-0 ax-overflow-auto\">\n <ax-data-table #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\" [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\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]=\"'50px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\" [node]=\"col.node()\"></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column fixed=\"end\" [width]=\"getCommandRowItems().length * 60 + 'px'\" [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n <!----- Finish DataTable ----->\n </ax-content>\n\n <ax-drawer #columnsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-columns [viewModel]=\"vm\" (onClosed)=\"columnsDrawer.close()\"></axp-list-view-option-columns>\n </ax-content>\n </ax-drawer>\n <ax-drawer #filtersDrawer location=\"end\" [mode]=\"'overlay'\"\n (collapsedChange)=\"closeFiltersDrawer(filtersDrawer, $event)\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[25vw] ax-border-e\">\n <axp-list-view-option-filters (onClosed)=\"closeFiltersDrawer(filtersDrawer, true)\" [viewModel]=\"vm\">\n <axp-simple-filters-view [availAbleFilters]=\"vm.filtersDef\"\n [(filters)]=\"vm.simpleFilters\"></axp-simple-filters-view>\n </axp-list-view-option-filters>\n </ax-content>\n </ax-drawer>\n <ax-drawer #sortsDrawer location=\"end\" [mode]=\"'overlay'\">\n <ax-content class=\"ax-w-[85vw] md:ax-w-[45vw] lg:ax-w-[35vw] 2xl:ax-w-[20vw] ax-border-e\">\n <axp-list-view-option-sorting (onClosed)=\"sortsDrawer.close()\" [viewModel]=\"vm\"></axp-list-view-option-sorting>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>"],"names":["i2","i3","i4","i5","i6","i1","i9","i10","i12","i13","i14"],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { AXChipsModule } from '@acorex/components/chips';
2
- import * as i4 from '@acorex/components/common';
3
- import { AXCommonModule } from '@acorex/components/common';
4
- import * as i5 from '@acorex/components/decorators';
5
- import { AXDecoratorModule } from '@acorex/components/decorators';
6
- import { AXBasePageComponent } from '@acorex/components/page';
7
- import * as i7 from '@acorex/components/search-box';
8
- import { AXSearchBoxModule } from '@acorex/components/search-box';
9
- import * as i7$1 from '@acorex/components/skeleton';
10
- import { AXSkeletonModule } from '@acorex/components/skeleton';
11
- import * as i6 from '@acorex/core/translation';
12
- import { AXTranslationModule } from '@acorex/core/translation';
13
- import { AXPGlobalSearchViewModel } from '@acorex/platform/layout/search';
14
- import { AXPThemeLayoutBlockComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent } from '@acorex/platform/themes/shared';
15
- import * as i1 from '@angular/common';
16
- import { CommonModule } from '@angular/common';
17
- import * as i0 from '@angular/core';
18
- import { inject, Component, ChangeDetectionStrategy } from '@angular/core';
19
- import * as i2 from '@angular/forms';
20
- import { FormsModule } from '@angular/forms';
21
-
22
- class AXPGlobalSearchPopupComponent extends AXBasePageComponent {
23
- constructor() {
24
- super(...arguments);
25
- this.vm = inject(AXPGlobalSearchViewModel);
26
- this.text = null;
27
- }
28
- async handleTextChanged(e) {
29
- if (e.isUserInteraction) {
30
- await this.vm.search(e.value);
31
- }
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPGlobalSearchPopupComponent, isStandalone: true, selector: "ng-component", providers: [AXPGlobalSearchViewModel], usesInheritance: true, ngImport: i0, template: "<axp-layout-content>\n\n <axp-layout-header-container>\n <ax-search-box [axAutoFocus] [look]=\"'blank'\" [ngModel]=\"vm.text()\" (onValueChanged)=\"handleTextChanged($event)\"\n [placeholder]=\"'Type anything to search...'\"></ax-search-box>\n <ax-close-button></ax-close-button>\n </axp-layout-header-container>\n\n <!-- Results Area -->\n <axp-layout-body>\n @if(vm.isBusy())\n {\n <ng-container *ngTemplateOutlet=\"skeleton\"></ng-container>\n }\n @else if(vm.isEmpty())\n {\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n }\n @else if(vm.isStart())\n {\n <ng-container *ngTemplateOutlet=\"start\"></ng-container>\n }\n @else {\n <ng-container *ngTemplateOutlet=\"result\"></ng-container>\n }\n </axp-layout-body>\n\n <!-- Skeleton Template -->\n <ng-template #skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-10 ax-p-8\">\n @for (item of [1,2,3,4,5]; track $index) {\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-4 ax-h-4 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-flex-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/4 ax-h-2 ax-rounded\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-2 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Empty Template -->\n <ng-template #empty>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold \">No Results Found</h2>\n <p class=\"ax-mt-2\">\n We couldn\u2019t find anything matching your search. Please refine your keywords or try different terms.\n </p>\n </div>\n </div>\n\n </ng-template>\n\n <!-- Start Template -->\n <ng-template #start>\n\n <div class=\"axp-search-recent\">\n <axp-layout-header-container>\n <axp-layout-title>Recent Searches</axp-layout-title>\n <axp-layout-actions></axp-layout-actions>\n </axp-layout-header-container>\n <axp-layout-body>\n @for (item of [1,2,3,4,5]; track $index) {\n <!-- Chip -->\n <div\n class=\"ax-inline-flex ax-items-center ax-bg-on-surface ax-text-on-surface-fore ax-rounded-full ax-px-3 ax-py-1 ax-text-xs ax-font-medium\">\n <span>Tailwind CSS</span>\n <button class=\"ax-ml-2 ax-text-gray-500 ax-hover:text-gray-700 ax-focus:outline-none\">\n <i class=\"fas fa-times ax-text-xs\"></i>\n </button>\n </div>\n }\n </axp-layout-body>\n </div>\n\n </ng-template>\n\n <!-- Result Template -->\n <ng-template #result>\n\n <axp-layout-list *translate=\"let t\" class=\"ax-p-4 ax-divide-none\">\n\n @for (group of vm.results(); track $index) {\n\n <axp-layout-list-group>\n <axp-layout-title> {{ t(group.title) | async}}</axp-layout-title>\n @for (item of group.children; track $index) {\n <axp-layout-list-item>\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}}\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content> {{ t(item.title) | async}}</axp-layout-content>\n\n <axp-layout-suffix>\n\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n\n\n\n }\n\n </axp-layout-list>\n\n\n </ng-template>\n\n</axp-layout-content>", styles: ["axp-layout-title{display:block;font-weight:600}axp-layout-description{color:rgba(var(--ax-color-text-default),.7);display:block;font-size:.875rem;line-height:1.25rem}axp-layout-side-container{display:block;height:100%;min-width:16rem;border-inline-end-width:1px}@media (min-width: 1536px){axp-layout-side-container{min-width:18rem}}axp-layout-side-container axp-layout-header-container{gap:.5rem!important;padding:1rem!important}axp-layout-side-container axp-layout-header-container axp-layout-title{font-size:1.25rem;line-height:1.75rem}axp-layout-side-container axp-layout-header-container axp-layout-toolbar{margin-top:.5rem;display:block;padding-left:0;padding-right:0}axp-layout-header-container{display:flex;flex-direction:column;gap:1rem}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-title-bar{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.75rem 1rem}@media (min-width: 1280px){axp-layout-title-bar{border-width:0px}}axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-layout-toolbar{display:flex;justify-content:space-between;padding-left:1rem;padding-right:1rem}axp-layout-toolbar ax-suffix,axp-layout-toolbar ax-prefix{display:flex;gap:.5rem}axp-layout-toolbar ax-suffix{margin-inline-start:auto;justify-self:end}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list-group{display:flex;flex-direction:column;padding:.5rem 1rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axp-layout-list-item:hover{cursor:pointer;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-50),var(--tw-bg-opacity, 1))}axp-layout-list-item:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-700),var(--tw-bg-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}:host axp-layout-content{display:flex;flex-direction:column;width:90vw;max-width:36rem}@media (min-width: 640px){:host axp-layout-content{width:80vw}}@media (min-width: 768px){:host axp-layout-content{width:60vw}}@media (min-width: 1024px){:host axp-layout-content{width:40vw}}@media (min-width: 1280px){:host axp-layout-content{width:30vw}}:host axp-layout-content>axp-layout-header-container{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}:host axp-layout-content>axp-layout-body{display:flex;flex-direction:column}:host axp-layout-content>axp-layout-body>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}:host axp-layout-content>axp-layout-body{overflow-y:auto;border-radius:.375rem;max-height:50vh;min-height:30vh}@media (min-width: 640px){:host axp-layout-content>axp-layout-body{max-height:60vh;min-height:40vh}}@media (min-width: 768px){:host axp-layout-content>axp-layout-body{max-height:70vh;min-height:50vh}}@media (min-width: 1024px){:host axp-layout-content>axp-layout-body{max-height:80vh;min-height:40vh}}:host axp-layout-content>axp-layout-body .axp-search-recent{display:flex;flex-direction:column;padding:1rem}:host axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-header-container{margin-bottom:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;font-weight:600}:host axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;border-radius:.375rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type:
35
- //
36
- AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i4.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type:
37
- //
38
- AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-header-container, axp-layout-footer-container, axp-layout-side-container, axp-layout-sections, axp-layout-section-container, axp-layout-body, axp-layout-suffix, axp-layout-prefix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-toolbar, axp-layout-title-bar, axp-layout-breadcrumbs " }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i7$1.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXChipsModule }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutListComponent, selector: "axp-layout-list" }, { kind: "component", type: AXPThemeLayoutListItemComponent, selector: "axp-layout-list-item" }, { kind: "component", type: AXPThemeLayoutListItemsGroupComponent, selector: "axp-layout-list-group" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchPopupComponent, decorators: [{
41
- type: Component,
42
- args: [{ imports: [
43
- CommonModule,
44
- FormsModule,
45
- //
46
- AXSearchBoxModule,
47
- AXCommonModule,
48
- AXDecoratorModule,
49
- AXTranslationModule,
50
- //
51
- AXPThemeLayoutBlockComponent,
52
- AXSkeletonModule,
53
- AXChipsModule,
54
- AXPThemeLayoutActionsComponent,
55
- AXPThemeLayoutListComponent,
56
- AXPThemeLayoutListItemComponent,
57
- AXPThemeLayoutListItemsGroupComponent,
58
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPGlobalSearchViewModel], template: "<axp-layout-content>\n\n <axp-layout-header-container>\n <ax-search-box [axAutoFocus] [look]=\"'blank'\" [ngModel]=\"vm.text()\" (onValueChanged)=\"handleTextChanged($event)\"\n [placeholder]=\"'Type anything to search...'\"></ax-search-box>\n <ax-close-button></ax-close-button>\n </axp-layout-header-container>\n\n <!-- Results Area -->\n <axp-layout-body>\n @if(vm.isBusy())\n {\n <ng-container *ngTemplateOutlet=\"skeleton\"></ng-container>\n }\n @else if(vm.isEmpty())\n {\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n }\n @else if(vm.isStart())\n {\n <ng-container *ngTemplateOutlet=\"start\"></ng-container>\n }\n @else {\n <ng-container *ngTemplateOutlet=\"result\"></ng-container>\n }\n </axp-layout-body>\n\n <!-- Skeleton Template -->\n <ng-template #skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-10 ax-p-8\">\n @for (item of [1,2,3,4,5]; track $index) {\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-4 ax-h-4 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-flex-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/4 ax-h-2 ax-rounded\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-2 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Empty Template -->\n <ng-template #empty>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold \">No Results Found</h2>\n <p class=\"ax-mt-2\">\n We couldn\u2019t find anything matching your search. Please refine your keywords or try different terms.\n </p>\n </div>\n </div>\n\n </ng-template>\n\n <!-- Start Template -->\n <ng-template #start>\n\n <div class=\"axp-search-recent\">\n <axp-layout-header-container>\n <axp-layout-title>Recent Searches</axp-layout-title>\n <axp-layout-actions></axp-layout-actions>\n </axp-layout-header-container>\n <axp-layout-body>\n @for (item of [1,2,3,4,5]; track $index) {\n <!-- Chip -->\n <div\n class=\"ax-inline-flex ax-items-center ax-bg-on-surface ax-text-on-surface-fore ax-rounded-full ax-px-3 ax-py-1 ax-text-xs ax-font-medium\">\n <span>Tailwind CSS</span>\n <button class=\"ax-ml-2 ax-text-gray-500 ax-hover:text-gray-700 ax-focus:outline-none\">\n <i class=\"fas fa-times ax-text-xs\"></i>\n </button>\n </div>\n }\n </axp-layout-body>\n </div>\n\n </ng-template>\n\n <!-- Result Template -->\n <ng-template #result>\n\n <axp-layout-list *translate=\"let t\" class=\"ax-p-4 ax-divide-none\">\n\n @for (group of vm.results(); track $index) {\n\n <axp-layout-list-group>\n <axp-layout-title> {{ t(group.title) | async}}</axp-layout-title>\n @for (item of group.children; track $index) {\n <axp-layout-list-item>\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}}\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content> {{ t(item.title) | async}}</axp-layout-content>\n\n <axp-layout-suffix>\n\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n\n\n\n }\n\n </axp-layout-list>\n\n\n </ng-template>\n\n</axp-layout-content>", styles: ["axp-layout-title{display:block;font-weight:600}axp-layout-description{color:rgba(var(--ax-color-text-default),.7);display:block;font-size:.875rem;line-height:1.25rem}axp-layout-side-container{display:block;height:100%;min-width:16rem;border-inline-end-width:1px}@media (min-width: 1536px){axp-layout-side-container{min-width:18rem}}axp-layout-side-container axp-layout-header-container{gap:.5rem!important;padding:1rem!important}axp-layout-side-container axp-layout-header-container axp-layout-title{font-size:1.25rem;line-height:1.75rem}axp-layout-side-container axp-layout-header-container axp-layout-toolbar{margin-top:.5rem;display:block;padding-left:0;padding-right:0}axp-layout-header-container{display:flex;flex-direction:column;gap:1rem}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-title-bar{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.75rem 1rem}@media (min-width: 1280px){axp-layout-title-bar{border-width:0px}}axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-layout-toolbar{display:flex;justify-content:space-between;padding-left:1rem;padding-right:1rem}axp-layout-toolbar ax-suffix,axp-layout-toolbar ax-prefix{display:flex;gap:.5rem}axp-layout-toolbar ax-suffix{margin-inline-start:auto;justify-self:end}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list-group{display:flex;flex-direction:column;padding:.5rem 1rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}axp-layout-list-item:hover{cursor:pointer;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-50),var(--tw-bg-opacity, 1))}axp-layout-list-item:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-primary-700),var(--tw-bg-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}:host axp-layout-content{display:flex;flex-direction:column;width:90vw;max-width:36rem}@media (min-width: 640px){:host axp-layout-content{width:80vw}}@media (min-width: 768px){:host axp-layout-content{width:60vw}}@media (min-width: 1024px){:host axp-layout-content{width:40vw}}@media (min-width: 1280px){:host axp-layout-content{width:30vw}}:host axp-layout-content>axp-layout-header-container{display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-bottom-width:1px;padding:1rem}:host axp-layout-content>axp-layout-body{display:flex;flex-direction:column}:host axp-layout-content>axp-layout-body>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}:host axp-layout-content>axp-layout-body{overflow-y:auto;border-radius:.375rem;max-height:50vh;min-height:30vh}@media (min-width: 640px){:host axp-layout-content>axp-layout-body{max-height:60vh;min-height:40vh}}@media (min-width: 768px){:host axp-layout-content>axp-layout-body{max-height:70vh;min-height:50vh}}@media (min-width: 1024px){:host axp-layout-content>axp-layout-body{max-height:80vh;min-height:40vh}}:host axp-layout-content>axp-layout-body .axp-search-recent{display:flex;flex-direction:column;padding:1rem}:host axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-header-container{margin-bottom:.5rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;font-weight:600}:host axp-layout-content>axp-layout-body .axp-search-recent>axp-layout-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;border-radius:.375rem}\n"] }]
59
- }] });
60
-
61
- export { AXPGlobalSearchPopupComponent };
62
- //# sourceMappingURL=acorex-platform-themes-default-search-popup.component-Blpan821.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-search-popup.component-Blpan821.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/search-layout/search-popup.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/search-layout/search-popup.component.html"],"sourcesContent":["import { AXChipsModule } from '@acorex/components/chips';\nimport { AXCommonModule, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGlobalSearchViewModel } from '@acorex/platform/layout/search';\nimport {\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPThemeLayoutListItemsGroupComponent,\n} from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n templateUrl: 'search-popup.component.html',\n styleUrl: 'search-popup.component.scss',\n imports: [\n CommonModule,\n FormsModule,\n //\n AXSearchBoxModule,\n AXCommonModule,\n AXDecoratorModule,\n AXTranslationModule,\n //\n AXPThemeLayoutBlockComponent,\n AXSkeletonModule,\n AXChipsModule,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPThemeLayoutListItemsGroupComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXPGlobalSearchViewModel],\n})\nexport class AXPGlobalSearchPopupComponent extends AXBasePageComponent {\n protected vm = inject(AXPGlobalSearchViewModel);\n\n protected text: string | null = null;\n\n async handleTextChanged(e: AXValueChangedEvent<string>) {\n if (e.isUserInteraction) {\n await this.vm.search(e.value!);\n }\n }\n}\n","<axp-layout-content>\n\n <axp-layout-header-container>\n <ax-search-box [axAutoFocus] [look]=\"'blank'\" [ngModel]=\"vm.text()\" (onValueChanged)=\"handleTextChanged($event)\"\n [placeholder]=\"'Type anything to search...'\"></ax-search-box>\n <ax-close-button></ax-close-button>\n </axp-layout-header-container>\n\n <!-- Results Area -->\n <axp-layout-body>\n @if(vm.isBusy())\n {\n <ng-container *ngTemplateOutlet=\"skeleton\"></ng-container>\n }\n @else if(vm.isEmpty())\n {\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n }\n @else if(vm.isStart())\n {\n <ng-container *ngTemplateOutlet=\"start\"></ng-container>\n }\n @else {\n <ng-container *ngTemplateOutlet=\"result\"></ng-container>\n }\n </axp-layout-body>\n\n <!-- Skeleton Template -->\n <ng-template #skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-10 ax-p-8\">\n @for (item of [1,2,3,4,5]; track $index) {\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-4 ax-h-4 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-flex-1\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/4 ax-h-2 ax-rounded\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-2 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n </ng-template>\n\n <!-- Empty Template -->\n <ng-template #empty>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-rounded-md ax-p-8\">\n <!-- Icon -->\n <div class=\"ax-mb-4\">\n <i class=\"fas fa-search ax-text-gray-400 ax-text-4xl\"></i>\n </div>\n <!-- Message -->\n <div class=\"ax-text-center\">\n <h2 class=\"ax-text-lg ax-font-semibold \">No Results Found</h2>\n <p class=\"ax-mt-2\">\n We couldn’t find anything matching your search. Please refine your keywords or try different terms.\n </p>\n </div>\n </div>\n\n </ng-template>\n\n <!-- Start Template -->\n <ng-template #start>\n\n <div class=\"axp-search-recent\">\n <axp-layout-header-container>\n <axp-layout-title>Recent Searches</axp-layout-title>\n <axp-layout-actions></axp-layout-actions>\n </axp-layout-header-container>\n <axp-layout-body>\n @for (item of [1,2,3,4,5]; track $index) {\n <!-- Chip -->\n <div\n class=\"ax-inline-flex ax-items-center ax-bg-on-surface ax-text-on-surface-fore ax-rounded-full ax-px-3 ax-py-1 ax-text-xs ax-font-medium\">\n <span>Tailwind CSS</span>\n <button class=\"ax-ml-2 ax-text-gray-500 ax-hover:text-gray-700 ax-focus:outline-none\">\n <i class=\"fas fa-times ax-text-xs\"></i>\n </button>\n </div>\n }\n </axp-layout-body>\n </div>\n\n </ng-template>\n\n <!-- Result Template -->\n <ng-template #result>\n\n <axp-layout-list *translate=\"let t\" class=\"ax-p-4 ax-divide-none\">\n\n @for (group of vm.results(); track $index) {\n\n <axp-layout-list-group>\n <axp-layout-title> {{ t(group.title) | async}}</axp-layout-title>\n @for (item of group.children; track $index) {\n <axp-layout-list-item>\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}}\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content> {{ t(item.title) | async}}</axp-layout-content>\n\n <axp-layout-suffix>\n\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n\n\n\n }\n\n </axp-layout-list>\n\n\n </ng-template>\n\n</axp-layout-content>"],"names":["i3","i7"],"mappings":"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"}