@acorex-platform/framework-client 2.0.0-next.35 → 2.0.0-next.37

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.
Files changed (33) hide show
  1. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +1 -1
  2. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BMzWRbwo.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cm2ae9f1.mjs} +46 -14
  4. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BMzWRbwo.mjs.map → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cm2ae9f1.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-C1Ycbhbb.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-B01KRKJk.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-C1Ycbhbb.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-B01KRKJk.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BZCJUcWP.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-yjM7_m7q.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BZCJUcWP.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-yjM7_m7q.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-sUVA-E-s.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B-KmHQ28.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-sUVA-E-s.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B-KmHQ28.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-CETWFr74.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-DKpp5yft.mjs} +2 -2
  12. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-CETWFr74.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-DKpp5yft.mjs.map} +1 -1
  13. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  14. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +26 -0
  15. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +14 -8
  17. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  18. package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CuFV3T4S.mjs} +8 -8
  19. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CuFV3T4S.mjs.map +1 -0
  20. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-EpuXTcfO.mjs} +2 -2
  21. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-XgjDH9Oc.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-EpuXTcfO.mjs.map} +1 -1
  22. 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-DIXiTDT-.mjs} +2 -2
  23. 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-DIXiTDT-.mjs.map} +1 -1
  24. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DP9mP1CR.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-KaGObG1p.mjs} +2 -2
  25. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-DP9mP1CR.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-view-popup.component-KaGObG1p.mjs.map} +1 -1
  26. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DGpqc4wK.mjs} +2 -2
  27. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DDczHmAA.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DGpqc4wK.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
  29. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +2 -2
  30. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  31. package/package.json +2 -2
  32. package/types/acorex-platform-framework-client-layout-views.d.ts +9 -0
  33. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-CpmGqDUE.mjs.map +0 -1
@@ -6195,7 +6195,7 @@ class AXPFileUploaderWidgetService {
6195
6195
  };
6196
6196
  let title = '';
