@nucleus-suite-pe/core 2.0.0 → 2.2.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nucleus-suite-pe/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Capa compartida de la suite Nucleus: sesión única, permisos, tema y marco de aplicación para Angular.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"@angular/router": "^21.2.0",
|
|
28
28
|
"@angular/forms": "^21.2.0",
|
|
29
29
|
"primeicons": "^8.0.0",
|
|
30
|
-
"chart.js": "^4.4.0"
|
|
30
|
+
"chart.js": "^4.4.0",
|
|
31
|
+
"@angular/cdk": "^21.2.0"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
34
|
"tslib": "^2.3.0"
|
package/styles/tokens.css
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
--ns-frame-glow: #8c7ff0;
|
|
17
17
|
--ns-frame-on-glow: #101014;
|
|
18
18
|
|
|
19
|
+
--ns-success: #5bd98a;
|
|
20
|
+
--ns-danger: #f87171;
|
|
21
|
+
--ns-warning: #e0a33a;
|
|
22
|
+
|
|
19
23
|
--ns-shadow-1: 0 1px 2px rgb(0 0 0 / 28%);
|
|
20
24
|
--ns-shadow-2: 0 10px 34px rgb(0 0 0 / 45%);
|
|
21
25
|
--ns-accent-wash: #1d1a2b;
|
|
@@ -461,3 +465,84 @@ nucleus-metric .value,
|
|
|
461
465
|
nucleus-chart {
|
|
462
466
|
font-variant-numeric: tabular-nums;
|
|
463
467
|
}
|
|
468
|
+
|
|
469
|
+
:root .p-tag {
|
|
470
|
+
--ns-status: color-mix(in srgb, var(--ac-text) 58%, transparent);
|
|
471
|
+
|
|
472
|
+
display: inline-flex;
|
|
473
|
+
align-items: center;
|
|
474
|
+
gap: 7px;
|
|
475
|
+
padding: 3px 11px 3px 9px;
|
|
476
|
+
border: 1px solid color-mix(in srgb, var(--ns-status) 38%, transparent);
|
|
477
|
+
border-radius: var(--ac-radius-pill);
|
|
478
|
+
background: color-mix(in srgb, var(--ns-status) 13%, transparent);
|
|
479
|
+
color: var(--ns-status);
|
|
480
|
+
font-size: 12px;
|
|
481
|
+
font-weight: 600;
|
|
482
|
+
line-height: 1.5;
|
|
483
|
+
white-space: nowrap;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
:root .p-tag::before {
|
|
487
|
+
width: 6px;
|
|
488
|
+
height: 6px;
|
|
489
|
+
flex: none;
|
|
490
|
+
border-radius: 50%;
|
|
491
|
+
background: var(--ns-status);
|
|
492
|
+
content: '';
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
:root .p-tag-success {
|
|
496
|
+
--ns-status: var(--ns-success);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
:root .p-tag-danger {
|
|
500
|
+
--ns-status: var(--ns-danger);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
:root .p-tag-warn {
|
|
504
|
+
--ns-status: var(--ns-warning);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
:root .p-tag-info {
|
|
508
|
+
--ns-status: var(--ac-accent);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.cdk-drag-preview {
|
|
512
|
+
border: 1px solid var(--ac-accent);
|
|
513
|
+
border-radius: 12px;
|
|
514
|
+
background: var(--ac-surface);
|
|
515
|
+
box-shadow: var(--ns-shadow-2);
|
|
516
|
+
opacity: 0.96;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
.cdk-drag-preview .grip {
|
|
520
|
+
color: var(--ac-accent);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
:root .card-actions .p-button-text.p-button-secondary,
|
|
524
|
+
:root .actions .p-button-text.p-button-secondary {
|
|
525
|
+
color: var(--ac-text-muted);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
:root .card-actions .p-button-text.p-button-secondary:not(:disabled):hover,
|
|
529
|
+
:root .actions .p-button-text.p-button-secondary:not(:disabled):hover {
|
|
530
|
+
background: color-mix(in srgb, var(--ac-text) 10%, transparent);
|
|
531
|
+
color: var(--ac-text);
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
:root .card-actions .p-button-text.p-button-danger,
|
|
535
|
+
:root .actions .p-button-text.p-button-danger {
|
|
536
|
+
color: var(--ns-danger);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
:root .card-actions .p-button-text.p-button-danger:not(:disabled):hover,
|
|
540
|
+
:root .actions .p-button-text.p-button-danger:not(:disabled):hover {
|
|
541
|
+
background: color-mix(in srgb, var(--ns-danger) 14%, transparent);
|
|
542
|
+
color: var(--ns-danger);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
:root .card-actions .p-button:disabled,
|
|
546
|
+
:root .actions .p-button:disabled {
|
|
547
|
+
opacity: 0.38;
|
|
548
|
+
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InjectionToken, EnvironmentProviders, Signal, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
|
|
3
3
|
import { HttpContextToken, HttpInterceptorFn } from '@angular/common/http';
|
|
4
|
+
import { CanActivateFn } from '@angular/router';
|
|
4
5
|
import * as _nucleus_suite_pe_core from '@nucleus-suite-pe/core';
|
|
5
6
|
import * as _primeuix_themes from '@primeuix/themes';
|
|
6
7
|
import * as _primeuix_themes_types_base from '@primeuix/themes/types/base';
|
|
7
8
|
import { Popover } from 'primeng/popover';
|
|
9
|
+
import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
8
10
|
import { MenuItem } from 'primeng/api';
|
|
9
11
|
|
|
10
12
|
interface NucleusConfig {
|
|
@@ -19,6 +21,12 @@ declare function loadNucleusConfig(url?: string): Promise<NucleusConfig>;
|
|
|
19
21
|
declare function isNucleusConfigured(config: NucleusConfig): boolean;
|
|
20
22
|
declare function ownsUrl(config: NucleusConfig, url: string): boolean;
|
|
21
23
|
|
|
24
|
+
declare const NUCLEUS_HOME: InjectionToken<string>;
|
|
25
|
+
declare function normalizeHomeRoute(route: string): string;
|
|
26
|
+
declare function provideNucleusHome(route: string): EnvironmentProviders;
|
|
27
|
+
declare function routePath(url: string): string;
|
|
28
|
+
declare function isHomeRoute(home: string, url: string): boolean;
|
|
29
|
+
|
|
22
30
|
interface NucleusIdentity {
|
|
23
31
|
readonly uid: string;
|
|
24
32
|
readonly provider: string;
|
|
@@ -94,6 +102,8 @@ declare class UserSyncService {
|
|
|
94
102
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserSyncService>;
|
|
95
103
|
}
|
|
96
104
|
|
|
105
|
+
declare const nucleusAccessGuard: CanActivateFn;
|
|
106
|
+
|
|
97
107
|
interface MenuNode {
|
|
98
108
|
readonly id: string;
|
|
99
109
|
readonly label: string;
|
|
@@ -221,6 +231,8 @@ interface MenuPermissions {
|
|
|
221
231
|
}
|
|
222
232
|
declare const NO_PERMISSIONS: MenuPermissions;
|
|
223
233
|
declare function findMenuByRoute(nodes: readonly MenuNode[], route: string): MenuNode | null;
|
|
234
|
+
declare function isUnderRoute(url: string, route: string): boolean;
|
|
235
|
+
declare function matchMenuByRoute(nodes: readonly MenuNode[], url: string): MenuNode | null;
|
|
224
236
|
declare function permissionsOf(node: MenuNode | null): MenuPermissions;
|
|
225
237
|
|
|
226
238
|
declare class SessionService {
|
|
@@ -241,6 +253,7 @@ declare class SessionService {
|
|
|
241
253
|
private readonly _switching;
|
|
242
254
|
private readonly _error;
|
|
243
255
|
private inFlight;
|
|
256
|
+
private current;
|
|
244
257
|
private loadedKey;
|
|
245
258
|
private language;
|
|
246
259
|
readonly me: _angular_core.Signal<MeResponse | null>;
|
|
@@ -261,6 +274,8 @@ declare class SessionService {
|
|
|
261
274
|
readonly companyId: _angular_core.Signal<string | null>;
|
|
262
275
|
readonly companyName: _angular_core.Signal<string | null>;
|
|
263
276
|
load(language: string, force?: boolean): Promise<void>;
|
|
277
|
+
ready(): Promise<void>;
|
|
278
|
+
private run;
|
|
264
279
|
signOutToLanding(): Promise<void>;
|
|
265
280
|
permissionsFor(route: string): MenuPermissions;
|
|
266
281
|
reload(language: string): Promise<void>;
|
|
@@ -294,6 +309,10 @@ interface CommonCopy {
|
|
|
294
309
|
readonly noColor: string;
|
|
295
310
|
readonly searchIcon: string;
|
|
296
311
|
readonly noMatches: string;
|
|
312
|
+
readonly reorderHandle: string;
|
|
313
|
+
readonly noResults: string;
|
|
314
|
+
readonly viewGrid: string;
|
|
315
|
+
readonly viewRows: string;
|
|
297
316
|
readonly sessionExpired: string;
|
|
298
317
|
readonly errorNetwork: string;
|
|
299
318
|
readonly errorTimeout: string;
|
|
@@ -484,8 +503,8 @@ declare function mixHex(foreground: string, background: string, ratio: number):
|
|
|
484
503
|
declare function meetsContrast(foreground: string, background: string, required: number): boolean;
|
|
485
504
|
declare function contrastIssue(scope: string, pair: string, foreground: string, background: string, required: number): ContrastIssue | null;
|
|
486
505
|
|
|
487
|
-
type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist';
|
|
488
|
-
type CanvasId = 'light' | 'dim' | 'dark';
|
|
506
|
+
type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist' | 'studio';
|
|
507
|
+
type CanvasId = 'light' | 'soft' | 'dim' | 'dark';
|
|
489
508
|
type CanvasPreference = CanvasId | 'system';
|
|
490
509
|
type AccentId = 'violet' | 'blue' | 'cyan' | 'green' | 'lime' | 'amber' | 'orange' | 'rose' | 'red';
|
|
491
510
|
type AccentPreference = AccentId | 'auto';
|
|
@@ -823,8 +842,23 @@ declare class NucleusForm {
|
|
|
823
842
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusForm, "nucleus-form", never, { "fields": { "alias": "fields"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, [{ directive: typeof NucleusEnterAdvance; inputs: {}; outputs: {}; }]>;
|
|
824
843
|
}
|
|
825
844
|
|
|
845
|
+
interface NucleusLinkTarget {
|
|
846
|
+
readonly route: readonly unknown[];
|
|
847
|
+
readonly queryParams?: Record<string, unknown>;
|
|
848
|
+
}
|
|
849
|
+
declare class NucleusLink {
|
|
850
|
+
readonly route: _angular_core.InputSignal<readonly unknown[] | null>;
|
|
851
|
+
readonly queryParams: _angular_core.InputSignal<Record<string, unknown> | null>;
|
|
852
|
+
readonly href: _angular_core.InputSignal<string | null>;
|
|
853
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
854
|
+
readonly muted: _angular_core.InputSignal<boolean>;
|
|
855
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusLink, never>;
|
|
856
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusLink, "nucleus-link", never, { "route": { "alias": "route"; "required": false; "isSignal": true; }; "queryParams": { "alias": "queryParams"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
857
|
+
}
|
|
858
|
+
|
|
826
859
|
type ListAlign = 'left' | 'center' | 'right';
|
|
827
860
|
type ListColumnKind = 'text' | 'switch';
|
|
861
|
+
type ListColumnRole = 'identity' | 'status' | 'attribute' | 'hidden';
|
|
828
862
|
interface ListTag {
|
|
829
863
|
readonly label: string;
|
|
830
864
|
readonly severity?: 'success' | 'info' | 'warn' | 'danger' | 'secondary';
|
|
@@ -833,6 +867,7 @@ interface ListColumn<T = Record<string, unknown>> {
|
|
|
833
867
|
readonly key: string;
|
|
834
868
|
readonly header: string;
|
|
835
869
|
readonly kind?: ListColumnKind;
|
|
870
|
+
readonly role?: ListColumnRole;
|
|
836
871
|
readonly align?: ListAlign;
|
|
837
872
|
readonly strong?: boolean;
|
|
838
873
|
readonly width?: string;
|
|
@@ -841,6 +876,7 @@ interface ListColumn<T = Record<string, unknown>> {
|
|
|
841
876
|
readonly checked?: (row: T) => boolean;
|
|
842
877
|
readonly disabled?: (row: T) => boolean;
|
|
843
878
|
readonly hint?: (row: T) => string;
|
|
879
|
+
readonly link?: (row: T) => NucleusLinkTarget | null;
|
|
844
880
|
}
|
|
845
881
|
interface ListAction<T = Record<string, unknown>> {
|
|
846
882
|
readonly id: string;
|
|
@@ -878,9 +914,48 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
|
|
|
878
914
|
readonly rowClass: _angular_core.InputSignal<(row: T) => string>;
|
|
879
915
|
readonly pageSize: _angular_core.InputSignal<number>;
|
|
880
916
|
readonly pageSizes: _angular_core.InputSignal<number[]>;
|
|
917
|
+
readonly cards: _angular_core.InputSignal<boolean>;
|
|
918
|
+
readonly reorderable: _angular_core.InputSignal<boolean>;
|
|
919
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
920
|
+
readonly reorderGroup: _angular_core.InputSignal<((row: T) => string | null) | null>;
|
|
881
921
|
readonly action: _angular_core.OutputEmitterRef<ListActionEvent<T>>;
|
|
922
|
+
readonly reorder: _angular_core.OutputEmitterRef<T[]>;
|
|
923
|
+
readonly dragStart: _angular_core.OutputEmitterRef<T>;
|
|
882
924
|
readonly toggle: _angular_core.OutputEmitterRef<ListToggleEvent<T>>;
|
|
883
925
|
private readonly cells;
|
|
926
|
+
private readonly language;
|
|
927
|
+
private readonly viewport;
|
|
928
|
+
protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
929
|
+
protected readonly term: _angular_core.WritableSignal<string>;
|
|
930
|
+
private readonly chosenView;
|
|
931
|
+
protected readonly canChooseView: _angular_core.Signal<boolean>;
|
|
932
|
+
protected readonly view: _angular_core.Signal<"grid" | "rows">;
|
|
933
|
+
protected chooseView(value: 'grid' | 'rows'): void;
|
|
934
|
+
protected readonly filtered: _angular_core.Signal<T[]>;
|
|
935
|
+
protected readonly dragLocked: _angular_core.Signal<boolean>;
|
|
936
|
+
protected readonly showNoResults: _angular_core.Signal<boolean>;
|
|
937
|
+
protected onSearch(event: Event): void;
|
|
938
|
+
private readonly firstRow;
|
|
939
|
+
private readonly rowsOverride;
|
|
940
|
+
protected readonly compact: _angular_core.Signal<boolean>;
|
|
941
|
+
protected readonly rowsPerPage: _angular_core.Signal<number>;
|
|
942
|
+
protected readonly identityColumn: _angular_core.Signal<ListColumn<T> | null>;
|
|
943
|
+
protected readonly statusColumn: _angular_core.Signal<ListColumn<T> | null>;
|
|
944
|
+
protected readonly attributeColumns: _angular_core.Signal<readonly ListColumn<T>[]>;
|
|
945
|
+
protected readonly pagedRows: _angular_core.Signal<T[]>;
|
|
946
|
+
private readonly resetPage;
|
|
947
|
+
protected readonly page: _angular_core.Signal<number>;
|
|
948
|
+
protected readonly sortAllowed: (index: number, drag: CdkDrag<T>) => boolean;
|
|
949
|
+
protected onRowReorder(event: {
|
|
950
|
+
dragIndex?: number;
|
|
951
|
+
dropIndex?: number;
|
|
952
|
+
}): void;
|
|
953
|
+
protected onCardDrop(event: CdkDragDrop<unknown>): void;
|
|
954
|
+
private applyMove;
|
|
955
|
+
protected onPage(event: {
|
|
956
|
+
first?: number;
|
|
957
|
+
rows?: number;
|
|
958
|
+
}): void;
|
|
884
959
|
protected readonly paginate: _angular_core.Signal<boolean>;
|
|
885
960
|
protected readonly tableStyle: _angular_core.Signal<{
|
|
886
961
|
'min-width': string;
|
|
@@ -891,6 +966,7 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
|
|
|
891
966
|
protected skeletonWidth(column: ListColumn<T>): string;
|
|
892
967
|
protected cellTemplate(key: string): TemplateRef<unknown> | null;
|
|
893
968
|
protected text(column: ListColumn<T>, row: T): string;
|
|
969
|
+
protected linkOf(column: ListColumn<T>, row: T): NucleusLinkTarget | null;
|
|
894
970
|
protected tagOf(column: ListColumn<T>, row: T): ListTag | null;
|
|
895
971
|
protected visibleActions(row: T): readonly ListAction<T>[];
|
|
896
972
|
protected isActionLocked(entry: ListAction<T>, row: T): boolean;
|
|
@@ -900,7 +976,7 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
|
|
|
900
976
|
protected hintOf(column: ListColumn<T>, row: T): string;
|
|
901
977
|
protected flip(column: ListColumn<T>, row: T): void;
|
|
902
978
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusList<any>, never>;
|
|
903
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusList<any>, "nucleus-list", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizes": { "alias": "pageSizes"; "required": false; "isSignal": true; }; }, { "action": "action"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
|
|
979
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusList<any>, "nucleus-list", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizes": { "alias": "pageSizes"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "reorderGroup": { "alias": "reorderGroup"; "required": false; "isSignal": true; }; }, { "action": "action"; "reorder": "reorder"; "dragStart": "dragStart"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
|
|
904
980
|
}
|
|
905
981
|
|
|
906
982
|
interface TreeRow {
|
|
@@ -965,6 +1041,16 @@ declare class NucleusAppearance {
|
|
|
965
1041
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusAppearance, "nucleus-appearance", never, {}, {}, never, never, true, never>;
|
|
966
1042
|
}
|
|
967
1043
|
|
|
1044
|
+
declare const NUCLEUS_NARROW_QUERY = "(max-width: 720px)";
|
|
1045
|
+
declare class NucleusViewport {
|
|
1046
|
+
private readonly query;
|
|
1047
|
+
private readonly _narrow;
|
|
1048
|
+
readonly narrow: _angular_core.Signal<boolean>;
|
|
1049
|
+
constructor();
|
|
1050
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusViewport, never>;
|
|
1051
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusViewport>;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
968
1054
|
interface MenuTile {
|
|
969
1055
|
readonly label: string;
|
|
970
1056
|
readonly icon: string | null;
|
|
@@ -1071,6 +1157,7 @@ interface ShellCopy {
|
|
|
1071
1157
|
readonly signOut: string;
|
|
1072
1158
|
readonly accountManage: string;
|
|
1073
1159
|
readonly accountSwitch: string;
|
|
1160
|
+
readonly homeLabel: string;
|
|
1074
1161
|
readonly accessLoading: string;
|
|
1075
1162
|
readonly accessEmpty: string;
|
|
1076
1163
|
readonly accountScope: string;
|
|
@@ -1136,6 +1223,8 @@ declare class NucleusShell {
|
|
|
1136
1223
|
protected readonly crumbs: _angular_core.Signal<MenuItem[]>;
|
|
1137
1224
|
protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.ShellCopy>;
|
|
1138
1225
|
protected readonly starfield: _angular_core.Signal<boolean>;
|
|
1226
|
+
private readonly homeRoute;
|
|
1227
|
+
private readonly currentUrl;
|
|
1139
1228
|
protected readonly menu: _angular_core.Signal<readonly MenuNode[]>;
|
|
1140
1229
|
private readonly collapsedIds;
|
|
1141
1230
|
protected readonly menuLoading: _angular_core.Signal<boolean>;
|
|
@@ -1168,6 +1257,8 @@ declare class NucleusShell {
|
|
|
1168
1257
|
protected readonly sitePlaceholder: _angular_core.Signal<string>;
|
|
1169
1258
|
protected readonly topbarHeight: _angular_core.Signal<"100px" | "56px">;
|
|
1170
1259
|
private readonly syncContext;
|
|
1260
|
+
private lastUid;
|
|
1261
|
+
private readonly watchIdentity;
|
|
1171
1262
|
private readonly loadSession;
|
|
1172
1263
|
constructor();
|
|
1173
1264
|
protected setLang(lang: NucleusLang): void;
|
|
@@ -1180,6 +1271,7 @@ declare class NucleusShell {
|
|
|
1180
1271
|
protected isSelected(node: MenuNode): boolean;
|
|
1181
1272
|
protected onCompanyChange(companyId: string | null): Promise<void>;
|
|
1182
1273
|
protected onSiteChange(siteId: string | null): Promise<void>;
|
|
1274
|
+
private goHome;
|
|
1183
1275
|
private appRow;
|
|
1184
1276
|
protected onLauncherSelect(row: MenuRow): void;
|
|
1185
1277
|
protected onAccountSelect(row: MenuRow): void;
|
|
@@ -1194,5 +1286,5 @@ declare class NucleusShell {
|
|
|
1194
1286
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusShell, "nucleus-shell", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "activeNavId": { "alias": "activeNavId"; "required": false; "isSignal": true; }; "selectedMenuId": { "alias": "selectedMenuId"; "required": false; "isSignal": true; }; }, { "navSelect": "navSelect"; "menuSelect": "menuSelect"; }, never, ["[nucleusTop]", "*"], true, never>;
|
|
1195
1287
|
}
|
|
1196
1288
|
|
|
1197
|
-
export { ACCENTS, CANVASES, COMMON_COPY, CONTROL_CONTRAST, DEFAULT_APPEARANCE, DENSITIES, EMPTY_GEO_VALUE, FIELD_TARGETS, FRAMES, GEO_COPY, LEGACY_THEMES, NO_PERMISSIONS, NUCLEUS_ACCENTS, NUCLEUS_CONFIG, NUCLEUS_DARK_SELECTOR, NUCLEUS_FORCE_BEARER, NUCLEUS_ICONS, NUCLEUS_ICON_CATALOG, NUCLEUS_LANGS, NUCLEUS_LOGOUT_PARAM, NUCLEUS_SKIP_AUTH, NucleusAppearance, NucleusAuth, NucleusCache, NucleusCard, NucleusCell, NucleusColorPicker, NucleusEnterAdvance, NucleusFeedback, NucleusForm, NucleusGeo, NucleusGeoSelect, NucleusIconPicker, NucleusLanguage, NucleusList, NucleusLordicon, NucleusMark, NucleusMenu, NucleusMetric, NucleusMetrics, NucleusPage, NucleusPageActions, NucleusPreset, NucleusRecentApps, NucleusSessionAuth, NucleusShell, NucleusShortcut, NucleusShortcuts, NucleusStarfield, NucleusTabs, SHELL_COPY, SessionService, TEXT_CONTRAST, THEME_COPY, ThemeService, UserSyncService, accentById, accentLabelOf, accentOn, ariaKeysOf, auditAppearance, canvasById, clock, comboOf, commonCopyOf, consumeNucleusLogout, contrastIssue, contrastRatio, day, densityById, endOfDayUtc, fieldsIn, findMenuByRoute, flagOf, foldText, frameById, geoCopyOf, hasChildren, hasModifier, iconClassOf, iconNameOf, integer, isAccentPreference, isApplePlatform, isBeforeToday, isCanvasPreference, isDarkCanvas, isDensityId, isFieldSearchable, isFrameId, isNucleusConfigured, isOnOrBeforeToday, isReachable, isToday, isTypingTarget, isoDay, levelLabel, loadLordicon, loadNucleusConfig, matchesRow, meetsContrast, menuGlyph, menuTile, minutesAsClock, mixHex, money, moveTo, normalizeKeys, nucleusAuthInterceptor, nucleusErrorMessage, nucleusLang, nucleusLogoutUrl, nucleusParseDate, ownsUrl, percent, permissionsOf, provideNucleus, provideNucleusFeedback, provideNucleusTheme, qty, readableOn, relativeLuminance, resolveAccent, resolveFieldSize, searchIcons, selectableRows, shiftDay, shortcutHint, signedMoney, stamp, startOfDayUtc, themeCopyOf, toNumber, toggleCollapsed, visibleTreeRows };
|
|
1198
|
-
export type { Accent, AccentId, AccentOption, AccentPreference, AccessScope, AppSummary, AppUser, Appearance, AuthSyncRequest, Canvas, CanvasEffects, CanvasId, CanvasPreference, CanvasTokens, CardSize, CommonCopy, CommonCopySet, CompanyOption, CompanyRelation, CompanySummary, ConfirmRequest, ContrastIssue, Crumb, Density, DensityId, FieldKind, FieldOption, FieldSize, FieldSpan, FormField, FormValue, Frame, FrameId, FrameTokens, GeoCopy, GeoCopySet, GeoCountry, GeoDivision, GeoLevel, GeoPlace, GeoValue, GlobalAccess, LauncherApp, ListAction, ListActionEvent, ListAlign, ListColumn, ListColumnKind, ListTag, ListToggleEvent, MeResponse, MenuNode, MenuPermissions, MenuRow, MenuSection, MenuTile, MetricTone, NucleusConfig, NucleusIdentity, NucleusLang, SessionTicket, ShellCopy, ShellNavItem, ShortcutBinding, Site, SiteAccess, Subscription, TabItem, ThemeCopy, TreeRow, UserProfile };
|
|
1289
|
+
export { ACCENTS, CANVASES, COMMON_COPY, CONTROL_CONTRAST, DEFAULT_APPEARANCE, DENSITIES, EMPTY_GEO_VALUE, FIELD_TARGETS, FRAMES, GEO_COPY, LEGACY_THEMES, NO_PERMISSIONS, NUCLEUS_ACCENTS, NUCLEUS_CONFIG, NUCLEUS_DARK_SELECTOR, NUCLEUS_FORCE_BEARER, NUCLEUS_HOME, NUCLEUS_ICONS, NUCLEUS_ICON_CATALOG, NUCLEUS_LANGS, NUCLEUS_LOGOUT_PARAM, NUCLEUS_NARROW_QUERY, NUCLEUS_SKIP_AUTH, NucleusAppearance, NucleusAuth, NucleusCache, NucleusCard, NucleusCell, NucleusColorPicker, NucleusEnterAdvance, NucleusFeedback, NucleusForm, NucleusGeo, NucleusGeoSelect, NucleusIconPicker, NucleusLanguage, NucleusLink, NucleusList, NucleusLordicon, NucleusMark, NucleusMenu, NucleusMetric, NucleusMetrics, NucleusPage, NucleusPageActions, NucleusPreset, NucleusRecentApps, NucleusSessionAuth, NucleusShell, NucleusShortcut, NucleusShortcuts, NucleusStarfield, NucleusTabs, NucleusViewport, SHELL_COPY, SessionService, TEXT_CONTRAST, THEME_COPY, ThemeService, UserSyncService, accentById, accentLabelOf, accentOn, ariaKeysOf, auditAppearance, canvasById, clock, comboOf, commonCopyOf, consumeNucleusLogout, contrastIssue, contrastRatio, day, densityById, endOfDayUtc, fieldsIn, findMenuByRoute, flagOf, foldText, frameById, geoCopyOf, hasChildren, hasModifier, iconClassOf, iconNameOf, integer, isAccentPreference, isApplePlatform, isBeforeToday, isCanvasPreference, isDarkCanvas, isDensityId, isFieldSearchable, isFrameId, isHomeRoute, isNucleusConfigured, isOnOrBeforeToday, isReachable, isToday, isTypingTarget, isUnderRoute, isoDay, levelLabel, loadLordicon, loadNucleusConfig, matchMenuByRoute, matchesRow, meetsContrast, menuGlyph, menuTile, minutesAsClock, mixHex, money, moveTo, normalizeHomeRoute, normalizeKeys, nucleusAccessGuard, nucleusAuthInterceptor, nucleusErrorMessage, nucleusLang, nucleusLogoutUrl, nucleusParseDate, ownsUrl, percent, permissionsOf, provideNucleus, provideNucleusFeedback, provideNucleusHome, provideNucleusTheme, qty, readableOn, relativeLuminance, resolveAccent, resolveFieldSize, routePath, searchIcons, selectableRows, shiftDay, shortcutHint, signedMoney, stamp, startOfDayUtc, themeCopyOf, toNumber, toggleCollapsed, visibleTreeRows };
|
|
1290
|
+
export type { Accent, AccentId, AccentOption, AccentPreference, AccessScope, AppSummary, AppUser, Appearance, AuthSyncRequest, Canvas, CanvasEffects, CanvasId, CanvasPreference, CanvasTokens, CardSize, CommonCopy, CommonCopySet, CompanyOption, CompanyRelation, CompanySummary, ConfirmRequest, ContrastIssue, Crumb, Density, DensityId, FieldKind, FieldOption, FieldSize, FieldSpan, FormField, FormValue, Frame, FrameId, FrameTokens, GeoCopy, GeoCopySet, GeoCountry, GeoDivision, GeoLevel, GeoPlace, GeoValue, GlobalAccess, LauncherApp, ListAction, ListActionEvent, ListAlign, ListColumn, ListColumnKind, ListColumnRole, ListTag, ListToggleEvent, MeResponse, MenuNode, MenuPermissions, MenuRow, MenuSection, MenuTile, MetricTone, NucleusConfig, NucleusIdentity, NucleusLang, NucleusLinkTarget, SessionTicket, ShellCopy, ShellNavItem, ShortcutBinding, Site, SiteAccess, Subscription, TabItem, ThemeCopy, TreeRow, UserProfile };
|