@flusys/ng-layout 0.1.0-beta.3 → 1.0.0-rc

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,14 +1,14 @@
1
1
  {
2
2
  "name": "@flusys/ng-layout",
3
- "version": "0.1.0-beta.3",
3
+ "version": "1.0.0-rc",
4
4
  "description": "Layout components for FLUSYS Angular applications",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
7
7
  "@angular/common": "^21.0.0",
8
8
  "@angular/core": "^21.0.0",
9
9
  "@angular/router": "^21.0.0",
10
- "@flusys/ng-core": "^0.1.0-beta.3",
11
- "@flusys/ng-shared": "^0.1.0-beta.3",
10
+ "@flusys/ng-core": "^1.1.1-beta",
11
+ "@flusys/ng-shared": "^1.1.1-beta",
12
12
  "@primeuix/themes": "^1.0.0",
13
13
  "primeicons": "^7.0.0",
14
14
  "primeng": "^21.0.0",
@@ -30,4 +30,4 @@
30
30
  "dependencies": {
31
31
  "tslib": "^2.3.0"
32
32
  }
33
- }
33
+ }
@@ -1,10 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, InjectionToken, ElementRef } from '@angular/core';
3
- import { Router } from '@angular/router';
4
- import { PrimeNG } from 'primeng/config';
2
+ import { Signal, InjectionToken } from '@angular/core';
5
3
  import * as rxjs from 'rxjs';
6
4
  import { Observable } from 'rxjs';
7
- import { IconTypeEnum, ILogicNode, PlatformService } from '@flusys/ng-shared';
5
+ import { IconTypeEnum, ILogicNode } from '@flusys/ng-shared';
8
6
  import * as _flusys_ng_layout from '@flusys/ng-layout';
9
7
  import * as _primeuix_themes_types from '@primeuix/themes/types';
10
8
 
