@acorex/platform 19.3.1 → 19.3.3-next.0

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 (107) hide show
  1. package/common/lib/home-page/home-page-settings.provider.d.ts +1 -0
  2. package/common/lib/layout/menu/menu.types.d.ts +0 -1
  3. package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +2 -0
  4. package/core/lib/types/interactive.types.d.ts +21 -0
  5. package/core/lib/types/layout.types.d.ts +4 -4
  6. package/core/lib/utils/object-util.d.ts +1 -0
  7. package/fesm2022/acorex-platform-common.mjs +4 -2
  8. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +64 -11
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +2 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components.mjs +89 -60
  14. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +2 -2
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-entity.mjs +0 -11
  18. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-views.mjs +287 -0
  20. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-themes-default-details-view.component-CAa99Vts.mjs +107 -0
  22. package/fesm2022/acorex-platform-themes-default-details-view.component-CAa99Vts.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs → acorex-platform-themes-default-entity-master-list-view.component-BgE6rxsd.mjs} +5 -6
  24. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BgE6rxsd.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BBJ7Aapd.mjs → acorex-platform-themes-default-entity-master-single-view.component-CnrccLHY.mjs} +9 -9
  26. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BBJ7Aapd.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-CnrccLHY.mjs.map} +1 -1
  27. package/fesm2022/acorex-platform-themes-default.mjs +55 -299
  28. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-widgets.mjs +543 -63
  30. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  31. package/layout/builder/lib/builder/index.d.ts +0 -1
  32. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  33. package/layout/builder/lib/builder/widget.types.d.ts +1 -0
  34. package/layout/components/lib/user-avatar/user-avatar.component.d.ts +16 -5
  35. package/layout/components/lib/user-avatar/user-avatar.service.d.ts +8 -8
  36. package/layout/components/lib/user-avatar/user-avatar.types.d.ts +2 -1
  37. package/layout/{setting → views}/README.md +1 -1
  38. package/layout/views/index.d.ts +2 -0
  39. package/layout/views/lib/details-view/details-view-route.resolver.d.ts +3 -0
  40. package/layout/views/lib/details-view/details-view.adapter.d.ts +13 -0
  41. package/layout/views/lib/details-view/details-view.viewmodel.d.ts +30 -0
  42. package/layout/views/lib/details-view/index.d.ts +3 -0
  43. package/layout/views/lib/details-view/sample.d.ts +2 -0
  44. package/layout/views/lib/shared/index.d.ts +1 -0
  45. package/layout/views/lib/shared/layout.types.d.ts +7 -0
  46. package/package.json +4 -8
  47. package/themes/default/index.d.ts +0 -1
  48. package/themes/default/lib/layouts/base/base-page.component.d.ts +1 -4
  49. package/themes/default/lib/layouts/base/index.d.ts +0 -1
  50. package/themes/default/lib/layouts/base/page-layout/page-layout.component.d.ts +3 -0
  51. package/themes/default/lib/layouts/details-view/details-view.component.d.ts +45 -0
  52. package/widgets/lib/properties/layout.props.d.ts +1 -0
  53. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +1 -0
  54. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +1 -0
  55. package/widgets/lib/widgets/editors/time-duration/index.d.ts +6 -0
  56. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-column.component.d.ts +6 -0
  57. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-edit.component.d.ts +12 -0
  58. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-filter.component.d.ts +6 -0
  59. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-print.component.d.ts +6 -0
  60. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-view.component.d.ts +7 -0
  61. package/widgets/lib/widgets/editors/time-duration/time-duration-widget.config.d.ts +11 -0
  62. package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +4 -1
  63. package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +2 -2
  64. package/widgets/lib/widgets/layout/tabset/index.d.ts +3 -0
  65. package/widgets/lib/widgets/layout/tabset/tabset-widget-designer.component.d.ts +6 -0
  66. package/widgets/lib/widgets/layout/tabset/tabset-widget-view.component.d.ts +19 -0
  67. package/widgets/lib/widgets/layout/tabset/tabset-widget.config.d.ts +2 -0
  68. package/widgets/lib/widgets/layout/tabset/tabset-widget.types.d.ts +2 -0
  69. package/widgets/lib/widgets/layout/tabset-item/index.d.ts +3 -0
  70. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-designer.component.d.ts +6 -0
  71. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-view.component.d.ts +10 -0
  72. package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget.config.d.ts +2 -0
  73. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +3 -3
  74. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +2 -2
  75. package/fesm2022/acorex-platform-layout-search.mjs +0 -279
  76. package/fesm2022/acorex-platform-layout-search.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-layout-setting.mjs +0 -406
  78. package/fesm2022/acorex-platform-layout-setting.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs.map +0 -1
  80. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChJiJ12h.mjs +0 -128
  81. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChJiJ12h.mjs.map +0 -1
  82. package/fesm2022/acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs +0 -219
  83. package/fesm2022/acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs +0 -103
  85. package/fesm2022/acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs.map +0 -1
  86. package/layout/builder/lib/builder/view.types.d.ts +0 -94
  87. package/layout/search/README.md +0 -3
  88. package/layout/search/index.d.ts +0 -1
  89. package/layout/search/lib/index.d.ts +0 -3
  90. package/layout/search/lib/search-slot.component.d.ts +0 -9
  91. package/layout/search/lib/search.config.d.ts +0 -5
  92. package/layout/search/lib/search.module.d.ts +0 -11
  93. package/layout/search/lib/search.viewmodel.d.ts +0 -34
  94. package/layout/search/lib/workflows/search.workflow.d.ts +0 -11
  95. package/layout/setting/index.d.ts +0 -2
  96. package/layout/setting/lib/convert-setting-data.d.ts +0 -2
  97. package/layout/setting/lib/search-definition.provider.d.ts +0 -4
  98. package/layout/setting/lib/search.provider.d.ts +0 -9
  99. package/layout/setting/lib/setting.viewmodel.d.ts +0 -46
  100. package/layout/setting/lib/settings.module.d.ts +0 -9
  101. package/themes/default/lib/layouts/base/simple-page/index.d.ts +0 -1
  102. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +0 -78
  103. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +0 -22
  104. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +0 -65
  105. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +0 -135
  106. package/themes/default/lib/layouts/view-layouts/index.d.ts +0 -1
  107. package/themes/default/lib/layouts/view-layouts/layout-detail-view/layout-detail-view.component.d.ts +0 -19
