@acorex/platform 19.1.7 → 19.1.8

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 (45) hide show
  1. package/common/lib/common.module.d.ts +6 -7
  2. package/common/lib/layout/menu/menu.types.d.ts +2 -2
  3. package/common/lib/layout/menu/search.provider.d.ts +2 -2
  4. package/common/lib/search/search.provider.d.ts +4 -0
  5. package/common/lib/store/common.actions.d.ts +0 -12
  6. package/common/lib/store/index.d.ts +0 -1
  7. package/common/lib/workflows/index.d.ts +1 -0
  8. package/common/lib/workflows/navigate.workflow.d.ts +9 -0
  9. package/core/lib/types.d.ts +19 -0
  10. package/fesm2022/acorex-platform-common.mjs +805 -793
  11. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-builder.mjs +1 -0
  14. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-entity.mjs +93 -6
  16. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-search.mjs +18 -5
  18. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs +84 -0
  20. package/fesm2022/acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-themes-default.mjs +5 -5
  22. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-widgets.mjs +308 -33
  24. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  25. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  26. package/layout/entity/lib/entity-registery.service.d.ts +16 -0
  27. package/layout/entity/lib/entity.config.d.ts +2 -2
  28. package/layout/entity/lib/entity.module.d.ts +3 -0
  29. package/layout/entity/lib/search-definition.provider.d.ts +6 -0
  30. package/layout/entity/lib/search.provider.d.ts +4 -0
  31. package/layout/search/lib/search.viewmodel.d.ts +5 -1
  32. package/layout/search/lib/workflows/search.workflow.d.ts +2 -1
  33. package/package.json +13 -13
  34. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +3 -1
  35. package/widgets/lib/properties/layout.props.d.ts +1 -0
  36. package/widgets/lib/widgets/index.d.ts +1 -0
  37. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +3 -1
  38. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +39 -0
  39. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.config.d.ts +7 -0
  40. package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +19 -0
  41. package/widgets/lib/widgets/property-editors/grid-options/index.d.ts +3 -0
  42. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +15 -0
  43. package/common/lib/store/common.effects.d.ts +0 -13
  44. package/fesm2022/acorex-platform-themes-default-search-popup.component-Blpan821.mjs +0 -62
  45. package/fesm2022/acorex-platform-themes-default-search-popup.component-Blpan821.mjs.map +0 -1
@@ -44,5 +44,6 @@ export interface AXPWidgetTypesMap {
44
44
  booleanFilter: 'boolean-filter';
45
45
  lookupFilter: 'lookup-filter';
46
46
  flexOptions: 'flex-options';
47
+ gridOptions: 'grid-options';
47
48
  selectFilter: 'select-filter';
48
49
  }
@@ -1,6 +1,16 @@
1
1
  import { AXPEntity } from '@acorex/platform/common';
2
2
  import * as i0 from "@angular/core";