6197
6197
  const result = await this.dialogOpener.openPopup({
6198
- load: () => import('./acorex-platform-framework-client-layout-entity-file-list-popup.component-sUVA-E-s.mjs').then((m) => m.AXPFileListPopupComponent),
6198
+ load: () => import('./acorex-platform-framework-client-layout-entity-file-list-popup.component-B-KmHQ28.mjs').then((m) => m.AXPFileListPopupComponent),
6199
6199
  data: {
6200
6200
  entity: entity ?? null,
6201
6201
  readonly: resolved.readonly,
@@ -14798,7 +14798,7 @@ class AXMAttachmentsPageComponentProvider {
14798
14798
  return [
14799
14799
  {
14800
14800
  key: ATTACHMENTS_PAGE_COMPONENT_KEY,
14801
- loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-C1Ycbhbb.mjs').then((m) => m.AXMAttachmentsPageComponent),
14801
+ loader: () => import('./acorex-platform-framework-client-layout-entity-attachments-page.component-B01KRKJk.mjs').then((m) => m.AXMAttachmentsPageComponent),
14802
14802
  },
14803
14803
  ];
14804
14804
  }
@@ -15335,7 +15335,7 @@ class AXMGalleryPageComponentProvider {
15335
15335
  return [
15336
15336
  {
15337
15337
  key: GALLERY_PAGE_COMPONENT_KEY,
15338
- loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-CETWFr74.mjs').then((m) => m.AXMGalleryPageComponent),
15338
+ loader: () => import('./acorex-platform-framework-client-layout-entity-gallery-page.component-DKpp5yft.mjs').then((m) => m.AXMGalleryPageComponent),
15339
15339
  },
15340
15340
  ];
15341
15341
  }
@@ -24943,10 +24943,11 @@ class AXPLookupWidgetTablePanelComponent {
24943
24943
  }
24944
24944
  resolveColumnWidth(column) {
24945
24945
  const width = column.width?.trim();
24946
- if (!width || width.includes('fr')) {
24947
- return 'auto';
24946
+ if (width && !width.includes('fr') && width !== 'auto') {
24947
+ return width;
24948
24948
  }
24949
- return width;
24949
+ const count = Math.max(this.visibleColumns().length, 1);
24950
+ return `${100 / count}%`;
24950
24951
  }
24951
24952
  //#endregion
24952
24953
  //#region ----- Private Methods -----
@@ -24988,7 +24989,7 @@ class AXPLookupWidgetTablePanelComponent {
24988
24989
  return Boolean(item[this.disabledField()]);
24989
24990
  }
24990
24991
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLookupWidgetTablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24991
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPLookupWidgetTablePanelComponent, isStandalone: true, selector: "axp-lookup-widget-table-panel", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, parentField: { classPropertyName: "parentField", publicName: "parentField", isSignal: true, isRequired: false, transformFunction: null }, hasChildrenField: { classPropertyName: "hasChildrenField", publicName: "hasChildrenField", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: "itemHeight", publicName: "itemHeight", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleItems: { classPropertyName: "maxVisibleItems", publicName: "maxVisibleItems", isSignal: true, isRequired: false, transformFunction: null }, alternate: { classPropertyName: "alternate", publicName: "alternate", isSignal: true, isRequired: false, transformFunction: null }, highlightText: { classPropertyName: "highlightText", publicName: "highlightText", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, panelOpen: { classPropertyName: "panelOpen", publicName: "panelOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", rowAction: "rowAction" }, host: { properties: { "class.ax-lookup-multi-column-tree": "!!parentField()", "style.height.px": "tableHeight()" }, classAttribute: "ax-lookup-multi-column block min-h-0" }, viewQueries: [{ propertyName: "tableRef", first: true, predicate: AXDataTableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@for (tableSource of [activeTableDataSource()]; track tableSource) {\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableSource\"\n [parentField]=\"parentField() ?? ''\"\n [hasChildrenField]=\"hasChildrenField()\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [highlightText]=\"highlightText()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of visibleColumns(); track column.name) {\n <axp-widget-column-renderer\n [expandHandler]=\"!!column.expandHandler\"\n [caption]=\"column.title\"\n [customWidth]=\"resolveColumnWidth(column)\"\n [node]=\"column.node\"\n ></axp-widget-column-renderer>\n }\n <!-- ----- Entity row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowActionColumnWidth()\"\n [items]=\"primaryRowActionItems()\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-command-column>\n }\n @if (hasRowActionDropdown()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowActionItems\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n}\n", styles: [":host ax-data-table.ax-lookup-multi-column-table tbody tr:not(.empty-row):not(.ax-state-disabled){cursor:pointer}:host ax-data-table.ax-lookup-multi-column-table tbody tr.ax-state-disabled{cursor:not-allowed}:host.ax-lookup-multi-column-tree ax-data-table .ax-data-table-nested-indent{display:flex;align-items:center;min-width:0}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$6.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$6.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i1$6.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$5.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "columnKey", "node", "footerTemplate", "expandHandler", "sortEnabled", "headerSortDirection", "headerSortPriority", "columnFixed", "cellTemplate", "headerTemplate"], outputs: ["sortToggle"] }, { kind: "ngmodule", type: AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24992
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPLookupWidgetTablePanelComponent, isStandalone: true, selector: "axp-lookup-widget-table-panel", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, parentField: { classPropertyName: "parentField", publicName: "parentField", isSignal: true, isRequired: false, transformFunction: null }, hasChildrenField: { classPropertyName: "hasChildrenField", publicName: "hasChildrenField", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: "itemHeight", publicName: "itemHeight", isSignal: true, isRequired: false, transformFunction: null }, maxVisibleItems: { classPropertyName: "maxVisibleItems", publicName: "maxVisibleItems", isSignal: true, isRequired: false, transformFunction: null }, alternate: { classPropertyName: "alternate", publicName: "alternate", isSignal: true, isRequired: false, transformFunction: null }, highlightText: { classPropertyName: "highlightText", publicName: "highlightText", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, panelOpen: { classPropertyName: "panelOpen", publicName: "panelOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", rowAction: "rowAction" }, host: { properties: { "class.ax-lookup-multi-column-tree": "!!parentField()", "style.height.px": "tableHeight()" }, classAttribute: "ax-lookup-multi-column block min-h-0" }, viewQueries: [{ propertyName: "tableRef", first: true, predicate: AXDataTableComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@for (tableSource of [activeTableDataSource()]; track tableSource) {\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableSource\"\n [parentField]=\"parentField() ?? ''\"\n [hasChildrenField]=\"hasChildrenField()\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [highlightText]=\"highlightText()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowPointerDown)=\"handleRowClick($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of visibleColumns(); track column.name) {\n <axp-widget-column-renderer\n [expandHandler]=\"!!column.expandHandler\"\n [caption]=\"column.title\"\n [customWidth]=\"resolveColumnWidth(column)\"\n [node]=\"column.node\"\n ></axp-widget-column-renderer>\n }\n <!-- ----- Entity row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowActionColumnWidth()\"\n [items]=\"primaryRowActionItems()\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-command-column>\n }\n @if (hasRowActionDropdown()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowActionItems\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n}\n", styles: [":host ax-data-table.ax-lookup-multi-column-table tbody tr:not(.empty-row):not(.ax-state-disabled){cursor:pointer;pointer-events:auto}:host ax-data-table.ax-lookup-multi-column-table tbody tr.ax-state-disabled{cursor:not-allowed}:host ax-data-table.ax-lookup-multi-column-table tbody td,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-tooltip-wrapper,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-inner,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-text{box-sizing:border-box;height:100%;min-height:100%;width:100%;cursor:pointer}:host.ax-lookup-multi-column-tree ax-data-table .ax-data-table-nested-indent{display:flex;align-items:center;min-width:0}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$6.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowPointerDown", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$6.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i1$6.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i1$5.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "columnKey", "node", "footerTemplate", "expandHandler", "sortEnabled", "headerSortDirection", "headerSortPriority", "columnFixed", "cellTemplate", "headerTemplate"], outputs: ["sortToggle"] }, { kind: "ngmodule", type: AXTranslationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24992
24993
  }
24993
24994
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLookupWidgetTablePanelComponent, decorators: [{
24994
24995
  type: Component,
@@ -24996,7 +24997,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
24996
24997
  class: 'ax-lookup-multi-column block min-h-0',
24997
24998
  '[class.ax-lookup-multi-column-tree]': '!!parentField()',
24998
24999
  '[style.height.px]': 'tableHeight()',
24999
- }, template: "@for (tableSource of [activeTableDataSource()]; track tableSource) {\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableSource\"\n [parentField]=\"parentField() ?? ''\"\n [hasChildrenField]=\"hasChildrenField()\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [highlightText]=\"highlightText()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of visibleColumns(); track column.name) {\n <axp-widget-column-renderer\n [expandHandler]=\"!!column.expandHandler\"\n [caption]=\"column.title\"\n [customWidth]=\"resolveColumnWidth(column)\"\n [node]=\"column.node\"\n ></axp-widget-column-renderer>\n }\n <!-- ----- Entity row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowActionColumnWidth()\"\n [items]=\"primaryRowActionItems()\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-command-column>\n }\n @if (hasRowActionDropdown()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowActionItems\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n}\n", styles: [":host ax-data-table.ax-lookup-multi-column-table tbody tr:not(.empty-row):not(.ax-state-disabled){cursor:pointer}:host ax-data-table.ax-lookup-multi-column-table tbody tr.ax-state-disabled{cursor:not-allowed}:host.ax-lookup-multi-column-tree ax-data-table .ax-data-table-nested-indent{display:flex;align-items:center;min-width:0}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
25000
+ }, template: "@for (tableSource of [activeTableDataSource()]; track tableSource) {\n <ax-data-table\n class=\"ax-lookup-multi-column-table\"\n look=\"minimal\"\n [dataSource]=\"tableSource\"\n [parentField]=\"parentField() ?? ''\"\n [hasChildrenField]=\"hasChildrenField()\"\n [itemHeight]=\"itemHeight()\"\n [alternative]=\"alternate()\"\n [highlightText]=\"highlightText()\"\n [loading]=\"loadingConfig()\"\n [paging]=\"false\"\n [showHeader]=\"true\"\n [fixedHeader]=\"true\"\n [showFooter]=\"false\"\n [allowReordering]=\"false\"\n [rowCssClass]=\"resolveRowCssClass\"\n (onRowPointerDown)=\"handleRowClick($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n >\n @for (column of visibleColumns(); track column.name) {\n <axp-widget-column-renderer\n [expandHandler]=\"!!column.expandHandler\"\n [caption]=\"column.title\"\n [customWidth]=\"resolveColumnWidth(column)\"\n [node]=\"column.node\"\n ></axp-widget-column-renderer>\n }\n <!-- ----- Entity row actions (preview, etc.) ----- -->\n @if (hasRowActionPrimary()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowActionColumnWidth()\"\n [items]=\"primaryRowActionItems()\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-command-column>\n }\n @if (hasRowActionDropdown()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowActionItems\"\n (onItemClick)=\"handleRowActionClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n}\n", styles: [":host ax-data-table.ax-lookup-multi-column-table tbody tr:not(.empty-row):not(.ax-state-disabled){cursor:pointer;pointer-events:auto}:host ax-data-table.ax-lookup-multi-column-table tbody tr.ax-state-disabled{cursor:not-allowed}:host ax-data-table.ax-lookup-multi-column-table tbody td,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-tooltip-wrapper,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-inner,:host ax-data-table.ax-lookup-multi-column-table .ax-data-table-cell-text{box-sizing:border-box;height:100%;min-height:100%;width:100%;cursor:pointer}:host.ax-lookup-multi-column-tree ax-data-table .ax-data-table-nested-indent{display:flex;align-items:center;min-width:0}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
25000
25001
  }], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], valueField: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueField", required: false }] }], disabledField: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledField", required: false }] }], selectedValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedValues", required: false }] }], parentField: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentField", required: false }] }], hasChildrenField: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasChildrenField", required: false }] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeight", required: false }] }], maxVisibleItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisibleItems", required: false }] }], alternate: [{ type: i0.Input, args: [{ isSignal: true, alias: "alternate", required: false }] }], highlightText: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightText", required: false }] }], rowActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowActions", required: false }] }], panelOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelOpen", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], rowAction: [{ type: i0.Output, args: ["rowAction"] }], tableRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXDataTableComponent), { isSignal: true }] }] } });