@@ -1,219 +0,0 @@
1
- import { AXBadgeModule } from '@acorex/components/badge';
2
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
3
- import * as i4$1 from '@acorex/components/button';
4
- import { AXButtonModule } from '@acorex/components/button';
5
- import * as i3 from '@acorex/components/decorators';
6
- import { AXDecoratorModule } from '@acorex/components/decorators';
7
- import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
8
- import * as i5 from '@acorex/components/loading';
9
- import { AXLoadingModule } from '@acorex/components/loading';
10
- import * as i7 from '@acorex/components/search-box';
11
- import { AXSearchBoxModule } from '@acorex/components/search-box';
12
- import * as i8 from '@acorex/components/tabs';
13
- import { AXTabsModule } from '@acorex/components/tabs';
14
- import * as i4 from '@acorex/core/translation';
15
- import { AXTranslationModule } from '@acorex/core/translation';
16
- import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
17
- import { AXPThemeLayoutBlockComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutToolbarComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutStartSideComponent } from '@acorex/platform/themes/shared';
18
- import * as i1 from '@angular/common';
19
- import { CommonModule } from '@angular/common';
20
- import * as i0 from '@angular/core';
21
- import { inject, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
22
- import * as i2 from '@angular/forms';
23
- import { FormsModule } from '@angular/forms';
24
- import * as i1$1 from '@angular/router';
25
- import { ActivatedRoute, Router, NavigationEnd, RouterModule } from '@angular/router';
26
- import { AXPBasePageComponent, AXPPageLayoutComponent, AXPBasePage } from './acorex-platform-themes-default.mjs';
27
- import { AXHighlightService, resolvePlatformScopeName, resolvePlatformScopeKey } from '@acorex/platform/core';
28
- import { filter, startWith, firstValueFrom, take } from 'rxjs';
29
- import { AXUnsubscriber } from '@acorex/core/utils';
30
-
31
- class AXPSettingPageComponent extends AXPBasePageComponent {
32
- constructor() {
33
- super(...arguments);
34
- this.vm = inject(AXPSettingsViewModel);
35
- this.activatedRoute = inject(ActivatedRoute);
36
- this.unsubscribe = inject(AXUnsubscriber);
37
- this.highlightService = inject(AXHighlightService);
38
- this.router = inject(Router);
39
- this.#effect = effect(() => {
40
- if (!this.vm.isLoaded()) {
41
- return;
42
- }
43
- const expression = this.vm.searchExpression();
44
- const app = this.sessionService.application?.name;
45
- const scope = resolvePlatformScopeName(this.vm.scope());
46
- const group = this.vm.activateGroup()?.name;
47
- //
48
- if (this.vm.isSearching()) {
49
- this.router.navigate([app, 'settings', scope, group ?? ''], {
50
- queryParams: { q: expression },
51
- });
52
- setTimeout(() => {
53
- this.highlightService.highlight('#ax-settings', expression);
54
- }, 100);
55
- return;
56
- }
57
- this.router.navigate([app, 'settings', scope, group ?? '']);
58
- this.highlightService.clear();
59
- });
60
- }
61
- #effect;
62
- async ngOnInit() {
63
- await super.ngOnInit();
64
- //
65
- this.router.events
66
- .pipe(this.unsubscribe.takeUntilDestroy, filter((event) => event instanceof NavigationEnd), startWith(null))
67
- .subscribe(async () => {
68
- await this.loadFromRoute();
69
- });
70
- }
71
- async loadFromRoute() {
72
- const snapshot = this.activatedRoute.snapshot;
73
- const routerScope = resolvePlatformScopeKey(snapshot.paramMap.get('scope')?.trim().toLowerCase());
74
- const vmScope = this.vm.scope();
75
- const query = snapshot.queryParamMap.get('q');
76
- //
77
- //
78
- if (vmScope != routerScope || !this.vm.isLoaded()) {
79
- await this.vm.load(routerScope);
80
- }
81
- this.vm.unloadActivateGroup();
82
- this.vm.clearSearch();
83
- //
84
- let group = await this.getGroupFromRoute();
85
- //
86
- if (!group && this.layoutService.isLarge() && !this.vm.isSearching()) {
87
- group = this.vm.groups()?.[0]?.name;
88
- if (group) {
89
- await this.router.navigate([group], { relativeTo: this.activatedRoute, replaceUrl: true });
90
- }
91
- }
92
- else if (group) {
93
- await this.vm.setActivateGroupByName(group);
94
- }
95
- if (query) {
96
- await this.vm.search(query);
97
- }
98
- }
99
- async getGroupFromRoute() {
100
- const snapshot = this.activatedRoute.snapshot;
101
- let group = snapshot.paramMap.get('group');
102
- //
103
- if (!group) {
104
- for (const childRoute of this.activatedRoute.children) {
105
- const params = await firstValueFrom(childRoute.paramMap.pipe(take(1)));
106
- group = params?.get('group');
107
- if (group) {
108
- break;
109
- }
110
- }
111
- }
112
- return group ?? undefined;
113
- }
114
- async handleSelectGroup(item) {
115
- await this.router.navigate([`${item.name}`], { relativeTo: this.activatedRoute });
116
- }
117
- //#region ---------------- Page Configuration Overrides ----------------
118
- async getSecondaryMenuItems() {
119
- if (this.vm.activateGroup()) {
120
- return [
121
- {
122
- title: await this.translateService.translateAsync('actions.restore-defaults.title', { scope: 'settings' }),
123
- icon: 'fa-light fa-rotate-left',
124
- color: 'danger',
125
- command: {
126
- name: 'restore-defaults'
127
- }
128
- }
129
- ];
130
- }
131
- return [];
132
- }
133
- async getPageTitle() {
134
- if (!this.vm.isSearching()) {
135
- return this.vm.activateGroup()?.title ?? this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' });
136
- }
137
- else {
138
- return this.translateService.translateAsync('search.title', { scope: 'settings', params: { q: this.vm.searchExpression() } });
139
- }
140
- }
141
- async getPageDescription() {
142
- if (!this.vm.isSearching()) {
143
- return this.vm.activateGroup()?.description ?? this.translateService.translateAsync(this.vm.scopeDescription(), { scope: 'settings' });
144
- }
145
- else {
146
- return this.translateService.translateAsync('search.description', { scope: 'settings' });
147
- }
148
- }
149
- async getBackButton() {
150
- if (this.vm.activateGroup()) {
151
- return {
152
- title: await this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' }),
153
- };
154
- }
155
- return null;
156
- }
157
- onBackButtonClick() {
158
- const app = this.sessionService.application?.name;
159
- const scope = resolvePlatformScopeName(this.vm.scope());
160
- //
161
- this.router.navigate([app, 'settings', scope]);
162
- }
163
- async execute(command) {
164
- switch (command.name) {
165
- case 'restore-defaults':
166
- await this.vm.resetToDefault();
167
- break;
168
- }
169
- }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
171
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingPageComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "axp-setting-page" }, providers: [
172
- AXUnsubscriber,
173
- AXPSettingsViewModel,
174
- {
175
- provide: AXPBasePage,
176
- useExisting: AXPSettingPageComponent
177
- }
178
- ], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if(vm.showGroups()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t(vm.scopeTitle(), { scope: 'settings' }) | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('search.placeholder', { scope: 'settings' }) | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </axp-layout-toolbar>\n </axp-layout-header>\n <axp-layout-content>\n <ax-tabs [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (item of vm.groups(); track $index) {\n <ax-tab-item\n [text]=\"item.title\"\n (onClick)=\"handleSelectGroup(item)\"\n [active]=\"vm.activateGroup() == item && !vm.isSearching()\"\n >\n <ax-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <axp-page-content id=\"ax-settings\">\n @if(vm.hasActivateGroup() || vm.isSearching()) {\n <router-outlet></router-outlet>\n } @else {\n <axp-layout-list>\n @for (item of vm.groups(); track $index) {\n <axp-layout-list-item (click)=\"handleSelectGroup(item)\">\n <axp-layout-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\" class=\"ax-text-gray-500\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <a class=\"ax-font-semibold\">{{ item.title | translate | async }}</a>\n </axp-layout-content>\n <axp-layout-suffix>\n <ax-icon icon=\" far fa-chevron-right\" class=\"ax-text-gray-400\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list>\n }\n </axp-page-content>\n\n @if(vm.isDirty()) {\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('discard') | async\"\n (onClick)=\"vm.discard()\"\n >\n </ax-button>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('apply') | async\"\n (onClick)=\"vm.apply()\"\n [color]=\"'secondary'\"\n >\n @if(vm.isSaving()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n", styles: [".axp-setting-page ax-tabs{--ax-comp-tabs-default-border-radius: 0}.axp-setting-page ax-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}.axp-setting-page axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-setting-page axp-layout-section axp-layout-content>: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;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-setting-page axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-setting-page axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-setting-page axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-setting-page axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-setting-page #ax-settings{padding:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type:
179
- //
180
- AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i4.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i8.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i8.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type:
181
- //
182
- AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer, axp-page-header, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-container, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutListComponent, selector: "axp-layout-list" }, { kind: "component", type: AXPThemeLayoutListItemComponent, selector: "axp-layout-list-item" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
183
- }
184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingPageComponent, decorators: [{
185
- type: Component,
186
- args: [{ standalone: true, imports: [
187
- CommonModule,
188
- FormsModule,
189
- RouterModule,
190
- //
191
- AXSearchBoxModule,
192
- AXDecoratorModule,
193
- AXBreadcrumbsModule,
194
- AXTranslationModule,
195
- AXButtonModule,
196
- AXTabsModule,
197
- AXBadgeModule,
198
- AXLoadingModule,
199
- AXDropdownButtonModule,
200
- //
201
- AXPPageLayoutComponent,
202
- AXPThemeLayoutBlockComponent,
203
- AXPThemeLayoutListComponent,
204
- AXPThemeLayoutListItemComponent,
205
- AXPThemeLayoutToolbarComponent,
206
- AXPThemeLayoutHeaderComponent,
207
- AXPThemeLayoutStartSideComponent
208
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
209
- AXUnsubscriber,
210
- AXPSettingsViewModel,
211
- {
212
- provide: AXPBasePage,
213
- useExisting: AXPSettingPageComponent
214
- }
215
- ], host: { class: 'axp-setting-page' }, template: "<axp-page-layout *translate=\"let t\">\n @if(vm.showGroups()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t(vm.scopeTitle(), { scope: 'settings' }) | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('search.placeholder', { scope: 'settings' }) | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </axp-layout-toolbar>\n </axp-layout-header>\n <axp-layout-content>\n <ax-tabs [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (item of vm.groups(); track $index) {\n <ax-tab-item\n [text]=\"item.title\"\n (onClick)=\"handleSelectGroup(item)\"\n [active]=\"vm.activateGroup() == item && !vm.isSearching()\"\n >\n <ax-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <axp-page-content id=\"ax-settings\">\n @if(vm.hasActivateGroup() || vm.isSearching()) {\n <router-outlet></router-outlet>\n } @else {\n <axp-layout-list>\n @for (item of vm.groups(); track $index) {\n <axp-layout-list-item (click)=\"handleSelectGroup(item)\">\n <axp-layout-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\" class=\"ax-text-gray-500\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <a class=\"ax-font-semibold\">{{ item.title | translate | async }}</a>\n </axp-layout-content>\n <axp-layout-suffix>\n <ax-icon icon=\" far fa-chevron-right\" class=\"ax-text-gray-400\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list>\n }\n </axp-page-content>\n\n @if(vm.isDirty()) {\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('discard') | async\"\n (onClick)=\"vm.discard()\"\n >\n </ax-button>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('apply') | async\"\n (onClick)=\"vm.apply()\"\n [color]=\"'secondary'\"\n >\n @if(vm.isSaving()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n", styles: [".axp-setting-page ax-tabs{--ax-comp-tabs-default-border-radius: 0}.axp-setting-page ax-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}.axp-setting-page axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-setting-page axp-layout-section axp-layout-content>: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;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-setting-page axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-setting-page axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-setting-page axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-setting-page axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-setting-page axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-setting-page #ax-settings{padding:1rem}\n"] }]
216
- }] });
217
-
218
- export { AXPSettingPageComponent };
219
- //# sourceMappingURL=acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-setting-page.component-BxGzaKws.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/setting-layout/setting-page/setting-page.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/setting-layout/setting-page/setting-page.component.html"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSettingsViewModel } from '@acorex/platform/layout/setting';\nimport {\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPThemeLayoutStartSideComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, untracked, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { AXPBasePage, AXPBasePageComponent, AXPPageLayoutComponent } from '../../base';\nimport { AXHighlightService, AXPActionMenuItem, AXPBackButton, AXPExecuteCommand, resolvePlatformScopeKey, resolvePlatformScopeName } from '@acorex/platform/core';\nimport { AXPSettingDefinitionGroup } from '@acorex/platform/common';\nimport { filter, firstValueFrom, startWith, take } from 'rxjs';\nimport { AXUnsubscriber } from '@acorex/core/utils';\n\n\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n //\n AXSearchBoxModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXTranslationModule,\n AXButtonModule,\n AXTabsModule,\n AXBadgeModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPThemeLayoutToolbarComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutStartSideComponent\n\n ],\n templateUrl: './setting-page.component.html',\n styleUrl: './setting-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXUnsubscriber,\n AXPSettingsViewModel,\n {\n provide: AXPBasePage,\n useExisting: AXPSettingPageComponent\n }\n ],\n host: { class: 'axp-setting-page' },\n})\nexport class AXPSettingPageComponent extends AXPBasePageComponent {\n\n protected vm = inject(AXPSettingsViewModel);\n private activatedRoute = inject(ActivatedRoute);\n private unsubscribe = inject(AXUnsubscriber);\n private readonly highlightService = inject(AXHighlightService);\n\n private router = inject(Router);\n\n\n #effect = effect(() => {\n if (!this.vm.isLoaded()) {\n return;\n }\n\n const expression = this.vm.searchExpression();\n const app = this.sessionService.application?.name;\n const scope = resolvePlatformScopeName(this.vm.scope());\n const group = this.vm.activateGroup()?.name;\n //\n if (this.vm.isSearching()) {\n this.router.navigate([app, 'settings', scope, group ?? ''], {\n queryParams: { q: expression },\n });\n setTimeout(() => {\n this.highlightService.highlight('#ax-settings', expression!);\n }, 100);\n return;\n }\n this.router.navigate([app, 'settings', scope, group ?? '']);\n this.highlightService.clear();\n });\n\n\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n //\n this.router.events\n .pipe(\n this.unsubscribe.takeUntilDestroy,\n filter((event) => event instanceof NavigationEnd),\n startWith(null),\n )\n .subscribe(async () => {\n await this.loadFromRoute();\n });\n }\n\n\n\n private async loadFromRoute(): Promise<void> {\n const snapshot = this.activatedRoute.snapshot;\n const routerScope = resolvePlatformScopeKey(snapshot.paramMap.get('scope')?.trim().toLowerCase()!);\n const vmScope = this.vm.scope();\n const query = snapshot.queryParamMap.get('q');\n //\n //\n if (vmScope != routerScope || !this.vm.isLoaded()) {\n await this.vm.load(routerScope);\n }\n this.vm.unloadActivateGroup();\n this.vm.clearSearch();\n //\n let group = await this.getGroupFromRoute();\n //\n if (!group && this.layoutService.isLarge() && !this.vm.isSearching()) {\n group = this.vm.groups()?.[0]?.name;\n if (group) {\n await this.router.navigate([group], { relativeTo: this.activatedRoute, replaceUrl: true });\n }\n }\n else if (group) {\n await this.vm.setActivateGroupByName(group!);\n }\n if (query) {\n await this.vm.search(query);\n }\n }\n\n private async getGroupFromRoute(): Promise<string | undefined> {\n const snapshot = this.activatedRoute.snapshot;\n let group = snapshot.paramMap.get('group');\n //\n if (!group) {\n for (const childRoute of this.activatedRoute.children) {\n const params = await firstValueFrom(childRoute.paramMap.pipe(take(1)));\n group = params?.get('group');\n if (group) {\n break;\n }\n }\n }\n return group ?? undefined;\n }\n\n protected async handleSelectGroup(item: AXPSettingDefinitionGroup) {\n await this.router.navigate([`${item.name}`], { relativeTo: this.activatedRoute });\n }\n\n //#region ---------------- Page Configuration Overrides ----------------\n\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n if (this.vm.activateGroup()) {\n return [\n {\n title: await this.translateService.translateAsync('actions.restore-defaults.title', { scope: 'settings' }),\n icon: 'fa-light fa-rotate-left',\n color: 'danger',\n command: {\n name: 'restore-defaults'\n }\n }\n ];\n }\n return [];\n }\n\n override async getPageTitle(): Promise<string> {\n if (!this.vm.isSearching()) {\n return this.vm.activateGroup()?.title ?? this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' });\n } else {\n return this.translateService.translateAsync('search.title', { scope: 'settings', params: { q: this.vm.searchExpression() } })\n }\n }\n\n override async getPageDescription(): Promise<string | null> {\n if (!this.vm.isSearching()) {\n return this.vm.activateGroup()?.description ?? this.translateService.translateAsync(this.vm.scopeDescription(), { scope: 'settings' });\n }\n else {\n return this.translateService.translateAsync('search.description', { scope: 'settings' })\n }\n }\n\n override async getBackButton(): Promise<AXPBackButton | null> {\n if (this.vm.activateGroup()) {\n return {\n title: await this.translateService.translateAsync(this.vm.scopeTitle(), { scope: 'settings' }),\n };\n }\n return null;\n }\n\n override onBackButtonClick(): void | Promise<void> {\n const app = this.sessionService.application?.name;\n const scope = resolvePlatformScopeName(this.vm.scope());\n //\n this.router.navigate([app, 'settings', scope]);\n }\n\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'restore-defaults':\n await this.vm.resetToDefault();\n break;\n }\n }\n\n //#endregion\n}\n","<axp-page-layout *translate=\"let t\">\n @if(vm.showGroups()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t(vm.scopeTitle(), { scope: 'settings' }) | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('search.placeholder', { scope: 'settings' }) | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </axp-layout-toolbar>\n </axp-layout-header>\n <axp-layout-content>\n <ax-tabs [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (item of vm.groups(); track $index) {\n <ax-tab-item\n [text]=\"item.title\"\n (onClick)=\"handleSelectGroup(item)\"\n [active]=\"vm.activateGroup() == item && !vm.isSearching()\"\n >\n <ax-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <axp-page-content id=\"ax-settings\">\n @if(vm.hasActivateGroup() || vm.isSearching()) {\n <router-outlet></router-outlet>\n } @else {\n <axp-layout-list>\n @for (item of vm.groups(); track $index) {\n <axp-layout-list-item (click)=\"handleSelectGroup(item)\">\n <axp-layout-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\" class=\"ax-text-gray-500\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <a class=\"ax-font-semibold\">{{ item.title | translate | async }}</a>\n </axp-layout-content>\n <axp-layout-suffix>\n <ax-icon icon=\" far fa-chevron-right\" class=\"ax-text-gray-400\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list>\n }\n </axp-page-content>\n\n @if(vm.isDirty()) {\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('discard') | async\"\n (onClick)=\"vm.discard()\"\n >\n </ax-button>\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [disabled]=\"vm.isBusy() || vm.isSaving()\"\n [text]=\"t('apply') | async\"\n (onClick)=\"vm.apply()\"\n [color]=\"'secondary'\"\n >\n @if(vm.isSaving()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n"],"names":["i3","i4","i5","i6","i7"],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- import { AXBadgeModule } from '@acorex/components/badge';
2
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
3
- import { AXButtonModule } from '@acorex/components/button';
4
- import { AXDecoratorModule } from '@acorex/components/decorators';
5
- import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
6
- import * as i2 from '@acorex/components/form';
7
- import { AXFormComponent, AXFormModule } from '@acorex/components/form';
8
- import { AXLoadingModule } from '@acorex/components/loading';
9
- import { AXSearchBoxModule } from '@acorex/components/search-box';
10
- import * as i4 from '@acorex/core/translation';
11
- import { AXTranslationModule } from '@acorex/core/translation';
12
- import { AXValidationModule } from '@acorex/core/validation';
13
- import { AXPGridLayoutDirective } from '@acorex/platform/common';
14
- import * as i8 from '@acorex/platform/layout/builder';
15
- import { AXPWidgetContainerComponent, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
16
- import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
17
- import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutSectionComponent } from '@acorex/platform/themes/shared';
18
- import * as i1 from '@angular/common';
19
- import { CommonModule } from '@angular/common';
20
- import * as i0 from '@angular/core';
21
- import { inject, Injector, viewChild, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
22
- import { FormsModule } from '@angular/forms';
23
-
24
- class AXPSettingsViewComponent {
25
- constructor() {
26
- this.vm = inject(AXPSettingsViewModel);
27
- this.injector = inject(Injector);
28
- this.layoutService = inject(AXPLayoutThemeService);
29
- this.form = viewChild(AXFormComponent);
30
- this.container = viewChild(AXPWidgetContainerComponent);
31
- this.defaultLayout = computed(() => {
32
- return {
33
- positions: {
34
- default: {
35
- colSpan: 12,
36
- },
37
- md: {
38
- colSpan: 8,
39
- },
40
- lg: {
41
- colSpan: 6,
42
- },
43
- xl: {
44
- colSpan: this.layoutService.isSideMenuOpen() ? 5 : 4,
45
- },
46
- xxl: {
47
- colSpan: 4,
48
- },
49
- },
50
- };
51
- });
52
- this.#effect1 = effect(() => {
53
- this.container()?.builderService.setStatus(this.vm.status());
54
- });
55
- }
56
- ngOnInit() {
57
- this.vm.registerForm(this.form());
58
- }
59
- #effect1;
60
- handleContextChanged(e) {
61
- if (e.state == 'initiated') {
62
- this.vm.updatePreviousContext(e.data);
63
- }
64
- else {
65
- this.vm.updateContext(e.data);
66
- }
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingsViewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, viewQueries: [{ propertyName: "form", first: true, predicate: AXFormComponent, descendants: true, isSignal: true }, { propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-form>\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChanged($event)\" *translate=\"let t\">\n @if(vm.isSearching() && vm.searchResults()!.length>0) {\n <!-- Search Result -->\n @for(group of vm.searchResults(); track group.name;let first=$first) {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold ax-py-3 ax-text-neutral-500\" [class.ax-pt-0]=\"first\">\n {{ group.title | translate | async }}\n </p>\n <axp-layout-sections>\n @for (section of group.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n } }\n <!-- Not Found -->\n @else if(vm.isSearching() && vm.searchResults()!.length===0) {\n <div class=\"ax-p-2\">\n <div\n class=\"ax-mt-3 ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-236px)] ax-items-center ax-p-10 ax-gap-10\">\n <p class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ t('search.not-found', { scope: 'settings' }) | async }}\n </p>\n </div>\n </div>\n }\n <!-- Group -->\n @else if(vm.activateGroup()?.sections) {\n <axp-layout-sections>\n @for(section of vm.activateGroup()?.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n }\n <ng-template #sectionTpl let-section=\"section\">\n <axp-layout-section>\n <axp-layout-header>\n <axp-layout-title>\n {{ section.title | translate | async }}\n </axp-layout-title>\n @if(section.description) {\n <axp-layout-description>\n {{ section.description | translate | async }}\n </axp-layout-description>\n }\n </axp-layout-header>\n <axp-layout-content>\n <!-- Settings Item -->\n @for(j of section.settings; track j.name){\n <div class=\"--item-container\" [class.!ax-hidden]=\"widget.options()['visibility'] == false\">\n <!-- Title and Description Section -->\n <div class=\"ax-col-span-12 md:ax-col-span-4 lg:ax-col-span-4 2xl:ax-col-span-3 \">\n @if(j.title) {\n <axp-layout-title>{{ j.title | translate | async }}</axp-layout-title>\n } @if(j.description) {\n <axp-layout-description>{{ j.description | translate | async }}</axp-layout-description>\n }\n </div>\n <ax-form-field class=\"ax-flex ax-w-full\" [gridLayout]=\"j.layout ?? defaultLayout()\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\" #widget=\"widgetRenderer\">\n </ng-container>\n </ax-form-field>\n </div>\n }\n </axp-layout-content>\n </axp-layout-section>\n </ng-template>\n </axp-widgets-container>\n</ax-form>", 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: "ngmodule", type:
70
- //
71
- AXDecoratorModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i4.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type:
72
- //
73
- AXPLayoutBuilderModule }, { kind: "component", type: i8.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i8.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer, axp-page-header, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-container, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutSectionComponent, selector: "axp-layout-section" }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, decorators: [{
76
- type: Component,
77
- args: [{ imports: [
78
- CommonModule,
79
- FormsModule,
80
- //
81
- AXDecoratorModule,
82
- AXBreadcrumbsModule,
83
- AXButtonModule,
84
- AXBadgeModule,
85
- AXTranslationModule,
86
- AXSearchBoxModule,
87
- AXDropdownButtonModule,
88
- AXLoadingModule,
89
- AXFormModule,
90
- AXValidationModule,
91
- //
92
- AXPLayoutBuilderModule,
93
- AXPThemeLayoutBlockComponent,
94
- AXPThemeLayoutHeaderComponent,
95
- AXPThemeLayoutSectionComponent,
96
- AXPGridLayoutDirective
97
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
98
- class: 'ax-w-full',
99
- }, template: "<ax-form>\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChanged($event)\" *translate=\"let t\">\n @if(vm.isSearching() && vm.searchResults()!.length>0) {\n <!-- Search Result -->\n @for(group of vm.searchResults(); track group.name;let first=$first) {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold ax-py-3 ax-text-neutral-500\" [class.ax-pt-0]=\"first\">\n {{ group.title | translate | async }}\n </p>\n <axp-layout-sections>\n @for (section of group.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n } }\n <!-- Not Found -->\n @else if(vm.isSearching() && vm.searchResults()!.length===0) {\n <div class=\"ax-p-2\">\n <div\n class=\"ax-mt-3 ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-236px)] ax-items-center ax-p-10 ax-gap-10\">\n <p class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ t('search.not-found', { scope: 'settings' }) | async }}\n </p>\n </div>\n </div>\n }\n <!-- Group -->\n @else if(vm.activateGroup()?.sections) {\n <axp-layout-sections>\n @for(section of vm.activateGroup()?.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n }\n <ng-template #sectionTpl let-section=\"section\">\n <axp-layout-section>\n <axp-layout-header>\n <axp-layout-title>\n {{ section.title | translate | async }}\n </axp-layout-title>\n @if(section.description) {\n <axp-layout-description>\n {{ section.description | translate | async }}\n </axp-layout-description>\n }\n </axp-layout-header>\n <axp-layout-content>\n <!-- Settings Item -->\n @for(j of section.settings; track j.name){\n <div class=\"--item-container\" [class.!ax-hidden]=\"widget.options()['visibility'] == false\">\n <!-- Title and Description Section -->\n <div class=\"ax-col-span-12 md:ax-col-span-4 lg:ax-col-span-4 2xl:ax-col-span-3 \">\n @if(j.title) {\n <axp-layout-title>{{ j.title | translate | async }}</axp-layout-title>\n } @if(j.description) {\n <axp-layout-description>{{ j.description | translate | async }}</axp-layout-description>\n }\n </div>\n <ax-form-field class=\"ax-flex ax-w-full\" [gridLayout]=\"j.layout ?? defaultLayout()\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\" #widget=\"widgetRenderer\">\n </ng-container>\n </ax-form-field>\n </div>\n }\n </axp-layout-content>\n </axp-layout-section>\n </ng-template>\n </axp-widgets-container>\n</ax-form>" }]
100
- }] });
101
-
102
- export { AXPSettingsViewComponent };
103
- //# sourceMappingURL=acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-setting-view.component-CjmlI9Jb.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/setting-layout/setting-view/setting-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/setting-layout/setting-view/setting-view.component.html"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPLayoutContextChangeEvent, AXPWidgetContainerComponent } from '@acorex/platform/layout/builder';\nimport { AXPSettingsViewModel } from '@acorex/platform/layout/setting';\nimport {\n AXPLayoutThemeService,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutSectionComponent,\n} from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n Injector,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n templateUrl: 'setting-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n //\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXButtonModule,\n AXBadgeModule,\n AXTranslationModule,\n AXSearchBoxModule,\n AXDropdownButtonModule,\n AXLoadingModule,\n AXFormModule,\n AXValidationModule,\n //\n AXPLayoutBuilderModule,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutSectionComponent,\n AXPGridLayoutDirective\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPSettingsViewComponent {\n protected vm = inject(AXPSettingsViewModel);\n protected injector = inject(Injector);\n protected layoutService = inject(AXPLayoutThemeService);\n private form = viewChild(AXFormComponent);\n private container = viewChild(AXPWidgetContainerComponent);\n\n protected defaultLayout = computed(() => {\n return {\n positions: {\n default: {\n colSpan: 12,\n },\n md: {\n colSpan: 8,\n },\n lg: {\n colSpan: 6,\n },\n xl: {\n colSpan: this.layoutService.isSideMenuOpen() ? 5 : 4,\n },\n xxl: {\n colSpan: 4,\n },\n },\n };\n });\n\n ngOnInit(): void {\n this.vm.registerForm(this.form()!);\n }\n\n #effect1 = effect(() => {\n this.container()?.builderService.setStatus(this.vm.status());\n });\n\n\n protected handleContextChanged(e: AXPLayoutContextChangeEvent) {\n if (e.state == 'initiated') {\n this.vm.updatePreviousContext(e.data);\n } else {\n this.vm.updateContext(e.data);\n }\n }\n}\n","<ax-form>\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChanged($event)\" *translate=\"let t\">\n @if(vm.isSearching() && vm.searchResults()!.length>0) {\n <!-- Search Result -->\n @for(group of vm.searchResults(); track group.name;let first=$first) {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold ax-py-3 ax-text-neutral-500\" [class.ax-pt-0]=\"first\">\n {{ group.title | translate | async }}\n </p>\n <axp-layout-sections>\n @for (section of group.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n } }\n <!-- Not Found -->\n @else if(vm.isSearching() && vm.searchResults()!.length===0) {\n <div class=\"ax-p-2\">\n <div\n class=\"ax-mt-3 ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-236px)] ax-items-center ax-p-10 ax-gap-10\">\n <p class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ t('search.not-found', { scope: 'settings' }) | async }}\n </p>\n </div>\n </div>\n }\n <!-- Group -->\n @else if(vm.activateGroup()?.sections) {\n <axp-layout-sections>\n @for(section of vm.activateGroup()?.sections; track section.name) {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n </axp-layout-sections>\n }\n <ng-template #sectionTpl let-section=\"section\">\n <axp-layout-section>\n <axp-layout-header>\n <axp-layout-title>\n {{ section.title | translate | async }}\n </axp-layout-title>\n @if(section.description) {\n <axp-layout-description>\n {{ section.description | translate | async }}\n </axp-layout-description>\n }\n </axp-layout-header>\n <axp-layout-content>\n <!-- Settings Item -->\n @for(j of section.settings; track j.name){\n <div class=\"--item-container\" [class.!ax-hidden]=\"widget.options()['visibility'] == false\">\n <!-- Title and Description Section -->\n <div class=\"ax-col-span-12 md:ax-col-span-4 lg:ax-col-span-4 2xl:ax-col-span-3 \">\n @if(j.title) {\n <axp-layout-title>{{ j.title | translate | async }}</axp-layout-title>\n } @if(j.description) {\n <axp-layout-description>{{ j.description | translate | async }}</axp-layout-description>\n }\n </div>\n <ax-form-field class=\"ax-flex ax-w-full\" [gridLayout]=\"j.layout ?? defaultLayout()\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\" #widget=\"widgetRenderer\">\n </ng-container>\n </ax-form-field>\n </div>\n }\n </axp-layout-content>\n </axp-layout-section>\n </ng-template>\n </axp-widgets-container>\n</ax-form>"],"names":["i2"],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- import { AXPActionMenuItem, AXPLayoutFlexStyles } from "@acorex/platform/core";
2
- import { AXPWidgetNode } from "./widget.types";
3
- export type AXPLayoutViewKind = 'form-view' | 'list-view' | 'detail-view' | 'editor-view' | 'prompt-view' | 'wizard-view' | 'alert-view' | 'custom-view';
4
- export type AXPLayoutDisplayType = 'page' | 'modal' | 'drawer' | 'popup';
5
- export interface AXPLayoutViewHeader {
6
- title: string;
7
- description?: string;
8
- icon?: string;
9
- }
10
- export interface AXPLayoutView<T extends AXPPageOptions | AXPModalOptions = AXPPageOptions> {
11
- id?: string;
12
- kind: AXPLayoutViewKind;
13
- display: AXPLayoutDisplayType;
14
- header: AXPLayoutViewHeader;
15
- options: T;
16
- actions?: {
17
- primary?: AXPActionMenuItem[];
18
- secondary?: AXPActionMenuItem[];
19
- tertiary?: AXPActionMenuItem[];
20
- };
21
- blocks: AXPViewBlock[];
22
- }
23
- export interface AXPPageOptions {
24
- }
25
- export interface AXPModalOptions extends AXPPageOptions {
26
- size?: 'sm' | 'md' | 'lg';
27
- dismissible?: boolean;
28
- closeButton?: boolean;
29
- backdrop?: boolean;
30
- draggable?: boolean;
31
- resizable?: boolean;
32
- }
33
- export type AXPViewElement = AXPWidgetNode;
34
- export type AXPViewBlock = AXPBlockBlock | AXPGroupBlock | AXPFormFieldBlock | AXPTabsBlock;
35
- export interface AXPBlockBlock {
36
- type: 'block-layout';
37
- options?: AXPViewBlockOptions;
38
- children?: (AXPViewBlock | AXPViewElement)[];
39
- }
40
- export interface AXPGroupBlock {
41
- type: 'group-layout';
42
- options?: AXPViewGroupOptions;
43
- children?: (AXPViewBlock | AXPViewElement)[];
44
- }
45
- export interface AXPFormFieldBlock {
46
- type: 'form-field';
47
- options?: AXPViewFormFieldOptions;
48
- children?: AXPViewElement[];
49
- }
50
- export interface AXPTabsBlock {
51
- type: 'tabs-layout';
52
- options: AXPViewTabsOptions;
53
- children: AXPViewTab[];
54
- }
55
- export interface AXPWizardBlock {
56
- type: 'wizard-layout';
57
- options?: AXPViewWizardOptions;
58
- children: AXPViewStep[];
59
- }
60
- export interface AXPViewBlockOptions {
61
- flex?: AXPLayoutFlexStyles;
62
- }
63
- export interface AXPViewGroupOptions {
64
- title?: string;
65
- description?: string;
66
- icon?: string;
67
- }
68
- export interface AXPViewFormFieldOptions {
69
- label?: string;
70
- description?: string;
71
- icon?: string;
72
- }
73
- export interface AXPViewTabsOptions {
74
- }
75
- export interface AXPViewTab {
76
- id: string;
77
- title: string;
78
- description?: string;
79
- icon?: string;
80
- children: (AXPViewBlock | AXPViewElement)[];
81
- }
82
- export interface AXPViewWizardOptions {
83
- linear?: boolean;
84
- stepNavigation?: boolean;
85
- summerize?: boolean;
86
- showStepNumber?: boolean;
87
- }
88
- export interface AXPViewStep {
89
- id: string;
90
- title: string;
91
- description?: string;
92
- icon?: string;
93
- children: (AXPViewBlock | AXPViewElement)[];
94
- }
@@ -1,3 +0,0 @@
1
- # @acorex/platform/layout/global-search
2
-
3
- Secondary entry point of `@acorex/platform`. It can be used by importing from `@acorex/platform/layout/global-search`.
@@ -1 +0,0 @@
1
- export * from './lib/index';
@@ -1,3 +0,0 @@
1
- export * from './search.config';
2
- export * from './search.module';
3
- export * from './search.viewmodel';
@@ -1,9 +0,0 @@
1
- import { AXPWorkflowService } from '@acorex/platform/workflow';
2
- import * as i0 from "@angular/core";
3
- export declare class AXPGlobalSearchSlotComponent {
4
- protected workflow: AXPWorkflowService;
5
- protected startSearch(): Promise<void>;
6
- private handleKeyboardEvent;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchSlotComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPGlobalSearchSlotComponent, "ng-component", never, {}, {}, never, never, true, never>;
9
- }
@@ -1,5 +0,0 @@
1
- import { InjectionToken, Type } from "@angular/core";
2
- export interface AXPGlobalSearchConfigs {
3
- window: () => Type<any>;
4
- }
5
- export declare const AXP_GLOBAL_SEARCH_CONFIG_TOKEN: InjectionToken<AXPGlobalSearchConfigs>;
@@ -1,11 +0,0 @@
1
- import { Injector } from '@angular/core';
2
- import { AXPAppStartUpService } from '@acorex/platform/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@acorex/platform/common";
5
- import * as i2 from "@acorex/platform/workflow";
6
- export declare class AXPGlobalSearchModule {
7
- constructor(appInitService: AXPAppStartUpService, injector: Injector);
8
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXPGlobalSearchModule, never, [typeof i1.AXPComponentSlotModule, typeof i2.AXPWorkflowModule], never>;
10
- static ɵinj: i0.ɵɵInjectorDeclaration<AXPGlobalSearchModule>;
11
- }
@@ -1,34 +0,0 @@
1
- import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult } from "@acorex/platform/common";
2
- import { Subject } from "rxjs";
3
- export declare class AXPGlobalSearchViewModel {
4
- private settingKeys;
5
- private searchService;
6
- private settingService;
7
- private _text;
8
- text: import("@angular/core").Signal<string | null>;
9
- private _results;
10
- results: import("@angular/core").Signal<AXPSearchDisplayGroupResult[]>;
11
- private _isBusy;
12
- isBusy: import("@angular/core").Signal<boolean>;
13
- isEmpty: import("@angular/core").Signal<boolean | "" | null>;
14
- isValid: import("@angular/core").Signal<boolean>;
15
- isStart: import("@angular/core").Signal<boolean>;
16
- isWelcome: import("@angular/core").Signal<boolean>;
17
- private _recentItems;
18
- private _pinnedItems;
19
- pinnedItems: import("@angular/core").Signal<AXPSearchDisplayResult[]>;
20
- recentItems: import("@angular/core").Signal<AXPSearchDisplayResult[]>;
21
- readonly onItemSelected: Subject<AXPSearchDisplayResult>;
22
- constructor();
23
- search(text: string): Promise<void>;
24
- execute(item: AXPSearchDisplayResult): Promise<void>;
25
- pin(item: AXPSearchDisplayResult): Promise<void>;
26
- unpin(item: AXPSearchDisplayResult): Promise<void>;
27
- togglePin(item: AXPSearchDisplayResult): Promise<void>;
28
- isPinned(item: AXPSearchDisplayResult): boolean;
29
- private updateSelectionHistory;
30
- private getTopRecentItems;
31
- clearRecentItems(): Promise<void>;
32
- private loadSettings;
33
- private saveSettings;
34
- }
@@ -1,11 +0,0 @@
1
- import { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';
2
- import * as i0 from "@angular/core";
3
- export declare class AXPGlobalSearchStartAction extends AXPWorkflowAction {
4
- private popupService;
5
- private workflow;
6
- private config;
7
- execute(context: AXPWorkflowContext): Promise<void>;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalSearchStartAction, never>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPGlobalSearchStartAction>;
10
- }
11
- export declare const AXPGlobalSearchWorkflow: AXPWorkflow;