@flusys/ng-layout 5.4.0 → 5.5.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.
|
@@ -7,15 +7,15 @@ import { APP_CONFIG, DEFAULT_APP_NAME, DEFAULT_AUTHOR, isCompanyFeatureEnabled,
|
|
|
7
7
|
import { Subject, fromEvent, filter as filter$1 } from 'rxjs';
|
|
8
8
|
import * as i1 from '@angular/forms';
|
|
9
9
|
import { FormsModule } from '@angular/forms';
|
|
10
|
-
import * as i1$
|
|
11
|
-
import { Router, NavigationEnd, RouterModule } from '@angular/router';
|
|
10
|
+
import * as i1$1 from '@angular/router';
|
|
11
|
+
import { Router, NavigationEnd, isActive, RouterModule } from '@angular/router';
|
|
12
12
|
import { definePreset, updatePreset, updateSurfacePalette, $t } from '@primeuix/themes';
|
|
13
13
|
import Aura from '@primeuix/themes/aura';
|
|
14
14
|
import Lara from '@primeuix/themes/lara';
|
|
15
15
|
import Nora from '@primeuix/themes/nora';
|
|
16
16
|
import * as i2 from 'primeng/selectbutton';
|
|
17
17
|
import { SelectButtonModule } from 'primeng/selectbutton';
|
|
18
|
-
import * as
|
|
18
|
+
import * as i3 from 'primeng/button';
|
|
19
19
|
import { ButtonModule } from 'primeng/button';
|
|
20
20
|
import * as i2$1 from 'primeng/styleclass';
|
|
21
21
|
import { StyleClassModule } from 'primeng/styleclass';
|
|
@@ -26,7 +26,7 @@ import { RippleModule } from 'primeng/ripple';
|
|
|
26
26
|
import { MessageService } from 'primeng/api';
|
|
27
27
|
import * as i4 from 'primeng/select';
|
|
28
28
|
import { SelectModule } from 'primeng/select';
|
|
29
|
-
import * as i3 from 'primeng/iconfield';
|
|
29
|
+
import * as i3$1 from 'primeng/iconfield';
|
|
30
30
|
import * as i4$1 from 'primeng/inputicon';
|
|
31
31
|
import * as i5 from 'primeng/inputtext';
|
|
32
32
|
import Material from '@primeuix/themes/material';
|
|
@@ -148,10 +148,10 @@ class LayoutPersistenceService {
|
|
|
148
148
|
const { _version, ...cleanConfig } = config;
|
|
149
149
|
return cleanConfig;
|
|
150
150
|
}
|
|
151
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
152
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
152
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutPersistenceService, providedIn: 'root' });
|
|
153
153
|
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutPersistenceService, decorators: [{
|
|
155
155
|
type: Injectable,
|
|
156
156
|
args: [{ providedIn: 'root' }]
|
|
157
157
|
}] });
|
|
@@ -181,16 +181,23 @@ class LayoutService {
|
|
|
181
181
|
_layoutConfig = signal({
|
|
182
182
|
...this.DEFAULT_CONFIG,
|
|
183
183
|
...(this.memorable ? this.persistence.load() : null),
|
|
184
|
-
},
|
|
185
|
-
|
|
186
|
-
|
|
184
|
+
}, /* @ts-ignore */
|
|
185
|
+
...(ngDevMode ? [{ debugName: "_layoutConfig" }] : /* istanbul ignore next */ []));
|
|
186
|
+
_layoutState = signal(this.DEFAULT_STATE, /* @ts-ignore */
|
|
187
|
+
...(ngDevMode ? [{ debugName: "_layoutState" }] : /* istanbul ignore next */ []));
|
|
188
|
+
_transitionComplete = signal(false, /* @ts-ignore */
|
|
189
|
+
...(ngDevMode ? [{ debugName: "_transitionComplete" }] : /* istanbul ignore next */ []));
|
|
187
190
|
layoutConfig = this._layoutConfig.asReadonly();
|
|
188
191
|
layoutState = this._layoutState.asReadonly();
|
|
189
192
|
transitionComplete = this._transitionComplete.asReadonly();
|
|
190
|
-
_userProfile = signal(null,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
193
|
+
_userProfile = signal(null, /* @ts-ignore */
|
|
194
|
+
...(ngDevMode ? [{ debugName: "_userProfile" }] : /* istanbul ignore next */ []));
|
|
195
|
+
_companyProfile = signal(null, /* @ts-ignore */
|
|
196
|
+
...(ngDevMode ? [{ debugName: "_companyProfile" }] : /* istanbul ignore next */ []));
|
|
197
|
+
_rawMenu = signal([], /* @ts-ignore */
|
|
198
|
+
...(ngDevMode ? [{ debugName: "_rawMenu" }] : /* istanbul ignore next */ []));
|
|
199
|
+
_rawApps = signal([], /* @ts-ignore */
|
|
200
|
+
...(ngDevMode ? [{ debugName: "_rawApps" }] : /* istanbul ignore next */ []));
|
|
194
201
|
permissionValidator = inject(PermissionValidatorService);
|
|
195
202
|
userProfile = this._userProfile.asReadonly();
|
|
196
203
|
companyProfile = this._companyProfile.asReadonly();
|
|
@@ -199,26 +206,41 @@ class LayoutService {
|
|
|
199
206
|
isAppLogoSvg = this.appLogo.toLowerCase().endsWith('.svg');
|
|
200
207
|
authorName = this.appConfig?.author?.name ?? DEFAULT_AUTHOR.name;
|
|
201
208
|
authorUrl = this.appConfig?.author?.url ?? DEFAULT_AUTHOR.url;
|
|
202
|
-
menu = computed(() => filterMenuByPermissions(this._rawMenu(), this.permissionValidator.permissions()),
|
|
203
|
-
|
|
204
|
-
|
|
209
|
+
menu = computed(() => filterMenuByPermissions(this._rawMenu(), this.permissionValidator.permissions()), /* @ts-ignore */
|
|
210
|
+
...(ngDevMode ? [{ debugName: "menu" }] : /* istanbul ignore next */ []));
|
|
211
|
+
apps = computed(() => filterAppsByPermissions(this._rawApps(), this.permissionValidator.permissions()), /* @ts-ignore */
|
|
212
|
+
...(ngDevMode ? [{ debugName: "apps" }] : /* istanbul ignore next */ []));
|
|
213
|
+
hasApps = computed(() => this.apps().length > 0, /* @ts-ignore */
|
|
214
|
+
...(ngDevMode ? [{ debugName: "hasApps" }] : /* istanbul ignore next */ []));
|
|
205
215
|
isSidebarActive = computed(() => this._layoutState().overlayMenuActive ||
|
|
206
|
-
this._layoutState().staticMenuMobileActive,
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
216
|
+
this._layoutState().staticMenuMobileActive, /* @ts-ignore */
|
|
217
|
+
...(ngDevMode ? [{ debugName: "isSidebarActive" }] : /* istanbul ignore next */ []));
|
|
218
|
+
isDarkTheme = computed(() => this._layoutConfig().darkTheme, /* @ts-ignore */
|
|
219
|
+
...(ngDevMode ? [{ debugName: "isDarkTheme" }] : /* istanbul ignore next */ []));
|
|
220
|
+
isOverlay = computed(() => this._layoutConfig().menuMode === 'overlay', /* @ts-ignore */
|
|
221
|
+
...(ngDevMode ? [{ debugName: "isOverlay" }] : /* istanbul ignore next */ []));
|
|
222
|
+
isTopbar = computed(() => this._layoutConfig().menuMode === 'topbar', /* @ts-ignore */
|
|
223
|
+
...(ngDevMode ? [{ debugName: "isTopbar" }] : /* istanbul ignore next */ []));
|
|
224
|
+
userName = computed(() => this._userProfile()?.name ?? 'Guest', /* @ts-ignore */
|
|
225
|
+
...(ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []));
|
|
226
|
+
userEmail = computed(() => this._userProfile()?.email ?? '', /* @ts-ignore */
|
|
227
|
+
...(ngDevMode ? [{ debugName: "userEmail" }] : /* istanbul ignore next */ []));
|
|
228
|
+
userProfilePictureUrl = computed(() => this._userProfile()?.profilePictureUrl ?? null, /* @ts-ignore */
|
|
229
|
+
...(ngDevMode ? [{ debugName: "userProfilePictureUrl" }] : /* istanbul ignore next */ []));
|
|
230
|
+
companyLogoUrl = computed(() => this._companyProfile()?.logoUrl ?? null, /* @ts-ignore */
|
|
231
|
+
...(ngDevMode ? [{ debugName: "companyLogoUrl" }] : /* istanbul ignore next */ []));
|
|
232
|
+
isAuthenticated = computed(() => !!this._userProfile(), /* @ts-ignore */
|
|
233
|
+
...(ngDevMode ? [{ debugName: "isAuthenticated" }] : /* istanbul ignore next */ []));
|
|
215
234
|
companyName = computed(() => {
|
|
216
235
|
if (!this.appConfig || !isCompanyFeatureEnabled(this.appConfig))
|
|
217
236
|
return this.appName;
|
|
218
237
|
return this._companyProfile()?.name ?? this.appName;
|
|
219
|
-
},
|
|
220
|
-
|
|
221
|
-
|
|
238
|
+
}, /* @ts-ignore */
|
|
239
|
+
...(ngDevMode ? [{ debugName: "companyName" }] : /* istanbul ignore next */ []));
|
|
240
|
+
displayLogo = computed(() => this.companyLogoUrl() ?? this.appLogo, /* @ts-ignore */
|
|
241
|
+
...(ngDevMode ? [{ debugName: "displayLogo" }] : /* istanbul ignore next */ []));
|
|
242
|
+
isDisplayLogoSvg = computed(() => this.displayLogo().toLowerCase().endsWith('.svg'), /* @ts-ignore */
|
|
243
|
+
...(ngDevMode ? [{ debugName: "isDisplayLogoSvg" }] : /* istanbul ignore next */ []));
|
|
222
244
|
overlayOpen = new Subject();
|
|
223
245
|
menuSource = new Subject();
|
|
224
246
|
resetSource = new Subject();
|
|
@@ -333,10 +355,10 @@ class LayoutService {
|
|
|
333
355
|
clearApps() {
|
|
334
356
|
this._rawApps.set([]);
|
|
335
357
|
}
|
|
336
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
337
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
358
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
359
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutService, providedIn: 'root' });
|
|
338
360
|
}
|
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
361
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LayoutService, decorators: [{
|
|
340
362
|
type: Injectable,
|
|
341
363
|
args: [{ providedIn: 'root' }]
|
|
342
364
|
}], ctorParameters: () => [] });
|
|
@@ -348,8 +370,8 @@ class AppFooter {
|
|
|
348
370
|
isLogoSvg = this.layoutService.isAppLogoSvg;
|
|
349
371
|
authorName = this.layoutService.authorName;
|
|
350
372
|
authorUrl = this.layoutService.authorUrl;
|
|
351
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
352
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
373
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
374
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppFooter, isStandalone: true, selector: "app-footer", ngImport: i0, template: `<div class="layout-footer">
|
|
353
375
|
@if (displayLogo) {
|
|
354
376
|
@if (isLogoSvg) {
|
|
355
377
|
<inline-svg [src]="displayLogo" class="logo-image" />
|
|
@@ -369,7 +391,7 @@ class AppFooter {
|
|
|
369
391
|
</span>
|
|
370
392
|
</div>`, isInline: true, dependencies: [{ kind: "component", type: InlineSvgComponent, selector: "inline-svg", inputs: ["src"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
371
393
|
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppFooter, decorators: [{
|
|
373
395
|
type: Component,
|
|
374
396
|
args: [{
|
|
375
397
|
selector: 'app-footer',
|
|
@@ -483,7 +505,8 @@ class AppConfigurator {
|
|
|
483
505
|
platformId = inject(PLATFORM_ID);
|
|
484
506
|
layoutService = inject(LayoutService);
|
|
485
507
|
presets = Object.keys(presets);
|
|
486
|
-
showMenuModeButton = signal(!this.router.url.includes('auth'),
|
|
508
|
+
showMenuModeButton = signal(!this.router.url.includes('auth'), /* @ts-ignore */
|
|
509
|
+
...(ngDevMode ? [{ debugName: "showMenuModeButton" }] : /* istanbul ignore next */ []));
|
|
487
510
|
menuModeOptions = computed(() => {
|
|
488
511
|
const options = [
|
|
489
512
|
{
|
|
@@ -502,7 +525,8 @@ class AppConfigurator {
|
|
|
502
525
|
});
|
|
503
526
|
}
|
|
504
527
|
return options;
|
|
505
|
-
},
|
|
528
|
+
}, /* @ts-ignore */
|
|
529
|
+
...(ngDevMode ? [{ debugName: "menuModeOptions" }] : /* istanbul ignore next */ []));
|
|
506
530
|
constructor() {
|
|
507
531
|
if (isPlatformBrowser(this.platformId)) {
|
|
508
532
|
const preset = this.layoutService.layoutConfig().preset ?? 'Aura';
|
|
@@ -647,8 +671,10 @@ class AppConfigurator {
|
|
|
647
671
|
},
|
|
648
672
|
},
|
|
649
673
|
];
|
|
650
|
-
selectedPrimaryColor = computed(() => this.layoutService.layoutConfig().primary,
|
|
651
|
-
|
|
674
|
+
selectedPrimaryColor = computed(() => this.layoutService.layoutConfig().primary, /* @ts-ignore */
|
|
675
|
+
...(ngDevMode ? [{ debugName: "selectedPrimaryColor" }] : /* istanbul ignore next */ []));
|
|
676
|
+
selectedSurfaceColor = computed(() => this.layoutService.layoutConfig().surface, /* @ts-ignore */
|
|
677
|
+
...(ngDevMode ? [{ debugName: "selectedSurfaceColor" }] : /* istanbul ignore next */ []));
|
|
652
678
|
isSurfaceSelected(surfaceName) {
|
|
653
679
|
const selectedSurface = this.selectedSurfaceColor();
|
|
654
680
|
if (selectedSurface) {
|
|
@@ -659,8 +685,10 @@ class AppConfigurator {
|
|
|
659
685
|
? surfaceName === 'zinc'
|
|
660
686
|
: surfaceName === 'slate';
|
|
661
687
|
}
|
|
662
|
-
selectedPreset = computed(() => this.layoutService.layoutConfig().preset,
|
|
663
|
-
|
|
688
|
+
selectedPreset = computed(() => this.layoutService.layoutConfig().preset, /* @ts-ignore */
|
|
689
|
+
...(ngDevMode ? [{ debugName: "selectedPreset" }] : /* istanbul ignore next */ []));
|
|
690
|
+
menuMode = computed(() => this.layoutService.layoutConfig().menuMode, /* @ts-ignore */
|
|
691
|
+
...(ngDevMode ? [{ debugName: "menuMode" }] : /* istanbul ignore next */ []));
|
|
664
692
|
primaryColors = computed(() => {
|
|
665
693
|
const presetPalette = presets[this.layoutService.layoutConfig().preset].primitive;
|
|
666
694
|
const colors = [
|
|
@@ -689,7 +717,8 @@ class AppConfigurator {
|
|
|
689
717
|
});
|
|
690
718
|
});
|
|
691
719
|
return palettes;
|
|
692
|
-
},
|
|
720
|
+
}, /* @ts-ignore */
|
|
721
|
+
...(ngDevMode ? [{ debugName: "primaryColors" }] : /* istanbul ignore next */ []));
|
|
693
722
|
getPresetExt() {
|
|
694
723
|
const color = this.primaryColors().find(c => c.name === this.selectedPrimaryColor()) ?? {};
|
|
695
724
|
const preset = this.layoutService.layoutConfig().preset ?? 'Aura';
|
|
@@ -735,8 +764,8 @@ class AppConfigurator {
|
|
|
735
764
|
translate(key) {
|
|
736
765
|
return this.translateAdapter?.translate(key) ?? key;
|
|
737
766
|
}
|
|
738
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
739
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
767
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppConfigurator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
768
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.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-[0px_3px_5px_rgba(0,0,0,0.02),0px_0px_2px_rgba(0,0,0,0.05),0px_1px_4px_rgba(0,0,0,0.08)]" }, ngImport: i0, template: `
|
|
740
769
|
<div class="flex flex-col gap-4">
|
|
741
770
|
<div>
|
|
742
771
|
<span class="text-sm text-muted-color font-semibold">{{
|
|
@@ -809,9 +838,9 @@ class AppConfigurator {
|
|
|
809
838
|
</div>
|
|
810
839
|
}
|
|
811
840
|
</div>
|
|
812
|
-
`, isInline: true, dependencies: [{ 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: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i2.SelectButton, selector: "p-
|
|
841
|
+
`, isInline: true, dependencies: [{ 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: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i2.SelectButton, selector: "p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "styleClass", "ariaLabelledBy", "dataKey", "autofocus", "size", "fluid"], outputs: ["onOptionClick", "onChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
813
842
|
}
|
|
814
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
843
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppConfigurator, decorators: [{
|
|
815
844
|
type: Component,
|
|
816
845
|
args: [{
|
|
817
846
|
selector: 'app-configurator',
|
|
@@ -911,27 +940,30 @@ class AppFloatingConfigurator {
|
|
|
911
940
|
languageSelectorPanel = inject(LAYOUT_LANGUAGE_SELECTOR_PANEL, {
|
|
912
941
|
optional: true,
|
|
913
942
|
});
|
|
914
|
-
isDarkTheme = computed(() => this.layoutService.layoutConfig().darkTheme,
|
|
943
|
+
isDarkTheme = computed(() => this.layoutService.layoutConfig().darkTheme, /* @ts-ignore */
|
|
944
|
+
...(ngDevMode ? [{ debugName: "isDarkTheme" }] : /* istanbul ignore next */ []));
|
|
915
945
|
toggleDarkMode() {
|
|
916
946
|
const currentDarkTheme = this.layoutService.layoutConfig().darkTheme;
|
|
917
947
|
this.layoutService.updateLayoutConfig({ darkTheme: !currentDarkTheme });
|
|
918
948
|
}
|
|
919
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
920
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
949
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppFloatingConfigurator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
950
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppFloatingConfigurator, isStandalone: true, selector: "app-floating-configurator", ngImport: i0, template: `
|
|
921
951
|
<div
|
|
922
952
|
class="floating-configurator fixed flex flex-col md:flex-row gap-2 md:gap-4 top-4 md:top-8 z-50"
|
|
923
953
|
>
|
|
924
|
-
<
|
|
954
|
+
<button
|
|
955
|
+
pButton
|
|
925
956
|
type="button"
|
|
926
|
-
(
|
|
957
|
+
(click)="toggleDarkMode()"
|
|
927
958
|
[rounded]="true"
|
|
928
|
-
[icon]="isDarkTheme() ? 'pi pi-moon' : 'pi pi-sun'"
|
|
929
959
|
severity="secondary"
|
|
930
|
-
|
|
960
|
+
>
|
|
961
|
+
<span pButtonIcon [class]="isDarkTheme() ? 'pi pi-moon' : 'pi pi-sun'"></span>
|
|
962
|
+
</button>
|
|
931
963
|
@if (languageSelectorPanel) {
|
|
932
964
|
<div class="relative">
|
|
933
|
-
<
|
|
934
|
-
|
|
965
|
+
<button
|
|
966
|
+
pButton
|
|
935
967
|
pStyleClass="@next"
|
|
936
968
|
enterFromClass="hidden"
|
|
937
969
|
enterActiveClass="animate-scalein"
|
|
@@ -940,13 +972,15 @@ class AppFloatingConfigurator {
|
|
|
940
972
|
[hideOnOutsideClick]="true"
|
|
941
973
|
type="button"
|
|
942
974
|
rounded
|
|
943
|
-
|
|
975
|
+
>
|
|
976
|
+
<span pButtonIcon class="pi pi-globe"></span>
|
|
977
|
+
</button>
|
|
944
978
|
<ng-container *ngComponentOutlet="languageSelectorPanel" />
|
|
945
979
|
</div>
|
|
946
980
|
}
|
|
947
981
|
<div class="relative">
|
|
948
|
-
<
|
|
949
|
-
|
|
982
|
+
<button
|
|
983
|
+
pButton
|
|
950
984
|
pStyleClass="@next"
|
|
951
985
|
enterFromClass="hidden"
|
|
952
986
|
enterActiveClass="animate-scalein"
|
|
@@ -955,29 +989,33 @@ class AppFloatingConfigurator {
|
|
|
955
989
|
[hideOnOutsideClick]="true"
|
|
956
990
|
type="button"
|
|
957
991
|
rounded
|
|
958
|
-
|
|
992
|
+
>
|
|
993
|
+
<span pButtonIcon class="pi pi-palette"></span>
|
|
994
|
+
</button>
|
|
959
995
|
<app-configurator />
|
|
960
996
|
</div>
|
|
961
997
|
</div>
|
|
962
|
-
`, 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: "ngmodule", type: ButtonModule }, { kind: "
|
|
998
|
+
`, 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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i3.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "component", type: AppConfigurator, selector: "app-configurator" }] });
|
|
963
999
|
}
|
|
964
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppFloatingConfigurator, decorators: [{
|
|
965
1001
|
type: Component,
|
|
966
1002
|
args: [{ selector: 'app-floating-configurator', imports: [NgComponentOutlet, ButtonModule, StyleClassModule, AppConfigurator], template: `
|
|
967
1003
|
<div
|
|
968
1004
|
class="floating-configurator fixed flex flex-col md:flex-row gap-2 md:gap-4 top-4 md:top-8 z-50"
|
|
969
1005
|
>
|
|
970
|
-
<
|
|
1006
|
+
<button
|
|
1007
|
+
pButton
|
|
971
1008
|
type="button"
|
|
972
|
-
(
|
|
1009
|
+
(click)="toggleDarkMode()"
|
|
973
1010
|
[rounded]="true"
|
|
974
|
-
[icon]="isDarkTheme() ? 'pi pi-moon' : 'pi pi-sun'"
|
|
975
1011
|
severity="secondary"
|
|
976
|
-
|
|
1012
|
+
>
|
|
1013
|
+
<span pButtonIcon [class]="isDarkTheme() ? 'pi pi-moon' : 'pi pi-sun'"></span>
|
|
1014
|
+
</button>
|
|
977
1015
|
@if (languageSelectorPanel) {
|
|
978
1016
|
<div class="relative">
|
|
979
|
-
<
|
|
980
|
-
|
|
1017
|
+
<button
|
|
1018
|
+
pButton
|
|
981
1019
|
pStyleClass="@next"
|
|
982
1020
|
enterFromClass="hidden"
|
|
983
1021
|
enterActiveClass="animate-scalein"
|
|
@@ -986,13 +1024,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
986
1024
|
[hideOnOutsideClick]="true"
|
|
987
1025
|
type="button"
|
|
988
1026
|
rounded
|
|
989
|
-
|
|
1027
|
+
>
|
|
1028
|
+
<span pButtonIcon class="pi pi-globe"></span>
|
|
1029
|
+
</button>
|
|
990
1030
|
<ng-container *ngComponentOutlet="languageSelectorPanel" />
|
|
991
1031
|
</div>
|
|
992
1032
|
}
|
|
993
1033
|
<div class="relative">
|
|
994
|
-
<
|
|
995
|
-
|
|
1034
|
+
<button
|
|
1035
|
+
pButton
|
|
996
1036
|
pStyleClass="@next"
|
|
997
1037
|
enterFromClass="hidden"
|
|
998
1038
|
enterActiveClass="animate-scalein"
|
|
@@ -1001,7 +1041,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1001
1041
|
[hideOnOutsideClick]="true"
|
|
1002
1042
|
type="button"
|
|
1003
1043
|
rounded
|
|
1004
|
-
|
|
1044
|
+
>
|
|
1045
|
+
<span pButtonIcon class="pi pi-palette"></span>
|
|
1046
|
+
</button>
|
|
1005
1047
|
<app-configurator />
|
|
1006
1048
|
</div>
|
|
1007
1049
|
</div>
|
|
@@ -1010,27 +1052,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1010
1052
|
|
|
1011
1053
|
class AppMenuitem {
|
|
1012
1054
|
// Signal inputs
|
|
1013
|
-
item = input.required(
|
|
1014
|
-
|
|
1015
|
-
|
|
1055
|
+
item = input.required(/* @ts-ignore */
|
|
1056
|
+
...(ngDevMode ? [{ debugName: "item" }] : /* istanbul ignore next */ []));
|
|
1057
|
+
index = input.required(/* @ts-ignore */
|
|
1058
|
+
...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
1059
|
+
parentKey = input('', /* @ts-ignore */
|
|
1060
|
+
...(ngDevMode ? [{ debugName: "parentKey" }] : /* istanbul ignore next */ []));
|
|
1016
1061
|
// Injected services
|
|
1017
1062
|
router = inject(Router);
|
|
1018
1063
|
layoutService = inject(LayoutService);
|
|
1019
1064
|
destroyRef = inject(DestroyRef);
|
|
1020
1065
|
// View references
|
|
1021
|
-
parentLink = viewChild('parentLink',
|
|
1066
|
+
parentLink = viewChild('parentLink', /* @ts-ignore */
|
|
1067
|
+
...(ngDevMode ? [{ debugName: "parentLink" }] : /* istanbul ignore next */ []));
|
|
1022
1068
|
// State signals - private writable + public readonly pattern
|
|
1023
|
-
_active = signal(false,
|
|
1069
|
+
_active = signal(false, /* @ts-ignore */
|
|
1070
|
+
...(ngDevMode ? [{ debugName: "_active" }] : /* istanbul ignore next */ []));
|
|
1024
1071
|
active = this._active.asReadonly();
|
|
1025
1072
|
// Computed signals
|
|
1026
1073
|
key = computed(() => {
|
|
1027
1074
|
const parent = this.parentKey();
|
|
1028
1075
|
return parent ? `${parent}-${this.index()}` : String(this.index());
|
|
1029
|
-
},
|
|
1076
|
+
}, /* @ts-ignore */
|
|
1077
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
1030
1078
|
routerLink = computed(() => {
|
|
1031
1079
|
const menuItem = this.item();
|
|
1032
1080
|
return menuItem.routerLink ?? [];
|
|
1033
|
-
},
|
|
1081
|
+
}, /* @ts-ignore */
|
|
1082
|
+
...(ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []));
|
|
1034
1083
|
// Computed options for routerLinkActive - use 'exact' for root, 'subset' for others
|
|
1035
1084
|
routerLinkActiveOptions = computed(() => {
|
|
1036
1085
|
const link = this.routerLink();
|
|
@@ -1041,7 +1090,8 @@ class AppMenuitem {
|
|
|
1041
1090
|
matrixParams: 'ignored',
|
|
1042
1091
|
fragment: 'ignored',
|
|
1043
1092
|
};
|
|
1044
|
-
},
|
|
1093
|
+
}, /* @ts-ignore */
|
|
1094
|
+
...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : /* istanbul ignore next */ []));
|
|
1045
1095
|
constructor() {
|
|
1046
1096
|
// Subscribe to menu source changes
|
|
1047
1097
|
this.layoutService.menuSource$
|
|
@@ -1111,13 +1161,13 @@ class AppMenuitem {
|
|
|
1111
1161
|
// Use 'exact' for root path to avoid matching all routes
|
|
1112
1162
|
// Use 'subset' for all other paths to match child routes
|
|
1113
1163
|
const pathsMatch = link[0] === '/' ? 'exact' : 'subset';
|
|
1114
|
-
const
|
|
1164
|
+
const active = isActive(link[0], this.router, {
|
|
1115
1165
|
paths: pathsMatch,
|
|
1116
1166
|
queryParams: 'ignored',
|
|
1117
1167
|
matrixParams: 'ignored',
|
|
1118
1168
|
fragment: 'ignored',
|
|
1119
|
-
});
|
|
1120
|
-
if (
|
|
1169
|
+
})();
|
|
1170
|
+
if (active) {
|
|
1121
1171
|
this.layoutService.onMenuStateChange({
|
|
1122
1172
|
key: this.key(),
|
|
1123
1173
|
routeEvent: true,
|
|
@@ -1130,8 +1180,8 @@ class AppMenuitem {
|
|
|
1130
1180
|
}
|
|
1131
1181
|
this.layoutService.onMenuStateChange({ key: this.key() });
|
|
1132
1182
|
}
|
|
1133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1134
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1183
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppMenuitem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1184
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.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: `
|
|
1135
1185
|
<ng-container>
|
|
1136
1186
|
@if (item().children?.length) {
|
|
1137
1187
|
<a
|
|
@@ -1202,9 +1252,9 @@ class AppMenuitem {
|
|
|
1202
1252
|
</ul>
|
|
1203
1253
|
}
|
|
1204
1254
|
</ng-container>
|
|
1205
|
-
`, 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: IconComponent, selector: "lib-icon", inputs: ["icon", "iconType"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$
|
|
1255
|
+
`, 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: IconComponent, selector: "lib-icon", inputs: ["icon", "iconType"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i1$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i2$2.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1206
1256
|
}
|
|
1207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppMenuitem, decorators: [{
|
|
1208
1258
|
type: Component,
|
|
1209
1259
|
args: [{ selector: '[app-menuitem]', imports: [IconComponent, RouterModule, RippleModule, TranslatePipe], template: `
|
|
1210
1260
|
<ng-container>
|
|
@@ -1296,8 +1346,8 @@ class AppMenu {
|
|
|
1296
1346
|
* - Permission state changes (user permissions updated)
|
|
1297
1347
|
*/
|
|
1298
1348
|
menuItems = this.layoutService.menu;
|
|
1299
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1300
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1349
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1350
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppMenu, isStandalone: true, selector: "app-menu", ngImport: i0, template: `<div class="layout-menu">
|
|
1301
1351
|
<ul>
|
|
1302
1352
|
@for (
|
|
1303
1353
|
item of menuItems();
|
|
@@ -1309,7 +1359,7 @@ class AppMenu {
|
|
|
1309
1359
|
</ul>
|
|
1310
1360
|
</div>`, isInline: true, dependencies: [{ kind: "component", type: AppMenuitem, selector: "[app-menuitem]", inputs: ["item", "index", "parentKey"] }, { kind: "ngmodule", type: RouterModule }] });
|
|
1311
1361
|
}
|
|
1312
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1362
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppMenu, decorators: [{
|
|
1313
1363
|
type: Component,
|
|
1314
1364
|
args: [{
|
|
1315
1365
|
selector: 'app-menu',
|
|
@@ -1344,7 +1394,8 @@ class AppCompanyBranchSelector {
|
|
|
1344
1394
|
});
|
|
1345
1395
|
document = inject(DOCUMENT$1);
|
|
1346
1396
|
elementRef = inject(ElementRef);
|
|
1347
|
-
_isActive = signal(false,
|
|
1397
|
+
_isActive = signal(false, /* @ts-ignore */
|
|
1398
|
+
...(ngDevMode ? [{ debugName: "_isActive" }] : /* istanbul ignore next */ []));
|
|
1348
1399
|
isActive = this._isActive.asReadonly();
|
|
1349
1400
|
constructor() {
|
|
1350
1401
|
fromEvent(this.document, 'click')
|
|
@@ -1357,21 +1408,30 @@ class AppCompanyBranchSelector {
|
|
|
1357
1408
|
});
|
|
1358
1409
|
}
|
|
1359
1410
|
currentCompanyName = computed(() => this.authState?.currentCompanyInfo()?.name ??
|
|
1360
|
-
this.translate('layout.company.branch.selector.no.company'),
|
|
1361
|
-
|
|
1362
|
-
|
|
1411
|
+
this.translate('layout.company.branch.selector.no.company'), /* @ts-ignore */
|
|
1412
|
+
...(ngDevMode ? [{ debugName: "currentCompanyName" }] : /* istanbul ignore next */ []));
|
|
1413
|
+
currentBranchName = computed(() => this.authState?.currentBranchInfo()?.name ?? null, /* @ts-ignore */
|
|
1414
|
+
...(ngDevMode ? [{ debugName: "currentBranchName" }] : /* istanbul ignore next */ []));
|
|
1415
|
+
_companies = signal([], /* @ts-ignore */
|
|
1416
|
+
...(ngDevMode ? [{ debugName: "_companies" }] : /* istanbul ignore next */ []));
|
|
1363
1417
|
companies = this._companies.asReadonly();
|
|
1364
|
-
_branches = signal([],
|
|
1418
|
+
_branches = signal([], /* @ts-ignore */
|
|
1419
|
+
...(ngDevMode ? [{ debugName: "_branches" }] : /* istanbul ignore next */ []));
|
|
1365
1420
|
branches = this._branches.asReadonly();
|
|
1366
|
-
_selectedCompanyId = signal(null,
|
|
1421
|
+
_selectedCompanyId = signal(null, /* @ts-ignore */
|
|
1422
|
+
...(ngDevMode ? [{ debugName: "_selectedCompanyId" }] : /* istanbul ignore next */ []));
|
|
1367
1423
|
selectedCompanyId = this._selectedCompanyId.asReadonly();
|
|
1368
|
-
_selectedBranchId = signal(null,
|
|
1424
|
+
_selectedBranchId = signal(null, /* @ts-ignore */
|
|
1425
|
+
...(ngDevMode ? [{ debugName: "_selectedBranchId" }] : /* istanbul ignore next */ []));
|
|
1369
1426
|
selectedBranchId = this._selectedBranchId.asReadonly();
|
|
1370
|
-
_isLoadingCompanies = signal(false,
|
|
1427
|
+
_isLoadingCompanies = signal(false, /* @ts-ignore */
|
|
1428
|
+
...(ngDevMode ? [{ debugName: "_isLoadingCompanies" }] : /* istanbul ignore next */ []));
|
|
1371
1429
|
isLoadingCompanies = this._isLoadingCompanies.asReadonly();
|
|
1372
|
-
_isLoadingBranches = signal(false,
|
|
1430
|
+
_isLoadingBranches = signal(false, /* @ts-ignore */
|
|
1431
|
+
...(ngDevMode ? [{ debugName: "_isLoadingBranches" }] : /* istanbul ignore next */ []));
|
|
1373
1432
|
isLoadingBranches = this._isLoadingBranches.asReadonly();
|
|
1374
|
-
_isSwitching = signal(false,
|
|
1433
|
+
_isSwitching = signal(false, /* @ts-ignore */
|
|
1434
|
+
...(ngDevMode ? [{ debugName: "_isSwitching" }] : /* istanbul ignore next */ []));
|
|
1375
1435
|
isSwitching = this._isSwitching.asReadonly();
|
|
1376
1436
|
canSwitch = computed(() => {
|
|
1377
1437
|
const selectedCompany = this.selectedCompanyId();
|
|
@@ -1381,7 +1441,8 @@ class AppCompanyBranchSelector {
|
|
|
1381
1441
|
const currentBranchId = this.authState?.currentBranchInfo()?.id;
|
|
1382
1442
|
const selectedBranch = this.selectedBranchId();
|
|
1383
1443
|
return (selectedCompany !== currentCompanyId || selectedBranch !== currentBranchId);
|
|
1384
|
-
},
|
|
1444
|
+
}, /* @ts-ignore */
|
|
1445
|
+
...(ngDevMode ? [{ debugName: "canSwitch" }] : /* istanbul ignore next */ []));
|
|
1385
1446
|
onPanelToggle() {
|
|
1386
1447
|
this._isActive.update((v) => !v);
|
|
1387
1448
|
if (this.isActive() && this.companies().length === 0) {
|
|
@@ -1469,8 +1530,8 @@ class AppCompanyBranchSelector {
|
|
|
1469
1530
|
translate(key) {
|
|
1470
1531
|
return this.translateAdapter?.translate(key) ?? key;
|
|
1471
1532
|
}
|
|
1472
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1473
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1533
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppCompanyBranchSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1534
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppCompanyBranchSelector, isStandalone: true, selector: "app-company-branch-selector", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1474
1535
|
<button
|
|
1475
1536
|
type="button"
|
|
1476
1537
|
class="layout-topbar-action"
|
|
@@ -1540,20 +1601,25 @@ class AppCompanyBranchSelector {
|
|
|
1540
1601
|
|
|
1541
1602
|
<!-- Actions -->
|
|
1542
1603
|
<div class="flex gap-2 pt-2">
|
|
1543
|
-
<
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
(
|
|
1550
|
-
|
|
1604
|
+
<button
|
|
1605
|
+
pButton
|
|
1606
|
+
class="flex-1"
|
|
1607
|
+
[disabled]="!canSwitch() || isSwitching()"
|
|
1608
|
+
(click)="onSwitch()"
|
|
1609
|
+
>
|
|
1610
|
+
@if (isSwitching()) {
|
|
1611
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
1612
|
+
} @else {
|
|
1613
|
+
<span pButtonIcon class="pi pi-sync"></span>
|
|
1614
|
+
}
|
|
1615
|
+
<span pButtonLabel>{{ 'layout.company.branch.selector.switch.button' | translate }}</span>
|
|
1616
|
+
</button>
|
|
1551
1617
|
</div>
|
|
1552
1618
|
</div>
|
|
1553
1619
|
</div>
|
|
1554
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { 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: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "
|
|
1620
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { 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: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "directive", type: i3.ButtonLabel, selector: "[pButtonLabel]", inputs: ["pButtonLabelPT", "pButtonLabelUnstyled"] }, { kind: "directive", type: i3.ButtonIcon, selector: "[pButtonIcon]", inputs: ["pButtonIconPT", "pButtonUnstyled"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i4.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "multiple", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1555
1621
|
}
|
|
1556
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppCompanyBranchSelector, decorators: [{
|
|
1557
1623
|
type: Component,
|
|
1558
1624
|
args: [{
|
|
1559
1625
|
selector: 'app-company-branch-selector',
|
|
@@ -1635,14 +1701,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1635
1701
|
|
|
1636
1702
|
<!-- Actions -->
|
|
1637
1703
|
<div class="flex gap-2 pt-2">
|
|
1638
|
-
<
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
(
|
|
1645
|
-
|
|
1704
|
+
<button
|
|
1705
|
+
pButton
|
|
1706
|
+
class="flex-1"
|
|
1707
|
+
[disabled]="!canSwitch() || isSwitching()"
|
|
1708
|
+
(click)="onSwitch()"
|
|
1709
|
+
>
|
|
1710
|
+
@if (isSwitching()) {
|
|
1711
|
+
<span pButtonIcon class="pi pi-spinner pi-spin"></span>
|
|
1712
|
+
} @else {
|
|
1713
|
+
<span pButtonIcon class="pi pi-sync"></span>
|
|
1714
|
+
}
|
|
1715
|
+
<span pButtonLabel>{{ 'layout.company.branch.selector.switch.button' | translate }}</span>
|
|
1716
|
+
</button>
|
|
1646
1717
|
</div>
|
|
1647
1718
|
</div>
|
|
1648
1719
|
</div>
|
|
@@ -1655,7 +1726,8 @@ class AppLauncher {
|
|
|
1655
1726
|
document = inject(DOCUMENT$1);
|
|
1656
1727
|
elementRef = inject(ElementRef);
|
|
1657
1728
|
layoutService = inject(LayoutService);
|
|
1658
|
-
_isActive = signal(false,
|
|
1729
|
+
_isActive = signal(false, /* @ts-ignore */
|
|
1730
|
+
...(ngDevMode ? [{ debugName: "_isActive" }] : /* istanbul ignore next */ []));
|
|
1659
1731
|
isActive = this._isActive.asReadonly();
|
|
1660
1732
|
constructor() {
|
|
1661
1733
|
fromEvent(this.document, 'click')
|
|
@@ -1670,8 +1742,8 @@ class AppLauncher {
|
|
|
1670
1742
|
togglePanel() {
|
|
1671
1743
|
this._isActive.update((v) => !v);
|
|
1672
1744
|
}
|
|
1673
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1674
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1745
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppLauncher, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1746
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppLauncher, isStandalone: true, selector: "app-launcher", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1675
1747
|
<button
|
|
1676
1748
|
type="button"
|
|
1677
1749
|
class="layout-topbar-action"
|
|
@@ -1723,7 +1795,7 @@ class AppLauncher {
|
|
|
1723
1795
|
</div>
|
|
1724
1796
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "component", type: IconComponent, selector: "lib-icon", inputs: ["icon", "iconType"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1725
1797
|
}
|
|
1726
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1798
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppLauncher, decorators: [{
|
|
1727
1799
|
type: Component,
|
|
1728
1800
|
args: [{
|
|
1729
1801
|
selector: 'app-launcher',
|
|
@@ -1795,7 +1867,8 @@ class AppProfile {
|
|
|
1795
1867
|
appConfig = inject(APP_CONFIG, { optional: true });
|
|
1796
1868
|
document = inject(DOCUMENT$1);
|
|
1797
1869
|
elementRef = inject(ElementRef);
|
|
1798
|
-
_isActive = signal(false,
|
|
1870
|
+
_isActive = signal(false, /* @ts-ignore */
|
|
1871
|
+
...(ngDevMode ? [{ debugName: "_isActive" }] : /* istanbul ignore next */ []));
|
|
1799
1872
|
isActive = this._isActive.asReadonly();
|
|
1800
1873
|
constructor() {
|
|
1801
1874
|
fromEvent(this.document, 'click')
|
|
@@ -1811,10 +1884,14 @@ class AppProfile {
|
|
|
1811
1884
|
this._isActive.update((v) => !v);
|
|
1812
1885
|
}
|
|
1813
1886
|
userName = computed(() => this.authState?.loginUserData()?.name ??
|
|
1814
|
-
this.translate('layout.profile.guest'),
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1887
|
+
this.translate('layout.profile.guest'), /* @ts-ignore */
|
|
1888
|
+
...(ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []));
|
|
1889
|
+
userEmail = computed(() => this.authState?.loginUserData()?.email ?? '', /* @ts-ignore */
|
|
1890
|
+
...(ngDevMode ? [{ debugName: "userEmail" }] : /* istanbul ignore next */ []));
|
|
1891
|
+
profilePicture = computed(() => this.layoutService.userProfilePictureUrl() ?? '', /* @ts-ignore */
|
|
1892
|
+
...(ngDevMode ? [{ debugName: "profilePicture" }] : /* istanbul ignore next */ []));
|
|
1893
|
+
signUpEnabled = computed(() => this.appConfig ? isSignUpEnabled(this.appConfig) : false, /* @ts-ignore */
|
|
1894
|
+
...(ngDevMode ? [{ debugName: "signUpEnabled" }] : /* istanbul ignore next */ []));
|
|
1818
1895
|
logout() {
|
|
1819
1896
|
if (!this.authApi)
|
|
1820
1897
|
return;
|
|
@@ -1861,8 +1938,8 @@ class AppProfile {
|
|
|
1861
1938
|
translate(key, vars) {
|
|
1862
1939
|
return this.translateAdapter?.translate(key, vars) ?? key;
|
|
1863
1940
|
}
|
|
1864
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1865
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1941
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppProfile, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1942
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppProfile, isStandalone: true, selector: "app-profile", host: { classAttribute: "relative" }, ngImport: i0, template: `
|
|
1866
1943
|
<button
|
|
1867
1944
|
type="button"
|
|
1868
1945
|
class="layout-topbar-action"
|
|
@@ -1935,9 +2012,9 @@ class AppProfile {
|
|
|
1935
2012
|
</div>
|
|
1936
2013
|
</div>
|
|
1937
2014
|
</div>
|
|
1938
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$
|
|
2015
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i2$3.IsEmptyImageDirective, selector: "img", inputs: ["src"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
1939
2016
|
}
|
|
1940
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2017
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppProfile, decorators: [{
|
|
1941
2018
|
type: Component,
|
|
1942
2019
|
args: [{
|
|
1943
2020
|
selector: 'app-profile',
|
|
@@ -2028,14 +2105,22 @@ class AppSearchbar {
|
|
|
2028
2105
|
});
|
|
2029
2106
|
destroyRef = inject(DestroyRef);
|
|
2030
2107
|
document = inject(DOCUMENT$1);
|
|
2031
|
-
searchTerm = signal('',
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2108
|
+
searchTerm = signal('', /* @ts-ignore */
|
|
2109
|
+
...(ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []));
|
|
2110
|
+
suggestionsOpen = signal(false, /* @ts-ignore */
|
|
2111
|
+
...(ngDevMode ? [{ debugName: "suggestionsOpen" }] : /* istanbul ignore next */ []));
|
|
2112
|
+
suggestions = signal([], /* @ts-ignore */
|
|
2113
|
+
...(ngDevMode ? [{ debugName: "suggestions" }] : /* istanbul ignore next */ []));
|
|
2114
|
+
focusedIndex = signal(-1, /* @ts-ignore */
|
|
2115
|
+
...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
|
|
2116
|
+
isSearchExpanded = signal(false, /* @ts-ignore */
|
|
2117
|
+
...(ngDevMode ? [{ debugName: "isSearchExpanded" }] : /* istanbul ignore next */ []));
|
|
2118
|
+
isResponsive = signal(typeof window !== 'undefined' ? window.innerWidth < 768 : false, /* @ts-ignore */
|
|
2119
|
+
...(ngDevMode ? [{ debugName: "isResponsive" }] : /* istanbul ignore next */ []));
|
|
2120
|
+
searchWrapper = viewChild('searchWrapper', /* @ts-ignore */
|
|
2121
|
+
...(ngDevMode ? [{ debugName: "searchWrapper" }] : /* istanbul ignore next */ []));
|
|
2122
|
+
searchInput = viewChild('searchInput', /* @ts-ignore */
|
|
2123
|
+
...(ngDevMode ? [{ debugName: "searchInput" }] : /* istanbul ignore next */ []));
|
|
2039
2124
|
searchTimeout;
|
|
2040
2125
|
constructor() {
|
|
2041
2126
|
// Track responsive breakpoint (mobile < 768px)
|
|
@@ -2151,8 +2236,8 @@ class AppSearchbar {
|
|
|
2151
2236
|
this.searchAdapter.onSearch(query);
|
|
2152
2237
|
}
|
|
2153
2238
|
}
|
|
2154
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2155
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2239
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppSearchbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.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: `
|
|
2156
2241
|
<div
|
|
2157
2242
|
class="search-container h-full"
|
|
2158
2243
|
#searchWrapper
|
|
@@ -2259,9 +2344,9 @@ class AppSearchbar {
|
|
|
2259
2344
|
}
|
|
2260
2345
|
}
|
|
2261
2346
|
</div>
|
|
2262
|
-
`, 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(--border-radius);box-shadow:0 4px 20px #00000026;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(--border-radius);box-shadow:0 4px 16px #0000001f;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: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(--border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[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: "ngmodule", type: PrimeModule }, { kind: "directive", type:
|
|
2347
|
+
`, 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(--p-content-border-radius);box-shadow:0 4px 20px #00000026;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(--p-content-border-radius);box-shadow:0 4px 16px #0000001f;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: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(--p-content-border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"], dependencies: [{ kind: "ngmodule", type: AngularModule }, { 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: "ngmodule", type: PrimeModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["pButton", "pButtonPT", "pButtonUnstyled", "hostName", "text", "plain", "raised", "size", "outlined", "link", "rounded", "fluid", "variant", "iconOnly", "loading", "severity"] }, { kind: "component", type: i3$1.IconField, selector: "p-iconfield, p-icon-field", inputs: ["hostName", "iconPosition"] }, { kind: "component", type: i4$1.InputIcon, selector: "p-inputicon", inputs: ["hostName"] }, { kind: "directive", type: i5.InputText, selector: "[pInputText]", inputs: ["hostName", "pInputTextPT", "pInputTextUnstyled", "pSize", "variant", "fluid", "invalid"] }, { kind: "directive", type: i2$2.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
2263
2348
|
}
|
|
2264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2349
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppSearchbar, decorators: [{
|
|
2265
2350
|
type: Component,
|
|
2266
2351
|
args: [{ selector: 'app-searchbar', imports: [AngularModule, PrimeModule, TranslatePipe], template: `
|
|
2267
2352
|
<div
|
|
@@ -2370,7 +2455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2370
2455
|
}
|
|
2371
2456
|
}
|
|
2372
2457
|
</div>
|
|
2373
|
-
`, 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(--border-radius);box-shadow:0 4px 20px #00000026;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(--border-radius);box-shadow:0 4px 16px #0000001f;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: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(--border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"] }]
|
|
2458
|
+
`, 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(--p-content-border-radius);box-shadow:0 4px 20px #00000026;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(--p-content-border-radius);box-shadow:0 4px 16px #0000001f;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: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(--p-content-border-radius);margin-top:0}.suggestion-item{padding:.75rem}}\n"] }]
|
|
2374
2459
|
}], ctorParameters: () => [], propDecorators: { searchWrapper: [{ type: i0.ViewChild, args: ['searchWrapper', { isSignal: true }] }], searchInput: [{ type: i0.ViewChild, args: ['searchInput', { isSignal: true }] }] } });
|
|
2375
2460
|
|
|
2376
2461
|
class AppTopbar {
|
|
@@ -2387,10 +2472,14 @@ class AppTopbar {
|
|
|
2387
2472
|
searchAdapter = inject(LAYOUT_SEARCH_ADAPTER, {
|
|
2388
2473
|
optional: true,
|
|
2389
2474
|
});
|
|
2390
|
-
hasSearchAdapter = computed(() => !!this.searchAdapter,
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2475
|
+
hasSearchAdapter = computed(() => !!this.searchAdapter, /* @ts-ignore */
|
|
2476
|
+
...(ngDevMode ? [{ debugName: "hasSearchAdapter" }] : /* istanbul ignore next */ []));
|
|
2477
|
+
configContainer = viewChild('configContainer', /* @ts-ignore */
|
|
2478
|
+
...(ngDevMode ? [{ debugName: "configContainer" }] : /* istanbul ignore next */ []));
|
|
2479
|
+
navContainer = viewChild('navContainer', /* @ts-ignore */
|
|
2480
|
+
...(ngDevMode ? [{ debugName: "navContainer" }] : /* istanbul ignore next */ []));
|
|
2481
|
+
activePanel = signal(null, /* @ts-ignore */
|
|
2482
|
+
...(ngDevMode ? [{ debugName: "activePanel" }] : /* istanbul ignore next */ []));
|
|
2394
2483
|
constructor() {
|
|
2395
2484
|
fromEvent(this.document, 'click')
|
|
2396
2485
|
.pipe(takeUntilDestroyed(this.destroyRef), filter(() => this.activePanel() !== null))
|
|
@@ -2436,8 +2525,8 @@ class AppTopbar {
|
|
|
2436
2525
|
li.style.setProperty('--submenu-top', `${top}px`);
|
|
2437
2526
|
});
|
|
2438
2527
|
}
|
|
2439
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2440
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2528
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppTopbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2529
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: AppTopbar, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "configContainer", first: true, predicate: ["configContainer"], descendants: true, isSignal: true }, { propertyName: "navContainer", first: true, predicate: ["navContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `<div class="layout-topbar">
|
|
2441
2530
|
<div
|
|
2442
2531
|
class="layout-topbar-logo-container"
|
|
2443
2532
|
[class.layout-topbar-logo-container-desktop]="layoutService.isDesktop()"
|
|
@@ -2555,9 +2644,9 @@ class AppTopbar {
|
|
|
2555
2644
|
</div>
|
|
2556
2645
|
</div>
|
|
2557
2646
|
</div>
|
|
2558
|
-
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$
|
|
2647
|
+
</div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "ngmodule", type: StyleClassModule }, { kind: "directive", type: i2$1.StyleClass, selector: "[pStyleClass]", inputs: ["pStyleClass", "enterFromClass", "enterActiveClass", "enterToClass", "leaveFromClass", "leaveActiveClass", "leaveToClass", "hideOnOutsideClick", "toggleClass", "hideOnEscape", "hideOnResize", "resizeSelector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: InlineSvgComponent, selector: "inline-svg", inputs: ["src"] }, { kind: "component", type: AppConfigurator, selector: "app-configurator" }, { kind: "component", type: AppMenu, selector: "app-menu" }, { 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" }] });
|
|
2559
2648
|
}
|
|
2560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppTopbar, decorators: [{
|
|
2561
2650
|
type: Component,
|
|
2562
2651
|
args: [{
|
|
2563
2652
|
selector: 'app-topbar',
|
|
@@ -2697,14 +2786,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2697
2786
|
}], ctorParameters: () => [], propDecorators: { configContainer: [{ type: i0.ViewChild, args: ['configContainer', { isSignal: true }] }], navContainer: [{ type: i0.ViewChild, args: ['navContainer', { isSignal: true }] }] } });
|
|
2698
2787
|
|
|
2699
2788
|
class AppSidebar {
|
|
2700
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2701
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2789
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppSidebar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2790
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: AppSidebar, isStandalone: true, selector: "app-sidebar", ngImport: i0, template: `
|
|
2702
2791
|
<div class="layout-sidebar">
|
|
2703
2792
|
<app-menu />
|
|
2704
2793
|
</div>
|
|
2705
2794
|
`, isInline: true, dependencies: [{ kind: "component", type: AppMenu, selector: "app-menu" }] });
|
|
2706
2795
|
}
|
|
2707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2796
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppSidebar, decorators: [{
|
|
2708
2797
|
type: Component,
|
|
2709
2798
|
args: [{
|
|
2710
2799
|
selector: 'app-sidebar',
|
|
@@ -2785,9 +2874,10 @@ class AppLayout {
|
|
|
2785
2874
|
'layout-mobile-active': state.staticMenuMobileActive,
|
|
2786
2875
|
'layout-topbar-nav-hidden': !state.topbarMenuVisible && config.menuMode === 'topbar',
|
|
2787
2876
|
};
|
|
2788
|
-
},
|
|
2789
|
-
|
|
2790
|
-
static
|
|
2877
|
+
}, /* @ts-ignore */
|
|
2878
|
+
...(ngDevMode ? [{ debugName: "containerClass" }] : /* istanbul ignore next */ []));
|
|
2879
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppLayout, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2880
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: AppLayout, isStandalone: true, selector: "app-layout", ngImport: i0, template: `
|
|
2791
2881
|
<div class="layout-wrapper" [ngClass]="containerClass()">
|
|
2792
2882
|
<app-topbar></app-topbar>
|
|
2793
2883
|
<app-sidebar></app-sidebar>
|
|
@@ -2799,9 +2889,9 @@ class AppLayout {
|
|
|
2799
2889
|
</div>
|
|
2800
2890
|
<div class="layout-mask animate-fadein"></div>
|
|
2801
2891
|
</div>
|
|
2802
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AppTopbar, selector: "app-topbar" }, { kind: "component", type: AppSidebar, selector: "app-sidebar" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$
|
|
2892
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AppTopbar, selector: "app-topbar" }, { kind: "component", type: AppSidebar, selector: "app-sidebar" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: AppFooter, selector: "app-footer" }] });
|
|
2803
2893
|
}
|
|
2804
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AppLayout, decorators: [{
|
|
2805
2895
|
type: Component,
|
|
2806
2896
|
args: [{
|
|
2807
2897
|
selector: 'app-layout',
|