@acorex/platform 19.2.19 → 19.3.0-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.
- package/common/index.d.ts +1 -0
- package/common/lib/app/application.types.d.ts +13 -3
- package/common/lib/file-storage/file-storage.types.d.ts +20 -12
- package/common/lib/filters/filters.types.d.ts +5 -0
- package/common/lib/layout/menu/badge-helper.d.ts +7 -0
- package/common/lib/layout/menu/index.d.ts +1 -0
- package/common/lib/layout/menu/menu.types.d.ts +1 -0
- package/common/lib/layout/task-badge/index.d.ts +2 -0
- package/common/lib/layout/task-badge/task-badge.service.d.ts +11 -0
- package/common/lib/layout/task-badge/task-badge.type.d.ts +6 -0
- package/common/lib/settings/setting-definition.provider.d.ts +7 -5
- package/common/lib/settings/setting.builder.d.ts +8 -5
- package/common/lib/settings/settings.service.d.ts +6 -5
- package/common/lib/settings/settings.types.d.ts +6 -10
- package/core/lib/data/index.d.ts +1 -0
- package/core/lib/data/value-transformer.d.ts +6 -0
- package/core/lib/types/core.types.d.ts +18 -0
- package/{layout/entity/lib → core/lib/types}/data.types.d.ts +3 -1
- package/core/lib/types/element.types.d.ts +6 -0
- package/core/lib/types/index.d.ts +6 -0
- package/core/lib/types/interactive.types.d.ts +44 -0
- package/core/lib/types/scope.types.d.ts +10 -0
- package/core/lib/types/validation.types.d.ts +7 -0
- package/core/lib/utils/index.d.ts +1 -0
- package/core/lib/utils/object-util.d.ts +3 -0
- package/fesm2022/acorex-platform-common.mjs +79 -35
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +151 -6
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +44 -55
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +77 -35
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +243 -415
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-search.mjs +7 -26
- package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-setting.mjs +211 -278
- package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs → acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs} +4 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs +741 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs +91 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs +164 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs → acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs} +9 -9
- package/fesm2022/{acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs.map → acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs +219 -0
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs +103 -0
- package/fesm2022/acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +237 -73
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs +168 -0
- package/fesm2022/acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +502 -322
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +4109 -1487
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/builder/lib/builder/builder.service.d.ts +1 -1
- package/layout/builder/lib/builder/index.d.ts +2 -1
- package/layout/builder/lib/builder/widget-categories.d.ts +10 -0
- package/layout/builder/lib/builder/widget-group.types.d.ts +10 -0
- package/layout/builder/lib/builder/widget-map.d.ts +8 -1
- package/layout/builder/lib/builder/widget-status.types.d.ts +2 -0
- package/layout/builder/lib/builder/widget.types.d.ts +11 -27
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +7 -3
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.service.d.ts +12 -0
- package/layout/designer/lib/designer/index.d.ts +1 -0
- package/layout/designer/lib/designer/shared/designer.service.d.ts +1 -0
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -1
- package/layout/entity/lib/entity-data-seeder.d.ts +2 -2
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +4 -7
- package/layout/entity/lib/entity-storage-service.d.ts +39 -55
- package/layout/entity/lib/entity.types.d.ts +21 -0
- package/layout/entity/lib/index.d.ts +1 -2
- package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +4 -0
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +7 -9
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +5 -2
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +11 -3
- package/layout/search/lib/search.viewmodel.d.ts +0 -2
- package/layout/setting/lib/setting.viewmodel.d.ts +45 -111
- package/package.json +1 -1
- package/themes/default/lib/layouts/base/base-page.component.d.ts +39 -13
- package/themes/default/lib/layouts/base/base-page.types.d.ts +15 -3
- package/themes/default/lib/layouts/base/index.d.ts +1 -0
- package/themes/default/lib/layouts/base/page-layout/index.d.ts +1 -0
- package/themes/default/lib/{pages/theme-palette-preview/theme-palette-preview.page.d.ts → layouts/base/page-layout/page-layout.component.d.ts} +13 -26
- package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +2 -2
- package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +16 -0
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +2 -2
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +10 -8
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +12 -4
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +7 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.d.ts +48 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +12 -0
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +2 -2
- package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +9 -3
- package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +7 -1
- package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +2 -2
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -2
- package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +2 -2
- package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +61 -5
- package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +68 -6
- package/themes/shared/index.d.ts +1 -1
- package/themes/shared/lib/components/badge/badge.directive.d.ts +14 -0
- package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +4 -1
- package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +2 -2
- package/themes/shared/lib/components/slots/theme-slot.component.d.ts +2 -2
- package/themes/shared/lib/palette.provider.d.ts +1 -1
- package/themes/shared/lib/setting.keys.d.ts +2 -1
- package/themes/shared/lib/setting.provider.d.ts +4 -1
- package/themes/shared/lib/theme.service.d.ts +2 -2
- package/themes/shared/lib/theme.types.d.ts +11 -2
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +10 -0
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.config.d.ts +7 -0
- package/themes/shared/lib/widgets/font-size-chooser/index.d.ts +2 -0
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +15 -0
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.config.d.ts +7 -0
- package/themes/shared/lib/widgets/font-style-chooser/index.d.ts +2 -0
- package/themes/shared/lib/widgets/menu-orientation-chooser/index.d.ts +2 -0
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +15 -0
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.config.d.ts +7 -0
- package/themes/shared/lib/widgets/theme-mode-chooser/index.d.ts +2 -0
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +16 -0
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.config.d.ts +7 -0
- package/themes/shared/lib/widgets/theme-palette-chooser/index.d.ts +2 -0
- package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +13 -0
- package/themes/shared/lib/widgets/{theme-color-selection/theme-color-selection-widget.config.d.ts → theme-palette-chooser/theme-palette-chooser-widget.config.d.ts} +2 -2
- package/widgets/lib/properties/groups.d.ts +2 -0
- package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +5 -5
- package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +52 -0
- package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +29 -11
- package/widgets/lib/widgets/charts/bar-chart/index.d.ts +1 -1
- package/widgets/lib/widgets/charts/chart.type.d.ts +3 -0
- package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.component.d.ts +40 -0
- package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/charts/clock-calendar/clock-calendar.types.d.ts +50 -0
- package/widgets/lib/widgets/charts/clock-calendar/index.d.ts +3 -0
- package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.component.d.ts +54 -0
- package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +31 -21
- package/widgets/lib/widgets/charts/donut-chart/index.d.ts +1 -1
- package/widgets/lib/widgets/charts/gauge-chart/{gauge-chart-widget-edit.component.d.ts → gauge-chart-widget.component.d.ts} +3 -3
- package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +26 -11
- package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +2 -1
- package/widgets/lib/widgets/charts/shared/chart-base.component.d.ts +44 -0
- package/widgets/lib/widgets/charts/shared/chart-base.type.d.ts +37 -0
- package/widgets/lib/widgets/charts/sticky-note/index.d.ts +1 -1
- package/widgets/lib/widgets/charts/sticky-note/{sticky-note-widget-edit.component.d.ts → sticky-note-widget.component.d.ts} +3 -3
- package/widgets/lib/widgets/charts/weather/index.d.ts +4 -0
- package/widgets/lib/widgets/charts/weather/weather-services/index.d.ts +3 -0
- package/widgets/lib/widgets/charts/weather/weather-services/weather-api.abstract.d.ts +174 -0
- package/widgets/lib/widgets/charts/weather/weather-services/weather-api.key.d.ts +2 -0
- package/widgets/lib/widgets/charts/weather/weather-services/weather-api.mock.service.d.ts +47 -0
- package/widgets/lib/widgets/charts/weather/weather-services/weather-api.service.d.ts +48 -0
- package/widgets/lib/widgets/charts/weather/weather-widget.component.d.ts +109 -0
- package/widgets/lib/widgets/charts/weather/weather-widget.config.d.ts +14 -0
- package/widgets/lib/widgets/charts/weather/weather.module.d.ts +11 -0
- package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +0 -1
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +4 -1
- package/widgets/lib/widgets/editors/template-box/index.d.ts +6 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +10 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +29 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +6 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +10 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +11 -0
- package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +7 -0
- package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +2 -5
- package/widgets/lib/widgets/index.d.ts +3 -0
- package/core/lib/types.d.ts +0 -57
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs +0 -400
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs +0 -91
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs +0 -135
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs +0 -74
- package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs +0 -73
- package/fesm2022/acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs +0 -146
- package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs.map +0 -1
- package/layout/builder/lib/builder/widget-groups.d.ts +0 -9
- package/layout/entity/lib/dexie-storage.service.d.ts +0 -16
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.d.ts +0 -6
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.d.ts +0 -6
- package/themes/default/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.d.ts +0 -13
- package/themes/shared/lib/components/drawer/drawer.directive.d.ts +0 -22
- package/themes/shared/lib/components/drawer/index.d.ts +0 -1
- package/themes/shared/lib/widgets/theme-color-selection/index.d.ts +0 -2
- package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget-edit.component.d.ts +0 -6
- package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +0 -40
- package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget-edit.component.d.ts +0 -44
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, HostListener, Component, Injectable, NgModule, signal, computed } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@acorex/platform/common';
|
|
4
|
-
import { AXPComponentSlotModule, AXPSearchService, AXPSettingService
|
|
4
|
+
import { AXPComponentSlotModule, AXPSearchService, AXPSettingService } from '@acorex/platform/common';
|
|
5
5
|
import * as i2$1 from '@acorex/platform/workflow';
|
|
6
6
|
import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
7
7
|
import * as i2 from '@acorex/components/button';
|
|
@@ -14,6 +14,7 @@ import * as i4 from '@acorex/core/translation';
|
|
|
14
14
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
15
15
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
16
16
|
import { AXPopupService } from '@acorex/components/popup';
|
|
17
|
+
import { AXPPlatformScope } from '@acorex/platform/core';
|
|
17
18
|
import { Subject } from 'rxjs';
|
|
18
19
|
|
|
19
20
|
const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');
|
|
@@ -247,45 +248,25 @@ class AXPGlobalSearchViewModel {
|
|
|
247
248
|
}
|
|
248
249
|
async clearRecentItems() {
|
|
249
250
|
this._recentItems.set([]);
|
|
250
|
-
await this.settingService.scope(
|
|
251
|
+
await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, []);
|
|
251
252
|
}
|
|
252
253
|
async loadSettings() {
|
|
253
254
|
// Load recent selections
|
|
254
255
|
const recent = await this.settingService.get(this.settingKeys.recent);
|
|
255
256
|
if (recent) {
|
|
256
|
-
this._recentItems.set(recent.slice(0, 5)
|
|
257
|
+
this._recentItems.set(recent.slice(0, 5));
|
|
257
258
|
}
|
|
258
259
|
// Load pinned items
|
|
259
260
|
const pinned = await this.settingService.get(this.settingKeys.pinned);
|
|
260
261
|
if (pinned) {
|
|
261
|
-
this._pinnedItems.set(pinned.slice(0, 5)
|
|
262
|
+
this._pinnedItems.set(pinned.slice(0, 5));
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
265
|
async saveSettings() {
|
|
265
266
|
// Save recent selections
|
|
266
|
-
await this.settingService.scope(
|
|
267
|
+
await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5));
|
|
267
268
|
// Save pinned items
|
|
268
|
-
await this.settingService.scope(
|
|
269
|
-
}
|
|
270
|
-
convertItemForSave(item) {
|
|
271
|
-
return {
|
|
272
|
-
id: item.id,
|
|
273
|
-
name: item.name,
|
|
274
|
-
title: item.title,
|
|
275
|
-
description: item.description,
|
|
276
|
-
icon: item.icon,
|
|
277
|
-
command: item.command,
|
|
278
|
-
parent: item.parent ? {
|
|
279
|
-
title: item.parent.title,
|
|
280
|
-
} : undefined
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
convertItemForLoad(item) {
|
|
284
|
-
return {
|
|
285
|
-
...item,
|
|
286
|
-
command: item.command,
|
|
287
|
-
actions: []
|
|
288
|
-
};
|
|
269
|
+
await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5));
|
|
289
270
|
}
|
|
290
271
|
}
|
|
291
272
|
|
|
@@ -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';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\n\n@Component({\n template: `\n <ax-button color=\"primary\" class=\"ax-flex md:ax-hidden\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n <div class=\"ax-bg-primary-200/15 ax-h-10 ax-w-72 ax-rounded-default ax-cursor-pointer ax-justify-between ax-hidden md:ax-flex ax-items-center ax-px-3 hover:ax-bg-primary-200/30 ax-text-primary-text\" (click)=\"startSearch()\" *translate=\"let t\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <i class=\"fa-light fa-search ax-text-xl\"></i>\n <span>{{ t('search-placeholder',{scope:'global-search'}) | async}}</span>\n </div>\n <kbd class=\"ax-text-sm\">Ctrl+K</kbd>\n </div>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule]\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) {\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';\nimport { AXPSearchDisplayResult } from '@acorex/platform/common';\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 popup = 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 (popup.data) {\n const result = popup.data as AXPSearchDisplayResult;\n if (result && result.command) {\n this.workflow.execute(result.command?.name, result.command?.options);\n }\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-start': [\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, AXPSearchDisplayResultForSave, AXPSearchService, AXPSettingScope, AXPSettingService } from \"@acorex/platform/common\";\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private settingKeys = {\n recent: \"global-search:recents:items\",\n pinned: \"global-search:pinned:items\"\n }\n\n private searchService = inject(AXPSearchService);\n private settingService = inject(AXPSettingService);\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.isEmpty() && this.results().length == 0);\n\n public isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0);\n\n private _recentItems = signal<AXPSearchDisplayResult[]>([]);\n private _pinnedItems = signal<AXPSearchDisplayResult[]>([]);\n public pinnedItems = this._pinnedItems.asReadonly();\n public recentItems = computed(() => this.getTopRecentItems());\n\n public readonly onItemSelected = new Subject<AXPSearchDisplayResult>();\n\n constructor() {\n this.loadSettings();\n }\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 } else {\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n\n this._isBusy.set(false);\n }\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemSelected.next(item);\n await this.updateSelectionHistory(item);\n }\n\n public async pin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n if (!currentPinned.some(i => i.id === item.id)) {\n this._pinnedItems.set([item, ...currentPinned].slice(0, 5));\n await this.saveSettings();\n }\n }\n\n public async unpin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n this._pinnedItems.set(currentPinned.filter(i => i.id !== item.id));\n await this.saveSettings();\n }\n\n public async togglePin(item: AXPSearchDisplayResult): Promise<void> {\n if (this.isPinned(item)) {\n await this.unpin(item);\n } else {\n await this.pin(item);\n }\n }\n\n public isPinned(item: AXPSearchDisplayResult): boolean {\n const currentPinned = this._pinnedItems();\n return currentPinned.some(i => i.id === item.id);\n }\n\n private async updateSelectionHistory(item: AXPSearchDisplayResult): Promise<void> {\n // Update recent selections\n const currentHistory = this._recentItems();\n const updatedHistory = [item, ...currentHistory.filter(i => i.id !== item.id)].slice(0, 5);\n this._recentItems.set(updatedHistory);\n\n // Save updated settings\n await this.saveSettings();\n }\n\n private getTopRecentItems(): AXPSearchDisplayResult[] {\n const pinnedIds = new Set(this._pinnedItems().map(item => item.id));\n return this._recentItems().filter(item => !pinnedIds.has(item.id)).slice(0, 5);\n }\n\n public async clearRecentItems() {\n this._recentItems.set([]);\n await this.settingService.scope(AXPSettingScope.User).set(this.settingKeys.recent, []);\n }\n\n private async loadSettings(): Promise<void> {\n // Load recent selections\n const recent = await this.settingService.get<AXPSearchDisplayResult[]>(this.settingKeys.recent);\n if (recent) {\n this._recentItems.set(recent.slice(0, 5).map(this.convertItemForLoad));\n }\n\n // Load pinned items\n const pinned = await this.settingService.get<AXPSearchDisplayResult[]>(this.settingKeys.pinned);\n if (pinned) {\n this._pinnedItems.set(pinned.slice(0, 5).map(this.convertItemForLoad));\n }\n }\n\n private async saveSettings(): Promise<void> {\n\n // Save recent selections\n await this.settingService.scope(AXPSettingScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5).map(this.convertItemForSave));\n\n // Save pinned items\n await this.settingService.scope(AXPSettingScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5).map(this.convertItemForSave));\n }\n\n\n private convertItemForSave(item: AXPSearchDisplayResult): AXPSearchDisplayResultForSave {\n return {\n id: item.id,\n name: item.name,\n title: item.title,\n description: item.description,\n icon: item.icon,\n command: item.command,\n parent: item.parent ? {\n title: item.parent.title,\n } : undefined\n }\n }\n\n private convertItemForLoad(item: AXPSearchDisplayResultForSave): AXPSearchDisplayResult {\n return {\n ...item,\n command: item.command,\n actions: []\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
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';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\n\n@Component({\n template: `\n <ax-button color=\"primary\" class=\"ax-flex md:ax-hidden\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n <div class=\"ax-bg-primary-200/15 ax-h-10 ax-w-72 ax-rounded-default ax-cursor-pointer ax-justify-between ax-hidden md:ax-flex ax-items-center ax-px-3 hover:ax-bg-primary-200/30 ax-text-primary-text\" (click)=\"startSearch()\" *translate=\"let t\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <i class=\"fa-light fa-search ax-text-xl\"></i>\n <span>{{ t('search-placeholder',{scope:'global-search'}) | async}}</span>\n </div>\n <kbd class=\"ax-text-sm\">Ctrl+K</kbd>\n </div>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule]\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) {\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';\nimport { AXPSearchDisplayResult } from '@acorex/platform/common';\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 popup = 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 (popup.data) {\n const result = popup.data as AXPSearchDisplayResult;\n if (result && result.command) {\n this.workflow.execute(result.command?.name, result.command?.options);\n }\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-start': [\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, AXPSettingService } from \"@acorex/platform/common\";\nimport { AXPPlatformScope } from \"@acorex/platform/core\";\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private settingKeys = {\n recent: \"global-search:recents:items\",\n pinned: \"global-search:pinned:items\"\n }\n\n private searchService = inject(AXPSearchService);\n private settingService = inject(AXPSettingService);\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.isEmpty() && this.results().length == 0);\n\n public isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0);\n\n private _recentItems = signal<AXPSearchDisplayResult[]>([]);\n private _pinnedItems = signal<AXPSearchDisplayResult[]>([]);\n public pinnedItems = this._pinnedItems.asReadonly();\n public recentItems = computed(() => this.getTopRecentItems());\n\n public readonly onItemSelected = new Subject<AXPSearchDisplayResult>();\n\n constructor() {\n this.loadSettings();\n }\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 } else {\n await new Promise((resolve) => setTimeout(resolve, 250));\n\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n\n this._isBusy.set(false);\n }\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemSelected.next(item);\n await this.updateSelectionHistory(item);\n }\n\n public async pin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n if (!currentPinned.some(i => i.id === item.id)) {\n this._pinnedItems.set([item, ...currentPinned].slice(0, 5));\n await this.saveSettings();\n }\n }\n\n public async unpin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n this._pinnedItems.set(currentPinned.filter(i => i.id !== item.id));\n await this.saveSettings();\n }\n\n public async togglePin(item: AXPSearchDisplayResult): Promise<void> {\n if (this.isPinned(item)) {\n await this.unpin(item);\n } else {\n await this.pin(item);\n }\n }\n\n public isPinned(item: AXPSearchDisplayResult): boolean {\n const currentPinned = this._pinnedItems();\n return currentPinned.some(i => i.id === item.id);\n }\n\n private async updateSelectionHistory(item: AXPSearchDisplayResult): Promise<void> {\n // Update recent selections\n const currentHistory = this._recentItems();\n const updatedHistory = [item, ...currentHistory.filter(i => i.id !== item.id)].slice(0, 5);\n this._recentItems.set(updatedHistory);\n\n // Save updated settings\n await this.saveSettings();\n }\n\n private getTopRecentItems(): AXPSearchDisplayResult[] {\n const pinnedIds = new Set(this._pinnedItems().map(item => item.id));\n return this._recentItems().filter(item => !pinnedIds.has(item.id)).slice(0, 5);\n }\n\n public async clearRecentItems() {\n this._recentItems.set([]);\n await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, []);\n }\n\n private async loadSettings(): Promise<void> {\n // Load recent selections\n const recent = await this.settingService.get<AXPSearchDisplayResult[]>(this.settingKeys.recent);\n if (recent) {\n this._recentItems.set(recent.slice(0, 5));\n }\n\n // Load pinned items\n const pinned = await this.settingService.get<AXPSearchDisplayResult[]>(this.settingKeys.pinned);\n if (pinned) {\n this._pinnedItems.set(pinned.slice(0, 5));\n }\n }\n\n private async saveSettings(): Promise<void> {\n // Save recent selections\n await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5));\n\n // Save pinned items\n await this.settingService.scope(AXPPlatformScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5));\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;;MCkB5G,4BAA4B,CAAA;AAhBzC,IAAA,WAAA,GAAA;AAkBY,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,EAAE;AACjB,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,EAf7B,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;;;;;;;;;;;;GAYT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mFAAE,cAAc,EAAA,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,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAE,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,UAAA,EAAA,IAAA,EAAA,mBAAmB,8GAAE,eAAe,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEpF,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAhBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe;AAChG,iBAAA;8BAUe,mBAAmB,EAAA,CAAA;sBADhC,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;ACzBxC,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;AADjE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACrC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAoBxD;IAlBU,MAAM,OAAO,CAAC,OAA2B,EAAA;QAChD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE;AACpD,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,oBAAoB,EAAE,IAAI;AAC1B,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAClC,aAAA;AACD,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC;AACF,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAA8B;AACnD,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC5B,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;;;;8GAnB/D,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;;AA0BM,MAAM,uBAAuB,GAAgB;AAClD,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,4BAA4B;AACrC,SAAA;AACF,KAAA;CACF;;MCRY,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,cAAc,EAAE;AACd,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,cAAc,EAAE;AACd,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;;;MCzBY,wBAAwB,CAAA;AAkCjC,IAAA,WAAA,GAAA;AAhCQ,QAAA,IAAA,CAAA,WAAW,GAAG;AAClB,YAAA,MAAM,EAAE,6BAA6B;AACrC,YAAA,MAAM,EAAE;SACX;AAEO,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAE1C,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;AAEnE,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AAEvE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AAE7G,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA2B,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA2B,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;QAC5C,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAA0B;QAGlE,IAAI,CAAC,YAAY,EAAE;;IAGhB,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,OAAO,EAAE,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;;aAClB;AACH,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAExD,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;;IAGpB,MAAM,OAAO,CAAC,IAA4B,EAAA;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;;IAGpC,MAAM,GAAG,CAAC,IAA4B,EAAA;AACzC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;;;IAI1B,MAAM,KAAK,CAAC,IAA4B,EAAA;AAC3C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE;QACzC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;AAClE,QAAA,MAAM,IAAI,CAAC,YAAY,EAAE;;IAGtB,MAAM,SAAS,CAAC,IAA4B,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;aACnB;AACH,YAAA,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;;AAIrB,IAAA,QAAQ,CAAC,IAA4B,EAAA;AACxC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE;AACzC,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;IAG5C,MAAM,sBAAsB,CAAC,IAA4B,EAAA;;AAE7D,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;AAC1C,QAAA,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1F,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC;;AAGrC,QAAA,MAAM,IAAI,CAAC,YAAY,EAAE;;IAGrB,iBAAiB,GAAA;QACrB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;AAG3E,IAAA,MAAM,gBAAgB,GAAA;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;;AAGnF,IAAA,MAAM,YAAY,GAAA;;AAEtB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAA2B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/F,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;AAI7C,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAA2B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/F,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;AAIzC,IAAA,MAAM,YAAY,GAAA;;AAEtB,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAGpH,QAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAE3H;;ACpID;;AAEG;;;;"}
|