@masterteam/client-components 0.0.83 → 0.0.84

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/client-components",
3
- "version": "0.0.83",
3
+ "version": "0.0.84",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/client-components",
6
6
  "linkDirectory": true,
@@ -16,10 +16,10 @@
16
16
  "rxjs": "^7.8.2",
17
17
  "tailwindcss": "^4.2.2",
18
18
  "tailwindcss-primeui": "^0.6.1",
19
+ "@masterteam/forms": "^0.0.136",
19
20
  "@masterteam/icons": "^0.0.17",
20
- "@masterteam/components": "^0.0.272",
21
- "@masterteam/dashboard-builder": "^0.0.80",
22
- "@masterteam/forms": "^0.0.136"
21
+ "@masterteam/components": "^0.0.273",
22
+ "@masterteam/dashboard-builder": "^0.0.80"
23
23
  },
24
24
  "dependencies": {
25
25
  "tslib": "^2.8.1"
@@ -7,18 +7,6 @@ import { DashboardBuilderData } from '@masterteam/dashboard-builder';
7
7
  import { RuntimeAction } from '@masterteam/components/runtime-action';
8
8
  import { Observable } from 'rxjs';
9
9
 
10
- /**
11
- * How a client list arranges MORE THAN ONE list. Ignored for a single list,
12
- * which always renders on its own with no rail and no chrome around it.
13
- *
14
- * - `navigator` (default): a module rail beside the content, one list
15
- * rendered at a time — the master/detail shape. Only the selected list is
16
- * in the DOM, so a seven-module tab mounts one table instead of seven.
17
- * - `stacked`: every list rendered one under the other, collapsible — the
18
- * pre-navigator layout, kept for hosts that genuinely want all lists on
19
- * screen at once (e.g. a printable summary).
20
- */
21
- type ClientListMultiLayout = 'navigator' | 'stacked';
22
10
  type ClientListMode = 'auto' | 'override';
23
11
  type ClientListAreaType = 'table' | 'cards';
24
12
  type ClientListType = 'form' | 'informative';
@@ -44,6 +32,16 @@ interface ClientListBaseConfiguration {
44
32
  layout?: ClientListLayoutConfig;
45
33
  headerStart?: TemplateRef<ClientListContentTemplateContext>;
46
34
  headerEnd?: TemplateRef<ClientListContentTemplateContext>;
35
+ /**
36
+ * Templates rendered inside the list's own toolbar row, alongside the search
37
+ * box / filter / export controls, rather than above it. Use these for a
38
+ * control that belongs to the list itself (a view switcher, a scope picker)
39
+ * so it reads as one toolbar instead of a second floating row. `headerStart`
40
+ * / `headerEnd` remain the slots for the title row, which only renders when
41
+ * `showHeader` is on. Rendered without a context object.
42
+ */
43
+ toolbarStart?: TemplateRef<unknown>;
44
+ toolbarEnd?: TemplateRef<unknown>;
47
45
  contentStart?: TemplateRef<ClientListContentTemplateContext>;
48
46
  contentEnd?: TemplateRef<ClientListContentTemplateContext>;
49
47
  templateContent?: TemplateRef<ClientListContentTemplateContext>;
@@ -199,23 +197,6 @@ interface ClientListInformativeConfiguration extends ClientListBaseConfiguration
199
197
  areaType?: 'table';
200
198
  }
201
199
  type ClientListConfiguration = ClientListFormConfiguration | ClientListInformativeConfiguration;
202
- /**
203
- * One row in the navigator rail. Derived from a {@link ClientListState}; it
204
- * carries only what the rail draws so the rail never has to reason about
205
- * projections, paging or runtime actions.
206
- */
207
- interface ClientListNavigatorEntry {
208
- key: string;
209
- label: string;
210
- /**
211
- * Records behind this list, or `null` when the list has no meaningful
212
- * count (informative dashboards) or has not resolved one yet. `null` draws
213
- * a neutral placeholder rather than a misleading `0`.
214
- */
215
- count: number | null;
216
- loading: boolean;
217
- hasError: boolean;
218
- }
219
200
  interface ClientListCollapseConfig {
220
201
  enabled?: boolean;
221
202
  expandedByDefault?: boolean;
@@ -469,6 +450,8 @@ interface NormalizedClientListConfiguration {
469
450
  layout: Required<ClientListLayoutConfig>;
470
451
  headerStart?: TemplateRef<ClientListContentTemplateContext>;
471
452
  headerEnd?: TemplateRef<ClientListContentTemplateContext>;
453
+ toolbarStart?: TemplateRef<unknown>;
454
+ toolbarEnd?: TemplateRef<unknown>;
472
455
  contentStart?: TemplateRef<ClientListContentTemplateContext>;
473
456
  contentEnd?: TemplateRef<ClientListContentTemplateContext>;
474
457
  templateContent?: TemplateRef<ClientListContentTemplateContext>;
@@ -543,83 +526,20 @@ declare class ClientList implements OnDestroy {
543
526
  private readonly runtimeActions;
544
527
  private readonly runtimeRunner;
545
528
  private readonly transloco;
546
- private readonly host;
547
529
  readonly configurations: _angular_core.InputSignal<ClientListConfiguration[]>;
548
530
  readonly defaultTake: _angular_core.InputSignal<number>;
549
- /**
550
- * Arrangement for MORE THAN ONE configuration — see
551
- * {@link ClientListMultiLayout}. A single configuration ignores it and
552
- * renders exactly as it always has.
553
- */
554
- readonly multiLayout: _angular_core.InputSignal<ClientListMultiLayout>;
555
531
  readonly loaded: _angular_core.OutputEmitterRef<string>;
556
532
  readonly errored: _angular_core.OutputEmitterRef<{
557
533
  key: string;
558
534
  message: string;
559
535
  }>;
560
536
  readonly itemClicked: _angular_core.OutputEmitterRef<ClientListItemClickedEvent>;
561
- /** The list the navigator switched to. Never fires in `stacked`. */
562
- readonly activeListChanged: _angular_core.OutputEmitterRef<string>;
563
537
  protected readonly items: _angular_core.Signal<ClientListState[]>;
564
- /** Ties each rail tab to the pane it controls, for screen readers. */
565
- protected readonly panelId: string;
566
- private readonly activeKeyOverride;
567
- private readonly railLayout;
568
- private resizeObserver;
569
- protected readonly useNavigator: _angular_core.Signal<boolean>;
570
- protected readonly isRailLayout: _angular_core.Signal<boolean>;
571
- /**
572
- * The selected list. Falls back to the first one whenever the override is
573
- * unset or points at a list the host has since removed — so a config change
574
- * can never leave the pane blank.
575
- */
576
- protected readonly activeKey: _angular_core.Signal<string | null>;
577
- /**
578
- * Identity of the current SET of lists. A string so it settles: every load
579
- * tick rebuilds the items array, but the signature only changes when the
580
- * host adds, removes or re-keys a list.
581
- */
582
- private readonly groupSignature;
583
- protected readonly activeItem: _angular_core.Signal<ClientListState | null>;
584
- protected readonly navigatorEntries: _angular_core.Signal<ClientListNavigatorEntry[]>;
585
538
  private readonly subscriptions;
586
539
  private readonly inFlightRequestSignatures;
587
540
  private readonly fulfilledRequestSignatures;
588
541
  private readonly runtimeFilters;
589
542
  constructor();
590
- /**
591
- * Switches the pane. Remembered per list group, so coming back to a
592
- * workspace tab lands on the module you were last reading rather than
593
- * resetting to the first one.
594
- */
595
- setActiveKey(key: string): void;
596
- /**
597
- * Subtitle under the pane title: the load failure if there is one, the
598
- * record count once it is known, nothing while the first page is still in
599
- * flight (a "0 records" that flips to "12 records" reads as a bug).
600
- */
601
- protected paneMeta(item: ClientListState): string;
602
- /**
603
- * Both layouts render a list body through one `ng-template`, whose context
604
- * is untyped. Re-narrowing here keeps strict template checking on every
605
- * binding inside it instead of silently degrading them to `any`.
606
- */
607
- protected asItem(value: unknown): ClientListState;
608
- /**
609
- * Rail beside the content, or chip strip above it. Measured from the host
610
- * rather than the viewport: this component renders inside an app shell, so
611
- * viewport width says nothing about the room it actually has.
612
- */
613
- private observeHostWidth;
614
- private restoreActiveKey;
615
- /**
616
- * Identifies this exact set of lists, so the remembered selection follows
617
- * the workspace tab it belongs to and a different tab starts fresh. Hashed
618
- * because the keys themselves carry ids and filters and get long.
619
- */
620
- private groupStorageKey;
621
- private readStoredActiveKey;
622
- private persistActiveKey;
623
543
  onLazyLoad(itemKey: string, event: ClientListLazyLoadEvent): void;
624
544
  /**
625
545
  * Fetches the next page of cards and appends it to the currently loaded
@@ -708,7 +628,7 @@ declare class ClientList implements OnDestroy {
708
628
  private serializeFilters;
709
629
  private resolveFetchFilters;
710
630
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClientList, never>;
711
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClientList, "mt-client-list", never, { "configurations": { "alias": "configurations"; "required": true; "isSignal": true; }; "defaultTake": { "alias": "defaultTake"; "required": false; "isSignal": true; }; "multiLayout": { "alias": "multiLayout"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "errored": "errored"; "itemClicked": "itemClicked"; "activeListChanged": "activeListChanged"; }, never, never, true, never>;
631
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClientList, "mt-client-list", never, { "configurations": { "alias": "configurations"; "required": true; "isSignal": true; }; "defaultTake": { "alias": "defaultTake"; "required": false; "isSignal": true; }; }, { "loaded": "loaded"; "errored": "errored"; "itemClicked": "itemClicked"; }, never, never, true, never>;
712
632
  }
713
633
 
714
634
  declare class ClientListApiService {
@@ -791,4 +711,4 @@ declare class ClientListToolbarService {
791
711
  }
792
712
 
793
713
  export { CLIENT_LIST_RECORD_STATE_KEY, ClientList, ClientListApiService, ClientListRuntimeActionsService, ClientListStateService, ClientListToolbarService, defaultResolveRecordId };
794
- export type { ClientListAreaType, ClientListBaseConfiguration, ClientListBaseState, ClientListCard, ClientListCardModule, ClientListCardProperty, ClientListCardsPayload, ClientListCardsState, ClientListClickableItem, ClientListCollapseConfig, ClientListConfiguration, ClientListContentTemplateContext, ClientListDataLoadedHandler, ClientListFetchCardDisplayOrderItem, ClientListFetchCardGroup, ClientListFetchCatalog, ClientListFetchProjection, ClientListFetchProjectionMeta, ClientListFetchPropertyMeta, ClientListFetchQueryRequest, ClientListFetchQueryResponse, ClientListFetchRecord, ClientListFetchRecordState, ClientListFetchRequestDisplay, ClientListFetchRequestFilter, ClientListFetchSchema, ClientListFetchStateKey, ClientListFetchTableColumn, ClientListFetchValueCell, ClientListFormConfiguration, ClientListInformativeChartLink, ClientListInformativeConfiguration, ClientListInformativeDashboardPayload, ClientListInformativeState, ClientListItemClickedEvent, ClientListLayoutConfig, ClientListLazyLoadEvent, ClientListMode, ClientListMultiLayout, ClientListNavigatorEntry, ClientListRecordEscalationState, ClientListRuntimeContext, ClientListRuntimeRecordActionsConfig, ClientListRuntimeRecordActionsContext, ClientListState, ClientListTableDisplayConfig, ClientListTablePersistStateKey, ClientListTableQuery, ClientListTableSettingsCatalogResponse, ClientListTableSettingsColumn, ClientListTableState, ClientListTableTransform, ClientListTableTransformResult, ClientListToolbarBucket, ClientListType, NormalizedClientListConfiguration, NormalizedClientListTableDisplayConfig, Response, RuntimeEntityColumnDef, RuntimeTableDisplayRow, RuntimeTableRowsResponse };
714
+ export type { ClientListAreaType, ClientListBaseConfiguration, ClientListBaseState, ClientListCard, ClientListCardModule, ClientListCardProperty, ClientListCardsPayload, ClientListCardsState, ClientListClickableItem, ClientListCollapseConfig, ClientListConfiguration, ClientListContentTemplateContext, ClientListDataLoadedHandler, ClientListFetchCardDisplayOrderItem, ClientListFetchCardGroup, ClientListFetchCatalog, ClientListFetchProjection, ClientListFetchProjectionMeta, ClientListFetchPropertyMeta, ClientListFetchQueryRequest, ClientListFetchQueryResponse, ClientListFetchRecord, ClientListFetchRecordState, ClientListFetchRequestDisplay, ClientListFetchRequestFilter, ClientListFetchSchema, ClientListFetchStateKey, ClientListFetchTableColumn, ClientListFetchValueCell, ClientListFormConfiguration, ClientListInformativeChartLink, ClientListInformativeConfiguration, ClientListInformativeDashboardPayload, ClientListInformativeState, ClientListItemClickedEvent, ClientListLayoutConfig, ClientListLazyLoadEvent, ClientListMode, ClientListRecordEscalationState, ClientListRuntimeContext, ClientListRuntimeRecordActionsConfig, ClientListRuntimeRecordActionsContext, ClientListState, ClientListTableDisplayConfig, ClientListTablePersistStateKey, ClientListTableQuery, ClientListTableSettingsCatalogResponse, ClientListTableSettingsColumn, ClientListTableState, ClientListTableTransform, ClientListTableTransformResult, ClientListToolbarBucket, ClientListType, NormalizedClientListConfiguration, NormalizedClientListTableDisplayConfig, Response, RuntimeEntityColumnDef, RuntimeTableDisplayRow, RuntimeTableRowsResponse };