@flusys/ng-layout 7.0.2 → 8.0.0-beta.1
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.
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, PLATFORM_ID,
|
|
2
|
+
import { inject, PLATFORM_ID, Service, DOCUMENT, signal, DestroyRef, computed, effect, Renderer2, Component, input, viewChild, InjectionToken, ElementRef } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser, DOCUMENT as DOCUMENT$1, NgComponentOutlet } from '@angular/common';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { APP_CONFIG, DEFAULT_APP_NAME, DEFAULT_AUTHOR, isCompanyFeatureEnabled, isSignUpEnabled } from '@flusys/ng-core';
|
|
6
|
-
import
|
|
7
|
-
import { evaluateLogicNode, PermissionValidatorService, InlineSvgComponent, TranslatePipe, IconComponent, TranslateService, AngularModule } from '@flusys/ng-shared';
|
|
6
|
+
import { evaluateLogicNode, PermissionValidatorService, InlineSvgComponent, TranslatePipe, IconComponent, TranslateService, IsEmptyImageDirective } from '@flusys/ng-shared';
|
|
8
7
|
import { Subject, fromEvent, filter } from 'rxjs';
|
|
9
|
-
import
|
|
10
|
-
import { PRESET_NAMES, UiModule, applyTheme, SURFACE_PALETTES, PRIMARY_PALETTES, NOIR_PRIMARY, applyPrimaryPalette, applySurfacePalette, PRESETS, MessageService } from '@flusys/ng-ui';
|
|
8
|
+
import { PRESET_NAMES, UiIconComponent, applyTheme, SURFACE_PALETTES, PRIMARY_PALETTES, NOIR_PRIMARY, applyPrimaryPalette, applySurfacePalette, PRESETS, SelectButtonComponent, MessageService, FButtonDirective, SelectComponent, StyleClassDirective, IconFieldComponent, InputIconComponent, InputTextDirective } from '@flusys/ng-ui';
|
|
11
9
|
export { applyTheme, buildBootstrapPreset } from '@flusys/ng-ui';
|
|
12
|
-
import
|
|
13
|
-
import { Router, NavigationEnd, isActive, RouterModule } from '@angular/router';
|
|
10
|
+
import { Router, NavigationEnd, isActive, RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
|
|
14
11
|
import { filter as filter$1 } from 'rxjs/operators';
|
|
15
|
-
import * as
|
|
12
|
+
import * as i1 from '@angular/forms';
|
|
16
13
|
import { FormsModule } from '@angular/forms';
|
|
17
14
|
|
|
18
15
|
/** Filter launcher apps based on user permission codes */
|
|
@@ -143,12 +140,11 @@ class LayoutPersistenceService {
|
|
|
143
140
|
}
|
|
144
141
|
return config;
|
|
145
142
|
}
|
|
146
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
147
|
-
static ɵprov = i0.ɵɵ
|
|
143
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LayoutPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Service });
|
|
144
|
+
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.5", ngImport: i0, type: LayoutPersistenceService });
|
|
148
145
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
150
|
-
type:
|
|
151
|
-
args: [{ providedIn: 'root' }]
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LayoutPersistenceService, decorators: [{
|
|
147
|
+
type: Service
|
|
152
148
|
}] });
|
|
153
149
|
|
|
154
150
|
/** Matches the 991px shell breakpoint both skins use in SCSS. */
|
|
@@ -370,12 +366,11 @@ class LayoutService {
|
|
|
370
366
|
clearApps() {
|
|
371
367
|
this._rawApps.set([]);
|
|
372
368
|
}
|
|
373
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
374
|
-
static ɵprov = i0.ɵɵ
|
|
369
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Service });
|
|
370
|
+
static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.5", ngImport: i0, type: LayoutService });
|
|
375
371
|
}
|
|
376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
377
|
-
type:
|
|
378
|
-
args: [{ providedIn: 'root' }]
|
|
372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: LayoutService, decorators: [{
|
|
373
|
+
type: Service
|
|
379
374
|
}], ctorParameters: () => [] });
|
|
380
375
|
|
|
381
376
|
/**
|
|
@@ -463,8 +458,8 @@ class AppFooter {
|
|
|
463
458
|
isLogoSvg = this.layoutService.isAppLogoSvg;
|
|
464
459
|
authorName = this.layoutService.authorName;
|
|
465
460
|
authorUrl = this.layoutService.authorUrl;
|
|
466
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
467
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
461
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
462
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppFooter, isStandalone: true, selector: "app-footer", ngImport: i0, template: `<div class="layout-footer">
|
|
468
463
|
@if (displayLogo) {
|
|
469
464
|
@if (isLogoSvg) {
|
|
470
465
|
<inline-svg [src]="displayLogo" class="logo-image" />
|
|
@@ -484,7 +479,7 @@ class AppFooter {
|
|
|
484
479
|
</span>
|
|
485
480
|
</div>`, isInline: true, dependencies: [{ kind: "component", type: InlineSvgComponent, selector: "inline-svg", inputs: ["src"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
486
481
|
}
|
|
487
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppFooter, decorators: [{
|
|
488
483
|
type: Component,
|
|
489
484
|
args: [{
|
|
490
485
|
selector: 'app-footer',
|
|
@@ -512,25 +507,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
512
507
|
}] });
|
|
513
508
|
|
|
514
509
|
class AppMenuitem {
|
|
515
|
-
// Signal inputs
|
|
516
510
|
item = input.required(/* @ts-ignore */
|
|
517
511
|
...(ngDevMode ? [{ debugName: "item" }] : /* istanbul ignore next */ []));
|
|
518
512
|
index = input.required(/* @ts-ignore */
|
|
519
513
|
...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
520
514
|
parentKey = input('', /* @ts-ignore */
|
|
521
515
|
...(ngDevMode ? [{ debugName: "parentKey" }] : /* istanbul ignore next */ []));
|
|
522
|
-
// Injected services
|
|
523
516
|
router = inject(Router);
|
|
524
517
|
layoutService = inject(LayoutService);
|
|
525
518
|
destroyRef = inject(DestroyRef);
|
|
526
|
-
// View references
|
|
527
519
|
parentLink = viewChild('parentLink', /* @ts-ignore */
|
|
528
520
|
...(ngDevMode ? [{ debugName: "parentLink" }] : /* istanbul ignore next */ []));
|
|
529
|
-
// State signals - private writable + public readonly pattern
|
|
530
521
|
_active = signal(false, /* @ts-ignore */
|
|
531
522
|
...(ngDevMode ? [{ debugName: "_active" }] : /* istanbul ignore next */ []));
|
|
532
523
|
active = this._active.asReadonly();
|
|
533
|
-
// Computed signals
|
|
534
524
|
key = computed(() => {
|
|
535
525
|
const parent = this.parentKey();
|
|
536
526
|
return parent ? `${parent}-${this.index()}` : String(this.index());
|
|
@@ -554,7 +544,6 @@ class AppMenuitem {
|
|
|
554
544
|
}, /* @ts-ignore */
|
|
555
545
|
...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : /* istanbul ignore next */ []));
|
|
556
546
|
constructor() {
|
|
557
|
-
// Subscribe to menu source changes
|
|
558
547
|
this.layoutService.menuSource$
|
|
559
548
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
560
549
|
.subscribe((value) => {
|
|
@@ -570,11 +559,9 @@ class AppMenuitem {
|
|
|
570
559
|
}
|
|
571
560
|
});
|
|
572
561
|
});
|
|
573
|
-
// Subscribe to menu reset
|
|
574
562
|
this.layoutService.resetSource$
|
|
575
563
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
576
564
|
.subscribe(() => this._active.set(false));
|
|
577
|
-
// Subscribe to navigation events
|
|
578
565
|
this.router.events
|
|
579
566
|
.pipe(filter$1((event) => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
|
|
580
567
|
.subscribe(() => {
|
|
@@ -582,14 +569,12 @@ class AppMenuitem {
|
|
|
582
569
|
this.updateActiveStateFromRoute();
|
|
583
570
|
}
|
|
584
571
|
});
|
|
585
|
-
// Effect to update active state on init when item has routerLink
|
|
586
572
|
effect(() => {
|
|
587
573
|
const menuItem = this.item();
|
|
588
574
|
if (menuItem.routerLink) {
|
|
589
575
|
this.updateActiveStateFromRoute();
|
|
590
576
|
}
|
|
591
577
|
});
|
|
592
|
-
// Effect to update submenu position when active in topbar mode
|
|
593
578
|
effect(() => {
|
|
594
579
|
if (this.active() && this.parentLink()) {
|
|
595
580
|
Promise.resolve().then(() => this.updateSubmenuPosition());
|
|
@@ -641,8 +626,8 @@ class AppMenuitem {
|
|
|
641
626
|
}
|
|
642
627
|
this.layoutService.onMenuStateChange({ key: this.key() });
|
|
643
628
|
}
|
|
644
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
645
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
629
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppMenuitem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
630
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppMenuitem, isStandalone: true, selector: "[app-menuitem]", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, parentKey: { classPropertyName: "parentKey", publicName: "parentKey", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.active-menuitem": "active()" } }, viewQueries: [{ propertyName: "parentLink", first: true, predicate: ["parentLink"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
646
631
|
<ng-container>
|
|
647
632
|
@if (item().children?.length) {
|
|
648
633
|
<a
|
|
@@ -711,11 +696,11 @@ class AppMenuitem {
|
|
|
711
696
|
</ul>
|
|
712
697
|
}
|
|
713
698
|
</ng-container>
|
|
714
|
-
`, isInline: true, styles: [":host ul{overflow:hidden;transition:max-height .4s cubic-bezier(.86,0,.07,1)}:host ul.submenu-collapsed{max-height:0}:host ul.submenu-expanded{max-height:1000px}\n"], dependencies: [{ kind: "component", type: AppMenuitem, selector: "[app-menuitem]", inputs: ["item", "index", "parentKey"] }, { kind: "
|
|
699
|
+
`, isInline: true, styles: [":host ul{overflow:hidden;transition:max-height .4s cubic-bezier(.86,0,.07,1)}:host ul.submenu-collapsed{max-height:0}:host ul.submenu-expanded{max-height:1000px}\n"], dependencies: [{ kind: "component", type: AppMenuitem, selector: "[app-menuitem]", inputs: ["item", "index", "parentKey"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["icon", "iconType"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
715
700
|
}
|
|
716
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppMenuitem, decorators: [{
|
|
717
702
|
type: Component,
|
|
718
|
-
args: [{ selector: '[app-menuitem]', imports: [
|
|
703
|
+
args: [{ selector: '[app-menuitem]', imports: [UiIconComponent, IconComponent, RouterLink, RouterLinkActive, TranslatePipe], template: `
|
|
719
704
|
<ng-container>
|
|
720
705
|
@if (item().children?.length) {
|
|
721
706
|
<a
|
|
@@ -803,8 +788,8 @@ class AppMenu {
|
|
|
803
788
|
* - Permission state changes (user permissions updated)
|
|
804
789
|
*/
|
|
805
790
|
menuItems = this.layoutService.menu;
|
|
806
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
807
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
791
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
792
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppMenu, isStandalone: true, selector: "app-menu", ngImport: i0, template: `<div class="layout-menu">
|
|
808
793
|
<ul>
|
|
809
794
|
@for (
|
|
810
795
|
item of menuItems();
|
|
@@ -814,13 +799,13 @@ class AppMenu {
|
|
|
814
799
|
<li app-menuitem [item]="item" [index]="i"></li>
|
|
815
800
|
}
|
|
816
801
|
</ul>
|
|
817
|
-
</div>`, isInline: true, dependencies: [{ kind: "component", type: AppMenuitem, selector: "[app-menuitem]", inputs: ["item", "index", "parentKey"] }
|
|
802
|
+
</div>`, isInline: true, dependencies: [{ kind: "component", type: AppMenuitem, selector: "[app-menuitem]", inputs: ["item", "index", "parentKey"] }] });
|
|
818
803
|
}
|
|
819
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
804
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppMenu, decorators: [{
|
|
820
805
|
type: Component,
|
|
821
806
|
args: [{
|
|
822
807
|
selector: 'app-menu',
|
|
823
|
-
imports: [AppMenuitem
|
|
808
|
+
imports: [AppMenuitem],
|
|
824
809
|
template: `<div class="layout-menu">
|
|
825
810
|
<ul>
|
|
826
811
|
@for (
|
|
@@ -836,14 +821,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
836
821
|
}] });
|
|
837
822
|
|
|
838
823
|
class AppSidebar {
|
|
839
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
840
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.
|
|
824
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
825
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: AppSidebar, isStandalone: true, selector: "app-sidebar", ngImport: i0, template: `
|
|
841
826
|
<div class="layout-sidebar">
|
|
842
827
|
<app-menu />
|
|
843
828
|
</div>
|
|
844
829
|
`, isInline: true, dependencies: [{ kind: "component", type: AppMenu, selector: "app-menu" }] });
|
|
845
830
|
}
|
|
846
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
831
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppSidebar, decorators: [{
|
|
847
832
|
type: Component,
|
|
848
833
|
args: [{
|
|
849
834
|
selector: 'app-sidebar',
|
|
@@ -864,8 +849,8 @@ class AppBrandLogo {
|
|
|
864
849
|
layoutService = inject(LayoutService);
|
|
865
850
|
companyName = this.layoutService.companyName;
|
|
866
851
|
displayLogo = this.layoutService.displayLogo;
|
|
867
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
868
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
852
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppBrandLogo, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
853
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppBrandLogo, isStandalone: true, selector: "app-brand-logo", host: { styleAttribute: "display: contents" }, ngImport: i0, template: `
|
|
869
854
|
<a class="layout-brand-logo" routerLink="/">
|
|
870
855
|
@if (displayLogo()) {
|
|
871
856
|
@if (layoutService.isDisplayLogoSvg()) {
|
|
@@ -876,13 +861,13 @@ class AppBrandLogo {
|
|
|
876
861
|
}
|
|
877
862
|
<span>{{ companyName() }}</span>
|
|
878
863
|
</a>
|
|
879
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
864
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "component", type: InlineSvgComponent, selector: "inline-svg", inputs: ["src"] }] });
|
|
880
865
|
}
|
|
881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
866
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppBrandLogo, decorators: [{
|
|
882
867
|
type: Component,
|
|
883
868
|
args: [{
|
|
884
869
|
selector: 'app-brand-logo',
|
|
885
|
-
imports: [
|
|
870
|
+
imports: [RouterLink, InlineSvgComponent],
|
|
886
871
|
host: { style: 'display: contents' },
|
|
887
872
|
template: `
|
|
888
873
|
<a class="layout-brand-logo" routerLink="/">
|
|
@@ -1022,8 +1007,8 @@ class AppConfigurator {
|
|
|
1022
1007
|
translate(key) {
|
|
1023
1008
|
return this.translateAdapter?.translate(key) ?? key;
|
|
1024
1009
|
}
|
|
1025
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1026
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1010
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppConfigurator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1011
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppConfigurator, isStandalone: true, selector: "app-configurator", host: { styleAttribute: "background-color: var(--surface-overlay); inset-inline-end: 0;", classAttribute: "hidden absolute top-[3.25rem] w-[calc(100vw-2rem)] sm:w-72 max-w-72 p-4 border border-surface rounded-border origin-top shadow-xl" }, ngImport: i0, template: `
|
|
1027
1012
|
<div class="flex flex-col gap-4">
|
|
1028
1013
|
<div>
|
|
1029
1014
|
<span class="text-sm text-muted-color font-semibold">{{
|
|
@@ -1106,13 +1091,13 @@ class AppConfigurator {
|
|
|
1106
1091
|
</div>
|
|
1107
1092
|
}
|
|
1108
1093
|
</div>
|
|
1109
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
1094
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SelectButtonComponent, selector: "f-selectbutton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "multiple", "disabled", "invalid", "allowEmpty", "size", "styleClass", "style"], outputs: ["onChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1110
1095
|
}
|
|
1111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1096
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppConfigurator, decorators: [{
|
|
1112
1097
|
type: Component,
|
|
1113
1098
|
args: [{
|
|
1114
1099
|
selector: 'app-configurator',
|
|
1115
|
-
imports: [
|
|
1100
|
+
imports: [SelectButtonComponent, FormsModule, TranslatePipe],
|
|
1116
1101
|
template: `
|
|
1117
1102
|
<div class="flex flex-col gap-4">
|
|
1118
1103
|
<div>
|
|
@@ -1356,8 +1341,8 @@ class AppCompanyBranchSelector {
|
|
|
1356
1341
|
translate(key) {
|
|
1357
1342
|
return this.translateAdapter?.translate(key) ?? key;
|
|
1358
1343
|
}
|
|
1359
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1360
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1344
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppCompanyBranchSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1345
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppCompanyBranchSelector, isStandalone: true, selector: "app-company-branch-selector", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1361
1346
|
<button
|
|
1362
1347
|
type="button"
|
|
1363
1348
|
class="layout-topbar-action"
|
|
@@ -1443,14 +1428,20 @@ class AppCompanyBranchSelector {
|
|
|
1443
1428
|
</div>
|
|
1444
1429
|
</div>
|
|
1445
1430
|
</div>
|
|
1446
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
1431
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: StyleClassDirective, selector: "[fStyleClass]", inputs: ["fStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1447
1432
|
}
|
|
1448
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppCompanyBranchSelector, decorators: [{
|
|
1449
1434
|
type: Component,
|
|
1450
1435
|
args: [{
|
|
1451
1436
|
selector: 'app-company-branch-selector',
|
|
1452
|
-
imports: [
|
|
1453
|
-
|
|
1437
|
+
imports: [
|
|
1438
|
+
FButtonDirective,
|
|
1439
|
+
SelectComponent,
|
|
1440
|
+
StyleClassDirective,
|
|
1441
|
+
UiIconComponent,
|
|
1442
|
+
FormsModule,
|
|
1443
|
+
TranslatePipe,
|
|
1444
|
+
],
|
|
1454
1445
|
host: { class: 'relative' },
|
|
1455
1446
|
template: `
|
|
1456
1447
|
<button
|
|
@@ -1563,8 +1554,8 @@ class AppLauncher {
|
|
|
1563
1554
|
toggleActive() {
|
|
1564
1555
|
this._isActive.update((v) => !v);
|
|
1565
1556
|
}
|
|
1566
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1567
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1557
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppLauncher, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1558
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppLauncher, isStandalone: true, selector: "app-launcher", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1568
1559
|
<button
|
|
1569
1560
|
type="button"
|
|
1570
1561
|
class="layout-topbar-action"
|
|
@@ -1620,13 +1611,13 @@ class AppLauncher {
|
|
|
1620
1611
|
</div>
|
|
1621
1612
|
}
|
|
1622
1613
|
</div>
|
|
1623
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
1614
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: StyleClassDirective, selector: "[fStyleClass]", inputs: ["fStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1624
1615
|
}
|
|
1625
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppLauncher, decorators: [{
|
|
1626
1617
|
type: Component,
|
|
1627
1618
|
args: [{
|
|
1628
1619
|
selector: 'app-launcher',
|
|
1629
|
-
imports: [
|
|
1620
|
+
imports: [StyleClassDirective, UiIconComponent, TranslatePipe],
|
|
1630
1621
|
host: { class: 'relative' },
|
|
1631
1622
|
template: `
|
|
1632
1623
|
<button
|
|
@@ -1771,8 +1762,8 @@ class AppProfile {
|
|
|
1771
1762
|
translate(key, vars) {
|
|
1772
1763
|
return this.translateAdapter?.translate(key, vars) ?? key;
|
|
1773
1764
|
}
|
|
1774
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
1775
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
1765
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppProfile, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1766
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppProfile, isStandalone: true, selector: "app-profile", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1776
1767
|
<button
|
|
1777
1768
|
type="button"
|
|
1778
1769
|
class="layout-topbar-action"
|
|
@@ -1845,13 +1836,13 @@ class AppProfile {
|
|
|
1845
1836
|
</div>
|
|
1846
1837
|
</div>
|
|
1847
1838
|
</div>
|
|
1848
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
1839
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: StyleClassDirective, selector: "[fStyleClass]", inputs: ["fStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: IsEmptyImageDirective, selector: "img", inputs: ["src"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1849
1840
|
}
|
|
1850
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1841
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppProfile, decorators: [{
|
|
1851
1842
|
type: Component,
|
|
1852
1843
|
args: [{
|
|
1853
1844
|
selector: 'app-profile',
|
|
1854
|
-
imports: [
|
|
1845
|
+
imports: [StyleClassDirective, UiIconComponent, RouterLink, IsEmptyImageDirective, TranslatePipe],
|
|
1855
1846
|
host: { class: 'relative' },
|
|
1856
1847
|
template: `
|
|
1857
1848
|
<button
|
|
@@ -2069,8 +2060,8 @@ class AppSearchbar {
|
|
|
2069
2060
|
this.searchAdapter.onSearch(query);
|
|
2070
2061
|
}
|
|
2071
2062
|
}
|
|
2072
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2073
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2063
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppSearchbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2064
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppSearchbar, isStandalone: true, selector: "app-searchbar", viewQueries: [{ propertyName: "searchWrapper", first: true, predicate: ["searchWrapper"], descendants: true, isSignal: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
2074
2065
|
<div
|
|
2075
2066
|
class="search-container h-full"
|
|
2076
2067
|
#searchWrapper
|
|
@@ -2174,11 +2165,18 @@ class AppSearchbar {
|
|
|
2174
2165
|
}
|
|
2175
2166
|
}
|
|
2176
2167
|
</div>
|
|
2177
|
-
`, isInline: true, styles: [".search-container{display:flex;align-items:center;position:relative;width:100%;flex:0 1 auto}.search-container.topbar-mode{width:auto}.search-dropdown-panel{position:absolute;top:100%;right:0;margin-top:.5rem;background-color:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--f-content-border-radius);box-shadow:var(--f-shadow-xl);z-index:1100;padding:1rem .75rem .75rem;min-width:300px;max-width:450px;animation:slideDown .2s ease-out}.search-suggestions{margin-top:.5rem;border-top:1px solid var(--surface-border);padding-top:.5rem;background-color:inherit}.suggestions-list{list-style:none;margin:0;padding:0;max-height:360px;overflow-y:auto;background-color:inherit}.suggestion-item{padding:.75rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.75rem;color:var(--text-color);border-bottom:1px solid var(--surface-border);transition:background-color .15s ease,color .15s ease}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.focused{background-color:var(--surface-50);color:var(--primary-color)}.suggestion-icon{color:var(--text-color-secondary);font-size:1rem;flex-shrink:0;transition:color .15s ease}.suggestion-item:hover .suggestion-icon,.suggestion-item.focused .suggestion-icon{color:var(--primary-color)}.suggestion-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background-color:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--f-content-border-radius);box-shadow:var(--f-shadow-xl);z-index:1000;overflow:hidden}.search-dropdown .suggestions-list{background-color:inherit}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.search-dropdown-panel{min-width:280px;max-width:400px}}@media(max-width:576px){.search-dropdown-panel{position:fixed;top:var(--layout-shell-topbar-bottom, 4rem);left:0;right:0;bottom:auto;width:100vw;min-width:100vw;max-width:100vw;margin-top:0;padding:1rem;border-radius:0;border-bottom:1px solid var(--surface-border);z-index:1200}.search-dropdown-panel .search-iconfield{margin-bottom:1rem}.search-dropdown{max-width:100%;left:0!important;right:0!important;transform:none;position:static;border-radius:var(--f-content-border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"], dependencies: [{ kind: "
|
|
2168
|
+
`, isInline: true, styles: [".search-container{display:flex;align-items:center;position:relative;width:100%;flex:0 1 auto}.search-container.topbar-mode{width:auto}.search-dropdown-panel{position:absolute;top:100%;right:0;margin-top:.5rem;background-color:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--f-content-border-radius);box-shadow:var(--f-shadow-xl);z-index:1100;padding:1rem .75rem .75rem;min-width:300px;max-width:450px;animation:slideDown .2s ease-out}.search-suggestions{margin-top:.5rem;border-top:1px solid var(--surface-border);padding-top:.5rem;background-color:inherit}.suggestions-list{list-style:none;margin:0;padding:0;max-height:360px;overflow-y:auto;background-color:inherit}.suggestion-item{padding:.75rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.75rem;color:var(--text-color);border-bottom:1px solid var(--surface-border);transition:background-color .15s ease,color .15s ease}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.focused{background-color:var(--surface-50);color:var(--primary-color)}.suggestion-icon{color:var(--text-color-secondary);font-size:1rem;flex-shrink:0;transition:color .15s ease}.suggestion-item:hover .suggestion-icon,.suggestion-item.focused .suggestion-icon{color:var(--primary-color)}.suggestion-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;background-color:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--f-content-border-radius);box-shadow:var(--f-shadow-xl);z-index:1000;overflow:hidden}.search-dropdown .suggestions-list{background-color:inherit}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.search-dropdown-panel{min-width:280px;max-width:400px}}@media(max-width:576px){.search-dropdown-panel{position:fixed;top:var(--layout-shell-topbar-bottom, 4rem);left:0;right:0;bottom:auto;width:100vw;min-width:100vw;max-width:100vw;margin-top:0;padding:1rem;border-radius:0;border-bottom:1px solid var(--surface-border);z-index:1200}.search-dropdown-panel .search-iconfield{margin-bottom:1rem}.search-dropdown{max-width:100%;left:0!important;right:0!important;transform:none;position:static;border-radius:var(--f-content-border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"], dependencies: [{ kind: "component", type: IconFieldComponent, selector: "f-iconfield", inputs: ["iconPosition", "styleClass"] }, { kind: "component", type: InputIconComponent, selector: "f-inputicon", inputs: ["icon", "position", "styleClass", "style"] }, { kind: "directive", type: InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2178
2169
|
}
|
|
2179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppSearchbar, decorators: [{
|
|
2180
2171
|
type: Component,
|
|
2181
|
-
args: [{ selector: 'app-searchbar', imports: [
|
|
2172
|
+
args: [{ selector: 'app-searchbar', imports: [
|
|
2173
|
+
IconFieldComponent,
|
|
2174
|
+
InputIconComponent,
|
|
2175
|
+
InputTextDirective,
|
|
2176
|
+
UiIconComponent,
|
|
2177
|
+
FormsModule,
|
|
2178
|
+
TranslatePipe,
|
|
2179
|
+
], template: `
|
|
2182
2180
|
<div
|
|
2183
2181
|
class="search-container h-full"
|
|
2184
2182
|
#searchWrapper
|
|
@@ -2330,8 +2328,8 @@ class AppTopbarActions {
|
|
|
2330
2328
|
toggleConfigPanel() {
|
|
2331
2329
|
this._configPanelOpen.update((open) => !open);
|
|
2332
2330
|
}
|
|
2333
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2334
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2331
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppTopbarActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2332
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppTopbarActions, isStandalone: true, selector: "app-topbar-actions", host: { styleAttribute: "display: contents" }, viewQueries: [{ propertyName: "configContainer", first: true, predicate: ["configContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
2335
2333
|
<div class="layout-topbar-actions">
|
|
2336
2334
|
@if (hasSearchAdapter()) {
|
|
2337
2335
|
<app-searchbar />
|
|
@@ -2387,26 +2385,27 @@ class AppTopbarActions {
|
|
|
2387
2385
|
<app-launcher />
|
|
2388
2386
|
}
|
|
2389
2387
|
@if (languageSelectorComponent) {
|
|
2390
|
-
<ng-container
|
|
2388
|
+
<ng-container [ngComponentOutlet]="languageSelectorComponent" />
|
|
2391
2389
|
}
|
|
2392
2390
|
@if (enableCompanyFeature) {
|
|
2393
2391
|
<app-company-branch-selector />
|
|
2394
2392
|
}
|
|
2395
2393
|
@if (notificationBellComponent) {
|
|
2396
|
-
<ng-container
|
|
2394
|
+
<ng-container [ngComponentOutlet]="notificationBellComponent" />
|
|
2397
2395
|
}
|
|
2398
2396
|
<app-profile />
|
|
2399
2397
|
</div>
|
|
2400
2398
|
</div>
|
|
2401
2399
|
</div>
|
|
2402
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
2400
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: StyleClassDirective, selector: "[fStyleClass]", inputs: ["fStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AppConfigurator, selector: "app-configurator" }, { kind: "component", type: AppProfile, selector: "app-profile" }, { kind: "component", type: AppCompanyBranchSelector, selector: "app-company-branch-selector" }, { kind: "component", type: AppLauncher, selector: "app-launcher" }, { kind: "component", type: AppSearchbar, selector: "app-searchbar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2403
2401
|
}
|
|
2404
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppTopbarActions, decorators: [{
|
|
2405
2403
|
type: Component,
|
|
2406
2404
|
args: [{
|
|
2407
2405
|
selector: 'app-topbar-actions',
|
|
2408
2406
|
imports: [
|
|
2409
|
-
|
|
2407
|
+
StyleClassDirective,
|
|
2408
|
+
UiIconComponent,
|
|
2410
2409
|
NgComponentOutlet,
|
|
2411
2410
|
TranslatePipe,
|
|
2412
2411
|
AppConfigurator,
|
|
@@ -2472,13 +2471,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
2472
2471
|
<app-launcher />
|
|
2473
2472
|
}
|
|
2474
2473
|
@if (languageSelectorComponent) {
|
|
2475
|
-
<ng-container
|
|
2474
|
+
<ng-container [ngComponentOutlet]="languageSelectorComponent" />
|
|
2476
2475
|
}
|
|
2477
2476
|
@if (enableCompanyFeature) {
|
|
2478
2477
|
<app-company-branch-selector />
|
|
2479
2478
|
}
|
|
2480
2479
|
@if (notificationBellComponent) {
|
|
2481
|
-
<ng-container
|
|
2480
|
+
<ng-container [ngComponentOutlet]="notificationBellComponent" />
|
|
2482
2481
|
}
|
|
2483
2482
|
<app-profile />
|
|
2484
2483
|
</div>
|
|
@@ -2545,8 +2544,8 @@ class AppTopbar {
|
|
|
2545
2544
|
li.style.setProperty('--submenu-top', `${rect.bottom + 12}px`);
|
|
2546
2545
|
});
|
|
2547
2546
|
}
|
|
2548
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2549
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2547
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppTopbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppTopbar, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "navContainer", first: true, predicate: ["navContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `<div class="layout-topbar">
|
|
2550
2549
|
<div
|
|
2551
2550
|
class="layout-topbar-logo-container"
|
|
2552
2551
|
[class.layout-topbar-logo-container-desktop]="layoutService.isDesktop()"
|
|
@@ -2591,13 +2590,13 @@ class AppTopbar {
|
|
|
2591
2590
|
}
|
|
2592
2591
|
|
|
2593
2592
|
<app-topbar-actions />
|
|
2594
|
-
</div>`, isInline: true, dependencies: [{ kind: "
|
|
2593
|
+
</div>`, isInline: true, dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "component", type: AppBrandLogo, selector: "app-brand-logo" }, { kind: "component", type: AppMenu, selector: "app-menu" }, { kind: "component", type: AppTopbarActions, selector: "app-topbar-actions" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2595
2594
|
}
|
|
2596
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppTopbar, decorators: [{
|
|
2597
2596
|
type: Component,
|
|
2598
2597
|
args: [{
|
|
2599
2598
|
selector: 'app-topbar',
|
|
2600
|
-
imports: [
|
|
2599
|
+
imports: [UiIconComponent, TranslatePipe, AppBrandLogo, AppMenu, AppTopbarActions],
|
|
2601
2600
|
template: `<div class="layout-topbar">
|
|
2602
2601
|
<div
|
|
2603
2602
|
class="layout-topbar-logo-container"
|
|
@@ -2653,8 +2652,8 @@ class AppClassicLayout extends LayoutShellBase {
|
|
|
2653
2652
|
outsideClickSelectors() {
|
|
2654
2653
|
return ['.layout-sidebar', '.layout-menu-button', '.layout-topbar-nav'];
|
|
2655
2654
|
}
|
|
2656
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2657
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.
|
|
2655
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppClassicLayout, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2656
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.5", type: AppClassicLayout, isStandalone: true, selector: "app-classic-layout", usesInheritance: true, ngImport: i0, template: `
|
|
2658
2657
|
<div
|
|
2659
2658
|
class="layout-wrapper"
|
|
2660
2659
|
[class.layout-overlay]="isOverlay()"
|
|
@@ -2674,13 +2673,13 @@ class AppClassicLayout extends LayoutShellBase {
|
|
|
2674
2673
|
</div>
|
|
2675
2674
|
<div class="layout-mask animate-fadein"></div>
|
|
2676
2675
|
</div>
|
|
2677
|
-
`, isInline: true, dependencies: [{ kind: "component", type: AppTopbar, selector: "app-topbar" }, { kind: "component", type: AppSidebar, selector: "app-sidebar" }, { kind: "
|
|
2676
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AppTopbar, selector: "app-topbar" }, { kind: "component", type: AppSidebar, selector: "app-sidebar" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AppFooter, selector: "app-footer" }] });
|
|
2678
2677
|
}
|
|
2679
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppClassicLayout, decorators: [{
|
|
2680
2679
|
type: Component,
|
|
2681
2680
|
args: [{
|
|
2682
2681
|
selector: 'app-classic-layout',
|
|
2683
|
-
imports: [AppTopbar, AppSidebar,
|
|
2682
|
+
imports: [AppTopbar, AppSidebar, RouterOutlet, AppFooter],
|
|
2684
2683
|
template: `
|
|
2685
2684
|
<div
|
|
2686
2685
|
class="layout-wrapper"
|
|
@@ -2714,8 +2713,8 @@ class AppModernSidebar {
|
|
|
2714
2713
|
*/
|
|
2715
2714
|
showMenuButton = computed(() => !this.layoutService.isMobile() && !this.layoutService.isOverlay(), /* @ts-ignore */
|
|
2716
2715
|
...(ngDevMode ? [{ debugName: "showMenuButton" }] : /* istanbul ignore next */ []));
|
|
2717
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2718
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2716
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2717
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppModernSidebar, isStandalone: true, selector: "app-modern-sidebar", ngImport: i0, template: `
|
|
2719
2718
|
<aside class="layout-modern-sidebar">
|
|
2720
2719
|
<div class="layout-modern-brand">
|
|
2721
2720
|
<app-brand-logo />
|
|
@@ -2737,13 +2736,13 @@ class AppModernSidebar {
|
|
|
2737
2736
|
<app-footer />
|
|
2738
2737
|
</div>
|
|
2739
2738
|
</aside>
|
|
2740
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
2739
|
+
`, isInline: true, dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "component", type: AppBrandLogo, selector: "app-brand-logo" }, { kind: "component", type: AppMenu, selector: "app-menu" }, { kind: "component", type: AppFooter, selector: "app-footer" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2741
2740
|
}
|
|
2742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2741
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernSidebar, decorators: [{
|
|
2743
2742
|
type: Component,
|
|
2744
2743
|
args: [{
|
|
2745
2744
|
selector: 'app-modern-sidebar',
|
|
2746
|
-
imports: [
|
|
2745
|
+
imports: [UiIconComponent, TranslatePipe, AppBrandLogo, AppMenu, AppFooter],
|
|
2747
2746
|
template: `
|
|
2748
2747
|
<aside class="layout-modern-sidebar">
|
|
2749
2748
|
<div class="layout-modern-brand">
|
|
@@ -2795,8 +2794,8 @@ class AppModernTopbar {
|
|
|
2795
2794
|
}
|
|
2796
2795
|
this._pageTitle.set(route.title ?? '');
|
|
2797
2796
|
}
|
|
2798
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2799
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2797
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernTopbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2798
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppModernTopbar, isStandalone: true, selector: "app-modern-topbar", ngImport: i0, template: `
|
|
2800
2799
|
<header class="layout-modern-topbar">
|
|
2801
2800
|
@if (showBrand()) {
|
|
2802
2801
|
<button
|
|
@@ -2815,13 +2814,13 @@ class AppModernTopbar {
|
|
|
2815
2814
|
|
|
2816
2815
|
<app-topbar-actions />
|
|
2817
2816
|
</header>
|
|
2818
|
-
`, isInline: true, dependencies: [{ kind: "
|
|
2817
|
+
`, isInline: true, dependencies: [{ kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "component", type: AppBrandLogo, selector: "app-brand-logo" }, { kind: "component", type: AppTopbarActions, selector: "app-topbar-actions" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2819
2818
|
}
|
|
2820
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2819
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernTopbar, decorators: [{
|
|
2821
2820
|
type: Component,
|
|
2822
2821
|
args: [{
|
|
2823
2822
|
selector: 'app-modern-topbar',
|
|
2824
|
-
imports: [
|
|
2823
|
+
imports: [UiIconComponent, TranslatePipe, AppBrandLogo, AppTopbarActions],
|
|
2825
2824
|
template: `
|
|
2826
2825
|
<header class="layout-modern-topbar">
|
|
2827
2826
|
@if (showBrand()) {
|
|
@@ -2858,8 +2857,8 @@ class AppModernLayout extends LayoutShellBase {
|
|
|
2858
2857
|
onNavigated() {
|
|
2859
2858
|
this.content()?.nativeElement.scrollTo({ top: 0 });
|
|
2860
2859
|
}
|
|
2861
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2862
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.
|
|
2860
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernLayout, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2861
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.5", type: AppModernLayout, isStandalone: true, selector: "app-modern-layout", viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
2863
2862
|
<div
|
|
2864
2863
|
class="layout-modern"
|
|
2865
2864
|
[class.layout-modern-overlay]="isOverlay()"
|
|
@@ -2876,13 +2875,13 @@ class AppModernLayout extends LayoutShellBase {
|
|
|
2876
2875
|
</div>
|
|
2877
2876
|
<div class="layout-modern-mask animate-fadein"></div>
|
|
2878
2877
|
</div>
|
|
2879
|
-
`, isInline: true, dependencies: [{ kind: "component", type: AppModernTopbar, selector: "app-modern-topbar" }, { kind: "component", type: AppModernSidebar, selector: "app-modern-sidebar" }, { kind: "
|
|
2878
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AppModernTopbar, selector: "app-modern-topbar" }, { kind: "component", type: AppModernSidebar, selector: "app-modern-sidebar" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
2880
2879
|
}
|
|
2881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2880
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppModernLayout, decorators: [{
|
|
2882
2881
|
type: Component,
|
|
2883
2882
|
args: [{
|
|
2884
2883
|
selector: 'app-modern-layout',
|
|
2885
|
-
imports: [AppModernTopbar, AppModernSidebar,
|
|
2884
|
+
imports: [AppModernTopbar, AppModernSidebar, RouterOutlet],
|
|
2886
2885
|
template: `
|
|
2887
2886
|
<div
|
|
2888
2887
|
class="layout-modern"
|
|
@@ -2911,8 +2910,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
2911
2910
|
*/
|
|
2912
2911
|
class AppLayout {
|
|
2913
2912
|
layoutService = inject(LayoutService);
|
|
2914
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2915
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2913
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppLayout, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppLayout, isStandalone: true, selector: "app-layout", ngImport: i0, template: `
|
|
2916
2915
|
@if (layoutService.isModernLayout()) {
|
|
2917
2916
|
<app-modern-layout />
|
|
2918
2917
|
} @else {
|
|
@@ -2920,7 +2919,7 @@ class AppLayout {
|
|
|
2920
2919
|
}
|
|
2921
2920
|
`, isInline: true, dependencies: [{ kind: "component", type: AppClassicLayout, selector: "app-classic-layout" }, { kind: "component", type: AppModernLayout, selector: "app-modern-layout" }] });
|
|
2922
2921
|
}
|
|
2923
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppLayout, decorators: [{
|
|
2924
2923
|
type: Component,
|
|
2925
2924
|
args: [{
|
|
2926
2925
|
selector: 'app-layout',
|
|
@@ -2946,8 +2945,8 @@ class AppFloatingConfigurator {
|
|
|
2946
2945
|
const currentDarkTheme = this.layoutService.layoutConfig().darkTheme;
|
|
2947
2946
|
this.layoutService.updateLayoutConfig({ darkTheme: !currentDarkTheme });
|
|
2948
2947
|
}
|
|
2949
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
2950
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.
|
|
2948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppFloatingConfigurator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2949
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: AppFloatingConfigurator, isStandalone: true, selector: "app-floating-configurator", ngImport: i0, template: `
|
|
2951
2950
|
<div
|
|
2952
2951
|
class="floating-configurator fixed flex flex-col md:flex-row gap-2 md:gap-4 top-4 md:top-8 z-50"
|
|
2953
2952
|
>
|
|
@@ -2975,7 +2974,7 @@ class AppFloatingConfigurator {
|
|
|
2975
2974
|
>
|
|
2976
2975
|
<ui-icon pButtonIcon name="globe"></ui-icon>
|
|
2977
2976
|
</button>
|
|
2978
|
-
<ng-container
|
|
2977
|
+
<ng-container [ngComponentOutlet]="languageSelectorPanel" />
|
|
2979
2978
|
</div>
|
|
2980
2979
|
}
|
|
2981
2980
|
<div class="relative">
|
|
@@ -2995,11 +2994,11 @@ class AppFloatingConfigurator {
|
|
|
2995
2994
|
<app-configurator />
|
|
2996
2995
|
</div>
|
|
2997
2996
|
</div>
|
|
2998
|
-
`, isInline: true, styles: [".floating-configurator{inset-inline-end:.5rem}@media(min-width:768px){.floating-configurator{inset-inline-end:2rem}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "
|
|
2997
|
+
`, isInline: true, styles: [".floating-configurator{inset-inline-end:.5rem}@media(min-width:768px){.floating-configurator{inset-inline-end:2rem}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "directive", type: StyleClassDirective, selector: "[fStyleClass]", inputs: ["fStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "component", type: AppConfigurator, selector: "app-configurator" }] });
|
|
2999
2998
|
}
|
|
3000
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
2999
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: AppFloatingConfigurator, decorators: [{
|
|
3001
3000
|
type: Component,
|
|
3002
|
-
args: [{ selector: 'app-floating-configurator', imports: [NgComponentOutlet,
|
|
3001
|
+
args: [{ selector: 'app-floating-configurator', imports: [NgComponentOutlet, FButtonDirective, StyleClassDirective, UiIconComponent, AppConfigurator], template: `
|
|
3003
3002
|
<div
|
|
3004
3003
|
class="floating-configurator fixed flex flex-col md:flex-row gap-2 md:gap-4 top-4 md:top-8 z-50"
|
|
3005
3004
|
>
|
|
@@ -3027,7 +3026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
3027
3026
|
>
|
|
3028
3027
|
<ui-icon pButtonIcon name="globe"></ui-icon>
|
|
3029
3028
|
</button>
|
|
3030
|
-
<ng-container
|
|
3029
|
+
<ng-container [ngComponentOutlet]="languageSelectorPanel" />
|
|
3031
3030
|
</div>
|
|
3032
3031
|
}
|
|
3033
3032
|
<div class="relative">
|