25001
25002
 
25002
25003
  //#region ----- Imports -----
@@ -31327,6 +31328,9 @@ class AXPMainEntityContentBuilder {
31327
31328
  const prop = entity?.properties?.find((p) => p.name === propName);
31328
31329
  return prop?.schema?.readonly === true;
31329
31330
  }));
31331
+ const recordReadonly = singleInterface?.readonly;
31332
+ const isRecordReadonly = await this.evaluateRecordReadonly(recordReadonly, rootContext, dependencies?.expressionEvaluator);
31333
+ const renderAsView = isRecordReadonly && (recordReadonly?.mode ?? 'view') === 'view';
31330
31334
  // Debug: Log final sorted sections for verification
31331
31335
  try {
31332
31336
  const beforeEntityOrderMap = new Map(beforeExtraSections.map((e) => [e.section?.id, e.entityOrder ?? Number.MAX_SAFE_INTEGER]));
@@ -31381,7 +31385,13 @@ class AXPMainEntityContentBuilder {
31381
31385
  icon: entity?.icon,
31382
31386
  actions: await this.buildEvaluatedActions(actions, evaluateExpressions),
31383
31387
  isPrimary: true,
31384
- isReadonly: isPageReadonly,
31388
+ isReadonly: isPageReadonly || isRecordReadonly,
31389
+ ...(recordReadonly
31390
+ ? {
31391
+ resolveReadonly: async (context) => isPageReadonly ||
31392
+ (await this.evaluateRecordReadonly(recordReadonly, context, dependencies?.expressionEvaluator)),
31393
+ }
31394
+ : {}),
31385
31395
  settings: {
31386
31396
  commands: {
31387
31397
  reject: {
@@ -31498,7 +31508,7 @@ class AXPMainEntityContentBuilder {
31498
31508
  content: [
31499
31509
  {
31500
31510
  type: 'grid-layout',
31501
- mode: 'edit',
31511
+ mode: renderAsView ? 'view' : 'edit',
31502
31512
  options: {
31503
31513
  grid: {
31504
31514
  default: {
@@ -31622,7 +31632,11 @@ class AXPMainEntityContentBuilder {
31622
31632
  dataPath: p.__dataPath,
31623
31633
  },
31624
31634
  // Only set disabled if property doesn't have its own disabled option
31625
- hasOwnDisabled ? {} : { disabled: !isEditable }),
31635
+ isRecordReadonly
31636
+ ? { disabled: true, readonly: true }
31637
+ : hasOwnDisabled
31638
+ ? {}
31639
+ : { disabled: !isEditable }),
31626
31640
  },
31627
31641
  ],
31628
31642
  };
@@ -31641,6 +31655,24 @@ class AXPMainEntityContentBuilder {
31641
31655
  const actions = singleInterface?.actions ?? [];
31642
31656
  return actions.map((action) => new AXPEntityCommandTriggerViewModel(entity, action));
31643
31657
  }
31658
+ async evaluateRecordReadonly(readonly, context, expressionEvaluator) {
31659
+ if (!readonly) {
31660
+ return false;
31661
+ }
31662
+ if (typeof readonly.when === 'boolean') {
31663
+ return readonly.when;
31664
+ }
31665
+ if (!expressionEvaluator) {
31666
+ return false;
31667
+ }
31668
+ try {
31669
+ const result = await this.createExpressionEvaluator(context, expressionEvaluator)({ when: readonly.when });
31670
+ return result?.when === true;
31671
+ }
31672
+ catch {
31673
+ return false;
31674
+ }
31675
+ }
31644
31676
  createExpressionEvaluator(context, expressionEvaluator) {
31645
31677
  return async (actionData) => {
31646
31678
  const scope = {
@@ -33680,7 +33712,7 @@ class AXPEntityModule {
33680
33712
  },
33681
33713
  {
33682
33714
  key: 'Entity:Bulk',
33683
- command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-BZCJUcWP.mjs').then((c) => c.AXPBulkEntityCommand),
33715
+ command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-yjM7_m7q.mjs').then((c) => c.AXPBulkEntityCommand),
33684
33716
  },
33685
33717
  {
33686
33718
  key: 'Entity:OpenList',
@@ -33842,7 +33874,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
33842
33874
  },
33843
33875
  {
33844
33876
  key: 'Entity:Bulk',
33845
- command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-BZCJUcWP.mjs').then((c) => c.AXPBulkEntityCommand),
33877
+ command: () => import('./acorex-platform-framework-client-layout-entity-bulk-entity.command-yjM7_m7q.mjs').then((c) => c.AXPBulkEntityCommand),
33846
33878
  },
33847
33879
  {
33848
33880
  key: 'Entity:OpenList',
@@ -34168,4 +34200,4 @@ function detectEntityChanges(oldObj, newObj) {
34168
34200
  */
34169
34201
 
34170
34202
  export { AXPEntityListViewCardFieldViewModel as $, AXPEntityDefinitionRegistryService as A, AXPEntityCategoryWidget as B, AXPEntityCategoryWidgetColumnComponent as C, AXPEntityCategoryWidgetEditComponent as D, AXPEntityCategoryWidgetViewComponent as E, AXPEntityCommandTriggerViewModel as F, AXPEntityCreateViewElementViewModel as G, AXPEntityCreateViewModelFactory as H, AXPEntityCreateViewSectionViewModel as I, AXPEntityDataProvider as J, AXPEntityDataProviderImpl as K, AXPEntityDataSelectorRowActionsService as L, AXPEntityDataSelectorService as M, AXPEntityDefinitionProviderWidget as N, AXPEntityDefinitionProviderWidgetEditComponent as O, AXPEntityDeletePerformService as P, AXPEntityDetailListViewModel as Q, AXPEntityDetailPopoverComponent as R, AXPEntityDetailPopoverService as S, AXPEntityDetailViewModelFactory as T, AXPEntityDetailViewModelResolver as U, AXPEntityEventDispatcherService as V, AXPEntityFormBuilderService as W, AXPEntityLifecycleHookKeys as X, AXPEntityListPersistenceModeDefault as Y, AXPEntityListTableService as Z, AXPEntityListToolbarService as _, showOperationResultToast as a, AXPUpdateEntityStatusCommand as a$, AXPEntityListViewColumnViewModel as a0, AXPEntityListViewModelFactory as a1, AXPEntityListViewModelResolver as a2, AXPEntityListWidget as a3, AXPEntityListWidgetViewComponent as a4, AXPEntityMasterCreateViewModel as a5, AXPEntityMasterListCardSelectActionName as a6, AXPEntityMasterListViewModel as a7, AXPEntityMasterListViewQueryViewModel as a8, AXPEntityMasterSingleElementViewModel as a9, AXPLookupWidget as aA, AXPLookupWidgetColumnComponent as aB, AXPLookupWidgetEditComponent as aC, AXPLookupWidgetViewComponent as aD, AXPMiddlewareAbortError as aE, AXPMiddlewareEntityStorageService as aF, AXPMultiSourceDefinitionProviderContext as aG, AXPMultiSourceDefinitionProviderService as aH, AXPMultiSourceFederatedSearchService as aI, AXPMultiSourceSelectorComponent as aJ, AXPMultiSourceSelectorService as aK, AXPMultiSourceSelectorWidget as aL, AXPMultiSourceSelectorWidgetColumnComponent as aM, AXPMultiSourceSelectorWidgetEditComponent as aN, AXPMultiSourceSelectorWidgetViewComponent as aO, AXPMultiSourceType as aP, AXPOpenEntityDetailsCommand as aQ, AXPOpenEntityListCommand as aR, AXPRelatedColumnEnrichmentService as aS, AXPRelatedColumnMetadataResolver as aT, AXPSelectorStructureWidget as aU, AXPSelectorStructureWidgetColumnComponent as aV, AXPSelectorStructureWidgetEditComponent as aW, AXPSelectorStructureWidgetViewComponent as aX, AXPShowFileUploaderPopupCommand as aY, AXPTruncatedBreadcrumbComponent as aZ, AXPUpdateEntityCommand as a_, AXPEntityMasterSingleViewGroupViewModel as aa, AXPEntityMasterSingleViewModel as ab, AXPEntityMasterUpdateElementViewModel as ac, AXPEntityMasterUpdateViewModel as ad, AXPEntityMasterUpdateViewModelFactory as ae, AXPEntityMiddlewareSkipContext as af, AXPEntityModule as ag, AXPEntityPreloadFiltersContainerComponent as ah, AXPEntityPreloadFiltersViewModel as ai, AXPEntityPreloadFiltersViewModelResolver as aj, AXPEntityResolver as ak, AXPEntityRuntimeAccessorService as al, AXPEntityService as am, AXPEntityStorageService as an, AXPEntityUpdateViewSectionViewModel as ao, AXPFileListComponent as ap, AXPFileUploaderLoadFilesQuery as aq, AXPFileUploaderSaveFilesCommand as ar, AXPFileUploaderWidget as as, AXPFileUploaderWidgetColumnComponent as at, AXPFileUploaderWidgetEditComponent as au, AXPFileUploaderWidgetService as av, AXPFileUploaderWidgetViewComponent as aw, AXPGetEntityDetailsQuery as ax, AXPLayoutOrderingConfigService as ay, AXPLookupByKeyCacheService as az, buildSelectedIdsFilter as b, defaultMultiLanguageMiddleware as b$, AXPViewEntityDetailsCommand as b0, AXP_APPEARANCE_SECTION_ORDER as b1, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY as b2, AXP_CLASSIFICATION_SECTION_ORDER as b3, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS as b4, AXP_CLIENT_LOCAL_PLUGIN_NAME as b5, AXP_DATA_SEEDER_TOKEN as b6, AXP_ENTITY_ACTION_PLUGIN as b7, AXP_ENTITY_CONFIG_TOKEN as b8, AXP_ENTITY_DEFINITION_LOADER as b9, axpDeleteEntityCommandDefinition as bA, axpOpenEntityListCommandDefinition as bB, axpRunEntityListPageContextAction as bC, axpShowFileUploaderPopupCommandDefinition as bD, axpUpdateEntityStatusCommandDefinition as bE, buildDataSourceTraceSnapshot as bF, canPersistEntityListState as bG, clientLocalPlugin as bH, cloneLayoutArrays as bI, columnOrderingMiddleware as bJ, columnOrderingMiddlewareProvider as bK, columnWidthMiddleware as bL, columnWidthMiddlewareProvider as bM, committedAttachments as bN, composeEntityMiddlewares as bO, composeEntityStorageMiddlewares as bP, computeEntityAggregates as bQ, configureEntityListColumnsSettingsMigrateDrop as bR, configureEntityListColumnsSettingsVersion as bS, createColumnOrderingMiddlewareProvider as bT, createEntityCardDisplayScope as bU, createEntityCardLogicScope as bV, createEntityMiddlewareContext as bW, createEntityStorageContext as bX, createLayoutOrderingMiddlewareProvider as bY, defaultCardLayoutMiddleware as bZ, defaultCardLayoutMiddlewareProvider as b_, AXP_ENTITY_MIDDLEWARE as ba, AXP_ENTITY_MODIFIER as bb, AXP_ENTITY_STORAGE_MIDDLEWARE as bc, AXP_LOOKUP_FILTER_DEFAULT_OPERATOR as bd, AXP_MULTI_SOURCE_DEFINITION_PROVIDER as be, DEFAULT_COLUMN_ORDER as bf, DEFAULT_GROUP_SPAN_RULES as bg, DEFAULT_PAIR_SPAN_RULES as bh, DEFAULT_PROPERTY_ORDER as bi, DEFAULT_SECTION_ORDER as bj, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE as bk, ENTITY_LIST_LAYOUT_META as bl, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY as bm, ENTITY_MASTER_LIST_TRACE_NS as bn, EntityBuilder as bo, EntityDataAccessor as bp, GALLERY_PAGE_COMPONENT_KEY as bq, TREE_CHILDREN_QUERY_TAKE as br, actionExists as bs, applyDataSourcePagingWithoutLoad as bt, attachmentFieldCount as bu, attachmentsPlugin as bv, attachmentsSemanticallyEqual as bw, axpBuildEntityListPageContextSnapshot as bx, axpCreateEntityAiToolInputDefaults as by, axpCreateEntityCommandDefinition as bz, readLiveAttachmentValue as c, provideEntityMiddlewareBridge as c$, defaultMultiLanguageMiddlewareProvider as c0, defaultSortPresetsMiddleware as c1, defaultSortPresetsMiddlewareProvider as c2, detectEntityChanges as c3, dispatchEntityModifiedSideEffects as c4, ensureHierarchicalRootFilter as c5, ensureLayoutPropertyView as c6, ensureLayoutSection as c7, ensureListActions as c8, entityCreateBridgeMiddleware as c9, getEntityListColumnsSettingsVersion as cA, getEntityListRowId as cB, getMasterInterfacePropertySortKey as cC, hasFileUploaderTitleOrDescriptionFields as cD, hydrateAttachmentFieldToFileList as cE, isAXPMiddlewareAbortError as cF, isAttachmentFieldPresentOnRow as cG, isAttachmentListEntry as cH, isAttachmentStorageRef as cI, isCategoryEntity as cJ, isCategoryFilter as cK, isFileListItem as cL, isFileUploaderEditDialogAuto as cM, isLegacyEntityDataSelectorOptions as cN, layoutOrderingMiddlewareFactory as cO, layoutOrderingMiddlewareProvider as cP, mapEntityStorageErrorToCommandResult as cQ, mapLegacyEntityDataSelectorOptions as cR, mergeEntityListViewAndPersistedFilters as cS, normalizeEntityCardHeaderDisplayValue as cT, normalizeEntityDataSelectorColumnSpecs as cU, normalizeEntityDataSelectorOptions as cV, normalizeEntityFieldToFileList as cW, normalizeEntityListPersistenceMode as cX, normalizeListPaging as cY, prefetchClientLocalRelated as cZ, provideEntity as c_, entityDeleteBridgeMiddleware as ca, entityGetOneBridgeMiddleware as cb, entityListInstanceCurrentViewPath as cc, entityListInstanceFilterPath as cd, entityListStylingRulesPath as ce, entityQueryBridgeMiddleware as cf, entityStorageCreateBridgeMiddleware as cg, entityStorageDeleteBridgeMiddleware as ch, entityStorageGetOneBridgeMiddleware as ci, entityStorageQueryBridgeMiddleware as cj, entityStorageUpdateBridgeMiddleware as ck, entityUpdateBridgeMiddleware as cl, eventDispatchMiddleware as cm, filterEntityMiddlewares as cn, filterEntityStorageMiddlewares as co, filterSortEntityRows as cp, filterTouchesParentKey as cq, findEntityListRowDataInTree as cr, fingerprintAttachmentItem as cs, fingerprintAttachments as ct, fireEntityLifecycleHook as cu, formatLookupItemDisplay as cv, formatLookupItemDisplayAsync as cw, galleryPlugin as cx, getDataSourcePageIndex as cy, getEntityListColumnsSettingsMigrateDrop as cz, saveAttachmentsThroughEntityUpdate as d, provideEntityRealtimeHandlers as d0, provideEntityStorageMiddlewareBridge as d1, provideLocalEntityCatalog as d2, readPersistedEntityListInstanceCurrentView as d3, readPersistedEntityListInstanceFilters as d4, readPersistedEntityListStylingRules as d5, resetPagingForTreeChildrenLoad as d6, resolveAttachmentFieldPath as d7, resolveEntityCardBadgeColorValue as d8, resolveEntityCardHeaderValue as d9, resolveEntityMasterFieldStylingClass as da, resolveEntityMasterRecordStylingClass as db, resolveEntityMasterStylingClass as dc, resolveEntityPluginDetailPageOrder as dd, resolveFileUploaderEditDialog as de, resolveFileUploaderEntityScope as df, resolveLookupDisplayField as dg, resolveLookupDisplayTemplate as dh, resolveLookupEntityCacheKey as di, resolveLookupEntityKey as dj, resolveMasterInterfacePropertyOrder as dk, restoreEntityListExpandedRows as dl, runEntityMiddlewarePipeline as dm, runEntityQuery as dn, runEntityStorageMiddlewarePipeline as dp, searchResultDescriptionMiddleware as dq, searchResultDescriptionMiddlewareProvider as dr, shouldLoadEntityListStateFromStorage as ds, shouldResetEntityListStateOnRouteEntry as dt, traceEntityMasterList as du, watchNextDataSourceLoad as dv, attachmentNeedsHydration as e, ATTACHMENTS_PAGE_COMPONENT_KEY as f, AXMEntityCrudService as g, AXMEntityCrudServiceImpl as h, AXPCategoryTreeService as i, AXPClientLocalPluginModule as j, AXPCreateEntityCommand as k, AXPDataSeederService as l, AXPDeleteEntityCommand as m, newBulkExecutionId as n, AXPDomainQueryEntityDefinitionLoader as o, persistedAttachments as p, AXPEditFileUploaderCommand as q, resolveBulkFailureBody as r, settleAfterLoadingDialog as s, AXPEntityBulkPatchPerformService as t, AXPEntityCardComponent as u, AXPEntityCardFieldsResolver as v, watchBulkProgress as w, AXPEntityCardSelectActionName as x, AXPEntityCardSkeletonComponent as y, AXPEntityCategoryTreeSelectorComponent as z };
34171
- //# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BMzWRbwo.mjs.map
34203
+ //# sourceMappingURL=acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cm2ae9f1.mjs.map