@nucleus-suite-pe/core 0.7.0 → 1.1.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/fesm2022/nucleus-suite-pe-core-charts.mjs +256 -0
- package/fesm2022/nucleus-suite-pe-core-charts.mjs.map +1 -0
- package/fesm2022/nucleus-suite-pe-core.mjs +2084 -355
- package/fesm2022/nucleus-suite-pe-core.mjs.map +1 -1
- package/package.json +12 -2
- package/styles/tokens.css +233 -13
- package/types/nucleus-suite-pe-core-charts.d.ts +129 -0
- package/types/nucleus-suite-pe-core.d.ts +496 -51
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, EnvironmentProviders, Signal, TemplateRef } from '@angular/core';
|
|
2
|
+
import { InjectionToken, EnvironmentProviders, Signal, ElementRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import { HttpContextToken, HttpInterceptorFn } from '@angular/common/http';
|
|
4
4
|
import * as _nucleus_suite_pe_core from '@nucleus-suite-pe/core';
|
|
5
5
|
import * as _primeuix_themes from '@primeuix/themes';
|
|
6
6
|
import * as _primeuix_themes_types_base from '@primeuix/themes/types/base';
|
|
7
|
+
import { Popover } from 'primeng/popover';
|
|
7
8
|
import { MenuItem } from 'primeng/api';
|
|
8
9
|
|
|
9
10
|
interface NucleusConfig {
|
|
@@ -125,6 +126,11 @@ interface CompanySummary {
|
|
|
125
126
|
readonly createdAtUtc: string;
|
|
126
127
|
readonly myAccess: readonly SiteAccess[];
|
|
127
128
|
}
|
|
129
|
+
interface GlobalAccess {
|
|
130
|
+
readonly appId: string;
|
|
131
|
+
readonly appName: string;
|
|
132
|
+
readonly roleName: string;
|
|
133
|
+
}
|
|
128
134
|
interface UserProfile {
|
|
129
135
|
readonly firstName: string | null;
|
|
130
136
|
readonly lastName: string | null;
|
|
@@ -175,6 +181,7 @@ interface MeResponse {
|
|
|
175
181
|
readonly subscription: Subscription;
|
|
176
182
|
readonly ownedCompanies: readonly CompanySummary[];
|
|
177
183
|
readonly sharedCompanies: readonly CompanySummary[];
|
|
184
|
+
readonly globalAccess: readonly GlobalAccess[];
|
|
178
185
|
}
|
|
179
186
|
type AccessScope = 'site' | 'account';
|
|
180
187
|
interface AppSummary {
|
|
@@ -189,6 +196,19 @@ interface AppSummary {
|
|
|
189
196
|
}
|
|
190
197
|
type LauncherApp = AppSummary;
|
|
191
198
|
|
|
199
|
+
declare function nucleusErrorMessage(error: unknown, lang?: string): string;
|
|
200
|
+
|
|
201
|
+
declare class NucleusCache {
|
|
202
|
+
private readonly entries;
|
|
203
|
+
private readonly inFlight;
|
|
204
|
+
read<T>(key: string, loader: () => Promise<T>, ttlMs?: number): Promise<T>;
|
|
205
|
+
prefetch<T>(key: string, loader: () => Promise<T>, ttlMs?: number): void;
|
|
206
|
+
invalidate(...prefixes: readonly string[]): void;
|
|
207
|
+
private load;
|
|
208
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusCache, never>;
|
|
209
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusCache>;
|
|
210
|
+
}
|
|
211
|
+
|
|
192
212
|
interface MenuPermissions {
|
|
193
213
|
readonly canView: boolean;
|
|
194
214
|
readonly canInsert: boolean;
|
|
@@ -209,8 +229,10 @@ declare class SessionService {
|
|
|
209
229
|
private readonly _me;
|
|
210
230
|
private readonly _menu;
|
|
211
231
|
private readonly _access;
|
|
232
|
+
private readonly _globalRole;
|
|
212
233
|
private readonly _scope;
|
|
213
234
|
private readonly _apps;
|
|
235
|
+
private readonly _catalog;
|
|
214
236
|
private readonly _siteId;
|
|
215
237
|
private readonly _loading;
|
|
216
238
|
private readonly _switching;
|
|
@@ -223,6 +245,8 @@ declare class SessionService {
|
|
|
223
245
|
readonly access: _angular_core.Signal<SiteAccess | null>;
|
|
224
246
|
readonly scope: _angular_core.Signal<AccessScope | null>;
|
|
225
247
|
readonly apps: _angular_core.Signal<readonly AppSummary[]>;
|
|
248
|
+
readonly catalog: _angular_core.Signal<readonly AppSummary[]>;
|
|
249
|
+
readonly currentApp: _angular_core.Signal<AppSummary | null>;
|
|
226
250
|
readonly siteId: _angular_core.Signal<string | null>;
|
|
227
251
|
readonly loading: _angular_core.Signal<boolean>;
|
|
228
252
|
readonly switching: _angular_core.Signal<boolean>;
|
|
@@ -234,6 +258,7 @@ declare class SessionService {
|
|
|
234
258
|
readonly companyId: _angular_core.Signal<string | null>;
|
|
235
259
|
readonly companyName: _angular_core.Signal<string | null>;
|
|
236
260
|
load(language: string, force?: boolean): Promise<void>;
|
|
261
|
+
signOutToLanding(): Promise<void>;
|
|
237
262
|
permissionsFor(route: string): MenuPermissions;
|
|
238
263
|
reload(language: string): Promise<void>;
|
|
239
264
|
sites(companyId: string): Promise<Site[]>;
|
|
@@ -249,6 +274,7 @@ declare class SessionService {
|
|
|
249
274
|
|
|
250
275
|
type NucleusLang = 'es' | 'en';
|
|
251
276
|
declare const NUCLEUS_LANGS: readonly NucleusLang[];
|
|
277
|
+
declare function nucleusLang(): NucleusLang;
|
|
252
278
|
declare class NucleusLanguage {
|
|
253
279
|
private readonly _lang;
|
|
254
280
|
readonly lang: _angular_core.Signal<NucleusLang>;
|
|
@@ -258,6 +284,102 @@ declare class NucleusLanguage {
|
|
|
258
284
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusLanguage>;
|
|
259
285
|
}
|
|
260
286
|
|
|
287
|
+
interface CommonCopy {
|
|
288
|
+
readonly search: string;
|
|
289
|
+
readonly choose: string;
|
|
290
|
+
readonly noIcon: string;
|
|
291
|
+
readonly noColor: string;
|
|
292
|
+
readonly searchIcon: string;
|
|
293
|
+
readonly noMatches: string;
|
|
294
|
+
readonly sessionExpired: string;
|
|
295
|
+
readonly errorNetwork: string;
|
|
296
|
+
readonly errorTimeout: string;
|
|
297
|
+
readonly errorServer: string;
|
|
298
|
+
readonly errorInvalid: string;
|
|
299
|
+
readonly errorForbidden: string;
|
|
300
|
+
readonly errorNotFound: string;
|
|
301
|
+
readonly errorConflict: string;
|
|
302
|
+
readonly errorUnknown: string;
|
|
303
|
+
}
|
|
304
|
+
interface CommonCopySet {
|
|
305
|
+
readonly es: CommonCopy;
|
|
306
|
+
readonly en: CommonCopy;
|
|
307
|
+
}
|
|
308
|
+
declare const COMMON_COPY: CommonCopySet;
|
|
309
|
+
declare function commonCopyOf(lang: string): CommonCopy;
|
|
310
|
+
|
|
311
|
+
declare function nucleusParseDate(value: string | null | undefined): Date | null;
|
|
312
|
+
declare function money(value: number | null | undefined): string;
|
|
313
|
+
declare function signedMoney(value: number | null | undefined): string;
|
|
314
|
+
declare function qty(value: number | null | undefined): string;
|
|
315
|
+
declare function integer(value: number | null | undefined): string;
|
|
316
|
+
declare function percent(value: number | null | undefined): string;
|
|
317
|
+
declare function day(value: string | null | undefined): string;
|
|
318
|
+
declare function stamp(value: string | null | undefined): string;
|
|
319
|
+
declare function clock(value: string | null | undefined): string;
|
|
320
|
+
declare function minutesAsClock(value: number | null | undefined): string;
|
|
321
|
+
declare function isoDay(value: Date | string | null | undefined): string;
|
|
322
|
+
declare function toNumber(value: unknown): number;
|
|
323
|
+
declare function shiftDay(value: string, days: number): string;
|
|
324
|
+
declare function isToday(value: string | null | undefined): boolean;
|
|
325
|
+
declare function isBeforeToday(value: string | null | undefined): boolean;
|
|
326
|
+
declare function isOnOrBeforeToday(value: string | null | undefined): boolean;
|
|
327
|
+
declare function startOfDayUtc(value: string): string;
|
|
328
|
+
declare function endOfDayUtc(value: string): string;
|
|
329
|
+
|
|
330
|
+
declare const FIELD_TARGETS: string;
|
|
331
|
+
declare function isReachable(element: HTMLElement): boolean;
|
|
332
|
+
declare function fieldsIn(root: HTMLElement): HTMLElement[];
|
|
333
|
+
declare function moveTo(element: HTMLElement): void;
|
|
334
|
+
|
|
335
|
+
interface ShortcutBinding {
|
|
336
|
+
readonly keys: string;
|
|
337
|
+
readonly label: string;
|
|
338
|
+
readonly whileTyping: boolean;
|
|
339
|
+
readonly run: () => void;
|
|
340
|
+
}
|
|
341
|
+
declare function normalizeKeys(keys: string): string;
|
|
342
|
+
declare function comboOf(event: KeyboardEvent): string;
|
|
343
|
+
declare function hasModifier(keys: string): boolean;
|
|
344
|
+
declare function isTypingTarget(target: EventTarget | null): boolean;
|
|
345
|
+
declare function isApplePlatform(): boolean;
|
|
346
|
+
declare function shortcutHint(keys: string): string;
|
|
347
|
+
declare function ariaKeysOf(keys: string): string;
|
|
348
|
+
|
|
349
|
+
declare class NucleusShortcuts {
|
|
350
|
+
private readonly document;
|
|
351
|
+
private readonly _bindings;
|
|
352
|
+
private readonly _enabled;
|
|
353
|
+
readonly bindings: _angular_core.Signal<readonly ShortcutBinding[]>;
|
|
354
|
+
readonly enabled: _angular_core.Signal<boolean>;
|
|
355
|
+
constructor();
|
|
356
|
+
setEnabled(enabled: boolean): void;
|
|
357
|
+
register(binding: ShortcutBinding): () => void;
|
|
358
|
+
private handle;
|
|
359
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusShortcuts, never>;
|
|
360
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusShortcuts>;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
declare class NucleusShortcut {
|
|
364
|
+
private readonly host;
|
|
365
|
+
private readonly shortcuts;
|
|
366
|
+
readonly nucleusShortcut: _angular_core.InputSignal<string>;
|
|
367
|
+
readonly shortcutLabel: _angular_core.InputSignal<string>;
|
|
368
|
+
readonly shortcutWhileTyping: _angular_core.InputSignal<boolean | null>;
|
|
369
|
+
constructor();
|
|
370
|
+
private press;
|
|
371
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusShortcut, never>;
|
|
372
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NucleusShortcut, "[nucleusShortcut]", never, { "nucleusShortcut": { "alias": "nucleusShortcut"; "required": true; "isSignal": true; }; "shortcutLabel": { "alias": "shortcutLabel"; "required": false; "isSignal": true; }; "shortcutWhileTyping": { "alias": "shortcutWhileTyping"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
declare class NucleusEnterAdvance {
|
|
376
|
+
private readonly host;
|
|
377
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
378
|
+
private scope;
|
|
379
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusEnterAdvance, never>;
|
|
380
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NucleusEnterAdvance, "[nucleusEnterAdvance]", never, {}, {}, never, never, true, never>;
|
|
381
|
+
}
|
|
382
|
+
|
|
261
383
|
interface GeoCountry {
|
|
262
384
|
readonly id: string;
|
|
263
385
|
readonly code: string;
|
|
@@ -293,8 +415,6 @@ declare function flagOf(code: string): string;
|
|
|
293
415
|
|
|
294
416
|
interface GeoCopy {
|
|
295
417
|
readonly country: string;
|
|
296
|
-
readonly choose: string;
|
|
297
|
-
readonly search: string;
|
|
298
418
|
readonly levels: readonly [string, string, string, string];
|
|
299
419
|
readonly kinds: Readonly<Record<string, string>>;
|
|
300
420
|
}
|
|
@@ -334,6 +454,7 @@ declare class NucleusGeoSelect {
|
|
|
334
454
|
protected readonly countries: _angular_core.WritableSignal<GeoCountry[]>;
|
|
335
455
|
protected readonly steps: _angular_core.WritableSignal<GeoStep[]>;
|
|
336
456
|
protected readonly labels: _angular_core.Signal<_nucleus_suite_pe_core.GeoCopy>;
|
|
457
|
+
protected readonly words: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
337
458
|
private syncedKey;
|
|
338
459
|
constructor();
|
|
339
460
|
protected gridClass(): string;
|
|
@@ -342,42 +463,142 @@ declare class NucleusGeoSelect {
|
|
|
342
463
|
protected pick(index: number, divisionId: string | null): Promise<void>;
|
|
343
464
|
private sync;
|
|
344
465
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusGeoSelect, never>;
|
|
345
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusGeoSelect, "nucleus-geo-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true,
|
|
466
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusGeoSelect, "nucleus-geo-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, [{ directive: typeof NucleusEnterAdvance; inputs: {}; outputs: {}; }]>;
|
|
346
467
|
}
|
|
347
468
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
interface
|
|
469
|
+
declare const TEXT_CONTRAST = 4.5;
|
|
470
|
+
declare const CONTROL_CONTRAST = 3;
|
|
471
|
+
interface ContrastIssue {
|
|
472
|
+
readonly scope: string;
|
|
473
|
+
readonly pair: string;
|
|
474
|
+
readonly ratio: number;
|
|
475
|
+
readonly required: number;
|
|
476
|
+
}
|
|
477
|
+
declare function relativeLuminance(hex: string): number;
|
|
478
|
+
declare function contrastRatio(foreground: string, background: string): number;
|
|
479
|
+
declare function readableOn(background: string): string;
|
|
480
|
+
declare function mixHex(foreground: string, background: string, ratio: number): string;
|
|
481
|
+
declare function meetsContrast(foreground: string, background: string, required: number): boolean;
|
|
482
|
+
declare function contrastIssue(scope: string, pair: string, foreground: string, background: string, required: number): ContrastIssue | null;
|
|
483
|
+
|
|
484
|
+
type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist';
|
|
485
|
+
type CanvasId = 'light' | 'dim' | 'dark';
|
|
486
|
+
type CanvasPreference = CanvasId | 'system';
|
|
487
|
+
type AccentId = 'violet' | 'blue' | 'cyan' | 'green' | 'lime' | 'amber' | 'orange' | 'rose' | 'red';
|
|
488
|
+
type AccentPreference = AccentId | 'auto';
|
|
489
|
+
type DensityId = 'comfortable' | 'compact';
|
|
490
|
+
interface FrameTokens {
|
|
491
|
+
readonly bg: string;
|
|
492
|
+
readonly raised: string;
|
|
493
|
+
readonly ink: string;
|
|
494
|
+
readonly muted: string;
|
|
495
|
+
readonly line: string;
|
|
496
|
+
readonly glow: string;
|
|
497
|
+
}
|
|
498
|
+
interface Frame {
|
|
499
|
+
readonly id: FrameId;
|
|
500
|
+
readonly scheme: CanvasId;
|
|
501
|
+
readonly starfield: boolean;
|
|
502
|
+
readonly accent: AccentId;
|
|
503
|
+
readonly tokens: FrameTokens;
|
|
504
|
+
}
|
|
505
|
+
interface CanvasTokens {
|
|
351
506
|
readonly bg: string;
|
|
352
507
|
readonly surface: string;
|
|
353
508
|
readonly surfaceAlt: string;
|
|
354
509
|
readonly text: string;
|
|
355
510
|
readonly textMuted: string;
|
|
356
511
|
readonly border: string;
|
|
357
|
-
readonly accent: string;
|
|
358
|
-
readonly onAccent: string;
|
|
359
512
|
}
|
|
360
|
-
interface
|
|
361
|
-
readonly
|
|
362
|
-
readonly
|
|
363
|
-
readonly
|
|
364
|
-
readonly
|
|
365
|
-
readonly
|
|
513
|
+
interface CanvasEffects {
|
|
514
|
+
readonly shadowOne: string;
|
|
515
|
+
readonly shadowTwo: string;
|
|
516
|
+
readonly wash: number;
|
|
517
|
+
readonly washStrong: number;
|
|
518
|
+
readonly headerBg: string;
|
|
519
|
+
readonly headerInk: string;
|
|
520
|
+
readonly headerLine: string;
|
|
521
|
+
readonly danger: string;
|
|
522
|
+
readonly success: string;
|
|
523
|
+
readonly warning: string;
|
|
524
|
+
}
|
|
525
|
+
interface Canvas {
|
|
526
|
+
readonly id: CanvasId;
|
|
527
|
+
readonly tokens: CanvasTokens;
|
|
528
|
+
readonly effects: CanvasEffects;
|
|
529
|
+
}
|
|
530
|
+
interface Accent {
|
|
531
|
+
readonly id: AccentId;
|
|
532
|
+
readonly light: string;
|
|
533
|
+
readonly dark: string;
|
|
366
534
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
535
|
+
interface Density {
|
|
536
|
+
readonly id: DensityId;
|
|
537
|
+
readonly scale: number;
|
|
538
|
+
}
|
|
539
|
+
interface Appearance {
|
|
540
|
+
readonly frame: FrameId;
|
|
541
|
+
readonly canvas: CanvasPreference;
|
|
542
|
+
readonly accent: AccentPreference;
|
|
543
|
+
readonly density: DensityId;
|
|
544
|
+
}
|
|
545
|
+
declare const FRAMES: readonly Frame[];
|
|
546
|
+
declare const CANVASES: readonly Canvas[];
|
|
547
|
+
declare const ACCENTS: readonly Accent[];
|
|
548
|
+
declare const DENSITIES: readonly Density[];
|
|
549
|
+
declare const DEFAULT_APPEARANCE: Appearance;
|
|
550
|
+
declare const LEGACY_THEMES: Readonly<Record<string, Partial<Appearance>>>;
|
|
551
|
+
declare function frameById(id: string): Frame;
|
|
552
|
+
declare function canvasById(id: CanvasId): Canvas;
|
|
553
|
+
declare function accentById(id: string): Accent;
|
|
554
|
+
declare function densityById(id: string): Density;
|
|
555
|
+
declare function isFrameId(value: unknown): value is FrameId;
|
|
556
|
+
declare function isCanvasPreference(value: unknown): value is CanvasPreference;
|
|
557
|
+
declare function isAccentPreference(value: unknown): value is AccentPreference;
|
|
558
|
+
declare function isDensityId(value: unknown): value is DensityId;
|
|
559
|
+
declare function resolveAccent(frame: Frame, preference: AccentPreference): Accent;
|
|
560
|
+
declare function accentOn(accent: Accent, canvas: CanvasId): string;
|
|
561
|
+
declare function isDarkCanvas(canvas: CanvasId): boolean;
|
|
562
|
+
declare function auditAppearance(): readonly ContrastIssue[];
|
|
563
|
+
|
|
564
|
+
interface ThemeCopy {
|
|
565
|
+
readonly title: string;
|
|
566
|
+
readonly frameTitle: string;
|
|
567
|
+
readonly frameHint: string;
|
|
568
|
+
readonly canvasTitle: string;
|
|
569
|
+
readonly canvasHint: string;
|
|
570
|
+
readonly accentTitle: string;
|
|
571
|
+
readonly accentHint: string;
|
|
572
|
+
readonly densityTitle: string;
|
|
573
|
+
readonly densityHint: string;
|
|
574
|
+
readonly frames: Readonly<Record<FrameId, string>>;
|
|
575
|
+
readonly canvases: Readonly<Record<CanvasPreference, string>>;
|
|
576
|
+
readonly accents: Readonly<Record<AccentPreference, string>>;
|
|
577
|
+
readonly densities: Readonly<Record<DensityId, string>>;
|
|
578
|
+
}
|
|
579
|
+
declare const THEME_COPY: Readonly<Record<NucleusLang, ThemeCopy>>;
|
|
580
|
+
declare function themeCopyOf(lang: NucleusLang): ThemeCopy;
|
|
581
|
+
declare function accentLabelOf(lang: NucleusLang, id: AccentId): string;
|
|
372
582
|
|
|
373
583
|
declare class ThemeService {
|
|
374
|
-
private readonly
|
|
584
|
+
private readonly _appearance;
|
|
375
585
|
private readonly systemDark;
|
|
376
|
-
readonly
|
|
377
|
-
readonly
|
|
586
|
+
readonly appearance: _angular_core.Signal<Appearance>;
|
|
587
|
+
readonly frame: _angular_core.Signal<Frame>;
|
|
588
|
+
readonly canvasId: _angular_core.Signal<CanvasId>;
|
|
589
|
+
readonly systemCanvasId: _angular_core.Signal<CanvasId>;
|
|
590
|
+
readonly canvas: _angular_core.Signal<Canvas>;
|
|
591
|
+
readonly accent: _angular_core.Signal<Accent>;
|
|
592
|
+
readonly accentColor: _angular_core.Signal<string>;
|
|
593
|
+
readonly density: _angular_core.Signal<Density>;
|
|
378
594
|
readonly starfield: _angular_core.Signal<boolean>;
|
|
379
595
|
constructor();
|
|
380
|
-
|
|
596
|
+
setFrame(frame: FrameId): void;
|
|
597
|
+
setCanvas(canvas: CanvasPreference): void;
|
|
598
|
+
setAccent(accent: AccentPreference): void;
|
|
599
|
+
setDensity(density: DensityId): void;
|
|
600
|
+
reset(): void;
|
|
601
|
+
private patch;
|
|
381
602
|
private applyToDom;
|
|
382
603
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
|
|
383
604
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
|
|
@@ -415,8 +636,36 @@ declare class NucleusCard {
|
|
|
415
636
|
readonly heading: _angular_core.InputSignal<string>;
|
|
416
637
|
readonly subtitle: _angular_core.InputSignal<string>;
|
|
417
638
|
readonly size: _angular_core.InputSignal<CardSize>;
|
|
639
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
640
|
+
readonly skeletonRows: _angular_core.InputSignal<number>;
|
|
641
|
+
private static readonly widths;
|
|
642
|
+
protected readonly placeholders: _angular_core.Signal<{
|
|
643
|
+
index: number;
|
|
644
|
+
left: string;
|
|
645
|
+
right: string;
|
|
646
|
+
}[]>;
|
|
418
647
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusCard, never>;
|
|
419
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusCard, "nucleus-card", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[nucleusCardActions]"], true, never>;
|
|
648
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusCard, "nucleus-card", never, { "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[nucleusCardActions]"], true, never>;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
declare class NucleusMetrics {
|
|
652
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
653
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMetrics, never>;
|
|
654
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMetrics, "nucleus-metrics", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
type MetricTone = 'plain' | 'accent';
|
|
658
|
+
declare class NucleusMetric {
|
|
659
|
+
private readonly group;
|
|
660
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
661
|
+
readonly value: _angular_core.InputSignal<string | number>;
|
|
662
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
663
|
+
readonly link: _angular_core.InputSignal<string | unknown[]>;
|
|
664
|
+
readonly tone: _angular_core.InputSignal<MetricTone>;
|
|
665
|
+
readonly loading: _angular_core.InputSignal<boolean | null>;
|
|
666
|
+
protected readonly busy: _angular_core.Signal<boolean>;
|
|
667
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMetric, never>;
|
|
668
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMetric, "nucleus-metric", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
420
669
|
}
|
|
421
670
|
|
|
422
671
|
interface TabItem {
|
|
@@ -464,7 +713,7 @@ declare class NucleusFeedback {
|
|
|
464
713
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusFeedback>;
|
|
465
714
|
}
|
|
466
715
|
|
|
467
|
-
type FieldKind = 'text' | 'email' | 'password' | 'number' | 'textarea' | 'select' | 'checkbox' | 'switch';
|
|
716
|
+
type FieldKind = 'text' | 'email' | 'password' | 'number' | 'textarea' | 'select' | 'checkbox' | 'switch' | 'icon' | 'color';
|
|
468
717
|
type FieldSpan = 1 | 2 | 3 | 4 | 'full';
|
|
469
718
|
type FieldSize = 'xs' | 'sm' | 'md' | 'lg' | 'full';
|
|
470
719
|
interface FieldOption {
|
|
@@ -484,27 +733,82 @@ interface FormField {
|
|
|
484
733
|
readonly options?: readonly FieldOption[];
|
|
485
734
|
readonly disabled?: boolean;
|
|
486
735
|
readonly clearable?: boolean;
|
|
736
|
+
readonly searchable?: boolean;
|
|
487
737
|
}
|
|
488
738
|
type FormValue = Record<string, unknown>;
|
|
489
739
|
declare function resolveFieldSize(field: FormField): FieldSize;
|
|
740
|
+
declare function isFieldSearchable(field: FormField): boolean;
|
|
741
|
+
|
|
742
|
+
declare const NUCLEUS_ICON_CATALOG: readonly string[];
|
|
743
|
+
declare function searchIcons(term: string): readonly string[];
|
|
744
|
+
declare function iconClassOf(name: string | null): string;
|
|
745
|
+
declare function iconNameOf(value: string | null): string | null;
|
|
746
|
+
|
|
747
|
+
declare class NucleusIconPicker {
|
|
748
|
+
private readonly language;
|
|
749
|
+
readonly value: _angular_core.ModelSignal<string | null>;
|
|
750
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
751
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
752
|
+
protected readonly panel: _angular_core.Signal<Popover>;
|
|
753
|
+
protected readonly search: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
754
|
+
protected readonly term: _angular_core.WritableSignal<string>;
|
|
755
|
+
protected readonly labels: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
756
|
+
protected readonly name: _angular_core.Signal<string | null>;
|
|
757
|
+
protected readonly iconClass: _angular_core.Signal<string>;
|
|
758
|
+
protected readonly results: _angular_core.Signal<readonly string[]>;
|
|
759
|
+
protected onShow(): void;
|
|
760
|
+
protected pick(icon: string | null): void;
|
|
761
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusIconPicker, never>;
|
|
762
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusIconPicker, "nucleus-icon-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
interface AccentOption {
|
|
766
|
+
readonly id: AccentId;
|
|
767
|
+
readonly light: string;
|
|
768
|
+
readonly dark: string;
|
|
769
|
+
}
|
|
770
|
+
declare const NUCLEUS_ACCENTS: readonly AccentOption[];
|
|
771
|
+
declare class NucleusColorPicker {
|
|
772
|
+
private readonly language;
|
|
773
|
+
readonly value: _angular_core.ModelSignal<string | null>;
|
|
774
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
775
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
776
|
+
protected readonly labels: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
777
|
+
protected readonly options: _angular_core.Signal<{
|
|
778
|
+
color: string;
|
|
779
|
+
label: string;
|
|
780
|
+
}[]>;
|
|
781
|
+
protected pick(color: string | null): void;
|
|
782
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusColorPicker, never>;
|
|
783
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusColorPicker, "nucleus-color-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
784
|
+
}
|
|
490
785
|
|
|
491
786
|
declare class NucleusForm {
|
|
787
|
+
private readonly language;
|
|
788
|
+
private readonly host;
|
|
789
|
+
private readonly injector;
|
|
492
790
|
readonly fields: _angular_core.InputSignal<readonly FormField[]>;
|
|
493
791
|
readonly value: _angular_core.InputSignal<FormValue>;
|
|
494
792
|
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
495
793
|
readonly columns: _angular_core.InputSignal<number | null>;
|
|
794
|
+
readonly autofocus: _angular_core.InputSignal<boolean>;
|
|
496
795
|
readonly valueChange: _angular_core.OutputEmitterRef<FormValue>;
|
|
796
|
+
protected readonly labels: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
797
|
+
private landed;
|
|
798
|
+
constructor();
|
|
497
799
|
protected read(field: FormField): unknown;
|
|
498
800
|
protected text(field: FormField): string;
|
|
801
|
+
protected nullableText(field: FormField): string | null;
|
|
499
802
|
protected checked(field: FormField): boolean;
|
|
500
803
|
protected write(field: FormField, next: unknown): void;
|
|
501
804
|
protected isDisabled(field: FormField): boolean;
|
|
805
|
+
protected isSearchable(field: FormField): boolean;
|
|
502
806
|
protected fieldClass(field: FormField): string;
|
|
503
807
|
protected gridClass(): string;
|
|
504
808
|
protected optionsOf(field: FormField): FieldOption[];
|
|
505
809
|
protected kindOf(field: FormField): string;
|
|
506
810
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusForm, never>;
|
|
507
|
-
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; }; }, { "valueChange": "valueChange"; }, never, never, true,
|
|
811
|
+
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: {}; }]>;
|
|
508
812
|
}
|
|
509
813
|
|
|
510
814
|
type ListAlign = 'left' | 'center' | 'right';
|
|
@@ -532,6 +836,7 @@ interface ListAction<T = Record<string, unknown>> {
|
|
|
532
836
|
readonly label: string;
|
|
533
837
|
readonly tone?: 'default' | 'danger';
|
|
534
838
|
readonly visible?: (row: T) => boolean;
|
|
839
|
+
readonly disabled?: (row: T) => boolean;
|
|
535
840
|
}
|
|
536
841
|
interface ListActionEvent<T = Record<string, unknown>> {
|
|
537
842
|
readonly id: string;
|
|
@@ -557,6 +862,7 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
|
|
|
557
862
|
readonly empty: _angular_core.InputSignal<string>;
|
|
558
863
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
559
864
|
readonly minWidth: _angular_core.InputSignal<string>;
|
|
865
|
+
readonly skeletonRows: _angular_core.InputSignal<number>;
|
|
560
866
|
readonly rowClass: _angular_core.InputSignal<(row: T) => string>;
|
|
561
867
|
readonly action: _angular_core.OutputEmitterRef<ListActionEvent<T>>;
|
|
562
868
|
readonly toggle: _angular_core.OutputEmitterRef<ListToggleEvent<T>>;
|
|
@@ -565,18 +871,30 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
|
|
|
565
871
|
'min-width': string;
|
|
566
872
|
}>;
|
|
567
873
|
protected readonly showEmpty: _angular_core.Signal<boolean>;
|
|
874
|
+
protected readonly placeholders: _angular_core.Signal<object[]>;
|
|
875
|
+
protected readonly data: _angular_core.Signal<object[]>;
|
|
876
|
+
protected skeletonWidth(column: ListColumn<T>): string;
|
|
568
877
|
protected cellTemplate(key: string): TemplateRef<unknown> | null;
|
|
569
878
|
protected text(column: ListColumn<T>, row: T): string;
|
|
570
879
|
protected tagOf(column: ListColumn<T>, row: T): ListTag | null;
|
|
571
880
|
protected visibleActions(row: T): readonly ListAction<T>[];
|
|
881
|
+
protected isActionLocked(entry: ListAction<T>, row: T): boolean;
|
|
572
882
|
protected run(entry: ListAction<T>, row: T): void;
|
|
573
883
|
protected isChecked(column: ListColumn<T>, row: T): boolean;
|
|
574
884
|
protected isLocked(column: ListColumn<T>, row: T): boolean;
|
|
575
885
|
protected hintOf(column: ListColumn<T>, row: T): string;
|
|
576
886
|
protected flip(column: ListColumn<T>, row: T): void;
|
|
577
887
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusList<any>, never>;
|
|
578
|
-
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; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; }, { "action": "action"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
|
|
888
|
+
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; }; }, { "action": "action"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
interface TreeRow {
|
|
892
|
+
readonly id: string;
|
|
893
|
+
readonly parentId: string | null;
|
|
579
894
|
}
|
|
895
|
+
declare function toggleCollapsed(collapsed: ReadonlySet<string>, id: string): ReadonlySet<string>;
|
|
896
|
+
declare function hasChildren(rows: readonly TreeRow[], id: string): boolean;
|
|
897
|
+
declare function visibleTreeRows<T extends TreeRow>(rows: readonly T[], collapsed: ReadonlySet<string>): T[];
|
|
580
898
|
|
|
581
899
|
declare class NucleusMark {
|
|
582
900
|
readonly accent: _angular_core.InputSignal<string>;
|
|
@@ -590,6 +908,119 @@ declare class NucleusMark {
|
|
|
590
908
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMark, "nucleus-mark", never, { "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
591
909
|
}
|
|
592
910
|
|
|
911
|
+
interface FrameChoice {
|
|
912
|
+
readonly id: Frame['id'];
|
|
913
|
+
readonly label: string;
|
|
914
|
+
readonly tokens: Frame['tokens'];
|
|
915
|
+
}
|
|
916
|
+
interface CanvasChoice {
|
|
917
|
+
readonly id: CanvasPreference;
|
|
918
|
+
readonly label: string;
|
|
919
|
+
readonly bg: string;
|
|
920
|
+
readonly surface: string;
|
|
921
|
+
readonly text: string;
|
|
922
|
+
readonly icon: string | null;
|
|
923
|
+
}
|
|
924
|
+
interface AccentChoice {
|
|
925
|
+
readonly id: AccentPreference;
|
|
926
|
+
readonly label: string;
|
|
927
|
+
readonly color: string;
|
|
928
|
+
readonly ink: string;
|
|
929
|
+
}
|
|
930
|
+
interface DensityChoice {
|
|
931
|
+
readonly id: DensityId;
|
|
932
|
+
readonly label: string;
|
|
933
|
+
readonly gap: number;
|
|
934
|
+
}
|
|
935
|
+
declare class NucleusAppearance {
|
|
936
|
+
private readonly theme;
|
|
937
|
+
private readonly language;
|
|
938
|
+
protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.ThemeCopy>;
|
|
939
|
+
protected readonly appearance: _angular_core.Signal<_nucleus_suite_pe_core.Appearance>;
|
|
940
|
+
protected readonly canvasId: _angular_core.Signal<_nucleus_suite_pe_core.CanvasId>;
|
|
941
|
+
protected readonly frames: _angular_core.Signal<FrameChoice[]>;
|
|
942
|
+
protected readonly canvases: _angular_core.Signal<CanvasChoice[]>;
|
|
943
|
+
protected readonly accents: _angular_core.Signal<AccentChoice[]>;
|
|
944
|
+
protected readonly densities: _angular_core.Signal<DensityChoice[]>;
|
|
945
|
+
protected pickFrame(id: Frame['id']): void;
|
|
946
|
+
protected pickCanvas(id: CanvasPreference): void;
|
|
947
|
+
protected pickAccent(id: AccentPreference): void;
|
|
948
|
+
protected pickDensity(id: DensityId): void;
|
|
949
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusAppearance, never>;
|
|
950
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusAppearance, "nucleus-appearance", never, {}, {}, never, never, true, never>;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
interface MenuTile {
|
|
954
|
+
readonly label: string;
|
|
955
|
+
readonly icon: string | null;
|
|
956
|
+
readonly color: string | null;
|
|
957
|
+
readonly ink: string | null;
|
|
958
|
+
readonly ghost: boolean;
|
|
959
|
+
}
|
|
960
|
+
interface MenuRow {
|
|
961
|
+
readonly id: string;
|
|
962
|
+
readonly name: string;
|
|
963
|
+
readonly meta: string | null;
|
|
964
|
+
readonly tile: MenuTile | null;
|
|
965
|
+
readonly tag: string | null;
|
|
966
|
+
readonly current: boolean;
|
|
967
|
+
readonly disabled: boolean;
|
|
968
|
+
}
|
|
969
|
+
interface MenuSection {
|
|
970
|
+
readonly id: string;
|
|
971
|
+
readonly label: string | null;
|
|
972
|
+
readonly rows: readonly MenuRow[];
|
|
973
|
+
}
|
|
974
|
+
declare function menuTile(label: string, icon: string | null, color: string | null): MenuTile;
|
|
975
|
+
declare function menuGlyph(icon: string): MenuTile;
|
|
976
|
+
declare function foldText(value: string): string;
|
|
977
|
+
declare function matchesRow(row: MenuRow, term: string): boolean;
|
|
978
|
+
declare function selectableRows(sections: readonly MenuSection[]): MenuRow[];
|
|
979
|
+
|
|
980
|
+
declare class NucleusMenu {
|
|
981
|
+
readonly sections: _angular_core.InputSignal<readonly MenuSection[]>;
|
|
982
|
+
readonly heading: _angular_core.InputSignal<string>;
|
|
983
|
+
readonly badge: _angular_core.InputSignal<string | null>;
|
|
984
|
+
readonly searchable: _angular_core.InputSignal<boolean>;
|
|
985
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
986
|
+
readonly emptyText: _angular_core.InputSignal<string>;
|
|
987
|
+
readonly keyboardHint: _angular_core.InputSignal<string>;
|
|
988
|
+
readonly width: _angular_core.InputSignal<number>;
|
|
989
|
+
readonly select: _angular_core.OutputEmitterRef<MenuRow>;
|
|
990
|
+
readonly dismiss: _angular_core.OutputEmitterRef<void>;
|
|
991
|
+
protected readonly term: _angular_core.WritableSignal<string>;
|
|
992
|
+
private readonly searchBox;
|
|
993
|
+
private readonly root;
|
|
994
|
+
protected readonly visible: _angular_core.Signal<readonly MenuSection[]>;
|
|
995
|
+
protected readonly isEmpty: _angular_core.Signal<boolean>;
|
|
996
|
+
protected readonly showSearch: _angular_core.Signal<boolean>;
|
|
997
|
+
private readonly reachable;
|
|
998
|
+
private readonly activeId;
|
|
999
|
+
private readonly syncActive;
|
|
1000
|
+
constructor();
|
|
1001
|
+
protected isActive(row: MenuRow): boolean;
|
|
1002
|
+
protected onTerm(value: string): void;
|
|
1003
|
+
protected choose(row: MenuRow): void;
|
|
1004
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1005
|
+
private step;
|
|
1006
|
+
private scrollIntoView;
|
|
1007
|
+
private focusEntry;
|
|
1008
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMenu, never>;
|
|
1009
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMenu, "nucleus-menu", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "keyboardHint": { "alias": "keyboardHint"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "select": "select"; "dismiss": "dismiss"; }, never, never, true, never>;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
declare class NucleusRecentApps {
|
|
1013
|
+
private readonly _ids;
|
|
1014
|
+
readonly ids: _angular_core.Signal<readonly string[]>;
|
|
1015
|
+
remember(appId: string): void;
|
|
1016
|
+
pick<T extends {
|
|
1017
|
+
readonly id: string;
|
|
1018
|
+
}>(source: readonly T[], limit: number): T[];
|
|
1019
|
+
clear(): void;
|
|
1020
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusRecentApps, never>;
|
|
1021
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusRecentApps>;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
593
1024
|
declare class NucleusStarfield {
|
|
594
1025
|
protected readonly W = 1280;
|
|
595
1026
|
protected readonly H = 720;
|
|
@@ -611,10 +1042,17 @@ interface ShellCopy {
|
|
|
611
1042
|
readonly navToggle: string;
|
|
612
1043
|
readonly appsLauncher: string;
|
|
613
1044
|
readonly appsEmpty: string;
|
|
1045
|
+
readonly appsSwitch: string;
|
|
1046
|
+
readonly appsSearch: string;
|
|
1047
|
+
readonly appsNoMatch: string;
|
|
1048
|
+
readonly appsRecent: string;
|
|
1049
|
+
readonly appsAll: string;
|
|
1050
|
+
readonly appsAvailable: string;
|
|
1051
|
+
readonly appsHere: string;
|
|
1052
|
+
readonly keyboardHint: string;
|
|
1053
|
+
readonly accountSwitchHint: string;
|
|
1054
|
+
readonly signOutHint: string;
|
|
614
1055
|
readonly settingsTitle: string;
|
|
615
|
-
readonly settingsTheme: string;
|
|
616
|
-
readonly settingsThemeHint: string;
|
|
617
|
-
readonly themeSystem: string;
|
|
618
1056
|
readonly signOut: string;
|
|
619
1057
|
readonly accountManage: string;
|
|
620
1058
|
readonly accountSwitch: string;
|
|
@@ -623,19 +1061,15 @@ interface ShellCopy {
|
|
|
623
1061
|
readonly accountScope: string;
|
|
624
1062
|
readonly hintComingSoon: string;
|
|
625
1063
|
readonly hintNotDeployed: string;
|
|
626
|
-
readonly
|
|
627
|
-
readonly contextTitle: string;
|
|
628
|
-
readonly contextHint: string;
|
|
1064
|
+
readonly roleCaption: string;
|
|
629
1065
|
readonly companyLabel: string;
|
|
630
1066
|
readonly companyPlaceholder: string;
|
|
631
1067
|
readonly siteLabel: string;
|
|
632
1068
|
readonly sitePlaceholder: string;
|
|
633
1069
|
readonly sitesLoading: string;
|
|
634
1070
|
readonly sitesEmpty: string;
|
|
635
|
-
readonly confirmSwitch: string;
|
|
636
1071
|
readonly relationOwner: string;
|
|
637
1072
|
readonly relationCollaborator: string;
|
|
638
|
-
readonly noContext: string;
|
|
639
1073
|
readonly noCompanyTitle: string;
|
|
640
1074
|
readonly noCompanyHint: string;
|
|
641
1075
|
}
|
|
@@ -646,11 +1080,6 @@ interface ShellNavItem {
|
|
|
646
1080
|
readonly icon: string;
|
|
647
1081
|
readonly label: string;
|
|
648
1082
|
}
|
|
649
|
-
interface ThemeOption {
|
|
650
|
-
readonly value: ThemePreference;
|
|
651
|
-
readonly label: string;
|
|
652
|
-
readonly swatch: string | null;
|
|
653
|
-
}
|
|
654
1083
|
interface CompanyChoice extends CompanyOption {
|
|
655
1084
|
readonly tag: string;
|
|
656
1085
|
}
|
|
@@ -663,6 +1092,7 @@ declare class NucleusShell {
|
|
|
663
1092
|
private readonly session;
|
|
664
1093
|
private readonly sessionAuth;
|
|
665
1094
|
private readonly themes;
|
|
1095
|
+
private readonly recents;
|
|
666
1096
|
private readonly language;
|
|
667
1097
|
private readonly page;
|
|
668
1098
|
private readonly config;
|
|
@@ -685,45 +1115,60 @@ declare class NucleusShell {
|
|
|
685
1115
|
readonly user: "https://cdn.lordicon.com/hrjifpbq.json";
|
|
686
1116
|
readonly key: "https://cdn.lordicon.com/ossgtprr.json";
|
|
687
1117
|
};
|
|
1118
|
+
protected readonly menuPlaceholders: string[];
|
|
688
1119
|
protected readonly title: _angular_core.Signal<string>;
|
|
689
1120
|
protected readonly subtitle: _angular_core.Signal<string>;
|
|
690
1121
|
protected readonly home: _angular_core.Signal<MenuItem>;
|
|
691
1122
|
protected readonly crumbs: _angular_core.Signal<MenuItem[]>;
|
|
692
1123
|
protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.ShellCopy>;
|
|
693
1124
|
protected readonly starfield: _angular_core.Signal<boolean>;
|
|
694
|
-
protected readonly themePreference: _angular_core.Signal<ThemePreference>;
|
|
695
1125
|
protected readonly menu: _angular_core.Signal<readonly MenuNode[]>;
|
|
1126
|
+
private readonly collapsedIds;
|
|
696
1127
|
protected readonly menuLoading: _angular_core.Signal<boolean>;
|
|
697
1128
|
protected readonly menuError: _angular_core.Signal<string | null>;
|
|
698
1129
|
protected readonly launcherApps: _angular_core.Signal<readonly _nucleus_suite_pe_core.AppSummary[]>;
|
|
699
1130
|
protected readonly switching: _angular_core.Signal<boolean>;
|
|
1131
|
+
private readonly narrowQuery;
|
|
1132
|
+
protected readonly narrow: _angular_core.WritableSignal<boolean>;
|
|
700
1133
|
protected readonly sidebarOpen: _angular_core.WritableSignal<boolean>;
|
|
701
1134
|
protected readonly settingsOpen: _angular_core.WritableSignal<boolean>;
|
|
702
|
-
protected readonly contextOpen: _angular_core.WritableSignal<boolean>;
|
|
703
1135
|
protected readonly companyChoice: _angular_core.WritableSignal<string | null>;
|
|
704
1136
|
protected readonly siteChoice: _angular_core.WritableSignal<string | null>;
|
|
705
1137
|
protected readonly siteOptions: _angular_core.WritableSignal<Site[]>;
|
|
706
1138
|
protected readonly sitesLoading: _angular_core.WritableSignal<boolean>;
|
|
707
1139
|
private readonly auth;
|
|
1140
|
+
private sitesCompanyId;
|
|
708
1141
|
protected readonly identity: _angular_core.Signal<ShellIdentity | null>;
|
|
709
1142
|
protected readonly initials: _angular_core.Signal<string>;
|
|
710
1143
|
protected readonly canSwitchAccount: _angular_core.Signal<boolean>;
|
|
711
1144
|
protected readonly hasCompany: _angular_core.Signal<boolean>;
|
|
712
1145
|
protected readonly companyChoices: _angular_core.Signal<CompanyChoice[]>;
|
|
713
|
-
protected readonly contextCaption: _angular_core.Signal<string>;
|
|
714
1146
|
protected readonly roleName: _angular_core.Signal<string | null>;
|
|
715
|
-
protected readonly
|
|
716
|
-
protected readonly
|
|
1147
|
+
protected readonly words: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
|
|
1148
|
+
protected readonly hasSiteContext: _angular_core.Signal<boolean>;
|
|
1149
|
+
protected readonly launcherRich: _angular_core.Signal<boolean>;
|
|
1150
|
+
protected readonly launcherCount: _angular_core.Signal<string | null>;
|
|
1151
|
+
protected readonly launcherSections: _angular_core.Signal<MenuSection[]>;
|
|
1152
|
+
protected readonly accountSections: _angular_core.Signal<MenuSection[]>;
|
|
1153
|
+
protected readonly accountContext: _angular_core.Signal<string>;
|
|
1154
|
+
protected readonly sitePlaceholder: _angular_core.Signal<string>;
|
|
1155
|
+
protected readonly topbarHeight: _angular_core.Signal<"100px" | "56px">;
|
|
1156
|
+
private readonly syncContext;
|
|
717
1157
|
private readonly loadSession;
|
|
1158
|
+
constructor();
|
|
718
1159
|
protected setLang(lang: NucleusLang): void;
|
|
719
1160
|
protected toggleSidebar(): void;
|
|
720
|
-
protected selectTheme(preference: ThemePreference | null): void;
|
|
721
1161
|
protected selectNav(id: string): void;
|
|
1162
|
+
protected isGroup(node: MenuNode): boolean;
|
|
1163
|
+
protected isExpanded(node: MenuNode): boolean;
|
|
722
1164
|
protected selectMenu(node: MenuNode): void;
|
|
1165
|
+
private closeSidebarOnNarrow;
|
|
723
1166
|
protected isSelected(node: MenuNode): boolean;
|
|
724
|
-
protected openContext(): Promise<void>;
|
|
725
1167
|
protected onCompanyChange(companyId: string | null): Promise<void>;
|
|
726
|
-
protected
|
|
1168
|
+
protected onSiteChange(siteId: string | null): Promise<void>;
|
|
1169
|
+
private appRow;
|
|
1170
|
+
protected onLauncherSelect(row: MenuRow): void;
|
|
1171
|
+
protected onAccountSelect(row: MenuRow): void;
|
|
727
1172
|
protected canOpen(app: LauncherApp): boolean;
|
|
728
1173
|
protected launch(app: LauncherApp): void;
|
|
729
1174
|
protected appInitials(app: LauncherApp): string;
|
|
@@ -735,5 +1180,5 @@ declare class NucleusShell {
|
|
|
735
1180
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusShell, "nucleus-shell", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "lead": { "alias": "lead"; "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>;
|
|
736
1181
|
}
|
|
737
1182
|
|
|
738
|
-
export {
|
|
739
|
-
export type { AccessScope, AppSummary, AppUser, AuthSyncRequest, CardSize, CompanyOption, CompanyRelation, CompanySummary, ConfirmRequest, Crumb, FieldKind, FieldOption, FieldSize, FieldSpan, FormField, FormValue, GeoCopy, GeoCopySet, GeoCountry, GeoDivision, GeoLevel, GeoPlace, GeoValue, LauncherApp, ListAction, ListActionEvent, ListAlign, ListColumn, ListColumnKind, ListTag, ListToggleEvent, MeResponse, MenuNode, MenuPermissions, NucleusConfig, NucleusIdentity, NucleusLang, SessionTicket, ShellCopy, ShellNavItem, Site, SiteAccess, Subscription, TabItem,
|
|
1183
|
+
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, 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 };
|
|
1184
|
+
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 };
|