3
+ export interface AXPEntityPreloadEntity {
4
+ module: string;
5
+ entity: string;
6
+ }
7
+ export interface AXPEntityDefinitionPreloader {
8
+ preload(): AXPEntityPreloadEntity[];
9
+ }
3
10
  export declare class AXPEntityDefinitionRegistryService {
11
+ private providers;
12
+ private resolver;
13
+ preload(): Promise<void>;
4
14
  private entities;
5
15
  private entityResolver;
6
16
  /**
@@ -10,6 +20,12 @@ export declare class AXPEntityDefinitionRegistryService {
10
20
  * @param config The configuration object of the entity to be registered.
11
21
  */
12
22
  register(config: AXPEntity): void;
23
+ /**
24
+ * Returns an array of all registered entity configurations.
25
+ *
26
+ * @returns An array of AXPEntity objects.
27
+ */
28
+ getAll(): AXPEntity[];
13
29
  /**
14
30
  * Resolves an entity configuration based on module and entity name. If the configuration
15
31
  * is not already registered, attempts to load it dynamically. Throws an error if the
@@ -1,5 +1,5 @@
1
- import { AXPEntity } from "@acorex/platform/common";
2
- import { InjectionToken, Type } from "@angular/core";
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { InjectionToken, Type } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export interface AXPEntityConfigs {
5
5
  viewers: {
@@ -1,8 +1,11 @@
1
+ import { AXPAppStartUpService } from '@acorex/platform/common';
2
+ import { Injector } from '@angular/core';
1
3
  import * as i0 from "@angular/core";
2
4
  import * as i1 from "@angular/router";
3
5
  import * as i2 from "@acorex/platform/workflow";
4
6
  import * as i3 from "@acorex/platform/layout/builder";
5
7
  export declare class AXPEntityModule {
8
+ constructor(appInitService: AXPAppStartUpService, injector: Injector);
6
9
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPEntityModule, never>;
7
10
  static ɵmod: i0.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof i2.AXPWorkflowModule, typeof i3.AXPLayoutBuilderModule], never>;
8
11
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPEntityModule>;
@@ -0,0 +1,6 @@
1
+ import { AXPSearchDefinitionProvider, AXPSearchDefinitionProviderContext } from '@acorex/platform/common';
2
+ import { AXPEntityDefinitionRegistryService } from './entity-registery.service';
3
+ export declare class AXPEntitySearchDefinitionProvider implements AXPSearchDefinitionProvider {
4
+ entityRegister: AXPEntityDefinitionRegistryService;
5
+ provide(context: AXPSearchDefinitionProviderContext): Promise<void>;
6
+ }
@@ -0,0 +1,4 @@
1
+ import { AXPSearchDefinitionProvider } from '@acorex/platform/common';
2
+ export declare class AXPEntityCommandSearchDefinitionProvider implements AXPSearchDefinitionProvider {
3
+ provide(context: any): Promise<void>;
4
+ }
@@ -1,4 +1,5 @@
1
- import { AXPSearchDisplayGroupResult } from "@acorex/platform/common";
1
+ import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult } from "@acorex/platform/common";
2
+ import { Subject } from "rxjs";
2
3
  export declare class AXPGlobalSearchViewModel {
3
4
  private searchService;
4
5
  private _text;
@@ -8,6 +9,9 @@ export declare class AXPGlobalSearchViewModel {
8
9
  private _isBusy;
9
10
  isBusy: import("@angular/core").Signal<boolean>;
10
11
  isEmpty: import("@angular/core").Signal<boolean | "" | null>;
12
+ isValid: import("@angular/core").Signal<boolean>;
11
13
  isStart: import("@angular/core").Signal<boolean>;
14
+ readonly onItemClick: Subject<AXPSearchDisplayResult>;
12
15
  search(text: string): Promise<void>;
16
+ execute(item: AXPSearchDisplayResult): Promise<void>;
13
17
  }
@@ -1,7 +1,8 @@
1
- import { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from "@acorex/platform/workflow";
1
+ import { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class AXPGlobalSearchStartAction extends AXPWorkflowAction {
4
4
  private popupService;
5
+ private workflow;
5
6
  private config;
6
7
  execute(context: AXPWorkflowContext): Promise<void>;
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchStartAction, never>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "19.1.7",
3
+ "version": "19.1.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=19.0.0",
6
6
  "@angular/core": ">=19.0.0",
@@ -41,10 +41,6 @@
41
41
  "types": "./auth/index.d.ts",
42
42
  "default": "./fesm2022/acorex-platform-auth.mjs"
43
43
  },
44
- "./native": {
45
- "types": "./native/index.d.ts",
46
- "default": "./fesm2022/acorex-platform-native.mjs"
47
- },
48
44
  "./common": {
49
45
  "types": "./common/index.d.ts",
50
46
  "default": "./fesm2022/acorex-platform-common.mjs"
@@ -53,6 +49,10 @@
53
49
  "types": "./core/index.d.ts",
54
50
  "default": "./fesm2022/acorex-platform-core.mjs"
55
51
  },
52
+ "./native": {
53
+ "types": "./native/index.d.ts",
54
+ "default": "./fesm2022/acorex-platform-native.mjs"
55
+ },
56
56
  "./widgets": {
57
57
  "types": "./widgets/index.d.ts",
58
58
  "default": "./fesm2022/acorex-platform-widgets.mjs"
@@ -65,26 +65,26 @@
65
65
  "types": "./layout/builder/index.d.ts",
66
66
  "default": "./fesm2022/acorex-platform-layout-builder.mjs"
67
67
  },
68
- "./layout/designer": {
69
- "types": "./layout/designer/index.d.ts",
70
- "default": "./fesm2022/acorex-platform-layout-designer.mjs"
71
- },
72
68
  "./layout/entity": {
73
69
  "types": "./layout/entity/index.d.ts",
74
70
  "default": "./fesm2022/acorex-platform-layout-entity.mjs"
75
71
  },
72
+ "./layout/designer": {
73
+ "types": "./layout/designer/index.d.ts",
74
+ "default": "./fesm2022/acorex-platform-layout-designer.mjs"
75
+ },
76
76
  "./layout/filters": {
77
77
  "types": "./layout/filters/index.d.ts",
78
78
  "default": "./fesm2022/acorex-platform-layout-filters.mjs"
79
79
  },
80
- "./layout/search": {
81
- "types": "./layout/search/index.d.ts",
82
- "default": "./fesm2022/acorex-platform-layout-search.mjs"
83
- },
84
80
  "./layout/setting": {
85
81
  "types": "./layout/setting/index.d.ts",
86
82
  "default": "./fesm2022/acorex-platform-layout-setting.mjs"
87
83
  },
84
+ "./layout/search": {
85
+ "types": "./layout/search/index.d.ts",
86
+ "default": "./fesm2022/acorex-platform-layout-search.mjs"
87
+ },
88
88
  "./themes/default": {
89
89
  "types": "./themes/default/index.d.ts",
90
90
  "default": "./fesm2022/acorex-platform-themes-default.mjs"
@@ -1,4 +1,4 @@
1
- import { AXValueChangedEvent } from '@acorex/components/common';
1
+ import { AXHtmlEvent, AXValueChangedEvent } from '@acorex/components/common';
2
2
  import { AXBasePageComponent } from '@acorex/components/page';
3
3
  import { AXPGlobalSearchViewModel } from '@acorex/platform/layout/search';
4
4
  import * as i0 from "@angular/core";
@@ -6,6 +6,8 @@ export declare class AXPGlobalSearchPopupComponent extends AXBasePageComponent {
6
6
  protected vm: AXPGlobalSearchViewModel;
7
7
  protected text: string | null;
8
8
  handleTextChanged(e: AXValueChangedEvent<string>): Promise<void>;
9
+ protected ngOnInit(): void;
10
+ protected handleSearchKeyDown(e: AXHtmlEvent<KeyboardEvent>): void;
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchPopupComponent, never>;
10
12
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPGlobalSearchPopupComponent, "ng-component", never, {}, {}, never, never, true, never>;
11
13
  }
@@ -20,3 +20,4 @@ export declare const AXP_LAYOUT_FLEX_PROPERTIES: AXPWidgetProperty[];
20
20
  export declare const AXP_LAYOUT_SPACING_PROPERTY: AXPWidgetProperty;
21
21
  export declare const AXP_LAYOUT_BORDER_PROPERTY: AXPWidgetProperty;
22
22
  export declare const AXP_LAYOUT_FLEX_PROPERTY: AXPWidgetProperty;
23
+ export declare const AXP_LAYOUT_GRID_PROPERTY: AXPWidgetProperty;
@@ -23,6 +23,7 @@ export * from './layout/page';
23
23
  export * from './layout/repeater';
24
24
  export * from './property-editors/border';
25
25
  export * from './property-editors/flex-options';
26
+ export * from './property-editors/grid-options';
26
27
  export * from './property-editors/property-editor-helper';
27
28
  export * from './property-editors/property-editor.type';
28
29
  export * from './property-editors/spacing';
@@ -1,10 +1,12 @@
1
1
  import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { AXPGridBoxValues } from '../../property-editors/grid-options';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class AXPGridWidgetDesignerComponent extends AXPWidgetComponent<void> {
4
5
  private designerService;
6
+ protected data: import("@angular/core").Signal<AXPGridBoxValues>;
5
7
  protected cols: import("@angular/core").Signal<number>;
6
8
  protected rows: import("@angular/core").Signal<number>;
7
- protected gap: import("@angular/core").Signal<number>;
9
+ protected gap: import("@angular/core").Signal<string>;
8
10
  protected cells: import("@angular/core").Signal<number[]>;
9
11
  protected settled: import("@angular/core").Signal<number | false>;
10
12
  protected handleDrawerSelect(e: {
@@ -0,0 +1,39 @@
1
+ import { AXDataSource, AXValueChangedEvent } from '@acorex/components/common';
2
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
3
+ import { AXPGridBoxAlignmentOption, AXPGridBoxOption, AXPGridBoxValues } from './grid-options-widget.type';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AXPGridOptionsWidgetEditComponent extends AXPWidgetComponent<AXPGridBoxValues> {
6
+ #private;
7
+ private rendered;
8
+ protected gridSides: AXPGridBoxAlignmentOption[];
9
+ protected gridTemplateColumns: import("@angular/core").WritableSignal<number>;
10
+ protected gridTemplateRows: import("@angular/core").WritableSignal<number>;
11
+ protected gridDirection: import("@angular/core").WritableSignal<"row" | "column">;
12
+ protected gapMode: import("@angular/core").WritableSignal<"single" | "both">;
13
+ protected gapUnit: import("@angular/core").WritableSignal<Record<"x" | "y" | "both", string>>;
14
+ protected gap: import("@angular/core").WritableSignal<Record<"x" | "y" | "both", number>>;
15
+ protected lastGap: import("@angular/core").WritableSignal<number>;
16
+ protected selectedJustify: import("@angular/core").WritableSignal<AXPGridBoxOption>;
17
+ protected selectedAlign: import("@angular/core").WritableSignal<AXPGridBoxOption>;
18
+ protected hoveredAlign: import("@angular/core").WritableSignal<"center" | "stretch" | "baseline" | "start" | "end" | null>;
19
+ protected hoveredJustify: import("@angular/core").WritableSignal<"center" | "stretch" | "baseline" | "start" | "end" | null>;
20
+ protected clickedAlign: import("@angular/core").WritableSignal<"center" | "stretch" | "baseline" | "start" | "end">;
21
+ protected clickedJustify: import("@angular/core").WritableSignal<"center" | "stretch" | "baseline" | "start" | "end">;
22
+ protected setGridDirection(value: AXPGridBoxValues['gridAutoFlow']): void;
23
+ protected setRowOrColumn(value: number, type: 'column' | 'row'): void;
24
+ protected setGapMode(): void;
25
+ protected setGap(size: number | [number, number], side: 'both' | 'x' | 'y'): void;
26
+ protected onClick(data: AXPGridBoxAlignmentOption): void;
27
+ protected onHover(data: AXPGridBoxAlignmentOption): void;
28
+ protected onHoverLeave(): void;
29
+ protected onJustifyChange(event: AXValueChangedEvent<any>): void;
30
+ protected onAlignChange(event: AXValueChangedEvent<any>): void;
31
+ protected justifyDataSource: AXDataSource<AXPGridBoxOption>;
32
+ protected alignDataSource: AXDataSource<AXPGridBoxOption>;
33
+ private findAlignNameById;
34
+ private findJustifyNameById;
35
+ private saveValue;
36
+ initialValues(value: AXPGridBoxValues): void;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridOptionsWidgetEditComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridOptionsWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
39
+ }
@@ -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,19 @@
1
+ export interface AXPGridBoxValues {
2
+ gridTemplateColumns: string;
3
+ gridTemplateRows: string;
4
+ gap: string;
5
+ justifyItems: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
6
+ alignItems: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
7
+ gridAutoFlow: 'row' | 'column';
8
+ }
9
+ export interface AXPGridBoxOption {
10
+ value: string;
11
+ label: string;
12
+ }
13
+ export interface AXPGridBoxAlignmentOption extends AXPGridBoxOption {
14
+ justifyItems: AXPGridBoxValues['justifyItems'];
15
+ alignItems: AXPGridBoxValues['alignItems'];
16
+ }
17
+ export declare const AXP_Grid_Box_Alignments: AXPGridBoxAlignmentOption[];
18
+ export declare const AXP_Grid_Box_Align_Items_Options: AXPGridBoxOption[];
19
+ 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';
@@ -80,4 +80,19 @@ export declare class AXPPropertyEditorHelper {
80
80
  units: Record<'x' | 'y', string>;
81
81
  values: Record<'x' | 'y', number>;
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
  }
@@ -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,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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"}