@acorex-platform/framework-client 0.0.30 → 0.0.33

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 (58) hide show
  1. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs → acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs} +23 -2
  2. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-framework-client-common.mjs +673 -110
  4. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-framework-client-core.mjs +76 -7
  6. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +3 -6
  8. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +505 -111
  10. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CJemNxCu.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs} +3404 -2157
  12. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DQXGk8nF.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DQXGk8nF.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-DSLUUXfQ.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs} +43 -15
  16. package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs.map +1 -0
  17. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs} +3 -3
  18. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-uf51NO5m.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-uf51NO5m.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  22. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +37 -6
  23. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +148 -130
  25. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs} +3 -3
  27. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1214 -860
  29. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-framework-client-realtime.mjs +70 -5
  31. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-framework-client-runtime.mjs +121 -6
  33. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  34. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs} +51 -12
  35. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +770 -679
  37. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  38. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs → acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs} +76 -1
  39. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +345 -54
  41. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  42. package/package.json +7 -7
  43. package/types/acorex-platform-framework-client-common.d.ts +137 -9
  44. package/types/acorex-platform-framework-client-core.d.ts +4 -1
  45. package/types/acorex-platform-framework-client-layout-components.d.ts +141 -22
  46. package/types/acorex-platform-framework-client-layout-entity.d.ts +532 -255
  47. package/types/acorex-platform-framework-client-layout-views.d.ts +48 -0
  48. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +2 -2
  49. package/types/acorex-platform-framework-client-layout-widgets.d.ts +143 -92
  50. package/types/acorex-platform-framework-client-realtime.d.ts +39 -2
  51. package/types/acorex-platform-framework-client-runtime.d.ts +56 -5
  52. package/types/acorex-platform-framework-client-themes-default.d.ts +144 -14
  53. package/types/acorex-platform-framework-client-themes-shared.d.ts +36 -3
  54. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CJemNxCu.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-DSLUUXfQ.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs.map +0 -1
  58. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs.map +0 -1
@@ -1364,14 +1364,18 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
1364
1364
  */
1365
1365
  hasExpandableRow(row) {
1366
1366
  const data = row?.data;
1367
- if (!data)
1367
+ if (!data) {
1368
1368
  return false;
1369
- if (data['hasChild'] === true)
1369
+ }
1370
+ const hasChildrenField = this.grid.hasChildrenField;
1371
+ if (data[hasChildrenField] !== false) {
1370
1372
  return true;
1371
- const children = data['__meta__']?.['children'];
1373
+ }
1374
+ const children = data['children'];
1372
1375
  return Array.isArray(children) && children.length > 0;
1373
1376
  }
