@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,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,19 +2168,21 @@ 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]);
|
|
2333
|
-
|
|
2174
|
+
console.log(this.options.customFilter);
|
|
2175
|
+
if (this.options.customFilter) {
|
|
2176
|
+
const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);
|
|
2177
|
+
if (cleanedFilters.length > 0) {
|
|
2178
|
+
filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));
|
|
2179
|
+
}
|
|
2334
2180
|
}
|
|
2335
2181
|
if (hasInlineFilters) {
|
|
2336
2182
|
filters.push(this.inlineFilters);
|
|
2337
2183
|
}
|
|
2338
|
-
if (hasParentFilters && this.parentFilters) {
|
|
2339
|
-
filters.push(this.parentFilters);
|
|
2184
|
+
if (hasParentFilters && this.options.parentFilters) {
|
|
2185
|
+
filters.push(this.options.parentFilters);
|
|
2340
2186
|
}
|
|
2341
2187
|
// Apply the filters to the dataSource
|
|
2342
2188
|
this.dataSource.filter({
|
|
@@ -2362,59 +2208,53 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2362
2208
|
this.entityResolver = inject(AXPEntityResolver);
|
|
2363
2209
|
this.formatService = inject(AXFormatService);
|
|
2364
2210
|
this.popupService = inject(AXPopupService);
|
|
2365
|
-
this.destroyRef = inject(DestroyRef);
|
|
2366
2211
|
this.translateService = inject(AXTranslationService);
|
|
2367
2212
|
this.expose = computed(() => this.options()['expose']);
|
|
2368
2213
|
this.entity = computed(() => this.options()['entity']);
|
|
2369
2214
|
this.customFilter = computed(() => this.options()['filter']);
|
|
2215
|
+
this.multiple = computed(() => (this.options()['multiple'] ?? false));
|
|
2370
2216
|
this.textField = computed(() => {
|
|
2371
2217
|
return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');
|
|
2372
2218
|
});
|
|
2219
|
+
this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');
|
|
2373
2220
|
this.entityDef = signal(null);
|
|
2374
2221
|
this.searchTerm = signal(null);
|
|
2375
|
-
this.
|
|
2376
|
-
this.
|
|
2222
|
+
this.selectedItems = signal([]);
|
|
2223
|
+
this.textbox = viewChild(AXTagBoxComponent);
|
|
2377
2224
|
this.isLoading = signal(false);
|
|
2378
2225
|
this.isOpen = signal(false);
|
|
2379
2226
|
this.vm = signal(null);
|
|
2380
2227
|
this.placeholder = computed(() => {
|
|
2381
|
-
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(', '));
|
|
2382
2229
|
});
|
|
2383
|
-
this
|
|
2384
|
-
const value = this.getValue();
|
|
2385
|
-
if (isNil(value)) {
|
|
2386
|
-
this.displayText.set('');
|
|
2387
|
-
}
|
|
2388
|
-
else if (typeof value == 'object' && !Array.isArray(value)) {
|
|
2389
|
-
this.displayText.set(this.formatService.format(this.textField(), 'string', value));
|
|
2390
|
-
}
|
|
2391
|
-
else if (value != null) {
|
|
2392
|
-
await this.findByValue();
|
|
2393
|
-
}
|
|
2394
|
-
});
|
|
2395
|
-
this.efEntity = effect(async () => {
|
|
2230
|
+
this.#efEntity = effect(async () => {
|
|
2396
2231
|
const [module, entity] = this.entity().split('.');
|
|
2397
2232
|
this.entityDef.set(await this.entityResolver.get(module, entity));
|
|
2398
|
-
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
|
+
}
|
|
2399
2239
|
});
|
|
2400
2240
|
}
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
//
|
|
2404
|
-
// this.builderService.onContextChanged.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(async (c) => {
|
|
2405
|
-
// if (c.path == this.path) {
|
|
2406
|
-
// if (this.getValue()) {
|
|
2407
|
-
// await this.findByValue();
|
|
2408
|
-
// }
|
|
2409
|
-
// }
|
|
2410
|
-
// });
|
|
2411
|
-
}
|
|
2241
|
+
#efEntity;
|
|
2242
|
+
#efValue;
|
|
2412
2243
|
async findByValue() {
|
|
2413
2244
|
this.isLoading.set(true);
|
|
2414
2245
|
const byKey = this.entityDef()?.queries.byKey?.execute;
|
|
2415
2246
|
if (byKey) {
|
|
2416
|
-
const
|
|
2417
|
-
|
|
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
|
+
}
|
|
2418
2258
|
}
|
|
2419
2259
|
this.isLoading.set(false);
|
|
2420
2260
|
}
|
|
@@ -2428,33 +2268,35 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2428
2268
|
title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,
|
|
2429
2269
|
size: (this.vm()?.columns().length ?? 0) > 3 ? 'lg' : 'md',
|
|
2430
2270
|
data: {
|
|
2431
|
-
vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(),
|
|
2432
|
-
|
|
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(),
|
|
2433
2278
|
},
|
|
2434
2279
|
})
|
|
2435
2280
|
.then((e) => {
|
|
2436
2281
|
this.isOpen.set(false);
|
|
2437
|
-
this.textbox
|
|
2282
|
+
this.textbox()?.focus();
|
|
2438
2283
|
if (e.data?.items) {
|
|
2439
|
-
this.setItems(e.data?.items
|
|
2284
|
+
this.setItems(e.data?.items);
|
|
2440
2285
|
}
|
|
2441
2286
|
});
|
|
2442
2287
|
}
|
|
2443
2288
|
handleValueChange(e) {
|
|
2444
|
-
|
|
2289
|
+
if (e.isUserInteraction) {
|
|
2290
|
+
this.setValue(e.value);
|
|
2291
|
+
}
|
|
2445
2292
|
}
|
|
2446
2293
|
handleOnBlur(e) {
|
|
2447
2294
|
const com = e.component;
|
|
2448
|
-
const input =
|
|
2295
|
+
const input = e.htmlElement.querySelector('input');
|
|
2449
2296
|
setTimeout(() => {
|
|
2450
|
-
if (this.
|
|
2451
|
-
input.value =
|
|
2452
|
-
|
|
2453
|
-
else {
|
|
2454
|
-
if (!this.isOpen()) {
|
|
2455
|
-
input.value = '';
|
|
2456
|
-
this.searchTerm.set(null);
|
|
2457
|
-
}
|
|
2297
|
+
if (!this.isOpen()) {
|
|
2298
|
+
input.value = '';
|
|
2299
|
+
this.searchTerm.set(null);
|
|
2458
2300
|
}
|
|
2459
2301
|
}, 100);
|
|
2460
2302
|
}
|
|
@@ -2473,37 +2315,34 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2473
2315
|
this.isLoading.set(false);
|
|
2474
2316
|
}
|
|
2475
2317
|
}
|
|
2476
|
-
setItems(
|
|
2318
|
+
setItems(items) {
|
|
2319
|
+
if (!items) {
|
|
2320
|
+
return;
|
|
2321
|
+
}
|
|
2322
|
+
//
|
|
2323
|
+
items = castArray(items);
|
|
2477
2324
|
this.searchTerm.set(null);
|
|
2478
|
-
this.
|
|
2479
|
-
|
|
2480
|
-
const
|
|
2481
|
-
|
|
2482
|
-
this.setValue(
|
|
2325
|
+
this.selectedItems.set(items);
|
|
2326
|
+
//
|
|
2327
|
+
const values = items.map(item => get(item, this.valueField()));
|
|
2328
|
+
//
|
|
2329
|
+
this.setValue(values);
|
|
2330
|
+
//
|
|
2483
2331
|
// extract data from valueField and set context by expose path
|
|
2484
2332
|
if (this.expose()) {
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
}
|
|
2499
|
-
});
|
|
2500
|
-
}
|
|
2501
|
-
// extract data from item by source path and set context by target path
|
|
2502
|
-
else if (typeof this.expose() == 'object') {
|
|
2503
|
-
const i = this.expose();
|
|
2504
|
-
const key = get(item, i.source);
|
|
2505
|
-
this.contextService.update(i.target, key);
|
|
2506
|
-
}
|
|
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
|
+
});
|
|
2507
2346
|
}
|
|
2508
2347
|
}
|
|
2509
2348
|
handleClearClick() {
|
|
@@ -2512,14 +2351,17 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2512
2351
|
clear() {
|
|
2513
2352
|
this.setValue(null);
|
|
2514
2353
|
this.searchTerm.set('');
|
|
2515
|
-
this.
|
|
2354
|
+
this.selectedItems.set([]);
|
|
2516
2355
|
}
|
|
2517
2356
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2518
|
-
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:
|
|
2519
|
-
<ax-
|
|
2520
|
-
[
|
|
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()"
|
|
2521
2362
|
(onValueChanged)="handleValueChange($event)"
|
|
2522
2363
|
[placeholder]="placeholder()"
|
|
2364
|
+
[addOnEnter]="false"
|
|
2523
2365
|
(onKeyUp)="handleKeyDown($event)"
|
|
2524
2366
|
(onBlur)="handleOnBlur($event)"
|
|
2525
2367
|
>
|
|
@@ -2530,7 +2372,9 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2530
2372
|
[options]="validation.options"
|
|
2531
2373
|
></ax-validation-rule>
|
|
2532
2374
|
}
|
|
2375
|
+
@if(selectedItems().length > 1) {
|
|
2533
2376
|
<ax-clear-button (click)="handleClearClick()"></ax-clear-button>
|
|
2377
|
+
}
|
|
2534
2378
|
|
|
2535
2379
|
<ax-suffix>
|
|
2536
2380
|
<ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
|
|
@@ -2541,18 +2385,23 @@ class AXPLookupWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2541
2385
|
}
|
|
2542
2386
|
</ax-button>
|
|
2543
2387
|
</ax-suffix>
|
|
2544
|
-
</ax-
|
|
2545
|
-
`, 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 }); }
|
|
2546
2392
|
}
|
|
2547
2393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
|
|
2548
2394
|
type: Component,
|
|
2549
2395
|
args: [{
|
|
2550
2396
|
selector: 'axp-lookup-widget-edit',
|
|
2551
2397
|
template: `
|
|
2552
|
-
<ax-
|
|
2553
|
-
[
|
|
2398
|
+
<ax-tag-box
|
|
2399
|
+
[tags]="selectedItems()"
|
|
2400
|
+
[textField]="textField()"
|
|
2401
|
+
[valueField]="valueField()"
|
|
2554
2402
|
(onValueChanged)="handleValueChange($event)"
|
|
2555
2403
|
[placeholder]="placeholder()"
|
|
2404
|
+
[addOnEnter]="false"
|
|
2556
2405
|
(onKeyUp)="handleKeyDown($event)"
|
|
2557
2406
|
(onBlur)="handleOnBlur($event)"
|
|
2558
2407
|
>
|
|
@@ -2563,7 +2412,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2563
2412
|
[options]="validation.options"
|
|
2564
2413
|
></ax-validation-rule>
|
|
2565
2414
|
}
|
|
2415
|
+
@if(selectedItems().length > 1) {
|
|
2566
2416
|
<ax-clear-button (click)="handleClearClick()"></ax-clear-button>
|
|
2417
|
+
}
|
|
2567
2418
|
|
|
2568
2419
|
<ax-suffix>
|
|
2569
2420
|
<ax-button color="ghost" look="blank" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
|
|
@@ -2574,61 +2425,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2574
2425
|
}
|
|
2575
2426
|
</ax-button>
|
|
2576
2427
|
</ax-suffix>
|
|
2577
|
-
</ax-
|
|
2428
|
+
</ax-tag-box>
|
|
2578
2429
|
`,
|
|
2579
2430
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2580
2431
|
imports: [
|
|
2581
2432
|
CommonModule,
|
|
2582
2433
|
FormsModule,
|
|
2583
|
-
|
|
2584
|
-
AXTextBoxModule,
|
|
2434
|
+
//
|
|
2585
2435
|
AXButtonModule,
|
|
2586
2436
|
AXDecoratorModule,
|
|
2587
2437
|
AXLoadingModule,
|
|
2588
2438
|
AXValidationModule,
|
|
2589
2439
|
AXFormModule,
|
|
2440
|
+
AXTagBoxModule
|
|
2590
2441
|
],
|
|
2591
2442
|
}]
|
|
2592
|
-
}]
|
|
2593
|
-
type: ViewChild,
|
|
2594
|
-
args: [AXTextBoxComponent]
|
|
2595
|
-
}] } });
|
|
2443
|
+
}] });
|
|
2596
2444
|
|
|
2597
2445
|
var lookupWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
2598
2446
|
__proto__: null,
|
|
2599
2447
|
AXPLookupWidgetEditComponent: AXPLookupWidgetEditComponent
|
|
2600
2448
|
});
|
|
2601
2449
|
|
|
2602
|
-
class AXPLookupWidgetFilterComponent extends AXPWidgetComponent {
|
|
2603
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2604
|
-
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 }); }
|
|
2605
|
-
}
|
|
2606
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetFilterComponent, decorators: [{
|
|
2607
|
-
type: Component,
|
|
2608
|
-
args: [{
|
|
2609
|
-
template: ``,
|
|
2610
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2611
|
-
imports: [CommonModule, FormsModule],
|
|
2612
|
-
inputs: []
|
|
2613
|
-
}]
|
|
2614
|
-
}] });
|
|
2615
|
-
|
|
2616
|
-
var lookupWidgetFilter_component = /*#__PURE__*/Object.freeze({
|
|
2617
|
-
__proto__: null,
|
|
2618
|
-
AXPLookupWidgetFilterComponent: AXPLookupWidgetFilterComponent
|
|
2619
|
-
});
|
|
2620
|
-
|
|
2621
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
|
+
}
|
|
2622
2468
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2623
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2624
|
-
|
|
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>
|
|
2625
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 }); }
|
|
2626
2476
|
}
|
|
2627
2477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{
|
|
2628
2478
|
type: Component,
|
|
2629
2479
|
args: [{
|
|
2630
2480
|
template: `
|
|
2631
|
-
|
|
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>
|
|
2632
2486
|
`,
|
|
2633
2487
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2634
2488
|
imports: [CommonModule, AXBadgeModule],
|
|
@@ -2641,30 +2495,10 @@ var lookupWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
2641
2495
|
AXPLookupWidgetColumnComponent: AXPLookupWidgetColumnComponent
|
|
2642
2496
|
});
|
|
2643
2497
|
|
|
2644
|
-
class AXPLookupWidgetPrintComponent extends AXPWidgetComponent {
|
|
2645
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2646
|
-
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 }); }
|
|
2647
|
-
}
|
|
2648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPLookupWidgetPrintComponent, decorators: [{
|
|
2649
|
-
type: Component,
|
|
2650
|
-
args: [{
|
|
2651
|
-
template: ``,
|
|
2652
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2653
|
-
imports: [CommonModule],
|
|
2654
|
-
inputs: []
|
|
2655
|
-
}]
|
|
2656
|
-
}] });
|
|
2657
|
-
|
|
2658
|
-
var lookupWidgetPrint_component = /*#__PURE__*/Object.freeze({
|
|
2659
|
-
__proto__: null,
|
|
2660
|
-
AXPLookupWidgetPrintComponent: AXPLookupWidgetPrintComponent
|
|
2661
|
-
});
|
|
2662
|
-
|
|
2663
2498
|
const AXPLookupWidget = {
|
|
2664
2499
|
name: 'lookup-editor',
|
|
2665
2500
|
title: 'Lookup',
|
|
2666
|
-
|
|
2667
|
-
group: AXP_WIDGETS_EDITOR_GROUP,
|
|
2501
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2668
2502
|
defaultFilterWidgetName: 'lookup-filter',
|
|
2669
2503
|
type: 'editor',
|
|
2670
2504
|
properties: [
|
|
@@ -2698,6 +2532,7 @@ const AXPLookupWidget = {
|
|
|
2698
2532
|
},
|
|
2699
2533
|
visible: true,
|
|
2700
2534
|
},
|
|
2535
|
+
AXP_ALLOW_MULTIPLE_PROPERTY
|
|
2701
2536
|
],
|
|
2702
2537
|
components: {
|
|
2703
2538
|
view: {
|
|
@@ -2706,15 +2541,9 @@ const AXPLookupWidget = {
|
|
|
2706
2541
|
edit: {
|
|
2707
2542
|
component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
|
|
2708
2543
|
},
|
|
2709
|
-
filter: {
|
|
2710
|
-
component: () => Promise.resolve().then(function () { return lookupWidgetFilter_component; }).then((c) => c.AXPLookupWidgetFilterComponent),
|
|
2711
|
-
},
|
|
2712
2544
|
column: {
|
|
2713
2545
|
component: () => Promise.resolve().then(function () { return lookupWidgetColumn_component; }).then((c) => c.AXPLookupWidgetColumnComponent),
|
|
2714
2546
|
},
|
|
2715
|
-
print: {
|
|
2716
|
-
component: () => Promise.resolve().then(function () { return lookupWidgetPrint_component; }).then((c) => c.AXPLookupWidgetPrintComponent),
|
|
2717
|
-
},
|
|
2718
2547
|
designer: {
|
|
2719
2548
|
component: () => Promise.resolve().then(function () { return lookupWidgetEdit_component; }).then((c) => c.AXPLookupWidgetEditComponent),
|
|
2720
2549
|
},
|
|
@@ -2855,9 +2684,9 @@ class AXPTagableBoxWidgetEditComponent extends AXPWidgetComponent {
|
|
|
2855
2684
|
</ax-prefix>
|
|
2856
2685
|
</ax-button>
|
|
2857
2686
|
</div>
|
|
2858
|
-
`, 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:
|
|
2859
2688
|
// AXTagBoxModule,
|
|
2860
|
-
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 }); }
|
|
2861
2690
|
}
|
|
2862
2691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, decorators: [{
|
|
2863
2692
|
type: Component,
|
|
@@ -3061,9 +2890,9 @@ var tagableBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
3061
2890
|
const AXPTagableBoxWidget = {
|
|
3062
2891
|
name: 'tagable-editor',
|
|
3063
2892
|
title: 'Tagable Box',
|
|
3064
|
-
icon: 'fa-
|
|
2893
|
+
icon: 'fa-light fa-tags',
|
|
3065
2894
|
description: 'Inputs text with tags',
|
|
3066
|
-
|
|
2895
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3067
2896
|
type: 'editor',
|
|
3068
2897
|
defaultFilterWidgetName: 'string-filter',
|
|
3069
2898
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
|
|
@@ -3115,7 +2944,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
|
|
|
3115
2944
|
size: 'md',
|
|
3116
2945
|
closeButton: true,
|
|
3117
2946
|
data: {
|
|
3118
|
-
widgets: sortBy(this.widgetRegisteryService.all()
|
|
2947
|
+
widgets: sortBy(this.widgetRegisteryService.all(), (c) => c.title),
|
|
3119
2948
|
},
|
|
3120
2949
|
});
|
|
3121
2950
|
if ((result.data?.widgets ?? []).length) {
|
|
@@ -3153,7 +2982,7 @@ class AXPWidgetSelectorWidgetEditComponent extends AXPWidgetComponent {
|
|
|
3153
2982
|
<axp-widget-property-viewer [widget]="selectedWidgetNode()!" (onChanged)="handleChangeWidget($event)">
|
|
3154
2983
|
</axp-widget-property-viewer>
|
|
3155
2984
|
}
|
|
3156
|
-
`, 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 }); }
|
|
3157
2986
|
}
|
|
3158
2987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{
|
|
3159
2988
|
type: Component,
|
|
@@ -3223,10 +3052,9 @@ var widgetSelectorWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
3223
3052
|
const AXPWidgetSelectorWidget = {
|
|
3224
3053
|
name: 'widget-selector',
|
|
3225
3054
|
title: 'Widget Selector',
|
|
3226
|
-
|
|
3055
|
+
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3227
3056
|
type: 'editor',
|
|
3228
|
-
|
|
3229
|
-
icon: 'fa-solid fa-square',
|
|
3057
|
+
icon: 'fa-light fa-square',
|
|
3230
3058
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
3231
3059
|
components: {
|
|
3232
3060
|
view: {
|
|
@@ -3686,5 +3514,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
3686
3514
|
* Generated bundle index. Do not edit.
|
|
3687
3515
|
*/
|
|
3688
3516
|
|
|
3689
|
-
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 };
|
|
3690
3518
|
//# sourceMappingURL=acorex-platform-layout-entity.mjs.map
|