@acorex-platform/framework-client 2.0.0-next.34 → 2.0.0-next.36

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 (20) hide show
  1. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-C7w6zptT.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-eqKl54nf.mjs} +90 -43
  2. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-eqKl54nf.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DaU3c421.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-HF8kxDK6.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DaU3c421.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-HF8kxDK6.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-OgcVdNXS.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BZ9yN9oe.mjs} +2 -2
  6. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-OgcVdNXS.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BZ9yN9oe.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-DWL1v6N3.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-DfLgwqH6.mjs} +2 -2
  8. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-DWL1v6N3.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-DfLgwqH6.mjs.map} +1 -1
  9. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-zNyimD5t.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-BPltcAks.mjs} +2 -2
  10. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-zNyimD5t.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-BPltcAks.mjs.map} +1 -1
  11. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  12. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +26 -0
  13. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +3 -58
  15. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  16. package/package.json +2 -2
  17. package/types/acorex-platform-framework-client-layout-entity.d.ts +7 -11
  18. package/types/acorex-platform-framework-client-layout-views.d.ts +9 -0
  19. package/types/acorex-platform-framework-client-themes-default.d.ts +0 -12
  20. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-C7w6zptT.mjs.map +0 -1
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex-platform/framework-client",
3
- "version": "2.0.0-next.34",
3
+ "version": "2.0.0-next.36",
4
4
  "peerDependencies": {
5
- "@acorex-platform/framework-shared": "2.0.0-next.34",
5
+ "@acorex-platform/framework-shared": "2.0.0-next.36",
6
6
  "@acorex/cdk": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
7
7
  "@acorex/charts": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
8
8
  "@acorex/components": "^21.0.0 || ^22.0.0 || ^22.0.0-next.0 || ^22.1.0-next.0 || ^22.2.0-next.0 || ^22.2.0-next.0",
@@ -1555,14 +1555,10 @@ declare class AXPEntityMasterListViewModel {
1555
1555
  private hasQueryParamsFilters;
1556
1556
  private routeQueryContextKey;
1557
1557
  /**
1558
- * Copy of this list's query params. Visibility reads this record, never a shared live ParamMap or the active tab URL.
1559
- * `mode` and `list` are the tab identity. `view` is page state on that same tab.
1558
+ * Copy of this list's query params. Visibility reads this record, not the router URL:
1559
+ * during resolve the URL still belongs to the previous page.
1560
1560
  */
1561
1561
  private routeQueryParams;
1562
- /** `mode` / `list` last passed to {@link refreshVisibleViews}. */
1563
- private evaluatedNavigationMode;
1564
- private evaluatedNavigationList;
1565
- private navigationViewsEvaluated;
1566
1562
  readonly listInstanceId: _angular_core.WritableSignal<string>;
1567
1563
  /** Bumped when list-instance filters are re-seeded so the toolbar chips catch up. */
1568
1564
  readonly listFilterSeedEpoch: _angular_core.WritableSignal<number>;
@@ -1671,7 +1667,7 @@ declare class AXPEntityMasterListViewModel {
1671
1667
  isViewSwitchCurrent(epoch: number): boolean;
1672
1668
  /** Clears the switch skeleton only for the load that still belongs to `epoch`. */
1673
1669
  finishListTransition(epoch: number): void;
1674
- setView(viewName?: string | null, viewSwitchEpoch?: number, forcePresentation?: boolean): Promise<void>;
1670
+ setView(viewName?: string | null, viewSwitchEpoch?: number): Promise<void>;
1675
1671
  private isStaleViewSwitch;
1676
1672
  /**
1677
1673
  * Drops an in-flight list result so it cannot paint on the new view.
@@ -1810,18 +1806,18 @@ declare class AXPEntityMasterListViewModel {
1810
1806
  * Apply filters from query params
1811
1807
  */
1812
1808
  applyFiltersFromQueryParams(filtersJson: string | null): boolean;
1809
+ /** Copies this list's query params. Does not mark the route context or reload. */
1810
+ bindRouteQueryParamMap(queryParamMap: ParamMap): void;
1813
1811
  /**
1814
1812
  * Records the route query context after initial resolver / view init so the first
1815
1813
  * subscription emission does not re-sync unnecessarily.
1816
1814
  *
1817
1815
  * @param overrides Merged over the snapshot (e.g. pending `view` written via `replaceUrl`).
1818
1816
  */
1819
- /** Copies this list's query params. Does not mark the route context or reload. */
1820
- bindRouteQueryParamMap(queryParamMap: ParamMap): void;
1821
1817
  markRouteQueryContextSynced(queryParamMap: ParamMap, overrides?: Record<string, string | null | undefined>): void;
1822
1818
  /**
1823
- * Copies this list's query params into an owned record before the context-key return.
1824
- * When `mode` or `list` differ from the last visibility pass, reloads that tab's view, columns, and rows.
1819
+ * Reacts to any route query param change while the list route is reused (`reuse: queryParamsChange`).
1820
+ * Handles known keys (`view`, `filters`, `list`) and re-evaluates view visibility for expression-driven params.
1825
1821
  *
1826
1822
  * Data reload is owned by {@link applyFilterAndSort} → `events$` when criteria change.
1827
1823
  * `reloadList` stays false so callers do not issue a second `reloadListData` for the same transition.
@@ -613,6 +613,11 @@ interface AXPLayoutDetailsViewPage {
613
613
  getActions?: () => Promise<AXPLayoutDetailsViewAction[]>;
614
614
  isPrimary?: boolean;
615
615
  isReadonly?: boolean;
616
+ /**
617
+ * Set when `isReadonly` depends on record values. The view re-resolves it after the record
618
+ * changes and rebuilds the page when the result differs from `isReadonly`.
619
+ */
620
+ resolveReadonly?: (context: Record<string, unknown>) => Promise<boolean>;
616
621
  settings?: {
617
622
  commands?: {
618
623
  accept?: {
@@ -828,6 +833,8 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
828
833
  * and otherwise force a second full remount (see details-view-page logs).
829
834
  */
830
835
  private suppressLayoutRefreshUntilInitialOpenDone;
836
+ /** Coalesces record-readonly rebuilds when a status change arrives through several paths. */
837
+ private readonlyRefreshInFlight;
831
838
  private readonly destroyed$;
832
839
  private footerActionsGeneration;
833
840
  private keyboardShortcutRegistrationGeneration;
@@ -889,6 +896,8 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
889
896
  * into the open record context and live widget form.
890
897
  */
891
898
  private handleEntityModified;
899
+ /** Rebuilds the page when a record change flips {@link AXPLayoutDetailsViewPage.resolveReadonly}. */
900
+ private refreshIfReadonlyChanged;
892
901
  /** Navigates to {@link AXPLayoutDetailsViewAdapter.exitUrl} when the open record was deleted. */
893
902
  private handleEntityDeleted;
894
903
  ngOnDestroy(): void;
@@ -337,10 +337,6 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
337
337
  private restoreExpandedRowsScheduled;
338
338
  /** Blocks deferred `replaceUrl` view sync after destroy or once details navigation has started. */
339
339
  private listQueryParamSyncDisabled;
340
- /** `mode` and `list` this cached list was opened with. A hidden tab ignores any other pair. */
341
- private tabNavigationMode;
342
- private tabNavigationList;
343
- private tabNavigationCaptured;
344
340
  constructor(platform: AXPlatform);
345
341
  ngOnInit(): Promise<void>;
346
342
  ngAfterViewInit(): Promise<void>;
@@ -366,14 +362,6 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
366
362
  * Re-checks the live URL so a deferred call cannot `replaceUrl` over a details entry.
367
363
  */
368
364
  private syncListViewQueryParam;
369
- /**
370
- * Rebinds this cached list from its own route snapshot when its tab is shown again.
371
- * `ngAfterViewInit` does not run for a reattached tab.
372
- */
373
- private syncShownTabQueryParams;
374
- /** True when a query emission belongs to another list tab (`mode` / `list`). */
375
- private isForeignTabNavigation;
376
- private captureTabNavigationIdentity;
377
365
  /** True when this cached list is not the visible route tab. */
378
366
  private isListTabInBackground;
379
367
  /**