1374
- async handleExpandRow(row) {
1377
+ async handleExpandRow(row, event) {
1378
+ event?.stopPropagation();
1375
1379
  this.loadingRow.set(row);
1376
1380
  await this.grid.expandRow(row);
1377
1381
  this.loadingRow.set(null);
@@ -1411,7 +1415,7 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
1411
1415
  * When true, the cell body uses flex so `justify-content` can place content on the main axis.
1412
1416
  */
1413
1417
  getCellUseFlexLayout() {
1414
- return !!this.expandHandler || this.resolveAlignForSide('cell') !== 'start';
1418
+ return !this.expandHandler && this.resolveAlignForSide('cell') !== 'start';
1415
1419
  }
1416
1420
  /**
1417
1421
  * Flex `justify-content` for the cell wrapper; omit when not using flex layout.
@@ -1722,53 +1726,69 @@ class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
1722
1726
  </div>
1723
1727
  </ng-template>
1724
1728
  <ng-template #cell let-row>
1725
- <div
1726
- class="w-full"
1727
- [class.flex]="getCellUseFlexLayout()"
1728
- [class.gap-2]="expandHandler"
1729
- [class.items-center]="getCellUseFlexLayout()"
1730
- [style.justify-content]="getCellJustifyContent()"
1731
- >
1732
- @if (expandHandler) {
1733
- <div
1734
- (click)="handleExpandRow(row)"
1735
- class="expand-handler"
1736
- [class.invisible]="!hasExpandableRow(row)"
1737
- id="ax-expand-handler-container"
1738
- [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
1739
- >
1740
- @if (loadingRow() === row) {
1741
- <i
1742
- class="fas fa-spinner-third animate-twSpin animate-infinite"
1743
- ></i>
1744
- } @else {
1745
- @if (row.data?.__meta__?.expanded) {
1729
+ @if (expandHandler) {
1730
+ <div
1731
+ class="ax-data-table-nested-indent w-full"
1732
+ [attr.data-level]="row.data?.__meta__?.level || 0"
1733
+ >
1734
+ @if (hasExpandableRow(row)) {
1735
+ <div
1736
+ (click)="handleExpandRow(row, $event)"
1737
+ class="ax-expand-handler"
1738
+ id="ax-expand-handler-container"
1739
+ >
1740
+ @if (loadingRow() === row) {
1746
1741
  <i
1747
- [class]="
1748
- customCollapseIcon ||
1749
- 'far fa-minus-square text-md opacity-75'
1750
- "
1742
+ class="fas fa-spinner-third animate-twSpin animate-infinite"
1751
1743
  ></i>
1752
1744
  } @else {
1753
- <i
1754
- [class]="
1755
- customExpandIcon || 'far fa-plus-square text-md opacity-75'
1756
- "
1757
- ></i>
1745
+ @if (row.data?.__meta__?.expanded) {
1746
+ <i
1747
+ [class]="
1748
+ customCollapseIcon ||
1749
+ 'far fa-minus-square text-md opacity-75'
1750
+ "
1751
+ ></i>
1752
+ } @else {
1753
+ <i
1754
+ [class]="
1755
+ customExpandIcon || 'far fa-plus-square text-md opacity-75'
1756
+ "
1757
+ ></i>
1758
+ }
1758
1759
  }
1759
- }
1760
- </div>
1761
- }
1762
- @if (component && row?.data) {
1763
- <ng-container
1764
- *ngComponentOutlet="
1765
- component;
1766
- injector: getRowInjector(row.data);
1767
- inputs: getInputs(row.data)
1768
- "
1769
- ></ng-container>
1770
- }
1771
- </div>
1760
+ </div>
1761
+ }
1762
+ @if (component && row?.data) {
1763
+ <div class="ax-data-table-cell-text min-w-0 flex-1">
1764
+ <ng-container
1765
+ *ngComponentOutlet="
1766
+ component;
1767
+ injector: getRowInjector(row.data);
1768
+ inputs: getInputs(row.data)
1769
+ "
1770
+ ></ng-container>
1771
+ </div>
1772
+ }
1773
+ </div>
1774
+ } @else {
1775
+ <div
1776
+ class="w-full"
1777
+ [class.flex]="getCellUseFlexLayout()"
1778
+ [class.items-center]="getCellUseFlexLayout()"
1779
+ [style.justify-content]="getCellJustifyContent()"
1780
+ >
1781
+ @if (component && row?.data) {
1782
+ <ng-container
1783
+ *ngComponentOutlet="
1784
+ component;
1785
+ injector: getRowInjector(row.data);
1786
+ inputs: getInputs(row.data)
1787
+ "
1788
+ ></ng-container>
1789
+ }
1790
+ </div>
1791
+ }
1772
1792
  </ng-template>
1773
1793
  <ng-template #footer></ng-template>
1774
1794
  `, isInline: true, styles: ["@layer properties;.axp-widget-column-header--sortable{cursor:pointer}.axp-widget-column-header--sortable:hover .axp-widget-column-header__sort,.axp-widget-column-header--sortable:focus-within .axp-widget-column-header__sort,.axp-widget-column-header--sortable.axp-widget-column-header--sort-active .axp-widget-column-header__sort{opacity:1}.axp-widget-column-header__caption{min-width:0px}.axp-widget-column-header__caption--with-sort{flex:1;flex:1 1 0}.axp-widget-column-header__sort{opacity:0;transition:opacity .15s ease}.axp-widget-column-header__sort-priority{--tw-leading: 1;line-height:1}:host-context(.ax-data-table-head-cell.ax-interactive:hover) .axp-widget-column-header__sort,:host-context(.ax-data-table-head-cell.ax-interactive:focus-within) .axp-widget-column-header__sort,:host-context(.ax-data-table-head-cell) .axp-widget-column-header--sort-active .axp-widget-column-header__sort{opacity:1}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -1818,53 +1838,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1818
1838
  </div>
1819
1839
  </ng-template>
1820
1840
  <ng-template #cell let-row>
1821
- <div
1822
- class="w-full"
1823
- [class.flex]="getCellUseFlexLayout()"
1824
- [class.gap-2]="expandHandler"
1825
- [class.items-center]="getCellUseFlexLayout()"
1826
- [style.justify-content]="getCellJustifyContent()"
1827
- >
1828
- @if (expandHandler) {
1829
- <div
1830
- (click)="handleExpandRow(row)"
1831
- class="expand-handler"
1832
- [class.invisible]="!hasExpandableRow(row)"
1833
- id="ax-expand-handler-container"
1834
- [style.padding-inline-start.rem]="row.data?.__meta__?.level * 2"
1835
- >
1836
- @if (loadingRow() === row) {
1837
- <i
1838
- class="fas fa-spinner-third animate-twSpin animate-infinite"
1839
- ></i>
1840
- } @else {
1841
- @if (row.data?.__meta__?.expanded) {
1841
+ @if (expandHandler) {
1842
+ <div
1843
+ class="ax-data-table-nested-indent w-full"
1844
+ [attr.data-level]="row.data?.__meta__?.level || 0"
1845
+ >
1846
+ @if (hasExpandableRow(row)) {
1847
+ <div
1848
+ (click)="handleExpandRow(row, $event)"
1849
+ class="ax-expand-handler"
1850
+ id="ax-expand-handler-container"
1851
+ >
1852
+ @if (loadingRow() === row) {
1842
1853
  <i
1843
- [class]="
1844
- customCollapseIcon ||
1845
- 'far fa-minus-square text-md opacity-75'
1846
- "
1854
+ class="fas fa-spinner-third animate-twSpin animate-infinite"
1847
1855
  ></i>
1848
1856
  } @else {
1849
- <i
1850
- [class]="
1851
- customExpandIcon || 'far fa-plus-square text-md opacity-75'
1852
- "
1853
- ></i>
1857
+ @if (row.data?.__meta__?.expanded) {
1858
+ <i
1859
+ [class]="
1860
+ customCollapseIcon ||
1861
+ 'far fa-minus-square text-md opacity-75'
1862
+ "
1863
+ ></i>
1864
+ } @else {
1865
+ <i
1866
+ [class]="
1867
+ customExpandIcon || 'far fa-plus-square text-md opacity-75'
1868
+ "
1869
+ ></i>
1870
+ }
1854
1871
  }
1855
- }
1856
- </div>
1857
- }
1858
- @if (component && row?.data) {
1859
- <ng-container
1860
- *ngComponentOutlet="
1861
- component;
1862
- injector: getRowInjector(row.data);
1863
- inputs: getInputs(row.data)
1864
- "
1865
- ></ng-container>
1866
- }
1867
- </div>
1872
+ </div>
1873
+ }
1874
+ @if (component && row?.data) {
1875
+ <div class="ax-data-table-cell-text min-w-0 flex-1">
1876
+ <ng-container
1877
+ *ngComponentOutlet="
1878
+ component;
1879
+ injector: getRowInjector(row.data);
1880
+ inputs: getInputs(row.data)
1881
+ "
1882
+ ></ng-container>
1883
+ </div>
1884
+ }
1885
+ </div>
1886
+ } @else {
1887
+ <div
1888
+ class="w-full"
1889
+ [class.flex]="getCellUseFlexLayout()"
1890
+ [class.items-center]="getCellUseFlexLayout()"
1891
+ [style.justify-content]="getCellJustifyContent()"
1892
+ >
1893
+ @if (component && row?.data) {
1894
+ <ng-container
1895
+ *ngComponentOutlet="
1896
+ component;
1897
+ injector: getRowInjector(row.data);
1898
+ inputs: getInputs(row.data)
1899
+ "
1900
+ ></ng-container>
1901
+ }
1902
+ </div>
1903
+ }
1868
1904
  </ng-template>
1869
1905
  <ng-template #footer></ng-template>
1870
1906
  `, providers: [
@@ -2232,6 +2268,21 @@ function extractPersistedRootIdentityPatch(current, next) {
2232
2268
  return patch;
2233
2269
  }
2234
2270
 
2271
+ /**
2272
+ * Resolves the lazy component factory for a render mode.
2273
+ * `print` falls back to `view` until a dedicated print component exists.
2274
+ */
2275
+ function resolveWidgetModeComponent(widget, mode) {
2276
+ const requested = widget?.components?.[mode]?.component;
2277
+ if (requested) {
2278
+ return requested;
2279
+ }
2280
+ if (mode === 'print') {
2281
+ return widget?.components?.view?.component;
2282
+ }
2283
+ return undefined;
2284
+ }
2285
+
2235
2286
  class AXPWidgetPlaceholderComponent {
2236
2287
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPWidgetPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2237
2288
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPWidgetPlaceholderComponent, isStandalone: true, selector: "axp-widget-placeholder", ngImport: i0, template: `<div>
@@ -2251,21 +2302,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2251
2302
  }]
2252
2303
  }] });
2253
2304
 
2254
- /**
2255
- * Resolves the lazy component factory for a render mode.
2256
- * `print` falls back to `view` until a dedicated print component exists.
2257
- */
2258
- function resolveWidgetModeComponent(widget, mode) {
2259
- const requested = widget?.components?.[mode]?.component;
2260
- if (requested) {
2261
- return requested;
2262
- }
2263
- if (mode === 'print') {
2264
- return widget?.components?.view?.component;
2265
- }
2266
- return undefined;
2267
- }
2268
-
2269
2305
  class AXPWidgetRendererDirective {
2270
2306
  //#endregion
2271
2307
  //#endregion
@@ -2537,16 +2573,8 @@ class AXPWidgetRendererDirective {
2537
2573
  };
2538
2574
  const evalNorm = normalizePath(evalPath);
2539
2575
  const changedNorm = normalizePath(changedPath);
2540
- const rawMatch = evalPath === changedPath ||
2541
- evalPath.startsWith(changedPath + '.') ||
2542
- changedPath.startsWith(evalPath + '.') ||
2543
- isSegmentSuffix(evalPath, changedPath) ||
2544
- isSegmentSuffix(changedPath, evalPath);
2545
- const normMatch = evalNorm === changedNorm ||
2546
- evalNorm.startsWith(changedNorm + '.') ||
2547
- changedNorm.startsWith(evalNorm + '.') ||
2548
- isSegmentSuffix(evalNorm, changedNorm) ||
2549
- isSegmentSuffix(changedNorm, evalNorm);
2576
+ const rawMatch = evalPath === changedPath || evalPath.startsWith(changedPath + '.') || changedPath.startsWith(evalPath + '.') || isSegmentSuffix(evalPath, changedPath) || isSegmentSuffix(changedPath, evalPath);
2577
+ const normMatch = evalNorm === changedNorm || evalNorm.startsWith(changedNorm + '.') || changedNorm.startsWith(evalNorm + '.') || isSegmentSuffix(evalNorm, changedNorm) || isSegmentSuffix(changedNorm, evalNorm);
2550
2578
  if (rawMatch || normMatch) {
2551
2579
  return true;
2552
2580
  }
@@ -2732,10 +2760,7 @@ class AXPWidgetRendererDirective {
2732
2760
  //
2733
2761
  const widget = this.widgetRegistery.resolve(this.node().type);
2734
2762
  //
2735
- const propertiesToProcess = [
2736
- ...(widget?.properties ?? []),
2737
- ...(widget?.components[this.mode()]?.properties ?? []),
2738
- ]?.filter((c) => c.schema.defaultValue != null);
2763
+ const propertiesToProcess = [...(widget?.properties ?? []), ...(widget?.components[this.mode()]?.properties ?? [])]?.filter((c) => c.schema.defaultValue != null);
2739
2764
  // Process default values (evaluate expressions if needed)
2740
2765
  const props = {};
2741
2766
  for (const property of propertiesToProcess) {
@@ -2781,10 +2806,7 @@ class AXPWidgetRendererDirective {
2781
2806
  const defaultValuePath = this.node().path;
2782
2807
  if (typeof defaultValue === 'string' && this.expressionEvaluator.isExpression(defaultValue)) {
2783
2808
  const existing = defaultValuePath ? this.contextService.getValue(defaultValuePath) : undefined;
2784
- const shouldEvaluate = !defaultValuePath ||
2785
- !this.contextService.hasValue(defaultValuePath) ||
2786
- existing === defaultValue ||
2787
- existing === this.node().defaultValue;
2809
+ const shouldEvaluate = !defaultValuePath || !this.contextService.hasValue(defaultValuePath) || existing === defaultValue || existing === this.node().defaultValue;
2788
2810
  if (shouldEvaluate) {
2789
2811
  defaultValue = await this.evaluateExpression(defaultValue);
2790
2812
  }
@@ -2939,9 +2961,7 @@ class AXPWidgetRendererDirective {
2939
2961
  // Cache dynamic expression for later evaluation
2940
2962
  this.expressionEvaluators.set(currentPath, () => this.evaluateExpression(value));
2941
2963
  }
2942
- else if (typeof value === 'object' &&
2943
- value !== null &&
2944
- (value.constructor === Object || Array.isArray(value))) {
2964
+ else if (typeof value === 'object' && value !== null && (value.constructor === Object || Array.isArray(value))) {
2945
2965
  // Recursively handle nested objects
2946
2966
  this.preprocessAndInitialOptions(value, currentPath);
2947
2967
  }
@@ -3161,9 +3181,7 @@ class AXPWidgetRendererDirective {
3161
3181
  return {
3162
3182
  /** Resolved options for this renderer's widget instance (not the host / property-viewer target). */
3163
3183
  options: (path) => {
3164
- const opts = this.instance && typeof this.instance.options === 'function'
3165
- ? this.instance.options()
3166
- : this.mergedOptions();
3184
+ const opts = this.instance && typeof this.instance.options === 'function' ? this.instance.options() : this.mergedOptions();
3167
3185
  if (path == null || path === '') {
3168
3186
  return opts;
3169
3187
  }