@acorex/platform 21.0.0-next.37 → 21.0.0-next.39
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/fesm2022/acorex-platform-common.mjs +19 -1
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +11 -172
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +7 -8
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +39 -29
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +8 -9
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +468 -255
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +171 -86
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +36 -13
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs → acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs} +5 -60
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +101 -128
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +16 -4
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +25 -5
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-common.d.ts +11 -6
- package/types/acorex-platform-core.d.ts +56 -101
- package/types/acorex-platform-layout-builder.d.ts +0 -1
- package/types/acorex-platform-layout-components.d.ts +4 -3
- package/types/acorex-platform-layout-designer.d.ts +1 -1
- package/types/acorex-platform-layout-entity.d.ts +36 -30
- package/types/acorex-platform-layout-views.d.ts +31 -29
- package/types/acorex-platform-layout-widget-core.d.ts +30 -14
- package/types/acorex-platform-layout-widgets.d.ts +17 -11
- package/types/acorex-platform-themes-default.d.ts +1 -0
- package/types/acorex-platform-workflow.d.ts +28 -51
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +0 -1
|
@@ -12,7 +12,7 @@ import { AXToastService } from '@acorex/components/toast';
|
|
|
12
12
|
import { AXFileService } from '@acorex/core/file';
|
|
13
13
|
import { merge, cloneDeep, assign, sortBy, get, set, isNil, isEmpty, orderBy, castArray, uniqBy, isEqual } from 'lodash-es';
|
|
14
14
|
import { Subject, distinctUntilChanged, filter, debounceTime, first, merge as merge$1 } from 'rxjs';
|
|
15
|
-
import { AXPBroadcastEventService,
|
|
15
|
+
import { AXPBroadcastEventService, AXPPlatformScope, AXPDataSourceDefinitionProviderService } from '@acorex/platform/core';
|
|
16
16
|
import * as i8 from '@acorex/core/translation';
|
|
17
17
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
18
18
|
import * as i2$1 from '@acorex/cdk/common';
|
|
@@ -1300,14 +1300,14 @@ function mapToWidgetItemData(widget) {
|
|
|
1300
1300
|
description: widget.description,
|
|
1301
1301
|
icon: widget.icon ?? 'fa-solid fa-cube',
|
|
1302
1302
|
isPinned: widget.pinned,
|
|
1303
|
-
data: widget
|
|
1303
|
+
data: widget,
|
|
1304
1304
|
};
|
|
1305
1305
|
}
|
|
1306
1306
|
class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
|
|
1307
1307
|
constructor() {
|
|
1308
1308
|
super(...arguments);
|
|
1309
1309
|
this.settingsService = inject(AXPSettingsService);
|
|
1310
|
-
this.mlResolver = inject(
|
|
1310
|
+
this.mlResolver = inject(AXTranslationService);
|
|
1311
1311
|
this.pinnedSettingKey = 'forms:widgets:picker:pinned';
|
|
1312
1312
|
this.i18n = WIDGET_PICKER_I18N;
|
|
1313
1313
|
this.searchTerm = model('', ...(ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []));
|
|
@@ -1413,7 +1413,7 @@ class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
|
|
|
1413
1413
|
this.close({ widgets: this.selectedWidgets() });
|
|
1414
1414
|
}
|
|
1415
1415
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDesignerWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1416
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPDesignerWidgetPickerComponent, isStandalone: true, selector: "ng-component", inputs: { searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: "searchTermChange" }, usesInheritance: true, ngImport: i0, template: "<div
|
|
1416
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPDesignerWidgetPickerComponent, isStandalone: true, selector: "ng-component", inputs: { searchTerm: { classPropertyName: "searchTerm", publicName: "searchTerm", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: "searchTermChange" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-h-[95vh]\"\n [ngClass]=\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\"\n>\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for (w of tabs(); track $index) {\n <ax-tab-item\n [text]=\"(w.title | translate | async)!\"\n [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"\n ></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div\n class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-lightest ax-shadow-xl'\"\n [stickyParent]=\"content\"\n [stickyOffset]=\"10\"\n >\n <ax-search-box\n look=\"fill\"\n [placeholder]=\"(i18n.searchPlaceholder | translate | async) ?? ''\"\n [(ngModel)]=\"searchTerm\"\n [delayTime]=\"300\"\n [axAutoFocus]=\"true\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of pinnedWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item\n [widget]=\"widgetItem\"\n [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\"\n (onPinClick)=\"handleWidgetPinClick($event)\"\n >\n </axp-widget-item>\n }\n </div>\n @if (pinnedWidgetItems().length) {\n <hr class=\"ax-my-4 ax-border-dashed\" />\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of regularWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item\n [widget]=\"widgetItem\"\n [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\"\n (onPinClick)=\"handleWidgetPinClick($event)\"\n >\n </axp-widget-item>\n }\n </div>\n </div>\n </div>\n</div>\n@if (selectedWidgets().length) {\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"(i18n.selectedCount | translate: { params: { count: selectedWidgets().length } } | async) ?? ''\"\n (onClick)=\"handleConfirmSelection()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "directive", type: i2$1.AXAutoFocusDirective, selector: "[axAutoFocus]", inputs: ["axAutoFocus", "axAutoFocusTime"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.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: i1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i1.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: AXTabsModule }, { kind: "component", type: i6.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXPWidgetItemComponent, selector: "axp-widget-item", inputs: ["widget", "isSelected", "showPinButton", "customClasses"], outputs: ["onWidgetClick", "onPinClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1417
1417
|
}
|
|
1418
1418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDesignerWidgetPickerComponent, decorators: [{
|
|
1419
1419
|
type: Component,
|
|
@@ -1428,8 +1428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1428
1428
|
AXPStickyDirective,
|
|
1429
1429
|
AXPWidgetItemComponent,
|
|
1430
1430
|
AXTranslationModule,
|
|
1431
|
-
|
|
1432
|
-
], encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col ax-h-[95vh]\"\n [ngClass]=\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\">\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for(w of tabs();track $index) {\n <ax-tab-item [text]=\"(w.title | axpResolveMultiLanguageString | translate | async)!\" [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\" #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-lightest ax-shadow-xl'\" [stickyParent]=\"content\" [stickyOffset]=\"10\">\n <ax-search-box look=\"fill\" [placeholder]=\"(i18n.searchPlaceholder | translate | async) ?? ''\"\n [(ngModel)]=\"searchTerm\" [delayTime]=\"300\" [axAutoFocus]=\"true\">\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of pinnedWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item [widget]=\"widgetItem\" [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\" (onPinClick)=\"handleWidgetPinClick($event)\">\n </axp-widget-item>\n }\n </div>\n @if(pinnedWidgetItems().length) {\n <hr class=\"ax-my-4 ax-border-dashed\" />\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of regularWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item [widget]=\"widgetItem\" [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\" (onPinClick)=\"handleWidgetPinClick($event)\">\n </axp-widget-item>\n }\n </div>\n </div>\n </div>\n</div>\n@if(selectedWidgets().length) {\n<ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" color=\"primary\"\n [text]=\"(i18n.selectedCount | translate: { params: { count: selectedWidgets().length } } | async) ?? ''\"\n (onClick)=\"handleConfirmSelection()\"></ax-button>\n </ax-suffix>\n</ax-footer>\n}" }]
|
|
1431
|
+
], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ax-flex ax-flex-col ax-h-[95vh]\"\n [ngClass]=\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\"\n>\n <div>\n <ax-tabs [look]=\"'with-line'\" (onActiveTabChanged)=\"handleTabChange($event)\">\n @for (w of tabs(); track $index) {\n <ax-tab-item\n [text]=\"(w.title | translate | async)!\"\n [key]=\"$index.toString()\"\n [active]=\"currentTabIndex() === $index\"\n ></ax-tab-item>\n }\n </ax-tabs>\n </div>\n <div class=\"ax-overflow-auto\" #content>\n <div\n class=\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-lightest ax-shadow-xl'\"\n [stickyParent]=\"content\"\n [stickyOffset]=\"10\"\n >\n <ax-search-box\n look=\"fill\"\n [placeholder]=\"(i18n.searchPlaceholder | translate | async) ?? ''\"\n [(ngModel)]=\"searchTerm\"\n [delayTime]=\"300\"\n [axAutoFocus]=\"true\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-p-4 ax-pt-0\">\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of pinnedWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item\n [widget]=\"widgetItem\"\n [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\"\n (onPinClick)=\"handleWidgetPinClick($event)\"\n >\n </axp-widget-item>\n }\n </div>\n @if (pinnedWidgetItems().length) {\n <hr class=\"ax-my-4 ax-border-dashed\" />\n }\n <div class=\"ax-grid ax-grid-cols-2 ax-gap-2\">\n @for (widgetItem of regularWidgetItems(); track $any(widgetItem.data).name) {\n <axp-widget-item\n [widget]=\"widgetItem\"\n [isSelected]=\"isWidgetItemSelected(widgetItem)\"\n (onWidgetClick)=\"handleWidgetClick($event)\"\n (onPinClick)=\"handleWidgetPinClick($event)\"\n >\n </axp-widget-item>\n }\n </div>\n </div>\n </div>\n</div>\n@if (selectedWidgets().length) {\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"(i18n.selectedCount | translate: { params: { count: selectedWidgets().length } } | async) ?? ''\"\n (onClick)=\"handleConfirmSelection()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n}\n" }]
|
|
1433
1432
|
}], propDecorators: { searchTerm: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchTerm", required: false }] }, { type: i0.Output, args: ["searchTermChange"] }] } });
|
|
1434
1433
|
|
|
1435
1434
|
var widgetPicker_component = /*#__PURE__*/Object.freeze({
|
|
@@ -1763,7 +1762,7 @@ class AXPDesignerBoardComponent {
|
|
|
1763
1762
|
constructor() {
|
|
1764
1763
|
this.context = {};
|
|
1765
1764
|
this.elementRef = inject((ElementRef));
|
|
1766
|
-
this.mlResolver = inject(
|
|
1765
|
+
this.mlResolver = inject(AXTranslationService);
|
|
1767
1766
|
this.breakpointMap = {
|
|
1768
1767
|
sm: 640,
|
|
1769
1768
|
md: 768,
|
|
@@ -1865,12 +1864,12 @@ class AXPDesignerBoardComponent {
|
|
|
1865
1864
|
}
|
|
1866
1865
|
async handleContextMenuItemClick(e) {
|
|
1867
1866
|
if (e.item.name) {
|
|
1868
|
-
const instance = get(e.item.data,
|
|
1867
|
+
const instance = get(e.item.data, 'instance');
|
|
1869
1868
|
await this.service.executeCommand({ instance, name: e.item.name });
|
|
1870
1869
|
}
|
|
1871
1870
|
}
|
|
1872
1871
|
bindInstanceToItems(items, instance) {
|
|
1873
|
-
items.forEach(item => {
|
|
1872
|
+
items.forEach((item) => {
|
|
1874
1873
|
// Ensure each item gets the correct instance
|
|
1875
1874
|
item.data = { ...(item.data ?? {}), instance };
|
|
1876
1875
|
// If the item has sub-items, bind instance to them recursively
|