@@ -111,15 +109,26 @@ declare class LayoutService {
111
109
  private readonly platformId;
112
110
  private readonly isBrowser;
113
111
  private readonly persistence;
112
+ private readonly appConfig;
114
113
  private readonly defaultConfig;
115
114
  private readonly initialConfig;
116
115
  private readonly defaultState;
117
- readonly layoutConfig: _angular_core.WritableSignal<LayoutConfig>;
118
- readonly layoutState: _angular_core.WritableSignal<LayoutState>;
119
- readonly transitionComplete: _angular_core.WritableSignal<boolean>;
120
- readonly userProfile: _angular_core.WritableSignal<UserProfile | null>;
121
- readonly companyProfile: _angular_core.WritableSignal<CompanyProfile | null>;
122
- readonly appName: _angular_core.WritableSignal<string>;
116
+ private readonly _layoutConfig;
117
+ private readonly _layoutState;
118
+ private readonly _transitionComplete;
119
+ readonly layoutConfig: _angular_core.Signal<LayoutConfig>;
120
+ readonly layoutState: _angular_core.Signal<LayoutState>;
121
+ readonly transitionComplete: _angular_core.Signal<boolean>;
122
+ private readonly _userProfile;
123
+ private readonly _companyProfile;
124
+ private readonly _appName;
125
+ readonly userProfile: _angular_core.Signal<UserProfile | null>;
126
+ readonly companyProfile: _angular_core.Signal<CompanyProfile | null>;
127
+ readonly appName: _angular_core.Signal<string>;
128
+ private readonly _authorName;
129
+ private readonly _authorUrl;
130
+ readonly authorName: _angular_core.Signal<string>;
131
+ readonly authorUrl: _angular_core.Signal<string>;
123
132
  private readonly _rawApps;
124
133
  /**
125
134
  * Filtered launcher apps based on user permissions.
@@ -134,7 +143,6 @@ declare class LayoutService {
134
143
  * Role checker is optional - if not set, role-based permissions will be denied.
135
144
  */
136
145
  readonly menu: _angular_core.Signal<IMenuItem[]>;
137
- readonly theme: _angular_core.Signal<"light" | "dark">;
138
146
  readonly isSidebarActive: _angular_core.Signal<boolean | undefined>;
139
147
  readonly isDarkTheme: _angular_core.Signal<boolean | undefined>;
140
148
  readonly getPrimary: _angular_core.Signal<string | undefined>;
@@ -167,6 +175,16 @@ declare class LayoutService {
167
175
  onConfigUpdate(): void;
168
176
  onMenuStateChange(event: MenuChangeEvent): void;
169
177
  reset(): void;
178
+ /**
179
+ * Update layout configuration.
180
+ * Called by configurator component.
181
+ */
182
+ updateLayoutConfig(config: Partial<LayoutConfig>): void;
183
+ /**
184
+ * Update layout state.
185
+ * Called internally and by layout components.
186
+ */
187
+ updateLayoutState(state: Partial<LayoutState>): void;
170
188
  /**
171
189
  * Set the current user profile for display in layout.
172
190
  * Called by auth integration to sync user data.
@@ -276,24 +294,21 @@ declare type SurfacesType = {
276
294
  };
277
295
  };
278
296
  declare class AppConfigurator {
279
- router: Router;
280
- config: PrimeNG;
281
- layoutService: LayoutService;
282
- platformService: PlatformService;
283
- primeng: PrimeNG;
284
- presets: string[];
285
- showMenuModeButton: _angular_core.WritableSignal<boolean>;
286
- menuModeOptions: {
297
+ private readonly router;
298
+ readonly layoutService: LayoutService;
299
+ readonly presets: string[];
300
+ readonly showMenuModeButton: _angular_core.WritableSignal<boolean>;
301
+ readonly menuModeOptions: {
287
302
  label: string;
288
303
  value: string;
289
304
  }[];
290
- ngOnInit(): void;
291
- surfaces: SurfacesType[];
292
- selectedPrimaryColor: _angular_core.Signal<string | undefined>;
293
- selectedSurfaceColor: _angular_core.Signal<string | null | undefined>;
294
- selectedPreset: _angular_core.Signal<string | undefined>;
295
- menuMode: _angular_core.Signal<"static" | "overlay" | undefined>;
296
- primaryColors: _angular_core.Signal<SurfacesType[]>;
305
+ constructor();
306
+ readonly surfaces: SurfacesType[];
307
+ readonly selectedPrimaryColor: _angular_core.Signal<string | undefined>;
308
+ readonly selectedSurfaceColor: _angular_core.Signal<string | null | undefined>;
309
+ readonly selectedPreset: _angular_core.Signal<string | undefined>;
310
+ readonly menuMode: _angular_core.Signal<"static" | "overlay" | undefined>;
311
+ readonly primaryColors: _angular_core.Signal<SurfacesType[]>;
297
312
  getPresetExt(): {
298
313
  semantic: {
299
314
  primary: {
@@ -342,17 +357,17 @@ declare class AppConfigurator {
342
357
  };
343
358
  };
344
359
  };
345
- updateColors(event: any, type: string, color: any): void;
346
- applyTheme(type: string, color: any): void;
347
- onPresetChange(event: any): void;
360
+ updateColors(event: MouseEvent, type: string, color: SurfacesType): void;
361
+ applyTheme(type: string, color: SurfacesType): void;
362
+ onPresetChange(event: string): void;
348
363
  onMenuModeChange(event: 'static' | 'overlay'): void;
349
364
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppConfigurator, never>;
350
365
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppConfigurator, "app-configurator", never, {}, {}, never, never, true, never>;
351
366
  }
352
367
 
353
368
  declare class AppFloatingConfigurator {
354
- LayoutService: LayoutService;
355
- isDarkTheme: _angular_core.Signal<boolean | undefined>;
369
+ private readonly layoutService;
370
+ readonly isDarkTheme: _angular_core.Signal<boolean | undefined>;
356
371
  toggleDarkMode(): void;
357
372
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppFloatingConfigurator, never>;
358
373
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppFloatingConfigurator, "app-floating-configurator", never, {}, {}, never, never, true, never>;
@@ -360,36 +375,13 @@ declare class AppFloatingConfigurator {
360
375
 
361
376
  declare class AppFooter {
362
377
  private readonly layoutService;
363
- readonly companyName: _angular_core.Signal<string>;
378
+ readonly appName: _angular_core.Signal<string>;
379
+ readonly authorName: _angular_core.Signal<string>;
380
+ readonly authorUrl: _angular_core.Signal<string>;
364
381
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppFooter, never>;
365
382
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppFooter, "app-footer", never, {}, {}, never, never, true, never>;
366
383
  }
367
384
 
368
- type ActivePanel = 'config' | null;
369
- declare class AppTopbar {
370
- private readonly appConfig;
371
- private readonly document;
372
- private readonly destroyRef;
373
- readonly layoutService: LayoutService;
374
- private readonly configContainer;
375
- readonly activePanel: _angular_core.WritableSignal<ActivePanel>;
376
- constructor();
377
- readonly companyName: _angular_core.Signal<string>;
378
- enableCompanyFeature: _angular_core.Signal<boolean>;
379
- toggleDarkMode(): void;
380
- togglePanel(panel: ActivePanel): void;
381
- private handleOutsideClick;
382
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppTopbar, never>;
383
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppTopbar, "app-topbar", never, {}, {}, never, never, true, never>;
384
- }
385
-
386
- declare class AppSidebar {
387
- el: ElementRef;
388
- constructor(el: ElementRef);
389
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppSidebar, never>;
390
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppSidebar, "app-sidebar", never, {}, {}, never, never, true, never>;
391
- }
392
-
393
385
  declare class AppLayout {
394
386
  private readonly destroyRef;
395
387
  private readonly document;
@@ -397,20 +389,18 @@ declare class AppLayout {
397
389
  private readonly renderer;
398
390
  private readonly router;
399
391
  private menuOutsideClickListener;
400
- appSidebar: AppSidebar;
401
- appTopBar: AppTopbar;
402
392
  constructor();
403
393
  isOutsideClicked(event: MouseEvent): boolean;
404
394
  hideMenu(): void;
405
395
  blockBodyScroll(): void;
406
396
  unblockBodyScroll(): void;
407
- get containerClass(): {
397
+ readonly containerClass: _angular_core.Signal<{
408
398
  'layout-overlay': boolean;
409
399
  'layout-static': boolean;
410
400
  'layout-static-inactive': boolean | undefined;
411
401
  'layout-overlay-active': boolean | undefined;
412
402
  'layout-mobile-active': boolean | undefined;
413
- };
403
+ }>;
414
404
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppLayout, never>;
415
405
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppLayout, "app-layout", never, {}, {}, never, never, true, never>;
416
406
  }
@@ -439,9 +429,9 @@ declare class AppMenuitem {
439
429
  readonly parentKey: _angular_core.InputSignal<string>;
440
430
  private readonly router;
441
431
  private readonly layoutService;
442
- private readonly authState;
443
432
  private readonly destroyRef;
444
- readonly active: _angular_core.WritableSignal<boolean>;
433
+ private readonly _active;
434
+ readonly active: _angular_core.Signal<boolean>;
445
435
  readonly key: _angular_core.Signal<string>;
446
436
  readonly routerLink: _angular_core.Signal<string[]>;
447
437
  readonly routerLinkActiveOptions: _angular_core.Signal<{
@@ -457,6 +447,29 @@ declare class AppMenuitem {
457
447
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppMenuitem, "[app-menuitem]", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "index": { "alias": "index"; "required": true; "isSignal": true; }; "parentKey": { "alias": "parentKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
458
448
  }
459
449
 
450
+ declare class AppSidebar {
451
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppSidebar, never>;
452
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppSidebar, "app-sidebar", never, {}, {}, never, never, true, never>;
453
+ }
454
+
455
+ type ActivePanel = 'config' | null;
456
+ declare class AppTopbar {
457
+ private readonly appConfig;
458
+ private readonly document;
459
+ private readonly destroyRef;
460
+ readonly layoutService: LayoutService;
461
+ private readonly configContainer;
462
+ readonly activePanel: _angular_core.WritableSignal<ActivePanel>;
463
+ constructor();
464
+ readonly companyName: _angular_core.Signal<string>;
465
+ readonly enableCompanyFeature: _angular_core.Signal<boolean>;
466
+ toggleDarkMode(): void;
467
+ togglePanel(panel: ActivePanel): void;
468
+ private handleOutsideClick;
469
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppTopbar, never>;
470
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AppTopbar, "app-topbar", never, {}, {}, never, never, true, never>;
471
+ }
472
+
460
473
  /** Company/branch switcher displayed in top bar */
461
474
  declare class AppCompanyBranchSelector {
462
475
  private readonly destroyRef;
@@ -465,17 +478,25 @@ declare class AppCompanyBranchSelector {
465
478
  private readonly messageService;
466
479
  private readonly document;
467
480
  private readonly elementRef;
468
- readonly isActive: _angular_core.WritableSignal<boolean>;
481
+ private readonly _isActive;
482
+ readonly isActive: _angular_core.Signal<boolean>;
469
483
  constructor();
470
484
  readonly currentCompanyName: _angular_core.Signal<string>;
471
485
  readonly currentBranchName: _angular_core.Signal<string | null>;
472
- readonly companies: _angular_core.WritableSignal<ICompanyInfo[]>;
473
- readonly branches: _angular_core.WritableSignal<IBranchInfo[]>;
474
- readonly selectedCompanyId: _angular_core.WritableSignal<string | null>;
475
- readonly selectedBranchId: _angular_core.WritableSignal<string | null>;
476
- readonly isLoadingCompanies: _angular_core.WritableSignal<boolean>;
477
- readonly isLoadingBranches: _angular_core.WritableSignal<boolean>;
478
- readonly isSwitching: _angular_core.WritableSignal<boolean>;
486
+ private readonly _companies;
487
+ readonly companies: _angular_core.Signal<ICompanyInfo[]>;
488
+ private readonly _branches;
489
+ readonly branches: _angular_core.Signal<IBranchInfo[]>;
490
+ private readonly _selectedCompanyId;
491
+ readonly selectedCompanyId: _angular_core.Signal<string | null>;
492
+ private readonly _selectedBranchId;
493
+ readonly selectedBranchId: _angular_core.Signal<string | null>;
494
+ private readonly _isLoadingCompanies;
495
+ readonly isLoadingCompanies: _angular_core.Signal<boolean>;
496
+ private readonly _isLoadingBranches;
497
+ readonly isLoadingBranches: _angular_core.Signal<boolean>;
498
+ private readonly _isSwitching;
499
+ readonly isSwitching: _angular_core.Signal<boolean>;
479
500
  readonly canSwitch: _angular_core.Signal<boolean>;
480
501
  onPanelToggle(): void;
481
502
  private loadCompanies;
@@ -492,7 +513,8 @@ declare class AppLauncher {
492
513
  private readonly document;
493
514
  private readonly elementRef;
494
515
  readonly layoutService: LayoutService;
495
- readonly isActive: _angular_core.WritableSignal<boolean>;
516
+ private readonly _isActive;
517
+ readonly isActive: _angular_core.Signal<boolean>;
496
518
  constructor();
497
519
  togglePanel(): void;
498
520
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppLauncher, never>;
@@ -503,15 +525,17 @@ declare class AppProfile {
503
525
  private readonly destroyRef;
504
526
  private readonly authState;
505
527
  private readonly authApi;
528
+ private readonly layoutService;
506
529
  private readonly messageService;
507
530
  private readonly document;
508
531
  private readonly elementRef;
509
- readonly isActive: _angular_core.WritableSignal<boolean>;
532
+ private readonly _isActive;
533
+ readonly isActive: _angular_core.Signal<boolean>;
510
534
  constructor();
511
535
  togglePanel(): void;
512
- userName: _angular_core.Signal<string>;
513
- userEmail: _angular_core.Signal<string>;
514
- profilePicture: _angular_core.Signal<string>;
536
+ readonly userName: _angular_core.Signal<string>;
537
+ readonly userEmail: _angular_core.Signal<string>;
538
+ readonly profilePicture: _angular_core.Signal<string>;
515
539
  logout(): void;
516
540
  copySignUpLink(): void;
517
541
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppProfile, never>;