@acorex/platform 19.2.20 → 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.d.ts → types/interactive.types.d.ts} +5 -25
- 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 +240 -414
- 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-BY3oQqbr.mjs → acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs} +9 -9
- package/fesm2022/{acorex-platform-themes-default-search-popup.component-BY3oQqbr.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 +108 -64
- 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 +495 -240
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +4100 -1480
- 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 +5 -5
- package/themes/default/lib/layouts/base/base-page.component.d.ts +14 -5
- package/themes/default/lib/layouts/base/base-page.types.d.ts +6 -1
- package/themes/default/lib/layouts/base/page-layout/page-layout.component.d.ts +5 -4
- 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 -0
- 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/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-BYUOmONk.mjs +0 -400
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BYUOmONk.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-9U774Tr7.mjs +0 -135
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-9U774Tr7.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-page.component-_IStMWcu.mjs +0 -74
- package/fesm2022/acorex-platform-themes-default-setting-page.component-_IStMWcu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-setting-view.component-CeHpcfsc.mjs +0 -73
- package/fesm2022/acorex-platform-themes-default-setting-view.component-CeHpcfsc.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D_EkB2k8.mjs +0 -146
- package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D_EkB2k8.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/default/lib/pages/theme-palette-preview/theme-palette-preview.page.d.ts +0 -85
- 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,17 +1,16 @@
|
|
|
1
|
-
import { applySortArray, applyFilterArray, AXPExpressionEvaluatorService } from '@acorex/platform/core';
|
|
2
|
-
import Dexie from 'dexie';
|
|
3
|
-
import * as i1$4 from '@acorex/platform/common';
|
|
4
|
-
import { AXPDataGenerator, resolveActionLook, AXPFilterOperatorMiddlewareService, AXPEntityCommandScope, getEntityInfo, AXPSettingService, AXPRefreshEvent, AXPSettingScope, AXPCleanNestedFilters, AXPWorkflowNavigateAction, AXPToastAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
5
1
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { InjectionToken, inject, Injectable, computed, signal, Injector, effect, HostBinding, ChangeDetectionStrategy, Component,
|
|
2
|
+
import { InjectionToken, inject, Injectable, computed, signal, Injector, effect, HostBinding, ChangeDetectionStrategy, Component, viewChild, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import { castArray, get, cloneDeep, set, merge, isNil, sortBy } from 'lodash-es';
|
|
7
4
|
import * as i2 from '@acorex/components/common';
|
|
8
5
|
import { AXDataSource, AXCommonModule } from '@acorex/components/common';
|
|
9
6
|
import { AXFormatService } from '@acorex/core/format';
|
|
7
|
+
import * as i1$4 from '@acorex/platform/common';
|
|
8
|
+
import { resolveActionLook, AXPFilterOperatorMiddlewareService, AXPEntityCommandScope, getEntityInfo, AXPSettingService, AXPRefreshEvent, AXPCleanNestedFilters, AXPWorkflowNavigateAction, AXPToastAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
10
9
|
import * as i2$2 from '@acorex/platform/workflow';
|
|
11
10
|
import { AXPWorkflowService, ofType, createWorkFlowEvent, AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
|
|
12
|
-
import {
|
|
11
|
+
import { AXPExpressionEvaluatorService, AXPPlatformScope } from '@acorex/platform/core';
|
|
13
12
|
import * as i7 from '@acorex/platform/layout/builder';
|
|
14
|
-
import { AXPPageStatus, AXPWidgetRegistryService, AXPWidgetComponent, AXPLayoutBuilderModule, AXPColumnWidgetComponent, AXPWidgetsCatalog,
|
|
13
|
+
import { AXPPageStatus, AXPWidgetRegistryService, AXPWidgetComponent, AXPLayoutBuilderModule, AXPColumnWidgetComponent, AXPWidgetsCatalog, AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';
|
|
15
14
|
import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
|
16
15
|
import { AXPSessionService, AXPAuthGuard } from '@acorex/platform/auth';
|
|
17
16
|
import { Subject, takeUntil } from 'rxjs';
|
|
@@ -32,12 +31,8 @@ import * as i3 from '@acorex/components/button';
|
|
|
32
31
|
import { AXButtonModule } from '@acorex/components/button';
|
|
33
32
|
import * as i4 from '@acorex/components/decorators';
|
|
34
33
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
35
|
-
import * as
|
|
34
|
+
import * as i4$1 from '@acorex/components/form';
|
|
36
35
|
import { AXFormModule } from '@acorex/components/form';
|
|
37
|
-
import * as i5$1 from '@acorex/components/select-box';
|
|
38
|
-
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
39
|
-
import * as i2$1 from '@acorex/components/text-box';
|
|
40
|
-
import { AXTextBoxModule, AXTextBoxComponent } from '@acorex/components/text-box';
|
|
41
36
|
import { AXValidationModule } from '@acorex/core/validation';
|
|
42
37
|
import * as i1$3 from '@angular/forms';
|
|
43
38
|
import { FormsModule } from '@angular/forms';
|
|
@@ -47,150 +42,23 @@ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
|
47
42
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
48
43
|
import * as i6 from '@acorex/components/search-box';
|
|
49
44
|
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
50
|
-
import
|
|
45
|
+
import * as i5$1 from '@acorex/components/tag-box';
|
|
46
|
+
import { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';
|
|
47
|
+
import { AXP_DISABLED_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';
|
|
48
|
+
import * as i5$2 from '@acorex/components/select-box';
|
|
49
|
+
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
50
|
+
import * as i2$1 from '@acorex/components/text-box';
|
|
51
|
+
import { AXTextBoxModule, AXTextBoxComponent } from '@acorex/components/text-box';
|
|
51
52
|
import { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';
|
|
52
53
|
|
|
53
|
-
class AXPDexieEntityStorageService extends Dexie {
|
|
54
|
-
constructor() {
|
|
55
|
-
super('ACoreXPlatform');
|
|
56
|
-
this.version(1).stores({
|
|
57
|
-
'entity-store': '++id, entityName, [entityName+id]',
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
get dbName() {
|
|
61
|
-
return 'ACoreXPlatform';
|
|
62
|
-
}
|
|
63
|
-
async initial(entityName, collection) {
|
|
64
|
-
const exists = await this.table('entity-store').where({ entityName }).count();
|
|
65
|
-
if (exists === 0) {
|
|
66
|
-
await this.table('entity-store').bulkAdd(collection.map((item) => ({ ...item, entityName })));
|
|
67
|
-
}
|
|
68
|
-
return collection;
|
|
69
|
-
}
|
|
70
|
-
async getOne(entityName, id) {
|
|
71
|
-
return await this.table('entity-store').where({ entityName, id: id }).first();
|
|
72
|
-
}
|
|
73
|
-
async updateOne(entityName, id, keyValue) {
|
|
74
|
-
await this.table('entity-store').where({ entityName, id: id }).modify(keyValue);
|
|
75
|
-
return await this.getOne(entityName, id);
|
|
76
|
-
}
|
|
77
|
-
async deleteOne(entityName, id) {
|
|
78
|
-
await this.table('entity-store').where({ entityName, id: id }).delete();
|
|
79
|
-
}
|
|
80
|
-
async insertOne(entityName, entity) {
|
|
81
|
-
const uuid = AXPDataGenerator.uuid();
|
|
82
|
-
await this.table('entity-store').add({ ...entity, id: uuid, entityName });
|
|
83
|
-
return uuid;
|
|
84
|
-
}
|
|
85
|
-
async getAll(entityName) {
|
|
86
|
-
return await this.table('entity-store').where({ entityName }).toArray();
|
|
87
|
-
}
|
|
88
|
-
async query(entityName, request) {
|
|
89
|
-
let result = await this.table('entity-store').where({ entityName }).toArray();
|
|
90
|
-
if (request.sort && request.sort.length) {
|
|
91
|
-
result = applySortArray(result, request.sort);
|
|
92
|
-
}
|
|
93
|
-
result = applyFilterArray(result, request.filter ? [request.filter] : []);
|
|
94
|
-
return Promise.resolve({
|
|
95
|
-
total: result.length,
|
|
96
|
-
items: result.slice(request.skip, (request.skip ?? 0) + (request.take ?? 0)),
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// export class AXPDexieTableStorageService extends Dexie implements AXPEntityStorageService {
|
|
101
|
-
// private schemaUpdateLock: Promise<void> = Promise.resolve();
|
|
102
|
-
// constructor() {
|
|
103
|
-
// super('ACoreXPlatform');
|
|
104
|
-
// // Initial empty version
|
|
105
|
-
// //this.version(1).stores({});
|
|
106
|
-
// }
|
|
107
|
-
// // Function to change the schema dynamically
|
|
108
|
-
// private async changeSchema(schemaChanges: { [tableName: string]: string | null }): Promise<void> {
|
|
109
|
-
// // Acquire schema update lock to ensure no other operations are performed while schema is changing
|
|
110
|
-
// this.schemaUpdateLock = this.schemaUpdateLock.then(async () => {
|
|
111
|
-
// console.log('Attempting schema change with:', schemaChanges);
|
|
112
|
-
// try {
|
|
113
|
-
// this.close();
|
|
114
|
-
// const newDb = new Dexie(this.name);
|
|
115
|
-
// // Extract current schema in Dexie format
|
|
116
|
-
// const currentSchema = this.tables.reduce((result, { name, schema }) => {
|
|
117
|
-
// result[name] = [schema.primKey.src, ...schema.indexes.map((idx) => idx.src)].join(',');
|
|
118
|
-
// return result;
|
|
119
|
-
// }, {} as { [tableName: string]: string });
|
|
120
|
-
// console.log('Current Schema:', currentSchema);
|
|
121
|
-
// // Define current schema version
|
|
122
|
-
// newDb.version(this.verno + 10).stores(currentSchema);
|
|
123
|
-
// // Define new schema version with schema changes
|
|
124
|
-
// const nextVersion = this.verno + 1;
|
|
125
|
-
// newDb.version(nextVersion).stores(schemaChanges);
|
|
126
|
-
// await newDb.open();
|
|
127
|
-
// // Reassign updated db instance
|
|
128
|
-
// Object.assign(this, newDb);
|
|
129
|
-
// console.log(`Schema updated. Current version: ${this.verno}`);
|
|
130
|
-
// } catch (error) {
|
|
131
|
-
// console.error('Error during schema change:', error);
|
|
132
|
-
// throw error;
|
|
133
|
-
// }
|
|
134
|
-
// });
|
|
135
|
-
// // Wait for schema change lock to complete
|
|
136
|
-
// await this.schemaUpdateLock;
|
|
137
|
-
// }
|
|
138
|
-
// private async ensureInitialized(entityName: string): Promise<void> {
|
|
139
|
-
// if (this.tables.findIndex((table) => table.name === entityName) == -1) {
|
|
140
|
-
// const schemaChanges: { [tableName: string]: string } = {};
|
|
141
|
-
// schemaChanges[entityName] = '++id';
|
|
142
|
-
// await this.changeSchema(schemaChanges);
|
|
143
|
-
// }
|
|
144
|
-
// }
|
|
145
|
-
// get dbName(): string {
|
|
146
|
-
// return 'ACoreXPlatform';
|
|
147
|
-
// }
|
|
148
|
-
// private async getTable<T>(entityName: string) {
|
|
149
|
-
// await this.ensureInitialized(entityName);
|
|
150
|
-
// return this.table<T, number>(entityName);
|
|
151
|
-
// }
|
|
152
|
-
// async initial<T = any>(entityName: string, collection: T[]): Promise<void> {
|
|
153
|
-
// const table = await this.getTable<T>(entityName);
|
|
154
|
-
// const exists = await table.count();
|
|
155
|
-
// if (exists === 0) {
|
|
156
|
-
// await table.bulkAdd(collection);
|
|
157
|
-
// }
|
|
158
|
-
// }
|
|
159
|
-
// async getOne<T = any>(entityName: string, id: string): Promise<T> {
|
|
160
|
-
// const table = await this.getTable<T>(entityName);
|
|
161
|
-
// return (await table.where({ id: parseInt(id) }).first()) as T;
|
|
162
|
-
// }
|
|
163
|
-
// async updateOne(entityName: string, id: string, keyValue: { [key: string]: any }): Promise<void> {
|
|
164
|
-
// const table = await this.getTable(entityName);
|
|
165
|
-
// await table.update(parseInt(id), keyValue);
|
|
166
|
-
// }
|
|
167
|
-
// async deleteOne(entityName: string, id: string): Promise<void> {
|
|
168
|
-
// const table = await this.getTable(entityName);
|
|
169
|
-
// await table.delete(parseInt(id));
|
|
170
|
-
// }
|
|
171
|
-
// async insertOne<T = any>(entityName: string, entity: T): Promise<void> {
|
|
172
|
-
// const table = await this.getTable<T>(entityName);
|
|
173
|
-
// await table.add(entity);
|
|
174
|
-
// }
|
|
175
|
-
// async getAll<T = any>(entityName: string): Promise<T[]> {
|
|
176
|
-
// const table = await this.getTable<T>(entityName);
|
|
177
|
-
// return await table.toArray();
|
|
178
|
-
// }
|
|
179
|
-
// }
|
|
180
|
-
|
|
181
54
|
const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');
|
|
182
55
|
class AXPDataSeederService {
|
|
183
56
|
constructor() {
|
|
184
|
-
this.
|
|
57
|
+
this.loaders = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });
|
|
185
58
|
}
|
|
186
59
|
async seed() {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
await loader.seed();
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
await this.loader?.seed();
|
|
60
|
+
for (const loader of castArray(this.loaders)) {
|
|
61
|
+
await loader?.seed();
|
|
194
62
|
}
|
|
195
63
|
}
|
|
196
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -645,6 +513,7 @@ class AXPEntityCreateViewElementViewModel {
|
|
|
645
513
|
type: widget.type,
|
|
646
514
|
mode: this.editable() ? 'edit' : 'view',
|
|
647
515
|
path: this.name(),
|
|
516
|
+
name: this.name(),
|
|
648
517
|
children: widget.children,
|
|
649
518
|
formula: widget.formula,
|
|
650
519
|
triggers: widget.triggers,
|
|
@@ -694,7 +563,7 @@ class AXPEntityMasterCreateViewModel {
|
|
|
694
563
|
if (typeof value == 'function') {
|
|
695
564
|
return value();
|
|
696
565
|
}
|
|
697
|
-
else if (typeof value == 'string' && value.startsWith(
|
|
566
|
+
else if (typeof value == 'string' && value.startsWith('{{')) {
|
|
698
567
|
return await this.expressionEvaluator.evaluate(value, scope);
|
|
699
568
|
}
|
|
700
569
|
return value;
|
|
@@ -719,8 +588,13 @@ class AXPEntityMasterCreateViewModel {
|
|
|
719
588
|
this.builder.setStatus(AXPPageStatus.Submitting);
|
|
720
589
|
const exec = this.entityDef.commands?.create?.execute;
|
|
721
590
|
const result = await exec(this.context());
|
|
722
|
-
this.
|
|
723
|
-
return
|
|
591
|
+
this.context.update((c) => ({ ...c, ...result }));
|
|
592
|
+
return new Promise((resolve) => {
|
|
593
|
+
setTimeout(() => {
|
|
594
|
+
this.builder.setStatus(AXPPageStatus.Submitted);
|
|
595
|
+
resolve(result);
|
|
596
|
+
});
|
|
597
|
+
});
|
|
724
598
|
}
|
|
725
599
|
catch (error) {
|
|
726
600
|
this.builder.setStatus(AXPPageStatus.Error);
|
|
@@ -883,23 +757,7 @@ class AXPEntityMasterListViewModel {
|
|
|
883
757
|
});
|
|
884
758
|
this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));
|
|
885
759
|
//****************** Filter ******************//
|
|
886
|
-
this.
|
|
887
|
-
field: null,
|
|
888
|
-
logic: 'and',
|
|
889
|
-
operator: null,
|
|
890
|
-
filters: this.view().conditions.map((f) => ({
|
|
891
|
-
field: f.name,
|
|
892
|
-
operator: f.operator,
|
|
893
|
-
value: f.value,
|
|
894
|
-
})),
|
|
895
|
-
});
|
|
896
|
-
this.lastFiltersApplied = signal(this.simpleFilters());
|
|
897
|
-
this.inlineFilters = {
|
|
898
|
-
field: null,
|
|
899
|
-
logic: 'or',
|
|
900
|
-
operator: null,
|
|
901
|
-
filters: [],
|
|
902
|
-
};
|
|
760
|
+
this.filterQueries = signal([]);
|
|
903
761
|
//****************** Columns ******************//
|
|
904
762
|
this.allAvailableColumns = () => {
|
|
905
763
|
const { columns = [], properties } = this.entityDef;
|
|
@@ -972,7 +830,7 @@ class AXPEntityMasterListViewModel {
|
|
|
972
830
|
}
|
|
973
831
|
async saveSettings(changesType, data) {
|
|
974
832
|
const updateSettings = (updateFn) => {
|
|
975
|
-
this.settings.scope(
|
|
833
|
+
this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);
|
|
976
834
|
};
|
|
977
835
|
switch (changesType) {
|
|
978
836
|
case 'columnSizes':
|
|
@@ -1048,8 +906,11 @@ class AXPEntityMasterListViewModel {
|
|
|
1048
906
|
}));
|
|
1049
907
|
return actions.filter(Boolean);
|
|
1050
908
|
}
|
|
909
|
+
get properties() {
|
|
910
|
+
return this.entityDef.properties;
|
|
911
|
+
}
|
|
1051
912
|
get filtersDef() {
|
|
1052
|
-
const props = this.entityDef.properties.filter((c) => c.options?.filter?.advance?.enabled);
|
|
913
|
+
const props = this.entityDef.properties.filter((c) => c.options?.filter?.advance?.enabled || c.options?.filter?.inline?.enabled);
|
|
1053
914
|
return props.map((e) => {
|
|
1054
915
|
const widgetConfig = this.widgetResolver.resolve(e.schema.interface?.type);
|
|
1055
916
|
const type = (e.options?.filter?.advance?.widgetType ||
|
|
@@ -1059,11 +920,16 @@ class AXPEntityMasterListViewModel {
|
|
|
1059
920
|
title: e.title,
|
|
1060
921
|
field: e.name,
|
|
1061
922
|
operator: {
|
|
1062
|
-
type: '
|
|
923
|
+
type: 'contains',
|
|
1063
924
|
},
|
|
1064
925
|
widget: { ...e.schema.interface, path: e.name, type },
|
|
1065
926
|
filters: [],
|
|
1066
927
|
isParametric: false,
|
|
928
|
+
icon: widgetConfig?.icon,
|
|
929
|
+
filterType: {
|
|
930
|
+
advance: e.options?.filter?.advance?.enabled ?? false,
|
|
931
|
+
inline: e.options?.filter?.inline?.enabled ?? false,
|
|
932
|
+
},
|
|
1067
933
|
};
|
|
1068
934
|
});
|
|
1069
935
|
}
|
|
@@ -1078,66 +944,21 @@ class AXPEntityMasterListViewModel {
|
|
|
1078
944
|
operator: f.operator,
|
|
1079
945
|
value: f.value,
|
|
1080
946
|
}));
|
|
1081
|
-
|
|
1082
|
-
// console.log('this.filtersDef: ', this.filtersDef);
|
|
1083
|
-
// let viewFilters: AXPFilterQuery[] = [];
|
|
1084
|
-
// await this.filtersDef.forEach((filter) => {
|
|
1085
|
-
// viewFilters.push({
|
|
1086
|
-
// field: filter.field,
|
|
1087
|
-
// operator: filter.operator,
|
|
1088
|
-
// value: filter.value,
|
|
1089
|
-
// });
|
|
1090
|
-
// });
|
|
1091
|
-
// await this.view().conditions.map((f) => {
|
|
1092
|
-
// let viewFilter = viewFilters.find((el) => el.field === f.name) as AXPFilterQuery;
|
|
1093
|
-
// viewFilter = {
|
|
1094
|
-
// ...viewFilter,
|
|
1095
|
-
// value: f.value,
|
|
1096
|
-
// operator: f.operator,
|
|
1097
|
-
// };
|
|
1098
|
-
// });
|
|
1099
|
-
// console.log('viewFilters: ', viewFilters);
|
|
1100
|
-
this.simpleFilters.update((prev) => ({ ...prev, filters: viewFilters }));
|
|
1101
|
-
// console.log('this.simpleFilters(): ', this.simpleFilters());
|
|
947
|
+
this.filterQueries.update((prev) => ({ ...prev, filters: viewFilters }));
|
|
1102
948
|
}
|
|
1103
949
|
resetFilters() {
|
|
1104
950
|
this.applyViewFilters();
|
|
1105
951
|
}
|
|
1106
|
-
discardFilters() {
|
|
1107
|
-
this.simpleFilters.set(this.lastFiltersApplied());
|
|
1108
|
-
}
|
|
1109
|
-
applyInlineFilter(value) {
|
|
1110
|
-
const props = this.entityDef.properties.filter((c) => c.options?.filter?.inline?.enabled);
|
|
1111
|
-
this.inlineFilters.filters = [];
|
|
1112
|
-
if (value) {
|
|
1113
|
-
props.forEach((p) => {
|
|
1114
|
-
this.inlineFilters.filters?.push({
|
|
1115
|
-
field: p.name,
|
|
1116
|
-
operator: {
|
|
1117
|
-
type: 'contains',
|
|
1118
|
-
},
|
|
1119
|
-
value,
|
|
1120
|
-
});
|
|
1121
|
-
});
|
|
1122
|
-
}
|
|
1123
|
-
this.applyFilterAndSort();
|
|
1124
|
-
}
|
|
1125
952
|
async applyFilterAndSort() {
|
|
1126
953
|
this.dataSource.clearFilter();
|
|
1127
954
|
this.dataSource.sort(...this.sortedFields()
|
|
1128
955
|
.filter((sf) => sf.dir)
|
|
1129
956
|
.map((s) => ({ dir: s.dir, field: s.name })));
|
|
1130
|
-
const allFilters = [
|
|
1131
|
-
this.inlineFilters.filters?.length && this.inlineFilters,
|
|
1132
|
-
this.simpleFilters().filters?.length && this.simpleFilters(),
|
|
1133
|
-
].filter(Boolean);
|
|
1134
|
-
const cleanedAllFilters = AXPCleanNestedFilters(allFilters);
|
|
1135
|
-
this.lastFiltersApplied.set(this.simpleFilters());
|
|
1136
957
|
this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({
|
|
1137
958
|
field: null,
|
|
1138
959
|
logic: 'and',
|
|
1139
960
|
operator: null,
|
|
1140
|
-
filters:
|
|
961
|
+
filters: this.filterQueries(),
|
|
1141
962
|
}));
|
|
1142
963
|
this.dataSource.refresh();
|
|
1143
964
|
}
|
|
@@ -1430,6 +1251,7 @@ class AXPEntityMasterUpdateElementViewModel {
|
|
|
1430
1251
|
type: widget.type,
|
|
1431
1252
|
mode: this.editable() ? 'edit' : 'view',
|
|
1432
1253
|
path: this.name(),
|
|
1254
|
+
name: this.name(),
|
|
1433
1255
|
children: widget.children,
|
|
1434
1256
|
formula: widget.formula,
|
|
1435
1257
|
triggers: widget.triggers,
|
|
@@ -1848,8 +1670,8 @@ class AXPEntityDataProviderImpl {
|
|
|
1848
1670
|
query(request) {
|
|
1849
1671
|
return this.storageService.query(this.entityName, request);
|
|
1850
1672
|
}
|
|
1851
|
-
updateOne(id,
|
|
1852
|
-
return this.storageService.updateOne(this.entityName, id,
|
|
1673
|
+
updateOne(id, keyValues) {
|
|
1674
|
+
return this.storageService.updateOne(this.entityName, id, keyValues);
|
|
1853
1675
|
}
|
|
1854
1676
|
deleteOne(id) {
|
|
1855
1677
|
return this.storageService.deleteOne(this.entityName, id);
|
|
@@ -1970,14 +1792,13 @@ class AXPLookupWidgetViewComponent extends AXPWidgetComponent {
|
|
|
1970
1792
|
this.displayItems.set([]);
|
|
1971
1793
|
}
|
|
1972
1794
|
else {
|
|
1973
|
-
const items =
|
|
1974
|
-
|
|
1975
|
-
: [await this.extractItem(value)];
|
|
1976
|
-
this.displayItems.set(items);
|
|
1795
|
+
const items = castArray(value).map(async (item) => await this.extractItem(item));
|
|
1796
|
+
this.displayItems.set(await Promise.all(items));
|
|
1977
1797
|
}
|
|
1978
1798
|
});
|
|
1979
1799
|
}
|
|
1980
1800
|
async extractItem(item) {
|
|
1801
|
+
debugger;
|
|
1981
1802
|
if (typeof item == 'object') {
|
|
1982
1803
|
return {
|
|
1983
1804
|
id: item[this.valueField()],
|
|
@@ -1985,14 +1806,15 @@ class AXPLookupWidgetViewComponent extends AXPWidgetComponent {
|
|
|
1985
1806
|
};
|
|
1986
1807
|
}
|
|
1987
1808
|
else {
|
|
1988
|
-
const
|
|
1809
|
+
const def = this.entityDef();
|
|
1810
|
+
const byKey = def?.queries.byKey?.execute;
|
|
1989
1811
|
if (byKey) {
|
|
1990
1812
|
this.loading.set(true);
|
|
1991
|
-
const
|
|
1813
|
+
const fetchedItem = await byKey(item);
|
|
1992
1814
|
this.loading.set(false);
|
|
1993
1815
|
return {
|
|
1994
|
-
id:
|
|
1995
|
-
text: this.formatService.format(this.
|
|
1816
|
+
id: fetchedItem[this.valueField()],
|
|
1817
|
+
text: this.formatService.format(this.displayField(), 'string', fetchedItem),
|
|
1996
1818
|
};
|
|
1997
1819
|
}
|
|
1998
1820
|
return {
|
|
@@ -2049,7 +1871,17 @@ var lookupWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
2049
1871
|
});
|
|
2050
1872
|
|
|
2051
1873
|
class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
1874
|
+
constructor() {
|
|
1875
|
+
super(...arguments);
|
|
1876
|
+
this.grid = viewChild('grid');
|
|
1877
|
+
this.initialSelectedItems = [];
|
|
1878
|
+
this.selectedItems = signal([]);
|
|
1879
|
+
this.allowSelect = computed(() => this.selectedItems().length > 0);
|
|
1880
|
+
}
|
|
2052
1881
|
ngAfterViewInit() {
|
|
1882
|
+
if (this.initialSelectedItems.length > 0 && this.grid()) {
|
|
1883
|
+
this.grid()?.selectRows(...this.initialSelectedItems);
|
|
1884
|
+
}
|
|
2053
1885
|
if (this.searchTerm) {
|
|
2054
1886
|
this.vm.applyInlineFilter(this.searchTerm);
|
|
2055
1887
|
}
|
|
@@ -2061,10 +1893,28 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
|
2061
1893
|
this.close({ items: [e.data] });
|
|
2062
1894
|
}
|
|
2063
1895
|
handleRowClick(e) {
|
|
2064
|
-
this.
|
|
1896
|
+
if (this.vm.allowMultiple()) {
|
|
1897
|
+
this.selectedItems.set([...this.selectedItems(), e.data]);
|
|
1898
|
+
}
|
|
1899
|
+
else if (this.selectedItems().length > 0) {
|
|
1900
|
+
const selected = this.selectedItems().find((item) => item.id === e.data.id);
|
|
1901
|
+
if (selected) {
|
|
1902
|
+
this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));
|
|
1903
|
+
}
|
|
1904
|
+
else {
|
|
1905
|
+
this.selectedItems.set([e.data]);
|
|
1906
|
+
}
|
|
1907
|
+
}
|
|
1908
|
+
else if (this.selectedItems().length === 0) {
|
|
1909
|
+
this.selectedItems.set([e.data]);
|
|
1910
|
+
}
|
|
1911
|
+
else {
|
|
1912
|
+
this.selectedItems.set([e.data]);
|
|
1913
|
+
}
|
|
2065
1914
|
}
|
|
2066
1915
|
async handleSelectedRowsChange(rows) {
|
|
2067
|
-
|
|
1916
|
+
debugger;
|
|
1917
|
+
this.selectedItems.set(rows);
|
|
2068
1918
|
}
|
|
2069
1919
|
handleChangeSearchValue(e) {
|
|
2070
1920
|
if (e.isUserInteraction) {
|
|
@@ -2079,12 +1929,10 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
|
2079
1929
|
this.close();
|
|
2080
1930
|
}
|
|
2081
1931
|
handleSelectClick() {
|
|
2082
|
-
|
|
2083
|
-
this.close({ items: [this.focusedRow] });
|
|
2084
|
-
}
|
|
1932
|
+
this.close({ items: this.selectedItems() });
|
|
2085
1933
|
}
|
|
2086
1934
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2087
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLookupWidgetSelectorComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1935
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLookupWidgetSelectorComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
2088
1936
|
<div class="ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden">
|
|
2089
1937
|
@if(vm.hasInlineFilters()) {
|
|
2090
1938
|
<div class="ax-w-full">
|
|
@@ -2110,8 +1958,9 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
|
2110
1958
|
(onRowClick)="handleRowClick($event)"
|
|
2111
1959
|
(onRowDbClick)="handleRowDbClick($event)"
|
|
2112
1960
|
>
|
|
2113
|
-
|
|
2114
|
-
|
|
1961
|
+
@if(vm.allowMultiple()) {
|
|
1962
|
+
<ax-select-column fixed="start" [width]="'50px'"></ax-select-column>
|
|
1963
|
+
} @for(col of vm.columns();track col.name) { @if(col.visible) {
|
|
2115
1964
|
<axp-widget-column-renderer
|
|
2116
1965
|
[expandHandler]="$index === 0 && vm.parentKey() ? true : false"
|
|
2117
1966
|
[caption]="col.title | translate | async"
|
|
@@ -2122,19 +1971,13 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
|
2122
1971
|
</div>
|
|
2123
1972
|
<ax-footer>
|
|
2124
1973
|
<ax-suffix>
|
|
2125
|
-
<ax-button
|
|
2126
|
-
look="solid"
|
|
2127
|
-
color="ghost"
|
|
2128
|
-
[text]="('close' | translate | async) ?? 'Close...'"
|
|
2129
|
-
(onClick)="handleCloseClick()"
|
|
2130
|
-
>
|
|
2131
|
-
</ax-button>
|
|
1974
|
+
<ax-button look="solid" [text]="('close' | translate | async)!" (onClick)="handleCloseClick()"> </ax-button>
|
|
2132
1975
|
<ax-button
|
|
2133
1976
|
look="solid"
|
|
2134
1977
|
color="primary"
|
|
2135
|
-
[text]="('select' | translate | async)
|
|
1978
|
+
[text]="('select' | translate | async)!"
|
|
2136
1979
|
(onClick)="handleSelectClick()"
|
|
2137
|
-
[disabled]="
|
|
1980
|
+
[disabled]="allowSelect() === false"
|
|
2138
1981
|
>
|
|
2139
1982
|
</ax-button>
|
|
2140
1983
|
@if(!vm.canCreate()) {
|
|
@@ -2151,7 +1994,7 @@ class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
|
|
|
2151
1994
|
}
|
|
2152
1995
|
</ax-suffix>
|
|
2153
1996
|
</ax-footer>
|
|
2154
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.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: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.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: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1997
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.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: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i5.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i5.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.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: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2155
1998
|
}
|
|
2156
1999
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{
|
|
2157
2000
|
type: Component,
|
|
@@ -2182,8 +2025,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2182
2025
|
(onRowClick)="handleRowClick($event)"
|
|
2183
2026
|
(onRowDbClick)="handleRowDbClick($event)"
|
|
2184
2027
|
>
|
|
2185
|
-
|
|
2186
|
-
|
|
2028
|
+
@if(vm.allowMultiple()) {
|
|
2029
|
+
<ax-select-column fixed="start" [width]="'50px'"></ax-select-column>
|
|
2030
|
+
} @for(col of vm.columns();track col.name) { @if(col.visible) {
|
|
2187
2031
|
<axp-widget-column-renderer
|
|
2188
2032
|
[expandHandler]="$index === 0 && vm.parentKey() ? true : false"
|
|
2189
2033
|
[caption]="col.title | translate | async"
|
|
@@ -2194,19 +2038,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2194
2038
|
</div>
|
|
2195
2039
|
<ax-footer>
|
|
2196
2040
|
<ax-suffix>
|
|
2197
|
-
<ax-button
|
|
2198
|
-
look="solid"
|
|
2199
|
-
color="ghost"
|
|
2200
|
-
[text]="('close' | translate | async) ?? 'Close...'"
|
|
2201
|
-
(onClick)="handleCloseClick()"
|
|
2202
|
-
>
|
|
2203
|
-
</ax-button>
|
|
2041
|
+
<ax-button look="solid" [text]="('close' | translate | async)!" (onClick)="handleCloseClick()"> </ax-button>
|
|
2204
2042
|
<ax-button
|
|
2205
2043
|
look="solid"
|
|
2206
2044
|
color="primary"
|
|
2207
|
-
[text]="('select' | translate | async)
|
|
2045
|
+
[text]="('select' | translate | async)!"
|
|
2208
2046
|
(onClick)="handleSelectClick()"
|
|
2209
|
-
[disabled]="
|
|
2047
|
+
[disabled]="allowSelect() === false"
|
|
2210
2048
|
>
|
|
2211
2049
|
</ax-button>
|
|
2212
2050
|
@if(!vm.canCreate()) {
|
|
@@ -2242,11 +2080,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2242
2080
|
}] });
|
|
2243
2081
|
|
|
2244
2082
|
class AXPLookupWidgetSelectorViewModel {
|
|
2245
|
-
constructor(injector, entityDef,
|
|
2083
|
+
constructor(injector, entityDef, options = {
|
|
2084
|
+
parentFilters: null,
|
|
2085
|
+
customFilter: null,
|
|
2086
|
+
sortedFields: [],
|
|
2087
|
+
}) {
|
|
2246
2088
|
this.injector = injector;
|
|
2247
2089
|
this.entityDef = entityDef;
|
|
2248
|
-
this.
|
|
2249
|
-
this.customFilter = customFilter;
|
|
2090
|
+
this.options = options;
|
|
2250
2091
|
this.workflow = this.injector.get(AXPWorkflowService);
|
|
2251
2092
|
this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);
|
|
2252
2093
|
this.dataSource = new AXDataSource({
|
|
@@ -2267,6 +2108,9 @@ class AXPLookupWidgetSelectorViewModel {
|
|
|
2267
2108
|
this.parentKey = computed(() => {
|
|
2268
2109
|
return this.entityDef.parentKey;
|
|
2269
2110
|
});
|
|
2111
|
+
this.allowMultiple = computed(() => {
|
|
2112
|
+
return this.options.allowMultiple ?? false;
|
|
2113
|
+
});
|
|
2270
2114
|
this.inlineFiltersPlaceholders = computed(() => {
|
|
2271
2115
|
return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);
|
|
2272
2116
|
});
|
|
@@ -2324,12 +2168,12 @@ class AXPLookupWidgetSelectorViewModel {
|
|
|
2324
2168
|
//
|
|
2325
2169
|
// Check if inlineFilters or parentFilters have any filters
|
|
2326
2170
|
const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;
|
|
2327
|
-
const hasParentFilters = (this.parentFilters?.filters?.length ?? 0) > 0;
|
|
2171
|
+
const hasParentFilters = (this.options.parentFilters?.filters?.length ?? 0) > 0;
|
|
2328
2172
|
// Construct the filters array based on the presence of filters
|
|
2329
2173
|
const filters = [];
|
|
2330
|
-
console.log(this.customFilter);
|
|
2331
|
-
if (this.customFilter) {
|
|
2332
|
-
const cleanedFilters = AXPCleanNestedFilters([this.customFilter]);
|
|
2174
|
+
console.log(this.options.customFilter);
|
|
2175
|
+
if (this.options.customFilter) {
|
|
2176
|
+
const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);
|
|
2333
2177
|
if (cleanedFilters.length > 0) {
|
|
2334
2178
|
filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));
|
|
2335
2179
|
}
|
|
@@ -2337,8 +2181,8 @@ class AXPLookupWidgetSelectorViewModel {
|
|
|
2337
2181
|
if (hasInlineFilters) {
|
|
2338
2182
|
filters.push(this.inlineFilters);
|
|
2339
2183
|
}
|
|
2340
|
-
if (hasParentFilters && this.parentFilters) {
|
|
2341
|
-
filters.push(this.parentFilters);
|
|
2184
|
+
if (hasParentFilters && this.options.parentFilters) {
|
|
2185
|
+
filters.push(this.options.parentFilters);
|
|
2342
2186
|
}
|
|
2343
2187
|
// Apply the filters to the dataSource
|
|
2344
2188
|
this.dataSource.filter({
|
|
@@ -2364,59 +2208,53 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2364
2208
|
this.entityResolver = inject(AXPEntityResolver);
|
|
2365
2209
|
this.formatService = inject(AXFormatService);
|
|
2366
2210
|
this.popupService = inject(AXPopupService);
|
|
2367
|
-
this.destroyRef = inject(DestroyRef);
|
|
2368
2211
|
this.translateService = inject(AXTranslationService);
|
|
2369
2212
|
this.expose = computed(() => this.options()['expose']);
|
|
2370
2213
|
this.entity = computed(() => this.options()['entity']);
|
|
2371
2214
|
this.customFilter = computed(() => this.options()['filter']);
|
|
2215
|
+
this.multiple = computed(() => (this.options()['multiple'] ?? false));
|
|
2372
2216
|
this.textField = computed(() => {
|
|
2373
2217
|
return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');
|
|
2374
2218
|
});
|
|
2219
|
+
this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');
|
|
2375
2220
|
this.entityDef = signal(null);
|
|
2376
2221
|
this.searchTerm = signal(null);
|
|
2377
|
-
this.
|
|
2378
|
-
this.
|
|
2222
|
+
this.selectedItems = signal([]);
|
|
2223
|
+
this.textbox = viewChild(AXTagBoxComponent);
|
|
2379
2224
|
this.isLoading = signal(false);
|
|
2380
2225
|
this.isOpen = signal(false);
|
|
2381
2226
|
this.vm = signal(null);
|
|
2382
2227
|
this.placeholder = computed(() => {
|
|
2383
|
-
return (this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', '));
|
|
2228
|
+
return (this.selectedItems().length ? null : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', '));
|
|
2384
2229
|
});
|
|
2385
|
-
this
|
|
2386
|
-
const value = this.getValue();
|
|
2387
|
-
if (isNil(value)) {
|
|
2388
|
-
this.displayText.set('');
|
|
2389
|
-
}
|
|
2390
|
-
else if (typeof value == 'object' && !Array.isArray(value)) {
|
|
2391
|
-
this.displayText.set(this.formatService.format(this.textField(), 'string', value));
|
|
2392
|
-
}
|
|
2393
|
-
else if (value != null) {
|
|
2394
|
-
await this.findByValue();
|
|
2395
|
-
}
|
|
2396
|
-
});
|
|
2397
|
-
this.efEntity = effect(async () => {
|
|
2230
|
+
this.#efEntity = effect(async () => {
|
|
2398
2231
|
const [module, entity] = this.entity().split('.');
|
|
2399
2232
|
this.entityDef.set(await this.entityResolver.get(module, entity));
|
|
2400
|
-
this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), this.filter));
|
|
2233
|
+
this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), { parentFilters: this.filter, allowMultiple: this.multiple() }));
|
|
2234
|
+
});
|
|
2235
|
+
this.#efValue = effect(() => {
|
|
2236
|
+
if (this.getValue()) {
|
|
2237
|
+
this.findByValue();
|
|
2238
|
+
}
|
|
2401
2239
|
});
|
|
2402
2240
|
}
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
//
|
|
2406
|
-
// this.builderService.onContextChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(async (c) => {
|
|
2407
|
-
// if (c.path == this.path) {
|
|
2408
|
-
// if (this.getValue()) {
|
|
2409
|
-
// await this.findByValue();
|
|
2410
|
-
// }
|
|
2411
|
-
// }
|
|
2412
|
-
// });
|
|
2413
|
-
}
|
|
2241
|
+
#efEntity;
|
|
2242
|
+
#efValue;
|
|
2414
2243
|
async findByValue() {
|
|
2415
2244
|
this.isLoading.set(true);
|
|
2416
2245
|
const byKey = this.entityDef()?.queries.byKey?.execute;
|
|
2417
2246
|
if (byKey) {
|
|
2418
|
-
const
|
|
2419
|
-
|
|
2247
|
+
const rawValue = this.getValue();
|
|
2248
|
+
const values = castArray(rawValue);
|
|
2249
|
+
if (this.multiple()) {
|
|
2250
|
+
console.log(values);
|
|
2251
|
+
const items = await Promise.all(values.map(value => byKey(value)));
|
|
2252
|
+
this.setItems(items);
|
|
2253
|
+
}
|
|
2254
|
+
else {
|
|
2255
|
+
const item = await byKey(values[0]);
|
|
2256
|
+
this.setItems(item);
|
|
2257
|
+
}
|
|
2420
2258
|
}
|
|
2421
2259
|
this.isLoading.set(false);
|
|
2422
2260
|
}
|
|
@@ -2430,33 +2268,35 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2430
2268
|
title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,
|
|
2431
2269
|
size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',
|
|
2432
2270
|
data: {
|
|
2433
|
-
vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(),
|
|
2434
|
-
|
|
2271
|
+
vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {
|
|
2272
|
+
customFilter: this.customFilter(),
|
|
2273
|
+
parentFilters: this.filter,
|
|
2274
|
+
allowMultiple: this.multiple()
|
|
2275
|
+
}),
|
|
2276
|
+
searchTerm: this.searchTerm(),
|
|
2277
|
+
initialSelectedItems: this.selectedItems(),
|
|
2435
2278
|
},
|
|
2436
2279
|
})
|
|
2437
2280
|
.then((e) => {
|
|
2438
2281
|
this.isOpen.set(false);
|
|
2439
|
-
this.textbox
|
|
2282
|
+
this.textbox()?.focus();
|
|
2440
2283
|
if (e.data?.items) {
|
|
2441
|
-
this.setItems(e.data?.items
|
|
2284
|
+
this.setItems(e.data?.items);
|
|
2442
2285
|
}
|
|
2443
2286
|
});
|
|
2444
2287
|
}
|
|
2445
2288
|
handleValueChange(e) {
|
|
2446
|
-
|
|
2289
|
+
if (e.isUserInteraction) {
|
|
2290
|
+
this.setValue(e.value);
|
|
2291
|
+
}
|
|
2447
2292
|
}
|
|
2448
2293
|
handleOnBlur(e) {
|
|
2449
2294
|
const com = e.component;
|
|
2450
|
-
const input =
|
|
2295
|
+
const input = e.htmlElement.querySelector('input');
|
|
2451
2296
|
setTimeout(() => {
|
|
2452
|
-
if (this.
|
|
2453
|
-
input.value =
|
|
2454
|
-
|
|
2455
|
-
else {
|
|
2456
|
-
if (!this.isOpen()) {
|
|
2457
|
-
input.value = '';
|
|
2458
|
-
this.searchTerm.set(null);
|
|
2459
|
-
}
|
|
2297
|
+
if (!this.isOpen()) {
|
|
2298
|
+
input.value = '';
|
|
2299
|
+
this.searchTerm.set(null);
|
|
2460
2300
|
}
|
|
2461
2301
|
}, 100);
|
|
2462
2302
|
}
|
|
@@ -2475,37 +2315,34 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2475
2315
|
this.isLoading.set(false);
|
|
2476
2316
|
}
|
|
2477
2317
|
}
|
|
2478
|
-
setItems(
|
|
2318
|
+
setItems(items) {
|
|
2319
|
+
if (!items) {
|
|
2320
|
+
return;
|
|
2321
|
+
}
|
|
2322
|
+
//
|
|
2323
|
+
items = castArray(items);
|
|
2479
2324
|
this.searchTerm.set(null);
|
|
2480
|
-
this.
|
|
2481
|
-
|
|
2482
|
-
const
|
|
2483
|
-
|
|
2484
|
-
this.setValue(
|
|
2325
|
+
this.selectedItems.set(items);
|
|
2326
|
+
//
|
|
2327
|
+
const values = items.map(item => get(item, this.valueField()));
|
|
2328
|
+
//
|
|
2329
|
+
this.setValue(values);
|
|
2330
|
+
//
|
|
2485
2331
|
// extract data from valueField and set context by expose path
|
|
2486
2332
|
if (this.expose()) {
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
}
|
|
2501
|
-
});
|
|
2502
|
-
}
|
|
2503
|
-
// extract data from item by source path and set context by target path
|
|
2504
|
-
else if (typeof this.expose() == 'object') {
|
|
2505
|
-
const i = this.expose();
|
|
2506
|
-
const key = get(item, i.source);
|
|
2507
|
-
this.contextService.update(i.target, key);
|
|
2508
|
-
}
|
|
2333
|
+
const exposeValue = castArray(this.expose());
|
|
2334
|
+
exposeValue.forEach((i) => {
|
|
2335
|
+
if (typeof i == 'string') {
|
|
2336
|
+
//const values = items.map(item => get(item, this.expose()));
|
|
2337
|
+
const values = items.map(item => set({}, this.expose(), get(item, this.expose())));
|
|
2338
|
+
this.contextService.update(i, values);
|
|
2339
|
+
}
|
|
2340
|
+
else {
|
|
2341
|
+
// extract data from item by source path and set context by target path
|
|
2342
|
+
const values = items.map(item => set({}, i.source, get(item, i.source)));
|
|
2343
|
+
this.contextService.update(i.target, values);
|
|
2344
|
+
}
|
|
2345
|
+
});
|
|
2509
2346
|
}
|
|
2510
2347
|
}
|
|
2511
2348
|
handleClearClick() {
|
|
@@ -2514,14 +2351,17 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2514
2351
|
clear() {
|
|
2515
2352
|
this.setValue(null);
|
|
2516
2353
|
this.searchTerm.set('');
|
|
2517
|
-
this.
|
|
2354
|
+
this.selectedItems.set([]);
|
|
2518
2355
|
}
|
|
2519
2356
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2520
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "axp-lookup-widget-edit", viewQueries: [{ propertyName: "textbox", first: true, predicate:
|
|
2521
|
-
<ax-
|
|
2522
|
-
[
|
|
2357
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: "axp-lookup-widget-edit", viewQueries: [{ propertyName: "textbox", first: true, predicate: AXTagBoxComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
2358
|
+
<ax-tag-box
|
|
2359
|
+
[tags]="selectedItems()"
|
|
2360
|
+
[textField]="textField()"
|
|
2361
|
+
[valueField]="valueField()"
|
|
2523
2362
|
(onValueChanged)="handleValueChange($event)"
|
|
2524
2363
|
[placeholder]="placeholder()"
|
|
2364
|
+
[addOnEnter]="false"
|
|
2525
2365
|
(onKeyUp)="handleKeyDown($event)"
|
|
2526
2366
|
(onBlur)="handleOnBlur($event)"
|
|
2527
2367
|
>
|
|
@@ -2532,7 +2372,9 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2532
2372
|
[options]="validation.options"
|
|
2533
2373
|
></ax-validation-rule>
|
|
2534
2374
|
}
|
|
2375
|
+
@if(selectedItems().length > 1) {
|
|
2535
2376
|
<ax-clear-button (click)="handleClearClick()"></ax-clear-button>
|
|
2377
|
+
}
|
|
2536
2378
|
|
|
2537
2379
|
<ax-suffix>
|
|
2538
2380
|
<ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
|
|
@@ -2543,18 +2385,23 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2543
2385
|
}
|
|
2544
2386
|
</ax-button>
|
|
2545
2387
|
</ax-suffix>
|
|
2546
|
-
</ax-
|
|
2547
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "
|
|
2388
|
+
</ax-tag-box>
|
|
2389
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type:
|
|
2390
|
+
//
|
|
2391
|
+
AXButtonModule }, { kind: "component", type: i3.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: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.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: AXLoadingModule }, { kind: "component", type: i1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i4$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "ngmodule", type: AXTagBoxModule }, { kind: "component", type: i5$1.AXTagBoxComponent, selector: "ax-tag-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "allowNull", "type", "look", "addOnComma", "addOnEnter", "valueField", "textField", "showRemoveButton", "readonlyField", "allowDuplicateValues", "tags", "inputValue"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "tagsChange", "inputValueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2548
2392
|
}
|
|
2549
2393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
|
|
2550
2394
|
type: Component,
|
|
2551
2395
|
args: [{
|
|
2552
2396
|
selector: 'axp-lookup-widget-edit',
|
|
2553
2397
|
template: `
|
|
2554
|
-
<ax-
|
|
2555
|
-
[
|
|
2398
|
+
<ax-tag-box
|
|
2399
|
+
[tags]="selectedItems()"
|
|
2400
|
+
[textField]="textField()"
|
|
2401
|
+
[valueField]="valueField()"
|
|
2556
2402
|
(onValueChanged)="handleValueChange($event)"
|
|
2557
2403
|
[placeholder]="placeholder()"
|
|
2404
|
+
[addOnEnter]="false"
|
|
2558
2405
|
(onKeyUp)="handleKeyDown($event)"
|
|
2559
2406
|
(onBlur)="handleOnBlur($event)"
|
|
2560
2407
|
>
|
|
@@ -2565,7 +2412,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2565
2412
|
[options]="validation.options"
|
|
2566
2413
|
></ax-validation-rule>
|
|
2567
2414
|
}
|
|
2415
|
+
@if(selectedItems().length > 1) {
|
|
2568
2416
|
<ax-clear-button (click)="handleClearClick()"></ax-clear-button>
|
|
2417
|
+
}
|
|
2569
2418
|
|
|
2570
2419
|
<ax-suffix>
|
|
2571
2420
|
<ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
|
|
@@ -2576,61 +2425,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2576
2425
|
}
|
|
2577
2426
|
</ax-button>
|
|
2578
2427
|
</ax-suffix>
|
|
2579
|
-
</ax-
|
|
2428
|
+
</ax-tag-box>
|
|
2580
2429
|
`,
|
|
2581
2430
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2582
2431
|
imports: [
|
|
2583
2432
|
CommonModule,
|
|
2584
2433
|
FormsModule,
|
|
2585
|
-
|
|
2586
|
-
AXTextBoxModule,
|
|
2434
|
+
//
|
|
2587
2435
|
AXButtonModule,
|
|
2588
2436
|
AXDecoratorModule,
|
|
2589
2437
|
AXLoadingModule,
|
|
2590
2438
|
AXValidationModule,
|
|
2591
2439
|
AXFormModule,
|
|
2440
|
+
AXTagBoxModule
|
|
2592
2441
|
],
|
|
2593
2442
|
}]
|
|
2594
|
-
}]
|
|
2595
|
-
type: ViewChild,
|
|
2596
|
-
args: [AXTextBoxComponent]
|
|
2597
|
-
}] } });
|
|
2443
|
+
}] });
|
|
2598
2444
|
|
|
2599
2445
|
var lookupWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
2600
2446
|
__proto__: null,
|
|
2601
2447
|
AXPLookupWidgetEditComponent: AXPLookupWidgetEditComponent
|
|
2602
2448
|
});
|
|
2603
2449
|
|
|
2604
|
-
class AXPLookupWidgetFilterComponent extends AXPWidgetComponent {
|
|
2605
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2606
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPLookupWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2607
|
-
}
|
|
2608
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetFilterComponent, decorators: [{
|
|
2609
|
-
type: Component,
|
|
2610
|
-
args: [{
|
|
2611
|
-
template: ``,
|
|
2612
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2613
|
-
imports: [CommonModule, FormsModule],
|
|
2614
|
-
inputs: []
|
|
2615
|
-
}]
|
|
2616
|
-
}] });
|
|
2617
|
-
|
|
2618
|
-
var lookupWidgetFilter_component = /*#__PURE__*/Object.freeze({
|
|
2619
|
-
__proto__: null,
|
|
2620
|
-
AXPLookupWidgetFilterComponent: AXPLookupWidgetFilterComponent
|
|
2621
|
-
});
|
|
2622
|
-
|
|
2623
2450
|
class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
2451
|
+
constructor() {
|
|
2452
|
+
super(...arguments);
|
|
2453
|
+
this.valueField = this.options['valueField'] ?? 'id';
|
|
2454
|
+
this.textField = this.options['textField'] ?? 'title';
|
|
2455
|
+
this.internalValue = computed(() => castArray(this.rawValue).map((item) => this.extractItem(item)));
|
|
2456
|
+
}
|
|
2457
|
+
extractItem(item) {
|
|
2458
|
+
return typeof item == 'object'
|
|
2459
|
+
? {
|
|
2460
|
+
[this.valueField]: item?.[this.valueField],
|
|
2461
|
+
[this.textField]: item?.[this.textField],
|
|
2462
|
+
}
|
|
2463
|
+
: {
|
|
2464
|
+
[this.valueField]: item,
|
|
2465
|
+
[this.textField]: item,
|
|
2466
|
+
};
|
|
2467
|
+
}
|
|
2624
2468
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2626
|
-
|
|
2469
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: "ng-component", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `
|
|
2470
|
+
<div class="ax-flex ax-gap-1">
|
|
2471
|
+
@for (item of internalValue(); track $index) {
|
|
2472
|
+
<ax-badge [text]="item[this.textField]" color="primary"></ax-badge>
|
|
2473
|
+
}
|
|
2474
|
+
</div>
|
|
2627
2475
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2628
2476
|
}
|
|
2629
2477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{
|
|
2630
2478
|
type: Component,
|
|
2631
2479
|
args: [{
|
|
2632
2480
|
template: `
|
|
2633
|
-
|
|
2481
|
+
<div class="ax-flex ax-gap-1">
|
|
2482
|
+
@for (item of internalValue(); track $index) {
|
|
2483
|
+
<ax-badge [text]="item[this.textField]" color="primary"></ax-badge>
|
|
2484
|
+
}
|
|
2485
|
+
</div>
|
|
2634
2486
|
`,
|
|
2635
2487
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2636
2488
|
imports: [CommonModule, AXBadgeModule],
|
|
@@ -2643,30 +2495,10 @@ var lookupWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
2643
2495
|
AXPLookupWidgetColumnComponent: AXPLookupWidgetColumnComponent
|
|
2644
2496
|
});
|
|
2645
2497
|
|
|
2646
|
-
class AXPLookupWidgetPrintComponent extends AXPWidgetComponent {
|
|
2647
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2648
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPLookupWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2649
|
-
}
|
|
2650
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetPrintComponent, decorators: [{
|
|
2651
|
-
type: Component,
|
|
2652
|
-
args: [{
|
|
2653
|
-
template: ``,
|
|
2654
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2655
|
-
imports: [CommonModule],
|
|
2656
|
-
inputs: []
|
|
2657
|
-
}]
|
|
2658
|
-
}] });
|
|
2659
|
-
|
|
2660
|
-
var lookupWidgetPrint_component = /*#__PURE__*/Object.freeze({
|
|
2661
|
-
__proto__: null,
|
|
2662
|
-
AXPLookupWidgetPrintComponent: AXPLookupWidgetPrintComponent
|
|
2663
|
-
});
|
|
2664
|
-
|
|
2665
2498
|
const AXPLookupWidget = {
|
|
2666
2499
|
name: 'lookup-editor',
|
|
2667
2500
|
title: 'Lookup',
|
|
2668
|
-
|
|
2669
|
-
group: AXP_WIDGETS_EDITOR_GROUP,
|
|
2501
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2670
2502
|
defaultFilterWidgetName: 'lookup-filter',
|
|
2671
2503
|
type: 'editor',
|
|
2672
2504
|
properties: [
|
|
@@ -2700,6 +2532,7 @@ const AXPLookupWidget = {
|
|
|
2700
2532
|
},
|
|
2701
2533
|
visible: true,
|
|
2702
2534
|
},
|
|
2535
|
+
AXP_ALLOW_MULTIPLE_PROPERTY
|
|
2703
2536
|
],
|
|
2704
2537
|
components: {
|
|
2705
2538
|
view: {
|
|
@@ -2708,15 +2541,9 @@ const AXPLookupWidget = {
|
|
|
2708
2541
|
edit: {
|
|
2709
2542
|
component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
|
|
2710
2543
|
},
|
|
2711
|
-
filter: {
|
|
2712
|
-
component: () => Promise.resolve().then(function () { return lookupWidgetFilter_component; }).then((c) => c.AXPLookupWidgetFilterComponent),
|
|
2713
|
-
},
|
|
2714
2544
|
column: {
|
|
2715
2545
|
component: () => Promise.resolve().then(function () { return lookupWidgetColumn_component; }).then((c) => c.AXPLookupWidgetColumnComponent),
|
|
2716
2546
|
},
|
|
2717
|
-
print: {
|
|
2718
|
-
component: () => Promise.resolve().then(function () { return lookupWidgetPrint_component; }).then((c) => c.AXPLookupWidgetPrintComponent),
|
|
2719
|
-
},
|
|
2720
2547
|
designer: {
|
|
2721
2548
|
component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
|
|
2722
2549
|
},
|
|
@@ -2857,9 +2684,9 @@ class AXPTagableBoxWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2857
2684
|
</ax-prefix>
|
|
2858
2685
|
</ax-button>
|
|
2859
2686
|
</div>
|
|
2860
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type:
|
|
2687
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i4$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.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: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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:
|
|
2861
2688
|
// AXTagBoxModule,
|
|
2862
|
-
AXSelectBoxModule }, { kind: "component", type: i5$
|
|
2689
|
+
AXSelectBoxModule }, { kind: "component", type: i5$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2863
2690
|
}
|
|
2864
2691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, decorators: [{
|
|
2865
2692
|
type: Component,
|
|
@@ -3063,9 +2890,9 @@ var tagableBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
3063
2890
|
const AXPTagableBoxWidget = {
|
|
3064
2891
|
name: 'tagable-editor',
|
|
3065
2892
|
title: 'Tagable Box',
|
|
3066
|
-
icon: 'fa-
|
|
2893
|
+
icon: 'fa-light fa-tags',
|
|
3067
2894
|
description: 'Inputs text with tags',
|
|
3068
|
-
|
|
2895
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3069
2896
|
type: 'editor',
|
|
3070
2897
|
defaultFilterWidgetName: 'string-filter',
|
|
3071
2898
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
|
|
@@ -3117,7 +2944,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
|
|
|
3117
2944
|
size: 'md',
|
|
3118
2945
|
closeButton: true,
|
|
3119
2946
|
data: {
|
|
3120
|
-
widgets: sortBy(this.widgetRegisteryService.all()
|
|
2947
|
+
widgets: sortBy(this.widgetRegisteryService.all(), (c) => c.title),
|
|
3121
2948
|
},
|
|
3122
2949
|
});
|
|
3123
2950
|
if ((result.data?.widgets ?? []).length) {
|
|
@@ -3155,7 +2982,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
|
|
|
3155
2982
|
<axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
|
|
3156
2983
|
</axp-widget-property-viewer>
|
|
3157
2984
|
}
|
|
3158
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type:
|
|
2985
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.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: AXLoadingModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i4$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3159
2986
|
}
|
|
3160
2987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
|
|
3161
2988
|
type: Component,
|
|
@@ -3225,10 +3052,9 @@ var widgetSelectorWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
3225
3052
|
const AXPWidgetSelectorWidget = {
|
|
3226
3053
|
name: 'widget-selector',
|
|
3227
3054
|
title: 'Widget Selector',
|
|
3228
|
-
|
|
3055
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3229
3056
|
type: 'editor',
|
|
3230
|
-
|
|
3231
|
-
icon: 'fa-solid fa-square',
|
|
3057
|
+
icon: 'fa-light fa-square',
|
|
3232
3058
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
3233
3059
|
components: {
|
|
3234
3060
|
view: {
|
|
@@ -3688,5 +3514,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
3688
3514
|
* Generated bundle index. Do not edit.
|
|
3689
3515
|
*/
|
|
3690
3516
|
|
|
3691
|
-
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow,
|
|
3517
|
+
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityMiddlewareDefault, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPModifyEntitySectionWorkflow, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER };
|
|
3692
3518
|
//# sourceMappingURL=acorex-platform-layout-entity.mjs.map
|