@memberjunction/ng-explorer-core 5.48.0 → 5.50.0
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/dist/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +6 -2
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/omnibar/omnibar-palette.component.d.ts.map +1 -1
- package/dist/lib/omnibar/omnibar-palette.component.js +109 -98
- package/dist/lib/omnibar/omnibar-palette.component.js.map +1 -1
- package/dist/lib/profile/profile-dialog.component.d.ts +17 -0
- package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
- package/dist/lib/profile/profile-dialog.component.js +141 -5
- package/dist/lib/profile/profile-dialog.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +19 -16
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +127 -121
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts +84 -9
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.js +380 -41
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.d.ts +159 -29
- package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.js +822 -116
- package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.d.ts +10 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.d.ts.map +1 -1
- package/dist/lib/shell/services/sharing-center-dialog-host.component.js +30 -4
- package/dist/lib/shell/services/sharing-center-dialog-host.component.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts +17 -8
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +279 -215
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/shell/shell.module.d.ts +1 -1
- package/dist/lib/shell/shell.module.d.ts.map +1 -1
- package/dist/lib/shell/shell.module.js +3 -1
- package/dist/lib/shell/shell.module.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +10 -7
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/package.json +52 -50
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy, AfterViewInit, ChangeDetectorRef, ElementRef } from '@angular/core';
|
|
2
2
|
import { BaseApplication, NavItem, WorkspaceStateManager } from '@memberjunction/ng-base-application';
|
|
3
3
|
import { SharedService } from '@memberjunction/ng-shared';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -12,15 +12,21 @@ export interface NavItemClickEvent {
|
|
|
12
12
|
/**
|
|
13
13
|
* Horizontal navigation items for the current app.
|
|
14
14
|
* Uses OnPush change detection and reactive state management for optimal performance.
|
|
15
|
+
*
|
|
16
|
+
* Overflow behavior (priority+ pattern): when the header can't fit every nav item,
|
|
17
|
+
* trailing items collapse into a "More" dropdown instead of squeezing the header's
|
|
18
|
+
* action cluster off-screen. Item widths are measured once per nav-items change
|
|
19
|
+
* (all items render for one frame, widths are cached), then every resize recomputes
|
|
20
|
+
* the fit from the cache — no re-measure, no layout thrash.
|
|
15
21
|
*/
|
|
16
|
-
export declare class AppNavComponent implements OnInit, OnDestroy {
|
|
22
|
+
export declare class AppNavComponent implements OnInit, OnDestroy, AfterViewInit {
|
|
17
23
|
private workspaceManager;
|
|
18
24
|
private sharedService;
|
|
19
25
|
private cdr;
|
|
26
|
+
private host;
|
|
20
27
|
private destroy$;
|
|
21
28
|
private _app;
|
|
22
29
|
private _cachedNavItems;
|
|
23
|
-
private _cachedAppColor;
|
|
24
30
|
private _servicesInjected;
|
|
25
31
|
/**
|
|
26
32
|
* Monotonically increasing counter used to detect and discard stale async results.
|
|
@@ -38,20 +44,93 @@ export declare class AppNavComponent implements OnInit, OnDestroy {
|
|
|
38
44
|
*/
|
|
39
45
|
private _updateGeneration;
|
|
40
46
|
private activeStateMap;
|
|
47
|
+
/** Cached natural pixel width of each nav item, parallel to navItems order */
|
|
48
|
+
private itemWidths;
|
|
49
|
+
/** Measured width of the More button (fallback used until first render) */
|
|
50
|
+
private moreBtnWidth;
|
|
51
|
+
/** Left offset (px, relative to host) where the More dropdown anchors */
|
|
52
|
+
MoreDropdownLeft: number;
|
|
53
|
+
/** True when even one item + More can't fit — the lone visible pill
|
|
54
|
+
* shrinks with an ellipsis instead of clipping the More button. */
|
|
55
|
+
Tight: boolean;
|
|
56
|
+
/** Flex gap between nav items — measured from the rendered row (falls back
|
|
57
|
+
* to --mj-space-1's default of 4px until first measurement) */
|
|
58
|
+
private itemGap;
|
|
59
|
+
/** How many leading nav items are currently visible inline */
|
|
60
|
+
VisibleCount: number;
|
|
61
|
+
/** Whether the More dropdown is open */
|
|
62
|
+
MoreOpen: boolean;
|
|
63
|
+
/** True while nav items are being (re)loaded for skeleton display */
|
|
64
|
+
Loading: boolean;
|
|
65
|
+
private resizeObserver;
|
|
66
|
+
private _overflowEnabled;
|
|
67
|
+
private navListRef?;
|
|
68
|
+
private moreBtnRef?;
|
|
41
69
|
navItemClick: EventEmitter<NavItemClickEvent>;
|
|
42
70
|
navItemDismiss: EventEmitter<NavItem>;
|
|
43
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Disable the priority+ overflow behavior. Used by the mobile drawer instance,
|
|
73
|
+
* where items stack vertically and can never overflow horizontally.
|
|
74
|
+
*/
|
|
75
|
+
set OverflowEnabled(value: boolean);
|
|
76
|
+
get OverflowEnabled(): boolean;
|
|
77
|
+
constructor(workspaceManager: WorkspaceStateManager, sharedService: SharedService, cdr: ChangeDetectorRef, host: ElementRef<HTMLElement>);
|
|
44
78
|
/**
|
|
45
79
|
* Input setter for app - triggers cache update when app changes
|
|
46
80
|
*/
|
|
47
81
|
set app(value: BaseApplication | null);
|
|
48
82
|
get app(): BaseApplication | null;
|
|
49
83
|
ngOnInit(): void;
|
|
84
|
+
ngAfterViewInit(): void;
|
|
50
85
|
ngOnDestroy(): void;
|
|
51
86
|
/**
|
|
52
87
|
* Update cached nav items and app color when app changes
|
|
53
88
|
*/
|
|
54
89
|
private updateCachedData;
|
|
90
|
+
/**
|
|
91
|
+
* Cache the natural width of every nav item. Called in the frame after a new
|
|
92
|
+
* item set renders (all items visible, flex-shrink: 0, so widths are natural
|
|
93
|
+
* even if the row is clipped by overflow: hidden).
|
|
94
|
+
*/
|
|
95
|
+
private measureItemWidths;
|
|
96
|
+
/**
|
|
97
|
+
* Decide how many items fit in the host's current width; the rest collapse
|
|
98
|
+
* into the More dropdown. Pure arithmetic over cached widths — safe to call
|
|
99
|
+
* on every resize.
|
|
100
|
+
*/
|
|
101
|
+
private recomputeFit;
|
|
102
|
+
/**
|
|
103
|
+
* Self-heal for the item-width cache: if it's stale or missing (the
|
|
104
|
+
* measurement frame can race the first render after a reload/app switch),
|
|
105
|
+
* expand to the full item set, re-measure, and retry next frame until it
|
|
106
|
+
* converges. Returns true when the cache matches the current item set.
|
|
107
|
+
*/
|
|
108
|
+
private ensureFreshWidthCache;
|
|
109
|
+
/** Pure fit arithmetic: how many leading items fit beside the More button */
|
|
110
|
+
private computeFitCount;
|
|
111
|
+
/** Commit a fit result, closing More if nothing overflows; CD only on change */
|
|
112
|
+
private applyFit;
|
|
113
|
+
/**
|
|
114
|
+
* markForCheck + synchronous detectChanges. In Angular 21 zoneless mode,
|
|
115
|
+
* markForCheck() alone is unreliable when the trigger is an RxJS
|
|
116
|
+
* subscription or rAF callback not tracked by the zoneless scheduler — the
|
|
117
|
+
* dirty flag is set but no follow-up tick is scheduled. detectChanges()
|
|
118
|
+
* throws if invoked re-entrantly during an in-flight CD pass; that's
|
|
119
|
+
* harmless (the in-flight pass picks up our markForCheck), hence the catch.
|
|
120
|
+
*/
|
|
121
|
+
private syncChangeDetection;
|
|
122
|
+
/** Items rendered inline in the header row */
|
|
123
|
+
get InlineItems(): NavItem[];
|
|
124
|
+
/** Items collapsed into the More dropdown */
|
|
125
|
+
get OverflowItems(): NavItem[];
|
|
126
|
+
/** True when any overflowed item is the active one (More button shows active tint) */
|
|
127
|
+
get OverflowHasActive(): boolean;
|
|
128
|
+
/** Open/close the More dropdown, anchoring it under the More button and clamping it inside the host */
|
|
129
|
+
ToggleMore(event: MouseEvent): void;
|
|
130
|
+
/** Close the More dropdown on any outside click or Escape */
|
|
131
|
+
onDocumentClick(event: MouseEvent): void;
|
|
132
|
+
/** Close the More dropdown on Escape */
|
|
133
|
+
onEscape(): void;
|
|
55
134
|
/**
|
|
56
135
|
* Update active state map based on current workspace configuration
|
|
57
136
|
*/
|
|
@@ -73,10 +152,6 @@ export declare class AppNavComponent implements OnInit, OnDestroy {
|
|
|
73
152
|
* Get cached navigation items (no computation in getter)
|
|
74
153
|
*/
|
|
75
154
|
get navItems(): NavItem[];
|
|
76
|
-
/**
|
|
77
|
-
* Get cached app color (no computation in getter)
|
|
78
|
-
*/
|
|
79
|
-
get appColor(): string;
|
|
80
155
|
/**
|
|
81
156
|
* Check if nav item is active (uses cached state from Map)
|
|
82
157
|
*/
|
|
@@ -96,6 +171,6 @@ export declare class AppNavComponent implements OnInit, OnDestroy {
|
|
|
96
171
|
*/
|
|
97
172
|
onDismiss(item: NavItem, event: MouseEvent): void;
|
|
98
173
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppNavComponent, never>;
|
|
99
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AppNavComponent, "mj-app-nav", never, { "app": { "alias": "app"; "required": false; }; }, { "navItemClick": "navItemClick"; "navItemDismiss": "navItemDismiss"; }, never, never, false, never>;
|
|
174
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppNavComponent, "mj-app-nav", never, { "OverflowEnabled": { "alias": "OverflowEnabled"; "required": false; }; "app": { "alias": "app"; "required": false; }; }, { "navItemClick": "navItemClick"; "navItemDismiss": "navItemDismiss"; }, never, never, false, never>;
|
|
100
175
|
}
|
|
101
176
|
//# sourceMappingURL=app-nav.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-nav.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-nav.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app-nav.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/shell/components/header/app-nav.component.ts"],"names":[],"mappings":"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"}
|