@acorex-platform/framework-client 0.0.38 → 0.0.48
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-framework-client-auth.mjs +212 -44
- package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs → acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs} +31 -1
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-common.mjs +1172 -193
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +233 -132
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +295 -59
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs} +10 -6
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs +66 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs +195 -0
- package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +4015 -1014
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +1179 -304
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs} +1701 -300
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +47 -8
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +3854 -3292
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs +33319 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs} +8 -5
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs +45 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs +68 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs +88 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs +81 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs} +41 -23
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs +71 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs +111 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs +77 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs} +21 -8
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs +124 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs +345 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -31985
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs +2 -2
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs +122 -0
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs} +3 -3
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +424 -103
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs → acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs} +102 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +174 -22
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/package.json +2 -2
- package/realtime/README.md +1 -1
- package/types/acorex-platform-framework-client-auth.d.ts +18 -1
- package/types/acorex-platform-framework-client-common.d.ts +243 -9
- package/types/acorex-platform-framework-client-core.d.ts +152 -119
- package/types/acorex-platform-framework-client-layout-builder.d.ts +29 -0
- package/types/acorex-platform-framework-client-layout-components.d.ts +717 -147
- package/types/acorex-platform-framework-client-layout-designer.d.ts +192 -14
- package/types/acorex-platform-framework-client-layout-entity.d.ts +167 -92
- package/types/acorex-platform-framework-client-layout-views.d.ts +23 -1
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +148 -40
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +261 -119
- package/types/acorex-platform-framework-client-realtime.d.ts +16 -3
- package/types/acorex-platform-framework-client-themes-default.d.ts +62 -11
- package/types/acorex-platform-framework-client-themes-shared.d.ts +25 -2
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs +0 -77
- package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs +0 -122
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +0 -1
|
@@ -127,7 +127,7 @@ class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
|
|
|
127
127
|
this.vm.context.set(e.data);
|
|
128
128
|
}
|
|
129
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", providers: [AXPContextStore], viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", providers: [AXPContextStore], viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-create\">\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button id=\"axp-btn-cancel\" look=\"solid\" [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button id=\"axp-btn-save\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\" look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button id=\"axp-btn-save\" look=\"solid\" color=\"primary\" [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i1.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: i1.AXValidationSummaryComponent, selector: "ax-validation-summary", inputs: ["title", "displayMode", "timeOut", "autoHide"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.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: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type:
|
|
131
131
|
//
|
|
132
132
|
AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
133
133
|
}
|
|
@@ -154,8 +154,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
154
154
|
AXPComponentSlotModule,
|
|
155
155
|
AXPWidgetsModule,
|
|
156
156
|
AXPGridLayoutDirective,
|
|
157
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPContextStore], template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4
|
|
157
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPContextStore], template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-create\">\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button id=\"axp-btn-cancel\" look=\"solid\" [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button id=\"axp-btn-save\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\" look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button id=\"axp-btn-save\" look=\"solid\" color=\"primary\" [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>" }]
|
|
158
158
|
}], propDecorators: { container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
|
|
159
159
|
|
|
160
160
|
export { AXPEntityMasterCreateViewComponent };
|
|
161
|
-
//# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-create-view.component-
|
|
161
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.ts","../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXValidationModule } from '@acorex/core/validation';\n\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';\nimport { AXPComponentSlotModule, AXPContextStore, AXPExpressionEvaluatorService, AXPGridLayoutDirective } from '@acorex-platform/framework-client/core';\nimport { AXPEntityMasterCreateViewModel } from '@acorex-platform/framework-client/layout/entity';\nimport {\n AXPWidgetContainerComponent,\n AXPWidgetCoreModule,\n} from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';\nimport { get } from 'lodash-es';\n\n@Component({\n templateUrl: './entity-master-create-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule,\n AXPComponentSlotModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXPContextStore],\n})\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n protected vm!: AXPEntityMasterCreateViewModel;\n\n private container = viewChild(AXPWidgetContainerComponent);\n private evaluator = inject(AXPExpressionEvaluatorService);\n private toastService = inject(AXToastService);\n private translationService = inject(AXTranslationService);\n\n ngAfterViewInit() {\n this.vm.builder = this.container()!.builderService;\n }\n protected hiddenProperties = signal<string[]>([]);\n\n #visibilityEffect = effect(async () => {\n const formContext = this.vm.context();\n const allElements = this.vm.sections().flatMap((section) => section.elements());\n const visibilityConfig = allElements.map((element) => ({\n name: element.name(),\n visible: element.isVisible(),\n }));\n\n const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {\n context: {\n eval: (path: string) => get(formContext, path),\n },\n });\n\n const hiddenElementNames = evaluatedElements\n .filter((element: { name: string; visible: boolean }) => element.visible == false)\n .map((element: { name: string; visible: boolean }) => element.name);\n this.hiddenProperties.set(hiddenElementNames);\n });\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n\n protected async handleNextClick(form: AXFormComponent) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n } catch (error: any) {\n const errorMessage =\n error?.message ||\n error?.toString() ||\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n // this.toastService.show({\n // color: 'danger',\n // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n // content: errorMessage,\n // location: 'bottom-center',\n // closeButton: true,\n // timeOut: 5000,\n // timeOutProgress: true,\n // });\n }\n }\n }\n\n protected async handleSaveAndNewClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n } catch (error: any) {\n const errorMessage =\n error?.message ||\n error?.toString() ||\n (await this.translationService.translateAsync('@general:messages.generic.error.description'));\n // this.toastService.show({\n // color: 'danger',\n // title: await this.translationService.translateAsync('@general:messages.generic.error.title'),\n // content: errorMessage,\n // location: 'bottom-center',\n // closeButton: true,\n // timeOut: 5000,\n // timeOutProgress: true,\n // });\n }\n }\n }\n\n protected async handleContextChange(e: AXPContextChangeEvent) {\n this.vm.context.set(e.data);\n }\n}\n","<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-create\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-create\">\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button id=\"axp-btn-cancel\" look=\"solid\" [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button id=\"axp-btn-save\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\" look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-save-and-new\"\n [text]=\"('@general:actions.save-and-new.title' | translate | async) ?? ''\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button id=\"axp-btn-save\" look=\"solid\" color=\"primary\" [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>"],"names":["i8","i9","i10"],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AXPPageStatus } from '@acorex-platform/framework-shared/widget-core';
|
|
2
|
+
import * as i3 from '@acorex/components/button';
|
|
3
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
4
|
+
import * as i2 from '@acorex/components/decorators';
|
|
5
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
6
|
+
import { AXDialogModule } from '@acorex/components/dialog';
|
|
7
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
8
|
+
import * as i6 from '@acorex/components/dropdown-button';
|
|
9
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
10
|
+
import * as i1 from '@acorex/components/form';
|
|
11
|
+
import { AXFormModule } from '@acorex/components/form';
|
|
12
|
+
import * as i5 from '@acorex/components/label';
|
|
13
|
+
import { AXLabelModule } from '@acorex/components/label';
|
|
14
|
+
import * as i4 from '@acorex/components/loading';
|
|
15
|
+
import { AXLoadingModule } from '@acorex/components/loading';
|
|
16
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
17
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
18
|
+
import { AXTooltipModule } from '@acorex/components/tooltip';
|
|
19
|
+
import * as i3$1 from '@acorex/core/translation';
|
|
20
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
21
|
+
import { AXValidationModule } from '@acorex/core/validation';
|
|
22
|
+
import * as i1$1 from '@acorex-platform/framework-client/core';
|
|
23
|
+
import { AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPComponentSlotModule, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
24
|
+
import * as i7 from '@acorex-platform/framework-client/layout/widget-core';
|
|
25
|
+
import { AXPWidgetContainerComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';
|
|
26
|
+
import { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';
|
|
27
|
+
import * as i1$2 from '@angular/common';
|
|
28
|
+
import { CommonModule } from '@angular/common';
|
|
29
|
+
import * as i0 from '@angular/core';
|
|
30
|
+
import { inject, viewChild, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
31
|
+
import { FormsModule } from '@angular/forms';
|
|
32
|
+
import { get } from 'lodash-es';
|
|
33
|
+
|
|
34
|
+
class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
this.evaluator = inject(AXPExpressionEvaluatorService);
|
|
38
|
+
this.container = viewChild(AXPWidgetContainerComponent, /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
|
|
40
|
+
this.hiddenProperties = signal([], /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "hiddenProperties" }] : /* istanbul ignore next */ []));
|
|
42
|
+
this.#visibilityEffect = effect(async () => {
|
|
43
|
+
const formContext = this.vm.context();
|
|
44
|
+
const allElements = this.vm.sections().flatMap((section) => section.elements());
|
|
45
|
+
const visibilityConfig = allElements.map((element) => ({
|
|
46
|
+
name: element.name(),
|
|
47
|
+
visible: element.isVisible(),
|
|
48
|
+
}));
|
|
49
|
+
const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {
|
|
50
|
+
context: {
|
|
51
|
+
eval: (path) => get(formContext, path),
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const hiddenElementNames = evaluatedElements
|
|
55
|
+
.filter((element) => element.visible == false)
|
|
56
|
+
.map((element) => element.name);
|
|
57
|
+
this.hiddenProperties.set(hiddenElementNames);
|
|
58
|
+
}, /* @ts-ignore */
|
|
59
|
+
...(ngDevMode ? [{ debugName: "#visibilityEffect" }] : /* istanbul ignore next */ []));
|
|
60
|
+
}
|
|
61
|
+
#visibilityEffect;
|
|
62
|
+
ngAfterViewInit() {
|
|
63
|
+
this.vm.builder = this.container().builderService;
|
|
64
|
+
}
|
|
65
|
+
handleCloseClick() {
|
|
66
|
+
this.close();
|
|
67
|
+
}
|
|
68
|
+
async handleSaveClick(form) {
|
|
69
|
+
const formResult = await form.validate();
|
|
70
|
+
if (formResult.result) {
|
|
71
|
+
try {
|
|
72
|
+
await this.vm.save();
|
|
73
|
+
this.close({ result: true, context: this.vm.context() });
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
this.vm.builder.setStatus(AXPPageStatus.Error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async handleSectionDiscard(form) {
|
|
81
|
+
this.close({ result: false });
|
|
82
|
+
}
|
|
83
|
+
async handleSectionReset(form) {
|
|
84
|
+
this.vm.reset();
|
|
85
|
+
}
|
|
86
|
+
async handleContextChange(e) {
|
|
87
|
+
this.vm.context.set(e.data);
|
|
88
|
+
}
|
|
89
|
+
ngOnDestroy() { }
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntityMasterModifyViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntityMasterModifyViewComponent, isStandalone: true, selector: "ng-component", providers: [AXPContextStore], viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-edit\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-edit\">\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button [mode]=\"'split'\" id=\"axp-btn-discard\"\n [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"handleSectionDiscard(form)\">\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-reset\" [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n </ax-button-item-list>\n </ax-dropdown-button>\n\n <ax-button id=\"axp-btn-apply\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n<axp-component-slot name=\"entity-modify-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i1.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "component", type: i1.AXValidationSummaryComponent, selector: "ax-validation-summary", inputs: ["title", "displayMode", "timeOut", "autoHide"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.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: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "text", "color", "look", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type:
|
|
92
|
+
//
|
|
93
|
+
AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
94
|
+
}
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntityMasterModifyViewComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{ imports: [
|
|
98
|
+
CommonModule,
|
|
99
|
+
FormsModule,
|
|
100
|
+
AXFormModule,
|
|
101
|
+
AXDecoratorModule,
|
|
102
|
+
CommonModule,
|
|
103
|
+
AXButtonModule,
|
|
104
|
+
AXDialogModule,
|
|
105
|
+
AXLoadingModule,
|
|
106
|
+
AXTabsModule,
|
|
107
|
+
AXTooltipModule,
|
|
108
|
+
AXValidationModule,
|
|
109
|
+
AXLabelModule,
|
|
110
|
+
AXDropdownModule,
|
|
111
|
+
AXDropdownButtonModule,
|
|
112
|
+
//
|
|
113
|
+
AXPWidgetCoreModule,
|
|
114
|
+
AXPWidgetsModule,
|
|
115
|
+
AXPGridLayoutDirective,
|
|
116
|
+
AXTranslationModule,
|
|
117
|
+
AXPComponentSlotModule,
|
|
118
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPContextStore], template: "<axp-component-slot name=\"entity-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-edit\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-edit\">\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button [mode]=\"'split'\" id=\"axp-btn-discard\"\n [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"handleSectionDiscard(form)\">\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-reset\" [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n </ax-button-item-list>\n </ax-dropdown-button>\n\n <ax-button id=\"axp-btn-apply\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n<axp-component-slot name=\"entity-modify-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>" }]
|
|
119
|
+
}], propDecorators: { container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
|
|
120
|
+
|
|
121
|
+
export { AXPEntityMasterModifyViewComponent };
|
|
122
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.ts","../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.html"],"sourcesContent":["import { AXPPageStatus } from '@acorex-platform/framework-shared/widget-core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';\nimport { AXPComponentSlotModule, AXPContextStore, AXPExpressionEvaluatorService, AXPGridLayoutDirective } from '@acorex-platform/framework-client/core';\nimport { AXPEntityMasterUpdateViewModel } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetContainerComponent, AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { get } from 'lodash-es';\n\n@Component({\n templateUrl: './entity-master-modify-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n //\n AXPWidgetCoreModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n AXTranslationModule,\n AXPComponentSlotModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXPContextStore],\n})\nexport class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {\n protected vm!: AXPEntityMasterUpdateViewModel;\n\n private evaluator = inject(AXPExpressionEvaluatorService);\n\n private container = viewChild(AXPWidgetContainerComponent);\n protected hiddenProperties = signal<string[]>([]);\n\n #visibilityEffect = effect(async () => {\n const formContext = this.vm.context();\n const allElements = this.vm.sections().flatMap((section) => section.elements());\n const visibilityConfig = allElements.map((element) => ({\n name: element.name(),\n visible: element.isVisible(),\n }));\n\n const evaluatedElements = await this.evaluator.evaluate(visibilityConfig, {\n context: {\n eval: (path: string) => get(formContext, path),\n },\n });\n\n const hiddenElementNames = evaluatedElements\n .filter((element: { name: string; visible: boolean }) => element.visible == false)\n .map((element: { name: string; visible: boolean }) => element.name);\n this.hiddenProperties.set(hiddenElementNames);\n });\n\n ngAfterViewInit() {\n this.vm.builder = this.container()!.builderService;\n }\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n await this.vm.save();\n\n this.close({ result: true, context: this.vm.context() });\n } catch (error: any) {\n this.vm.builder.setStatus(AXPPageStatus.Error);\n }\n }\n }\n\n protected async handleSectionDiscard(form: AXFormComponent) {\n this.close({ result: false });\n }\n\n protected async handleSectionReset(form: AXFormComponent) {\n this.vm.reset();\n }\n\n protected async handleContextChange(e: AXPContextChangeEvent) {\n this.vm.context.set(e.data);\n }\n\n override ngOnDestroy(): void {}\n}\n","<axp-component-slot name=\"entity-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form id=\"axp-entity-form-edit\" class=\"flex flex-col gap-6 p-4 pb-8\" #form [messageStyle]=\"'bottom'\"\n [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"grid grid-cols-12 gap-4 @container\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"pb-4\">\n <span class=\"font-bold text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"text-sm text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field [attr.id]=\"'axp-field-' + attr.name()\" class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\" [class.hidden]=\"hiddenProperties().includes(attr.name())\">\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"font-semibold text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n \n }\n </ax-label>\n }\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n <ax-validation-summary [displayMode]=\"'toast'\" [autoHide]=\"true\"></ax-validation-summary>\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n<ax-footer id=\"axp-entity-footer-edit\">\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button [mode]=\"'split'\" id=\"axp-btn-discard\"\n [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"handleSectionDiscard(form)\">\n <ax-button-item-list>\n <ax-button-item id=\"axp-btn-reset\" [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n </ax-button-item-list>\n </ax-dropdown-button>\n\n <ax-button id=\"axp-btn-apply\" [disabled]=\"vm.isInProgress()\" color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n</ax-footer>\n}\n<axp-component-slot name=\"entity-modify-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>"],"names":["i8","i9","i10"],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ class AXPEntitySingleOverviewComponent {
|
|
|
92
92
|
this.fieldStylingClassByName.set(fieldClasses);
|
|
93
93
|
}
|
|
94
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPEntitySingleOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntitySingleOverviewComponent, isStandalone: true, selector: "axp-entity-single-overview", viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"grid grid-cols-12 gap-4\" [ngClass]=\"recordStylingClass()\">\n <axp-widgets-container [context]=\"vm.context()\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"card mt-2\" [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n <div class=\"card-header py-2! px-4!\">\n <p>\n <span class=\"text-lg! font-semibold\">{{\n section.title() | translate | async\n }}</span>\n <br />\n @if (section.description()) {\n <span class=\"text-sm font-normal opacity-75\">{{\n section.description()\n }}</span>\n }\n </p>\n @if (section.editable()) {\n <ax-button\n class=\"ax-sm\"\n [color]=\"'default'\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"card-body grid! grid-cols-12! gap-4
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPEntitySingleOverviewComponent, isStandalone: true, selector: "axp-entity-single-overview", viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"grid grid-cols-12 gap-4 @container\" [ngClass]=\"recordStylingClass()\">\n <axp-widgets-container [context]=\"vm.context()\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"card mt-2\" [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n <div class=\"card-header py-2! px-4!\">\n <p>\n <span class=\"text-lg! font-semibold\">{{\n section.title() | translate | async\n }}</span>\n <br />\n @if (section.description()) {\n <span class=\"text-sm font-normal opacity-75\">{{\n section.description()\n }}</span>\n }\n </p>\n @if (section.editable()) {\n <ax-button\n class=\"ax-sm\"\n [color]=\"'default'\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.props(); track $index) {\n <div\n class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [ngClass]=\"fieldStylingClass(attr.name())\"\n [class.hidden]=\"widget.options()['visibility'] == false\"\n >\n <div>\n @if (attr.showLabel()) {\n <div class=\"font-semibold mb-1\">\n <span>{{ attr.title() | translate | async }}</span>\n </div>\n }\n </div>\n <div>\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'view'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </div>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </div>\n }\n </div>\n </ax-form>\n </div>\n }\n </axp-widgets-container>\n</div>\n\n@if ((vm.relatedEntities() | async)?.length) {\n <ax-tabs\n [look]=\"'classic'\"\n class=\"mt-4 font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <ax-tab-item\n [text]=\"(e.title() | translate | async)!\"\n [key]=\"index.toString()\"\n >\n </ax-tab-item>\n }\n </ax-tabs>\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <div [class.hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view\n [viewModel]=\"e\"\n ></axp-entity-detail-list-view>\n </div>\n }\n}\n", styles: [":host{display:block}.primary,.secondary,.success,.warning,.danger,.accent1,.accent2,.accent3{border-radius:var(--radius-md, .375rem)}.primary{background:rgb(var(--ax-sys-color-primary-lightest-surface))}.secondary{background:rgb(var(--ax-sys-color-secondary-lightest-surface))}.success{background:rgb(var(--ax-sys-color-success-lightest-surface))}.warning{background:rgb(var(--ax-sys-color-warning-lightest-surface))}.danger{background:rgb(var(--ax-sys-color-danger-lightest-surface))}.accent1{background:rgb(var(--ax-sys-color-accent1-lightest-surface))}.accent2{background:rgb(var(--ax-sys-color-accent2-lightest-surface))}.accent3{background:rgb(var(--ax-sys-color-accent3-lightest-surface))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1$1.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i4.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "reorderable", "reorderDelay", "renderMode", "stacked", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged", "onTabsReordered"] }, { kind: "component", type: i4.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type:
|
|
96
96
|
//
|
|
97
97
|
AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "component", type: AXPEntityDetailListViewComponent, selector: "axp-entity-detail-list-view", inputs: ["viewModel"] }, { kind: "ngmodule", type:
|
|
98
98
|
//
|
|
@@ -121,7 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
121
121
|
AXPEntityDetailListViewComponent,
|
|
122
122
|
//
|
|
123
123
|
AXTranslationModule,
|
|
124
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"grid grid-cols-12 gap-4\" [ngClass]=\"recordStylingClass()\">\n <axp-widgets-container [context]=\"vm.context()\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"card mt-2\" [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n <div class=\"card-header py-2! px-4!\">\n <p>\n <span class=\"text-lg! font-semibold\">{{\n section.title() | translate | async\n }}</span>\n <br />\n @if (section.description()) {\n <span class=\"text-sm font-normal opacity-75\">{{\n section.description()\n }}</span>\n }\n </p>\n @if (section.editable()) {\n <ax-button\n class=\"ax-sm\"\n [color]=\"'default'\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"card-body grid! grid-cols-12! gap-4
|
|
124
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"grid grid-cols-12 gap-4 @container\" [ngClass]=\"recordStylingClass()\">\n <axp-widgets-container [context]=\"vm.context()\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"card mt-2\" [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n <div class=\"card-header py-2! px-4!\">\n <p>\n <span class=\"text-lg! font-semibold\">{{\n section.title() | translate | async\n }}</span>\n <br />\n @if (section.description()) {\n <span class=\"text-sm font-normal opacity-75\">{{\n section.description()\n }}</span>\n }\n </p>\n @if (section.editable()) {\n <ax-button\n class=\"ax-sm\"\n [color]=\"'default'\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.props(); track $index) {\n <div\n class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [ngClass]=\"fieldStylingClass(attr.name())\"\n [class.hidden]=\"widget.options()['visibility'] == false\"\n >\n <div>\n @if (attr.showLabel()) {\n <div class=\"font-semibold mb-1\">\n <span>{{ attr.title() | translate | async }}</span>\n </div>\n }\n </div>\n <div>\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'view'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </div>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </div>\n }\n </div>\n </ax-form>\n </div>\n }\n </axp-widgets-container>\n</div>\n\n@if ((vm.relatedEntities() | async)?.length) {\n <ax-tabs\n [look]=\"'classic'\"\n class=\"mt-4 font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <ax-tab-item\n [text]=\"(e.title() | translate | async)!\"\n [key]=\"index.toString()\"\n >\n </ax-tab-item>\n }\n </ax-tabs>\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <div [class.hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view\n [viewModel]=\"e\"\n ></axp-entity-detail-list-view>\n </div>\n }\n}\n", styles: [":host{display:block}.primary,.secondary,.success,.warning,.danger,.accent1,.accent2,.accent3{border-radius:var(--radius-md, .375rem)}.primary{background:rgb(var(--ax-sys-color-primary-lightest-surface))}.secondary{background:rgb(var(--ax-sys-color-secondary-lightest-surface))}.success{background:rgb(var(--ax-sys-color-success-lightest-surface))}.warning{background:rgb(var(--ax-sys-color-warning-lightest-surface))}.danger{background:rgb(var(--ax-sys-color-danger-lightest-surface))}.accent1{background:rgb(var(--ax-sys-color-accent1-lightest-surface))}.accent2{background:rgb(var(--ax-sys-color-accent2-lightest-surface))}.accent3{background:rgb(var(--ax-sys-color-accent3-lightest-surface))}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
125
125
|
}], propDecorators: { widgetContainer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }] } });
|
|
126
126
|
|
|
127
127
|
class AXPEntityMasterSingleViewComponent extends AXPPageLayoutBaseComponent {
|
|
@@ -273,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
273
273
|
}] });
|
|
274
274
|
|
|
275
275
|
export { AXPEntityMasterSingleViewComponent };
|
|
276
|
-
//# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-single-view.component-
|
|
276
|
+
//# sourceMappingURL=acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs","sources":["../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.ts","../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.html","../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.ts","../../../../../libs/framework/client/themes/default/src/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.html"],"sourcesContent":["import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetCoreModule, AXPWidgetContainerComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport {\n AXPEntityMasterSingleViewGroupViewModel,\n AXPEntityMasterSingleViewModel,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, untracked, viewChild } from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { AXPEntityDetailListViewComponent } from '../../entity-detail-list-view/entity-detail-list-view.component';\nimport { AXPGridLayoutDirective } from '@acorex-platform/framework-client/core';\n\n@Component({\n templateUrl: './entity-single-overview.component.html',\n styleUrl: './entity-single-overview.component.css',\n selector: 'axp-entity-single-overview',\n imports: [\n CommonModule,\n RouterModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n //\n AXPWidgetCoreModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n AXPEntityDetailListViewComponent,\n //\n AXTranslationModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPEntitySingleOverviewComponent {\n //#region ----- Services & Dependencies -----\n\n private activeRoute = inject(ActivatedRoute);\n\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterSingleViewModel;\n\n private widgetContainer = viewChild(AXPWidgetContainerComponent);\n\n //#endregion\n\n //#region ----- State Signals -----\n\n protected selectedRelatedIEntityTabIndex = signal(0);\n\n protected recordStylingClass = signal<string | undefined>(undefined);\n\n protected fieldStylingClassByName = signal<Record<string, string>>({});\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n #refresh = effect(() => {\n if (this.vm.updateTrigger()) {\n this.widgetContainer()?.refresh();\n }\n });\n\n #styling = effect(() => {\n const data = this.vm.context();\n const sections = this.vm.sections();\n untracked(() => {\n void this.refreshStyling(data, sections);\n });\n });\n\n //#endregion\n\n //#region ----- Event Handlers -----\n\n handleActiveRelatedEntityChanged(e: AXTabStripChangedEvent) {\n this.selectedRelatedIEntityTabIndex.set(e.index);\n }\n\n //#endregion\n\n //#region ----- Styling -----\n\n protected fieldStylingClass(name: string): string | undefined {\n return this.fieldStylingClassByName()[name];\n }\n\n private async refreshStyling(data: unknown, sections: AXPEntityMasterSingleViewGroupViewModel[]): Promise<void> {\n this.recordStylingClass.set(await this.vm.resolveRecordStylingClass(data));\n\n const fieldNames = sections.flatMap((section) => section.props().map((attr) => attr.name()));\n const fieldClasses: Record<string, string> = {};\n await Promise.all(\n fieldNames.map(async (name) => {\n const fieldClass = await this.vm.resolveFieldStylingClass(name, data);\n if (fieldClass) {\n fieldClasses[name] = fieldClass;\n }\n }),\n );\n this.fieldStylingClassByName.set(fieldClasses);\n }\n\n //#endregion\n}\n","<div class=\"grid grid-cols-12 gap-4 @container\" [ngClass]=\"recordStylingClass()\">\n <axp-widgets-container [context]=\"vm.context()\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"card mt-2\" [axp-grid-layout]=\"section.layout()\">\n <ax-form #form>\n <div class=\"card-header py-2! px-4!\">\n <p>\n <span class=\"text-lg! font-semibold\">{{\n section.title() | translate | async\n }}</span>\n <br />\n @if (section.description()) {\n <span class=\"text-sm font-normal opacity-75\">{{\n section.description()\n }}</span>\n }\n </p>\n @if (section.editable()) {\n <ax-button\n class=\"ax-sm\"\n [color]=\"'default'\"\n [look]=\"'blank'\"\n (onClick)=\"vm.executeCommand('modify-entity-section', section)\"\n >\n <ax-icon class=\"fa-solid fa-pen text-gray-600\"> </ax-icon>\n </ax-button>\n }\n </div>\n <div class=\"card-body grid! grid-cols-12! gap-4! @container\">\n @for (attr of section.props(); track $index) {\n <div\n class=\"flex flex-col gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [ngClass]=\"fieldStylingClass(attr.name())\"\n [class.hidden]=\"widget.options()['visibility'] == false\"\n >\n <div>\n @if (attr.showLabel()) {\n <div class=\"font-semibold mb-1\">\n <span>{{ attr.title() | translate | async }}</span>\n </div>\n }\n </div>\n <div>\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'view'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </div>\n @if (attr.description()) {\n <p class=\"text-sm mt-1 font-normal opacity-75\">\n {{ attr.description() | translate | async }}\n </p>\n }\n </div>\n }\n </div>\n </ax-form>\n </div>\n }\n </axp-widgets-container>\n</div>\n\n@if ((vm.relatedEntities() | async)?.length) {\n <ax-tabs\n [look]=\"'classic'\"\n class=\"mt-4 font-semibold\"\n #tab\n (onActiveTabChanged)=\"handleActiveRelatedEntityChanged($event)\"\n >\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <ax-tab-item\n [text]=\"(e.title() | translate | async)!\"\n [key]=\"index.toString()\"\n >\n </ax-tab-item>\n }\n </ax-tabs>\n @for (e of vm.relatedEntities() | async; track $index; let index = $index) {\n <div [class.hidden]=\"$index != selectedRelatedIEntityTabIndex()\">\n <axp-entity-detail-list-view\n [viewModel]=\"e\"\n ></axp-entity-detail-list-view>\n </div>\n }\n}\n","\nimport { AXPActionMenuItem, AXPBackButton, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';\nimport { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPAuthModule } from '@acorex-platform/framework-client/auth';\n\nimport { AXPContextStore, AXPEntityBroadcastService } from '@acorex-platform/framework-client/core';\nimport { AXPWidgetCoreModule } from '@acorex-platform/framework-client/layout/widget-core';\nimport { AXPComponentSlotModule } from '@acorex-platform/framework-client/core';\nimport { AXPThemeLayoutBlockComponent } from '@acorex-platform/framework-client/layout/components';\nimport { AXPEntityMasterSingleViewModel, AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXPLayoutThemeService } from '@acorex-platform/framework-client/themes/shared';\nimport { AXPWidgetsModule } from '@acorex-platform/framework-client/layout/widgets';\n\nimport { ChangeDetectionStrategy, Component, effect, inject, untracked } from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntitySingleOverviewComponent } from './overview/entity-single-overview.component';\n\n@Component({\n templateUrl: './entity-master-single-view.component.html',\n imports: [\n RouterModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXPAuthModule,\n AXTranslationModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n AXPWidgetCoreModule,\n AXPWidgetsModule,\n AXPEntitySingleOverviewComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPComponentSlotModule\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPEntityMasterSingleViewComponent,\n },\n ],\n})\nexport class AXPEntityMasterSingleViewComponent extends AXPPageLayoutBaseComponent {\n private activeRoute = inject(ActivatedRoute);\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterSingleViewModel;\n protected store = inject(AXPLayoutThemeService);\n protected contextStore = inject(AXPContextStore);\n protected entityEvents = inject(AXPEntityBroadcastService);\n protected entityService = inject(AXPEntityService);\n\n private readonly destroyed = new Subject<void>();\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.entityEvents\n .listenDataReload()\n .pipe(takeUntil(this.destroyed))\n .subscribe(async (event) => {\n if (event.data.name == `${this.vm.entityDef.module}.${this.vm.entityDef.name}`) {\n const fn = this.vm.entityDef.queries?.byKey?.execute as Function;\n if (fn) {\n const data = await fn(this.vm.context().id);\n this.vm.context.set(data);\n }\n if (this.vm.entityDef.relatedEntities?.length) {\n for (const relatedEntity of this.vm.entityDef.relatedEntities) {\n this.entityEvents.publishLayoutRefresh(relatedEntity.entity);\n }\n }\n }\n });\n }\n\n #syncContext = effect(() => {\n // TODO: this is a hack to sync the context with the vm\n untracked(() => {\n this.contextStore.patch({\n entity: this.vm.context(),\n });\n });\n });\n\n override getPageTitle(): string {\n return this.vm.title();\n }\n\n override getPageDescription(): string {\n return this.vm.description() ?? '';\n }\n\n override getPageBreadcrumbs(): AXPBreadcrumbItem[] {\n return this.vm.beardcrumbs();\n }\n\n override getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return Promise.all(\n this.vm.primaryActions().map(async (tr) => {\n const hidden = await this.vm.evaluateExpressions(tr.hidden as any, this.vm.context());\n if (hidden) return null;\n const disabled = await this.vm.evaluateExpressions(tr.disabled as any, this.vm.context());\n\n return {\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n };\n }),\n ).then((items) => items.filter(Boolean) as AXPActionMenuItem[]);\n }\n\n override getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return Promise.all(\n this.vm.secondaryActions().map(async (tr) => {\n const hidden = await this.vm.evaluateExpressions(tr.hidden as any, this.vm.context());\n if (hidden) return null;\n const disabled = await this.vm.evaluateExpressions(tr.disabled as any, this.vm.context());\n\n return {\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled,\n separated: tr.separated,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n };\n }),\n ).then((items) => items.filter(Boolean) as AXPActionMenuItem[]);\n }\n\n override execute(command: AXPExecuteCommand): void {\n if (command) {\n this.vm.execute(command);\n }\n }\n override async getBackButton(): Promise<AXPBackButton | null> {\n return {\n title: await this.translateService.translateAsync(this.vm.title()),\n };\n }\n override onBackButtonClick(): void {\n this.vm.navigateToUp();\n }\n\n ngOnDestroy(): void {\n this.vm.destroy();\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n","<axp-page-layout *translate=\"let t\">\n <axp-page-content>\n <axp-component-slot name=\"entity-detail-header\"></axp-component-slot>\n <axp-entity-single-overview></axp-entity-single-overview>\n <axp-component-slot name=\"entity-detail-footer\"></axp-component-slot>\n </axp-page-content>\n</axp-page-layout>"],"names":["i3","i6","i7","i2"],"mappings":"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"}
|