@masterteam/delegations 0.0.21 → 0.0.22

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/delegations",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/delegations",
6
6
  "linkDirectory": false,
@@ -269,6 +269,7 @@ interface RejectDelegationRequest {
269
269
  declare enum DelegationsActionKey {
270
270
  GetMy = "getMy",
271
271
  GetAssigned = "getAssigned",
272
+ GetAdmin = "getAdmin",
272
273
  GetActive = "getActive",
273
274
  GetDetail = "getDetail",
274
275
  GetScopeOptions = "getScopeOptions",
@@ -282,6 +283,7 @@ declare enum DelegationsActionKey {
282
283
  interface DelegationsStateModel extends LoadingStateShape<DelegationsActionKey> {
283
284
  my: DelegationPage<DelegationRow> | null;
284
285
  assigned: DelegationPage<DelegationRow> | null;
286
+ admin: DelegationPage<DelegationRow> | null;
285
287
  active: DelegationPage<DelegationRow> | null;
286
288
  detail: DelegationDetail | null;
287
289
  scopeOptions: DelegationScopeOptions | null;
@@ -300,6 +302,7 @@ declare class TopbarDelegationMenu {
300
302
  /** Path to the management page, e.g. `/control-panel/delegations` or `/delegations`. */
301
303
  readonly managePath: _angular_core.InputSignal<string>;
302
304
  readonly compact: _angular_core.InputSignal<boolean>;
305
+ readonly showManageLink: _angular_core.InputSignal<boolean>;
303
306
  private readonly facade;
304
307
  private readonly modal;
305
308
  private readonly transloco;
@@ -309,7 +312,7 @@ declare class TopbarDelegationMenu {
309
312
  protected readonly hasCandidates: _angular_core.Signal<boolean>;
310
313
  protected readonly onBehalfOf: _angular_core.Signal<_masterteam_delegations.DelegationParty | null>;
311
314
  protected readonly executedBy: _angular_core.Signal<_masterteam_delegations.DelegationParty | null>;
312
- protected readonly mode: _angular_core.Signal<"active" | "candidates" | "hidden">;
315
+ protected readonly mode: _angular_core.Signal<"hidden" | "active" | "candidates">;
313
316
  protected formatScopeSummary(summary: DelegationRow['scopeSummary']): string;
314
317
  togglePopover(event: Event): void;
315
318
  start(row: DelegationRow, event: MouseEvent): void;
@@ -317,7 +320,7 @@ declare class TopbarDelegationMenu {
317
320
  endSession(event: MouseEvent): void;
318
321
  private openConfirm;
319
322
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TopbarDelegationMenu, never>;
320
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TopbarDelegationMenu, "mt-topbar-delegation-menu", never, { "managePath": { "alias": "managePath"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
323
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TopbarDelegationMenu, "mt-topbar-delegation-menu", never, { "managePath": { "alias": "managePath"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "showManageLink": { "alias": "showManageLink"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
321
324
  }
322
325
 
323
326
  interface StatusVisual {
@@ -410,6 +413,11 @@ declare class DelegationsList implements OnInit {
410
413
  * `withComponentInputBinding()` — admin passes `data: { adminMode: true }`.
411
414
  */
412
415
  readonly adminMode: _angular_core.InputSignal<boolean>;
416
+ readonly surfaceTitleKey: _angular_core.InputSignal<string>;
417
+ readonly assignedTabLabelKey: _angular_core.InputSignal<string>;
418
+ readonly assignedDecisionTab: _angular_core.InputSignal<boolean>;
419
+ readonly assignedEmptyStateKey: _angular_core.InputSignal<string>;
420
+ readonly assignedStatus: _angular_core.InputSignal<DelegationEffectiveStatus | null>;
413
421
  private readonly facade;
414
422
  private readonly modal;
415
423
  private readonly transloco;
@@ -427,15 +435,19 @@ declare class DelegationsList implements OnInit {
427
435
  routerLink?: undefined;
428
436
  })[]>;
429
437
  protected readonly activeTab: _angular_core.WritableSignal<DelegationTab>;
430
- protected readonly tabs: _angular_core.WritableSignal<{
438
+ protected readonly surfaceTitle: _angular_core.Signal<string>;
439
+ protected readonly tabs: _angular_core.Signal<{
431
440
  value: DelegationTab;
432
441
  label: string;
433
442
  }[]>;
434
443
  protected readonly isLoading: _angular_core.Signal<boolean>;
435
444
  protected readonly scopeOptions: _angular_core.Signal<_masterteam_delegations.DelegationScopeOptions | null>;
436
445
  protected readonly rows: _angular_core.Signal<DelegationRow[]>;
446
+ protected readonly emptyStateKey: _angular_core.Signal<string>;
437
447
  statusCol: _angular_core.Signal<TemplateRef<unknown>>;
438
448
  userCol: _angular_core.Signal<TemplateRef<unknown>>;
449
+ delegatorCol: _angular_core.Signal<TemplateRef<unknown>>;
450
+ delegatedUserCol: _angular_core.Signal<TemplateRef<unknown>>;
439
451
  scopeCol: _angular_core.Signal<TemplateRef<unknown>>;
440
452
  daysCol: _angular_core.Signal<TemplateRef<unknown>>;
441
453
  protected readonly canCreate: _angular_core.Signal<boolean>;
@@ -451,6 +463,7 @@ declare class DelegationsList implements OnInit {
451
463
  protected has(row: DelegationRow, action: DelegationAllowedAction): boolean;
452
464
  protected formatDays(row: DelegationRow): string;
453
465
  protected formatScopeSummary(value: DelegationRow['scopeSummary']): string;
466
+ protected getListedParty(row: DelegationRow): DelegationParty;
454
467
  private viewDetails;
455
468
  private openForm;
456
469
  private approve;
@@ -459,9 +472,18 @@ declare class DelegationsList implements OnInit {
459
472
  private startSession;
460
473
  private mark;
461
474
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DelegationsList, never>;
462
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DelegationsList, "mt-delegations-list", never, { "showBreadcrumb": { "alias": "showBreadcrumb"; "required": false; "isSignal": true; }; "adminMode": { "alias": "adminMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
475
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DelegationsList, "mt-delegations-list", never, { "showBreadcrumb": { "alias": "showBreadcrumb"; "required": false; "isSignal": true; }; "adminMode": { "alias": "adminMode"; "required": false; "isSignal": true; }; "surfaceTitleKey": { "alias": "surfaceTitleKey"; "required": false; "isSignal": true; }; "assignedTabLabelKey": { "alias": "assignedTabLabelKey"; "required": false; "isSignal": true; }; "assignedDecisionTab": { "alias": "assignedDecisionTab"; "required": false; "isSignal": true; }; "assignedEmptyStateKey": { "alias": "assignedEmptyStateKey"; "required": false; "isSignal": true; }; "assignedStatus": { "alias": "assignedStatus"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
463
476
  }
464
477
 
478
+ interface DelegationFormUserValue {
479
+ id: string;
480
+ userId: string;
481
+ displayName: string;
482
+ userName: string;
483
+ email?: string | null;
484
+ photo?: string | null;
485
+ isExternal: boolean;
486
+ }
465
487
  /**
466
488
  * Delegation create/edit form (doc 04). Uses the v2 explicit-scope endpoints so
467
489
  * the persisted `DelegationScopeSelection` matches what scope/preview validated.
@@ -494,9 +516,10 @@ declare class DelegationForm implements OnInit {
494
516
  isSaving: _angular_core.Signal<boolean>;
495
517
  context: HttpContext;
496
518
  protected readonly scope: _angular_core.WritableSignal<DelegationScopeSelection>;
497
- /** Selected delegator id (admin mode only); drives scope/options + create payload. */
519
+ protected readonly currentDelegator: _angular_core.WritableSignal<DelegationFormUserValue | null>;
520
+ /** Selected delegator id drives scope/options loading and the admin payload. */
498
521
  protected readonly selectedDelegatorId: _angular_core.Signal<string | undefined>;
499
- /** In admin mode the scope picker only loads once a delegator is chosen. */
522
+ /** Admin mode waits for a chosen delegator; self-service always has one. */
500
523
  protected readonly showScopePicker: _angular_core.Signal<boolean>;
501
524
  protected readonly specificDaysOptions: _angular_core.WritableSignal<{
502
525
  label: string;
@@ -507,6 +530,7 @@ declare class DelegationForm implements OnInit {
507
530
  ngOnInit(): void;
508
531
  protected readonly canSubmit: _angular_core.Signal<boolean>;
509
532
  onSubmit(): void;
533
+ private mapPartyToUserValue;
510
534
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DelegationForm, never>;
511
535
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DelegationForm, "mt-delegation-form", never, { "delegationForEdit": { "alias": "delegationForEdit"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "adminMode": { "alias": "adminMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
512
536
  }
@@ -618,6 +642,11 @@ declare class GetAssignedDelegations {
618
642
  static readonly type = "[Delegations] Get Assigned Delegations";
619
643
  constructor(query?: DelegationListQuery);
620
644
  }
645
+ declare class GetAdminDelegations {
646
+ query: DelegationListQuery;
647
+ static readonly type = "[Delegations] Get Admin Delegations";
648
+ constructor(query?: DelegationListQuery);
649
+ }
621
650
  declare class GetActiveAssignedDelegations {
622
651
  query: DelegationListQuery;
623
652
  static readonly type = "[Delegations] Get Active Assigned Delegations";
@@ -707,6 +736,7 @@ declare class DelegationsState {
707
736
  private http;
708
737
  static getMy(state: DelegationsStateModel): DelegationPage<DelegationRow> | null;
709
738
  static getAssigned(state: DelegationsStateModel): DelegationPage<DelegationRow> | null;
739
+ static getAdmin(state: DelegationsStateModel): DelegationPage<DelegationRow> | null;
710
740
  static getActive(state: DelegationsStateModel): DelegationPage<DelegationRow> | null;
711
741
  static getDetail(state: DelegationsStateModel): DelegationDetail | null;
712
742
  static getScopeOptions(state: DelegationsStateModel): DelegationScopeOptions | null;
@@ -715,6 +745,7 @@ declare class DelegationsState {
715
745
  static getErrors(state: DelegationsStateModel): Record<string, string | null | undefined>;
716
746
  getMy(ctx: StateContext<DelegationsStateModel>, { query }: GetMyDelegations): rxjs.Observable<Response<DelegationPage<DelegationRow>>>;
717
747
  getAssigned(ctx: StateContext<DelegationsStateModel>, { query }: GetAssignedDelegations): rxjs.Observable<Response<DelegationPage<DelegationRow>>>;
748
+ getAdmin(ctx: StateContext<DelegationsStateModel>, { query }: GetAdminDelegations): rxjs.Observable<Response<DelegationPage<DelegationRow>>>;
718
749
  getActive(ctx: StateContext<DelegationsStateModel>, { query }: GetActiveAssignedDelegations): rxjs.Observable<Response<DelegationPage<DelegationRow>>>;
719
750
  getDetail(ctx: StateContext<DelegationsStateModel>, { id }: GetDelegationDetail): rxjs.Observable<Response<DelegationDetail>>;
720
751
  clearDetail(ctx: StateContext<DelegationsStateModel>): void;
@@ -736,6 +767,7 @@ declare class DelegationsFacade {
736
767
  private readonly store;
737
768
  readonly myPage: _angular_core.Signal<_masterteam_delegations.DelegationPage<_masterteam_delegations.DelegationRow> | null>;
738
769
  readonly assignedPage: _angular_core.Signal<_masterteam_delegations.DelegationPage<_masterteam_delegations.DelegationRow> | null>;
770
+ readonly adminPage: _angular_core.Signal<_masterteam_delegations.DelegationPage<_masterteam_delegations.DelegationRow> | null>;
739
771
  readonly activePage: _angular_core.Signal<_masterteam_delegations.DelegationPage<_masterteam_delegations.DelegationRow> | null>;
740
772
  readonly detail: _angular_core.Signal<_masterteam_delegations.DelegationDetail | null>;
741
773
  readonly scopeOptions: _angular_core.Signal<_masterteam_delegations.DelegationScopeOptions | null>;
@@ -744,9 +776,11 @@ declare class DelegationsFacade {
744
776
  private readonly errors;
745
777
  readonly myItems: _angular_core.Signal<_masterteam_delegations.DelegationRow[]>;
746
778
  readonly assignedItems: _angular_core.Signal<_masterteam_delegations.DelegationRow[]>;
779
+ readonly adminItems: _angular_core.Signal<_masterteam_delegations.DelegationRow[]>;
747
780
  readonly activeItems: _angular_core.Signal<_masterteam_delegations.DelegationRow[]>;
748
781
  readonly isLoadingMy: _angular_core.Signal<boolean>;
749
782
  readonly isLoadingAssigned: _angular_core.Signal<boolean>;
783
+ readonly isLoadingAdmin: _angular_core.Signal<boolean>;
750
784
  readonly isLoadingActive: _angular_core.Signal<boolean>;
751
785
  readonly isLoadingDetail: _angular_core.Signal<boolean>;
752
786
  readonly isLoadingScopeOptions: _angular_core.Signal<boolean>;
@@ -757,11 +791,13 @@ declare class DelegationsFacade {
757
791
  readonly isCancelling: _angular_core.Signal<boolean>;
758
792
  readonly errorMy: _angular_core.Signal<string | null>;
759
793
  readonly errorAssigned: _angular_core.Signal<string | null>;
794
+ readonly errorAdmin: _angular_core.Signal<string | null>;
760
795
  readonly errorDetail: _angular_core.Signal<string | null>;
761
796
  readonly errorScopeOptions: _angular_core.Signal<string | null>;
762
797
  readonly errorSave: _angular_core.Signal<string | null>;
763
798
  getMy(query?: DelegationListQuery): rxjs.Observable<void>;
764
799
  getAssigned(query?: DelegationListQuery): rxjs.Observable<void>;
800
+ getAdmin(query?: DelegationListQuery): rxjs.Observable<void>;
765
801
  getActive(query?: DelegationListQuery): rxjs.Observable<void>;
766
802
  getDetail(id: number): rxjs.Observable<void>;
767
803
  clearDetail(): rxjs.Observable<void>;
@@ -865,5 +901,5 @@ declare class DelegationSessionFacade {
865
901
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DelegationSessionFacade>;
866
902
  }
867
903
 
868
- export { ApproveDelegation, CancelDelegation, ClearDelegationDetail, ClearScopePreview, CreateDelegationLegacy, CreateDelegationV2, DelegationDetailDrawer, DelegationForm, DelegationSessionActionKey, DelegationSessionFacade, DelegationSessionState, DelegationStatusChip, Delegations, DelegationsActionKey, DelegationsFacade, DelegationsList, DelegationsState, EndDelegationSession, GetActiveAssignedDelegations, GetAssignedDelegations, GetDelegationDetail, GetMyDelegations, GetScopeOptions, LoadDelegationCandidates, PreviewScope, RejectDelegation, RejectDelegationDialog, ScopePicker, StartDelegationSession, StartSessionDialog, SwitchDelegationSession, TopbarDelegationMenu, UpdateDelegationLegacy, UpdateDelegationV2, appDelegationInterceptor };
904
+ export { ApproveDelegation, CancelDelegation, ClearDelegationDetail, ClearScopePreview, CreateDelegationLegacy, CreateDelegationV2, DelegationDetailDrawer, DelegationForm, DelegationSessionActionKey, DelegationSessionFacade, DelegationSessionState, DelegationStatusChip, Delegations, DelegationsActionKey, DelegationsFacade, DelegationsList, DelegationsState, EndDelegationSession, GetActiveAssignedDelegations, GetAdminDelegations, GetAssignedDelegations, GetDelegationDetail, GetMyDelegations, GetScopeOptions, LoadDelegationCandidates, PreviewScope, RejectDelegation, RejectDelegationDialog, ScopePicker, StartDelegationSession, StartSessionDialog, SwitchDelegationSession, TopbarDelegationMenu, UpdateDelegationLegacy, UpdateDelegationV2, appDelegationInterceptor };
869
905
  export type { ActiveDelegationSession, ApproveDelegationRequest, CreateDelegationLegacyRequest, CreateDelegationV2Request, DelegationAllowedAction, DelegationApprovalInfo, DelegationApprovalStatus, DelegationCancellationInfo, DelegationDayRuleMode, DelegationDetail, DelegationDisplayValue, DelegationDto, DelegationEffectiveStatus, DelegationGrant, DelegationListQuery, DelegationPage, DelegationParty, DelegationRow, DelegationScopeAction, DelegationScopeCombinationRule, DelegationScopeDeniedItem, DelegationScopeFact, DelegationScopeHierarchyGroup, DelegationScopeHierarchyTarget, DelegationScopeOptions, DelegationScopePreview, DelegationScopeSelection, DelegationScopeTarget, DelegationScopeWarning, DelegationSessionInvalidationReason, DelegationSessionStateModel, DelegationSortDirection, DelegationStatusInfo, DelegationsStateModel, RejectDelegationRequest, UpdateDelegationLegacyRequest, UpdateDelegationV2Request };