@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
@@ -11,6 +11,7 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
11
11
  import { CommonModule } from '@angular/common';
12
12
  import { AXTranslationModule } from '@acorex/core/translation';
13
13
  import { AXPopupService } from '@acorex/components/popup';
14
+ import { Subject } from 'rxjs';
14
15
 
15
16
  const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');
16
17
 
@@ -60,19 +61,26 @@ class AXPGlobalSearchStartAction extends AXPWorkflowAction {
60
61
  constructor() {
61
62
  super(...arguments);
62
63
  this.popupService = inject(AXPopupService);
64
+ this.workflow = inject(AXPWorkflowService);
63
65
  this.config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);
64
66
  }
65
67
  async execute(context) {
66
68
  const component = await this.config.window();
67
- this.popupService.open(component, {
69
+ const result = await this.popupService.open(component, {
68
70
  title: 'Search...',
69
71
  size: 'fit',
70
72
  closeOnBackdropClick: true,
71
73
  data: {
72
- text: context.getVariable('text')
74
+ text: context.getVariable('text'),
73
75
  },
74
- header: false
76
+ header: false,
75
77
  });
78
+ if (result.data) {
79
+ console.log(result.data);
80
+ context.setOutput('item', result.data);
81
+ const command = result.data.data.command;
82
+ this.workflow.execute(command.name, command.options);
83
+ }
76
84
  }
77
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchStartAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
78
86
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchStartAction }); }
@@ -83,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
83
91
  const AXPGlobalSearchWorkflow = {
84
92
  startStepId: 'start',
85
93
  steps: {
86
- 'start': {
94
+ start: {
87
95
  action: 'AXPGlobalSearchStartAction',
88
96
  },
89
97
  },
@@ -152,13 +160,15 @@ class AXPGlobalSearchViewModel {
152
160
  this._isBusy = signal(false);
153
161
  this.isBusy = this._isBusy.asReadonly();
154
162
  this.isEmpty = computed(() => this.text() && this.results().length == 0);
163
+ this.isValid = computed(() => (this.text()?.length ?? 0) > 2);
155
164
  this.isStart = computed(() => !this.text() && this.results().length == 0);
165
+ this.onItemClick = new Subject();
156
166
  }
157
167
  async search(text) {
158
168
  this._isBusy.set(true);
159
169
  this._text.set(text);
160
170
  //
161
- if (!this.text()) {
171
+ if (!this.isValid()) {
162
172
  this._results.set([]);
163
173
  }
164
174
  else {
@@ -173,6 +183,9 @@ class AXPGlobalSearchViewModel {
173
183
  //
174
184
  this._isBusy.set(false);
175
185
  }
186
+ async execute(item) {
187
+ this.onItemClick.next(item);
188
+ }
176
189
  }
177
190
 
178
191
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-search.mjs","sources":["../../../../libs/platform/layout/search/src/lib/search.config.ts","../../../../libs/platform/layout/search/src/lib/search-slot.component.ts","../../../../libs/platform/layout/search/src/lib/workflows/search.workflow.ts","../../../../libs/platform/layout/search/src/lib/search.module.ts","../../../../libs/platform/layout/search/src/lib/search.viewmodel.ts","../../../../libs/platform/layout/search/src/acorex-platform-layout-search.ts"],"sourcesContent":["import { InjectionToken, Type } from \"@angular/core\";\n\nexport interface AXPGlobalSearchConfigs {\n window: () => Type<any>;\n}\n\nexport const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken<AXPGlobalSearchConfigs>('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\n\n@Component({\n template: `\n <ax-button look=\"blank\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule]\n})\nexport class AXPGlobalSearchSlotComponent {\n\n protected workflow = inject(AXPWorkflowService);\n\n protected async startSearch() {\n await this.workflow.execute('global-search')\n }\n\n @HostListener('document:keydown', ['$event'])\n private async handleKeyboardEvent(event: KeyboardEvent) {\n if (event.ctrlKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyK':\n event.preventDefault();\n event.stopPropagation();\n await this.startSearch();\n break;\n }\n }\n\n }\n}\n","import { AXPopupService } from \"@acorex/components/popup\";\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from \"@acorex/platform/workflow\";\nimport { inject, Injectable } from \"@angular/core\";\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from \"../search.config\";\n\n@Injectable()\nexport class AXPGlobalSearchStartAction extends AXPWorkflowAction {\n\n private popupService = inject(AXPopupService);\n private config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const component = await this.config.window();\n this.popupService.open(component, {\n title: 'Search...',\n size: 'fit',\n closeOnBackdropClick: true,\n data: {\n text: context.getVariable('text')\n },\n header: false\n });\n }\n}\n\nexport const AXPGlobalSearchWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n 'start': {\n action: 'AXPGlobalSearchStartAction',\n },\n },\n};","import { AXPAppStartUpService, AXPComponentSlotModule } from '@acorex/platform/common';\nimport { Injector, NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXPGlobalSearchSlotComponent } from './search-slot.component';\nimport { AXPGlobalSearchStartAction, AXPGlobalSearchWorkflow } from './workflows/search.workflow';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'header-end': [\n {\n priority: 0,\n name: 'search',\n component: AXPGlobalSearchSlotComponent,\n },\n ],\n }),\n //\n AXPWorkflowModule.forChild({\n actions: {\n AXPGlobalSearchStartAction\n },\n workflows: {\n 'global-search': AXPGlobalSearchWorkflow,\n },\n })\n ],\n exports: [],\n declarations: [],\n providers: []\n})\nexport class AXPGlobalSearchModule {\n constructor(\n appInitService: AXPAppStartUpService,\n injector: Injector\n ) {\n\n }\n}\n","import { AXPSearchDisplayGroupResult, AXPSearchService } from \"@acorex/platform/common\";\nimport { computed, inject, signal } from \"@angular/core\";\n\nexport class AXPGlobalSearchViewModel {\n\n private searchService = inject(AXPSearchService);\n\n private _text = signal<string | null>(null);\n public text = this._text.asReadonly();\n\n private _results = signal<AXPSearchDisplayGroupResult[]>([]);\n public results = this._results.asReadonly();\n\n private _isBusy = signal(false);\n public isBusy = this._isBusy.asReadonly();\n\n public isEmpty = computed(() => this.text() && this.results().length == 0);\n\n public isStart = computed(() => !this.text() && this.results().length == 0);\n\n public async search(text: string): Promise<void> {\n this._isBusy.set(true)\n this._text.set(text);\n //\n if (!this.text()) {\n this._results.set([]);\n }\n else {\n await new Promise((resolve) => {\n setTimeout(() => {\n resolve(0)\n }, 100);\n });\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n //\n this._isBusy.set(false)\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":";;;;;;;;;;;;;;MAMa,8BAA8B,GAAG,IAAI,cAAc,CAAyB,gCAAgC;;MCU5G,4BAA4B,CAAA;AATzC,IAAA,WAAA,GAAA;AAWY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAmBhD;AAjBW,IAAA,MAAM,WAAW,GAAA;QACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;;IAItC,MAAM,mBAAmB,CAAC,KAAoB,EAAA;AACpD,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AAClD,YAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,gBAAA,KAAK,MAAM;oBACT,KAAK,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,oBAAA,MAAM,IAAI,CAAC,WAAW,EAAE;oBACxB;;;;8GAhBG,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAR7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACS,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,+HAAE,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEnE,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;AAKT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB;AAC/E,iBAAA;8BAUe,mBAAmB,EAAA,CAAA;sBADhC,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;AClBxC,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;AADjE,IAAA,WAAA,GAAA;;AAGY,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAc1D;IAZY,MAAM,OAAO,CAAC,OAA2B,EAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;AACnC,aAAA;AACD,YAAA,MAAM,EAAE;AACX,SAAA,CAAC;;8GAfG,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;AAoBM,MAAM,uBAAuB,GAAgB;AAChD,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,4BAA4B;AACvC,SAAA;AACJ,KAAA;CACJ;;MCDY,qBAAqB,CAAA;IAChC,WACE,CAAA,cAAoC,EACpC,QAAkB,EAAA;;8GAHT,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAArB,qBAAqB,EAAA,OAAA,EAAA,CAAAA,IAAA,CAAA,sBAAA,EAAAC,IAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAvB9B,OAAA,EAAA,CAAA,sBAAsB,CAAC,QAAQ,CAAC;AAC9B,gBAAA,YAAY,EAAE;AACZ,oBAAA;AACE,wBAAA,QAAQ,EAAE,CAAC;AACX,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,4BAA4B;AACxC,qBAAA;AACF,iBAAA;aACF,CAAC;;YAEF,iBAAiB,CAAC,QAAQ,CAAC;AACzB,gBAAA,OAAO,EAAE;oBACP;AACD,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,eAAe,EAAE,uBAAuB;AACzC,iBAAA;aACF,CAAC,CAAA,EAAA,CAAA,CAAA;;2FAMO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAzBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,sBAAsB,CAAC,QAAQ,CAAC;AAC9B,4BAAA,YAAY,EAAE;AACZ,gCAAA;AACE,oCAAA,QAAQ,EAAE,CAAC;AACX,oCAAA,IAAI,EAAE,QAAQ;AACd,oCAAA,SAAS,EAAE,4BAA4B;AACxC,iCAAA;AACF,6BAAA;yBACF,CAAC;;wBAEF,iBAAiB,CAAC,QAAQ,CAAC;AACzB,4BAAA,OAAO,EAAE;gCACP;AACD,6BAAA;AACD,4BAAA,SAAS,EAAE;AACT,gCAAA,eAAe,EAAE,uBAAuB;AACzC,6BAAA;yBACF;AACF,qBAAA;AACD,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,SAAS,EAAE;AACZ,iBAAA;;;MC3BY,wBAAwB,CAAA;AAArC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAExC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,CAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgC,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAEnC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;QAElC,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;QAEnE,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;;IAEpE,MAAM,MAAM,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;;AAEpB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;;aAEpB;AACD,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBAC1B,UAAU,CAAC,MAAK;oBACZ,OAAO,CAAC,CAAC,CAAC;iBACb,EAAE,GAAG,CAAC;AACX,aAAC,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;;AAG9B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAG9B;;ACxCD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-platform-layout-search.mjs","sources":["../../../../libs/platform/layout/search/src/lib/search.config.ts","../../../../libs/platform/layout/search/src/lib/search-slot.component.ts","../../../../libs/platform/layout/search/src/lib/workflows/search.workflow.ts","../../../../libs/platform/layout/search/src/lib/search.module.ts","../../../../libs/platform/layout/search/src/lib/search.viewmodel.ts","../../../../libs/platform/layout/search/src/acorex-platform-layout-search.ts"],"sourcesContent":["import { InjectionToken, Type } from \"@angular/core\";\n\nexport interface AXPGlobalSearchConfigs {\n window: () => Type<any>;\n}\n\nexport const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken<AXPGlobalSearchConfigs>('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\n\n@Component({\n template: `\n <ax-button look=\"blank\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule]\n})\nexport class AXPGlobalSearchSlotComponent {\n\n protected workflow = inject(AXPWorkflowService);\n\n protected async startSearch() {\n await this.workflow.execute('global-search')\n }\n\n @HostListener('document:keydown', ['$event'])\n private async handleKeyboardEvent(event: KeyboardEvent) {\n if (event.ctrlKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyK':\n event.preventDefault();\n event.stopPropagation();\n await this.startSearch();\n break;\n }\n }\n\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from '../search.config';\n\n@Injectable()\nexport class AXPGlobalSearchStartAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private workflow = inject(AXPWorkflowService);\n private config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const component = await this.config.window();\n const result = await this.popupService.open(component, {\n title: 'Search...',\n size: 'fit',\n closeOnBackdropClick: true,\n data: {\n text: context.getVariable('text'),\n },\n header: false,\n });\n if (result.data) {\n console.log(result.data);\n context.setOutput('item', result.data);\n const command = result.data.data.command;\n this.workflow.execute(command.name, command.options);\n }\n }\n}\n\nexport const AXPGlobalSearchWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'AXPGlobalSearchStartAction',\n },\n },\n};\n","import { AXPAppStartUpService, AXPComponentSlotModule } from '@acorex/platform/common';\nimport { Injector, NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXPGlobalSearchSlotComponent } from './search-slot.component';\nimport { AXPGlobalSearchStartAction, AXPGlobalSearchWorkflow } from './workflows/search.workflow';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'header-end': [\n {\n priority: 0,\n name: 'search',\n component: AXPGlobalSearchSlotComponent,\n },\n ],\n }),\n //\n AXPWorkflowModule.forChild({\n actions: {\n AXPGlobalSearchStartAction\n },\n workflows: {\n 'global-search': AXPGlobalSearchWorkflow,\n },\n })\n ],\n exports: [],\n declarations: [],\n providers: []\n})\nexport class AXPGlobalSearchModule {\n constructor(\n appInitService: AXPAppStartUpService,\n injector: Injector\n ) {\n\n }\n}\n","import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchService } from \"@acorex/platform/common\";\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private searchService = inject(AXPSearchService);\n\n private _text = signal<string | null>(null);\n public text = this._text.asReadonly();\n\n private _results = signal<AXPSearchDisplayGroupResult[]>([]);\n public results = this._results.asReadonly();\n\n private _isBusy = signal(false);\n public isBusy = this._isBusy.asReadonly();\n\n public isEmpty = computed(() => this.text() && this.results().length == 0);\n\n public isValid = computed(() => (this.text()?.length ?? 0) > 2);\n\n public isStart = computed(() => !this.text() && this.results().length == 0);\n\n\n\n public readonly onItemClick = new Subject<AXPSearchDisplayResult>();\n\n public async search(text: string): Promise<void> {\n this._isBusy.set(true)\n this._text.set(text);\n //\n if (!this.isValid()) {\n this._results.set([]);\n }\n else {\n await new Promise((resolve) => {\n setTimeout(() => {\n resolve(0)\n }, 100);\n });\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n //\n this._isBusy.set(false)\n }\n\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemClick.next(item);\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -0,0 +1,84 @@
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 i8 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
+ import { first } from 'rxjs';
22
+ import * as i7$1 from '@acorex/cdk/list-navigation';
23
+ import { AXListNavigationModule } from '@acorex/cdk/list-navigation';
24
+
25
+ class AXPGlobalSearchPopupComponent extends AXBasePageComponent {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.vm = inject(AXPGlobalSearchViewModel);
29
+ this.text = null;
30
+ }
31
+ async handleTextChanged(e) {
32
+ if (e.isUserInteraction) {
33
+ await this.vm.search(e.value);
34
+ }
35
+ }
36
+ ngOnInit() {
37
+ super.ngOnInit();
38
+ //
39
+ this.vm.onItemClick.pipe(first()).subscribe(item => {
40
+ this.close(item);
41
+ });
42
+ }
43
+ handleSearchKeyDown(e) {
44
+ const event = e.nativeEvent;
45
+ if (event.ctrlKey && event.target == document.body) {
46
+ switch (event.code) {
47
+ case 'KeyDown':
48
+ event.preventDefault();
49
+ event.stopPropagation();
50
+ break;
51
+ }
52
+ }
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
55
+ 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...'\" (onKeyDown)=\"handleSearchKeyDown($event)\"></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\" axListNavigation #list=\"axListNavigation\">\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 (click)=\"vm.execute(item)\" axListNavigationItem #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\">\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}} fa-lg\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content>\n <axp-layout-title>\n <span>{{ t(item.title) | async}}</span>\n </axp-layout-title>\n @if(item.parent)\n {\n <axp-layout-description>\n {{ t(item.parent.title) | async}}\n </axp-layout-description>\n }@else if (item.description) {\n <axp-layout-description>\n {{ t(item.description) | async}}\n </axp-layout-description>\n }\n\n </axp-layout-content>\n\n <axp-layout-suffix>\n <ax-icon icon=\"far fa-chevron-right\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\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:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,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.axp-state-focused:is(.ax-dark *),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-content axp-layout-description{font-size:.75rem!important;line-height:1rem!important;opacity:.65!important}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:
56
+ //
57
+ 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: "ngmodule", type: AXListNavigationModule }, { kind: "directive", type: i7$1.AXListNavigationDirective, selector: "[axListNavigation]", inputs: ["orientation"], outputs: ["onNavigationChanged"], exportAs: ["axListNavigation"] }, { kind: "directive", type: i7$1.AXListNavigationItemDirective, selector: "[axListNavigationItem]", exportAs: ["axListNavigationItem"] }, { kind: "component", type:
58
+ //
59
+ 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: i8.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 }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGlobalSearchPopupComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ imports: [
64
+ CommonModule,
65
+ FormsModule,
66
+ //
67
+ AXSearchBoxModule,
68
+ AXCommonModule,
69
+ AXDecoratorModule,
70
+ AXTranslationModule,
71
+ AXListNavigationModule,
72
+ //
73
+ AXPThemeLayoutBlockComponent,
74
+ AXSkeletonModule,
75
+ AXChipsModule,
76
+ AXPThemeLayoutActionsComponent,
77
+ AXPThemeLayoutListComponent,
78
+ AXPThemeLayoutListItemComponent,
79
+ AXPThemeLayoutListItemsGroupComponent
80
+ ], 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...'\" (onKeyDown)=\"handleSearchKeyDown($event)\"></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\" axListNavigation #list=\"axListNavigation\">\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 (click)=\"vm.execute(item)\" axListNavigationItem #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\">\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}} fa-lg\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content>\n <axp-layout-title>\n <span>{{ t(item.title) | async}}</span>\n </axp-layout-title>\n @if(item.parent)\n {\n <axp-layout-description>\n {{ t(item.parent.title) | async}}\n </axp-layout-description>\n }@else if (item.description) {\n <axp-layout-description>\n {{ t(item.description) | async}}\n </axp-layout-description>\n }\n\n </axp-layout-content>\n\n <axp-layout-suffix>\n <ax-icon icon=\"far fa-chevron-right\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\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:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,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.axp-state-focused:is(.ax-dark *),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-content axp-layout-description{font-size:.75rem!important;line-height:1rem!important;opacity:.65!important}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"] }]
81
+ }] });
82
+
83
+ export { AXPGlobalSearchPopupComponent };
84
+ //# sourceMappingURL=acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-themes-default-search-popup.component-BiKt6Mvr.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, AXHtmlEvent, 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 { Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { first } from 'rxjs';\nimport { AXListNavigationModule } from '@acorex/cdk/list-navigation';\n\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 AXListNavigationModule,\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\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 protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.vm.onItemClick.pipe(first()).subscribe(item => {\n this.close(item)\n })\n }\n\n\n protected handleSearchKeyDown(e: AXHtmlEvent<KeyboardEvent>) {\n const event = e.nativeEvent!;\n if (event.ctrlKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyDown':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\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...'\" (onKeyDown)=\"handleSearchKeyDown($event)\"></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\" axListNavigation #list=\"axListNavigation\">\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 (click)=\"vm.execute(item)\" axListNavigationItem #i=\"axListNavigationItem\"\n [class.axp-state-focused]=\"i.isActive()\">\n <axp-layout-prefix>\n <ax-icon icon=\"far {{item.icon}} fa-lg\"></ax-icon>\n </axp-layout-prefix>\n\n <axp-layout-content>\n <axp-layout-title>\n <span>{{ t(item.title) | async}}</span>\n </axp-layout-title>\n @if(item.parent)\n {\n <axp-layout-description>\n {{ t(item.parent.title) | async}}\n </axp-layout-description>\n }@else if (item.description) {\n <axp-layout-description>\n {{ t(item.description) | async}}\n </axp-layout-description>\n }\n\n </axp-layout-content>\n\n <axp-layout-suffix>\n <ax-icon icon=\"far fa-chevron-right\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list-group>\n\n }\n\n </axp-layout-list>\n\n\n </ng-template>\n\n</axp-layout-content>"],"names":["i7"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8CM,MAAO,6BAA8B,SAAQ,mBAAmB,CAAA;AAxBtE,IAAA,WAAA,GAAA;;AA0BY,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,wBAAwB,CAAC;QAErC,IAAI,CAAA,IAAA,GAAkB,IAAI;AA4BrC;IA1BC,MAAM,iBAAiB,CAAC,CAA8B,EAAA;AACpD,QAAA,IAAI,CAAC,CAAC,iBAAiB,EAAE;YACvB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAM,CAAC;;;IAIf,QAAQ,GAAA;QACzB,KAAK,CAAC,QAAQ,EAAE;;AAEhB,QAAA,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AACjD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAClB,SAAC,CAAC;;AAIM,IAAA,mBAAmB,CAAC,CAA6B,EAAA;AACzD,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,WAAY;AAC5B,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AAClD,YAAA,QAAQ,KAAK,CAAC,IAAI;AAChB,gBAAA,KAAK,SAAS;oBACZ,KAAK,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE;oBACvB;;;;8GA5BG,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAF7B,CAAC,wBAAwB,CAAC,iDC5CvC,wmKAmIqB,EAAA,MAAA,EAAA,CAAA,qjJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzGjB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AAEX,gBAAA,iBAAiB,2XACjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,iBAAiB,EACjB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,+BAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8GACnB,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;gBAEtB,4BAA4B,EAAA,QAAA,EAAA,4YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC5B,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,8BAA8B,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC9B,2BAA2B,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,+BAA+B,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC/B,qCAAqC,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAK5B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAxBzC,SAAS;AAGC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;;wBAEX,iBAAiB;wBACjB,cAAc;wBACd,iBAAiB;wBACjB,mBAAmB;wBACnB,sBAAsB;;wBAEtB,4BAA4B;wBAC5B,gBAAgB;wBAChB,aAAa;wBACb,8BAA8B;wBAC9B,2BAA2B;wBAC3B,+BAA+B;wBAC/B;AACD,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,wmKAAA,EAAA,MAAA,EAAA,CAAA,qjJAAA,CAAA,EAAA;;;;;"}
@@ -60,7 +60,7 @@ class AXPSimplePageLayout {
60
60
  this.pageActionsLayout = contentChild(AXPThemeLayoutActionsComponent);
61
61
  }
62
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimplePageLayout, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSimplePageLayout, isStandalone: true, selector: "axp-layout-simple-page", queries: [{ propertyName: "headerLayout", first: true, predicate: AXPThemeLayoutHeaderTemplateComponent, isSignal: true }, { propertyName: "layoutSide", first: true, predicate: AXPThemeLayoutSideTemplateComponent, descendants: true, isSignal: true }, { propertyName: "pageActionsLayout", first: true, predicate: AXPThemeLayoutActionsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container>\n @if(layoutSide())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <axp-layout-side-container>\n <axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.navbar()!\"></ng-container>\n </axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.content()!\"></ng-container>\n </axp-layout-side-container>\n </ax-content>\n </ax-drawer>\n }\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-layout-body>\n <axp-layout-header-container #sticky=\"axpSticky\"\n [axpSticky]=\"layoutService.isSmall() ? '' : 'axp-is-sticky'\" [stickyOffset]=\"50\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navButton()!\"></ng-container>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-layout-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [class.ax-xs]=\"layoutService.isSmall()\"\n [text]=\"layoutService.isSmall() ? null : 'Actions'\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\" [color]=\"'ghost'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ng-container\n [ngTemplateOutlet]=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n }\n <!-- Finish Action Menu -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\n <!-- Finish Navbar -->\n </axp-layout-header-container>\n <ng-content select=\"axp-layout-content\"></ng-content>\n </axp-layout-body>\n </ax-content>\n</ax-drawer-container>", 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}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section-container{display:block;border-radius:.375rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section-container>axp-layout-header-container{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px;background-color:rgba(var(--ax-color-input-surface),.75)}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-description{font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-text-default),.7)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section-container>axp-layout-footer-container>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-layout-simple-page ax-drawer{z-index:0!important}axp-layout-simple-page axp-layout-body{display:flex;min-height:100%;flex-direction:column;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1))}axp-layout-simple-page axp-layout-body>axp-layout-header-container{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-layout-body>axp-layout-header-container.axp-is-sticky axp-layout-title-bar{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-layout-body>axp-layout-content{height:100%;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type:
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSimplePageLayout, isStandalone: true, selector: "axp-layout-simple-page", queries: [{ propertyName: "headerLayout", first: true, predicate: AXPThemeLayoutHeaderTemplateComponent, isSignal: true }, { propertyName: "layoutSide", first: true, predicate: AXPThemeLayoutSideTemplateComponent, descendants: true, isSignal: true }, { propertyName: "pageActionsLayout", first: true, predicate: AXPThemeLayoutActionsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container>\n @if(layoutSide())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <axp-layout-side-container>\n <axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.navbar()!\"></ng-container>\n </axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.content()!\"></ng-container>\n </axp-layout-side-container>\n </ax-content>\n </ax-drawer>\n }\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-layout-body>\n <axp-layout-header-container #sticky=\"axpSticky\"\n [axpSticky]=\"layoutService.isSmall() ? '' : 'axp-is-sticky'\" [stickyOffset]=\"50\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navButton()!\"></ng-container>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-layout-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [class.ax-xs]=\"layoutService.isSmall()\"\n [text]=\"layoutService.isSmall() ? null : 'Actions'\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\" [color]=\"'ghost'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ng-container\n [ngTemplateOutlet]=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n }\n <!-- Finish Action Menu -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\n <!-- Finish Navbar -->\n </axp-layout-header-container>\n <ng-content select=\"axp-layout-content\"></ng-content>\n </axp-layout-body>\n </ax-content>\n</ax-drawer-container>", 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:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,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.axp-state-focused:is(.ax-dark *),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-content axp-layout-description{font-size:.75rem!important;line-height:1rem!important;opacity:.65!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section-container{display:block;border-radius:.375rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section-container>axp-layout-header-container{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px;background-color:rgba(var(--ax-color-input-surface),.75)}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-description{font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-text-default),.7)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section-container>axp-layout-footer-container>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-layout-simple-page ax-drawer{z-index:0!important}axp-layout-simple-page axp-layout-body{display:flex;min-height:100%;flex-direction:column;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1))}axp-layout-simple-page axp-layout-body>axp-layout-header-container{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-layout-body>axp-layout-header-container.axp-is-sticky axp-layout-title-bar{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-layout-body>axp-layout-content{height:100%;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type:
64
64
  //
65
65
  AXCommonModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type:
66
66
  //
@@ -83,7 +83,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
83
83
  AXPThemeLayoutActionsComponent,
84
84
  AXPStickyDirective,
85
85
  //
86
- ], selector: 'axp-layout-simple-page', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\n @if(layoutSide())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <axp-layout-side-container>\n <axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.navbar()!\"></ng-container>\n </axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.content()!\"></ng-container>\n </axp-layout-side-container>\n </ax-content>\n </ax-drawer>\n }\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-layout-body>\n <axp-layout-header-container #sticky=\"axpSticky\"\n [axpSticky]=\"layoutService.isSmall() ? '' : 'axp-is-sticky'\" [stickyOffset]=\"50\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navButton()!\"></ng-container>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-layout-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [class.ax-xs]=\"layoutService.isSmall()\"\n [text]=\"layoutService.isSmall() ? null : 'Actions'\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\" [color]=\"'ghost'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ng-container\n [ngTemplateOutlet]=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n }\n <!-- Finish Action Menu -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\n <!-- Finish Navbar -->\n </axp-layout-header-container>\n <ng-content select=\"axp-layout-content\"></ng-content>\n </axp-layout-body>\n </ax-content>\n</ax-drawer-container>", 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}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section-container{display:block;border-radius:.375rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section-container>axp-layout-header-container{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px;background-color:rgba(var(--ax-color-input-surface),.75)}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-description{font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-text-default),.7)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section-container>axp-layout-footer-container>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-layout-simple-page ax-drawer{z-index:0!important}axp-layout-simple-page axp-layout-body{display:flex;min-height:100%;flex-direction:column;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1))}axp-layout-simple-page axp-layout-body>axp-layout-header-container{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-layout-body>axp-layout-header-container.axp-is-sticky axp-layout-title-bar{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-layout-body>axp-layout-content{height:100%;overflow:auto}\n"] }]
86
+ ], selector: 'axp-layout-simple-page', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\n @if(layoutSide())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <axp-layout-side-container>\n <axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.header()?.navbar()!\"></ng-container>\n </axp-layout-header-container>\n <ng-container *ngTemplateOutlet=\"layoutSide()?.content()!\"></ng-container>\n </axp-layout-side-container>\n </ax-content>\n </ax-drawer>\n }\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-layout-body>\n <axp-layout-header-container #sticky=\"axpSticky\"\n [axpSticky]=\"layoutService.isSmall() ? '' : 'axp-is-sticky'\" [stickyOffset]=\"50\"\n [stickyParent]=\"content.getHostElement()\">\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navButton()!\"></ng-container>\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-layout-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [class.ax-xs]=\"layoutService.isSmall()\"\n [text]=\"layoutService.isSmall() ? null : 'Actions'\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\" [color]=\"'ghost'\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ng-container\n [ngTemplateOutlet]=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n }\n <!-- Finish Action Menu -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\n <!-- Finish Navbar -->\n </axp-layout-header-container>\n <ng-content select=\"axp-layout-content\"></ng-content>\n </axp-layout-body>\n </ax-content>\n</ax-drawer-container>", 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:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,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.axp-state-focused:is(.ax-dark *),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-content axp-layout-description{font-size:.75rem!important;line-height:1rem!important;opacity:.65!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section-container{display:block;border-radius:.375rem;border-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section-container>axp-layout-footer-container,axp-layout-sections axp-layout-section-container>axp-layout-header-container{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section-container>axp-layout-header-container{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px;background-color:rgba(var(--ax-color-input-surface),.75)}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgb(var(--ax-color-text-default),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section-container>axp-layout-header-container axp-layout-description{font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-text-default),.7)}axp-layout-sections axp-layout-section-container>axp-layout-footer-container{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section-container>axp-layout-footer-container>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-layout-simple-page ax-drawer{z-index:0!important}axp-layout-simple-page axp-layout-body{display:flex;min-height:100%;flex-direction:column;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1))}axp-layout-simple-page axp-layout-body>axp-layout-header-container{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-layout-body>axp-layout-header-container.axp-is-sticky axp-layout-title-bar{--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-layout-body>axp-layout-header-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-layout-body>axp-layout-content{height:100%;overflow:auto}\n"] }]
87
87
  }] });
88
88
 
89
89
  class AXPEntityDetailListViewComponent {
@@ -257,7 +257,7 @@ class AXPRootLayoutMenuComponent {
257
257
  return sortBy(items, [c => c.priority ?? 0, c => c.text]);
258
258
  }
259
259
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutMenuComponent, isStandalone: false, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu [look]=\"'with-line-color'\">\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [color]=\"'primary'\" [active]=\"item ===menuStore.selectedMenuItem().item\"\n [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu", inputs: ["look", "location"] }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4$2.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
260
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutMenuComponent, isStandalone: false, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu [look]=\"'with-line-color'\">\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [color]=\"'primary'\" [active]=\"item ===menuStore.selectedMenuItem().item\"\n [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu", inputs: ["items", "look", "location"], outputs: ["itemsChange"] }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "text", "active", "isLoading", "isCollapsed", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["textChange", "activeChange", "isLoadingChange", "isCollapsedChange", "onClick"] }, { kind: "directive", type: i4$2.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6$1.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
261
261
  }
262
262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, decorators: [{
263
263
  type: Component,
@@ -450,7 +450,7 @@ class AXPDefaultThemeModule {
450
450
  {
451
451
  provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,
452
452
  useValue: {
453
- window: () => import('./acorex-platform-themes-default-search-popup.component-Blpan821.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
453
+ window: () => import('./acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
454
454
  },
455
455
  },
456
456
  { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy },
@@ -495,7 +495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
495
495
  {
496
496
  provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,
497
497
  useValue: {
498
- window: () => import('./acorex-platform-themes-default-search-popup.component-Blpan821.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
498
+ window: () => import('./acorex-platform-themes-default-search-popup.component-BiKt6Mvr.mjs').then((c) => c.AXPGlobalSearchPopupComponent),
499
499
  },
500
500
  },
501
501
  { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy },