@gnggln/ng-ui-system 1.0.0-alpha.16 → 1.0.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base-layout/lib/components/base-layout/base-layout.component.d.ts +30 -2
- package/base-layout/lib/components/base-layout/base-layout.types.d.ts +14 -0
- package/base-layout/lib/components/base-layout/index.d.ts +1 -1
- package/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
- package/crud-table/lib/components/form-builder/types/schema.types.d.ts +20 -2
- package/esm2022/base-layout/lib/components/base-layout/base-layout.component.mjs +71 -16
- package/esm2022/base-layout/lib/components/base-layout/base-layout.types.mjs +1 -1
- package/esm2022/base-layout/lib/components/base-layout/index.mjs +1 -1
- package/esm2022/crud-table/lib/components/form-builder/form-builder.component.mjs +3 -3
- package/esm2022/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
- package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/form-builder/lib/components/form-builder/form-builder.component.mjs +3 -3
- package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +176 -39
- package/esm2022/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
- package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/form-builder-editor/lib/components/form-builder/form-builder.component.mjs +3 -3
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
- package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/lib/components/base-layout/base-layout.component.mjs +71 -16
- package/esm2022/lib/components/base-layout/base-layout.types.mjs +1 -1
- package/esm2022/lib/components/base-layout/index.mjs +1 -1
- package/esm2022/lib/components/form-builder/form-builder.component.mjs +3 -3
- package/esm2022/lib/components/form-builder/form-wizard.component.mjs +176 -39
- package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
- package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +70 -15
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +143 -114
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +143 -114
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +318 -152
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system.mjs +387 -166
- package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
- package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +14 -2
- package/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
- package/form-builder/lib/components/form-builder/types/schema.types.d.ts +20 -2
- package/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
- package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +20 -2
- package/lib/components/base-layout/base-layout.component.d.ts +30 -2
- package/lib/components/base-layout/base-layout.types.d.ts +14 -0
- package/lib/components/base-layout/index.d.ts +1 -1
- package/lib/components/form-builder/form-wizard.component.d.ts +14 -2
- package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
- package/lib/components/form-builder/types/schema.types.d.ts +20 -2
- package/package.json +13 -13
|
@@ -2,6 +2,12 @@ import { type OnInit } from '@angular/core';
|
|
|
2
2
|
import type { UiButtonAreaAlign, UiButtonDescriptor } from '../button/button.types';
|
|
3
3
|
import type { UiBackButtonConfig } from './base-layout.types';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/** Stato letto dalla rotta foglia per header/footer opzionali e `data-route-id`. */
|
|
6
|
+
interface UiBaseLayoutRouteSnapshotFlags {
|
|
7
|
+
breadcrumbOff: boolean;
|
|
8
|
+
footerNavOff: boolean;
|
|
9
|
+
routeId: string | null;
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Full-page layout component that combines a page header (breadcrumbs + title),
|
|
7
13
|
* a main content area via `<ng-content>`, and a sticky footer action bar
|
|
@@ -10,6 +16,14 @@ import * as i0 from "@angular/core";
|
|
|
10
16
|
* Optionally renders an automatic "back" button in the footer, derived from
|
|
11
17
|
* the breadcrumb trail (navigates to the parent breadcrumb).
|
|
12
18
|
*
|
|
19
|
+
* ### Route `data`
|
|
20
|
+
*
|
|
21
|
+
* Sulla rotta attiva (foglia) puoi impostare:
|
|
22
|
+
*
|
|
23
|
+
* - `breadcrumbOff: true` — nasconde `ui-page-header`
|
|
24
|
+
* - `footerNavOff: true` — nasconde `ui-base-layout__footer`
|
|
25
|
+
* - `id: string` — valorizza `data-route-id` sul contenitore `.ui-base-layout`
|
|
26
|
+
*
|
|
13
27
|
* @selector ui-base-layout
|
|
14
28
|
*
|
|
15
29
|
* @example
|
|
@@ -60,6 +74,15 @@ export declare class UiBaseLayoutComponent implements OnInit {
|
|
|
60
74
|
private readonly activatedRoute;
|
|
61
75
|
private readonly breadcrumbService;
|
|
62
76
|
private readonly destroyRef;
|
|
77
|
+
/**
|
|
78
|
+
* Flag derivati dalla catena attiva (`breadcrumbOff`, `footerNavOff`, `id`).
|
|
79
|
+
* Aggiornati a ogni `NavigationEnd`.
|
|
80
|
+
*/
|
|
81
|
+
protected readonly routeSnapshotFlags: import("@angular/core").WritableSignal<UiBaseLayoutRouteSnapshotFlags>;
|
|
82
|
+
/** Header visibile se abilitato da input e non disattivato da `data.breadcrumbOff`. */
|
|
83
|
+
protected readonly effectiveShowHeader: () => boolean;
|
|
84
|
+
/** Footer azioni visibile se ci sono azioni visibili e non disattivato da `data.footerNavOff`. */
|
|
85
|
+
protected readonly effectiveShowFooterNav: () => boolean;
|
|
63
86
|
/**
|
|
64
87
|
* Merged action list (back button + consumer actions).
|
|
65
88
|
* Computed on every change-detection check so it stays in sync
|
|
@@ -69,8 +92,12 @@ export declare class UiBaseLayoutComponent implements OnInit {
|
|
|
69
92
|
/** Whether the footer should render (at least one non-hidden action exists). */
|
|
70
93
|
get hasVisibleActions(): boolean;
|
|
71
94
|
ngOnInit(): void;
|
|
72
|
-
/** @internal
|
|
73
|
-
private
|
|
95
|
+
/** @internal Allinea breadcrumb service e flag layout alla rotta corrente. */
|
|
96
|
+
private syncFromActivatedRoute;
|
|
97
|
+
/** @internal Legge `breadcrumbOff`, `footerNavOff`, `id` dalla catena `pathFromRoot` / foglia. */
|
|
98
|
+
private refreshRouteSnapshotFlags;
|
|
99
|
+
/** @internal Percorre fino al `ActivatedRoute` foglia sotto il punto di iniezione. */
|
|
100
|
+
private deepestChildRoute;
|
|
74
101
|
/** @internal Determina se il back button deve essere nascosto per la rotta corrente. */
|
|
75
102
|
private shouldHideBackButton;
|
|
76
103
|
/** @internal Naviga al breadcrumb genitore o esegue il fallback alla home route. */
|
|
@@ -78,3 +105,4 @@ export declare class UiBaseLayoutComponent implements OnInit {
|
|
|
78
105
|
static ɵfac: i0.ɵɵFactoryDeclaration<UiBaseLayoutComponent, never>;
|
|
79
106
|
static ɵcmp: i0.ɵɵComponentDeclaration<UiBaseLayoutComponent, "ui-base-layout", never, { "showHeader": { "alias": "showHeader"; "required": false; }; "title": { "alias": "title"; "required": false; }; "homeRoute": { "alias": "homeRoute"; "required": false; }; "showHome": { "alias": "showHome"; "required": false; }; "updateDocumentTitle": { "alias": "updateDocumentTitle"; "required": false; }; "titleSuffix": { "alias": "titleSuffix"; "required": false; }; "showBackButton": { "alias": "showBackButton"; "required": false; }; "backButtonConfig": { "alias": "backButtonConfig"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "footerAlign": { "alias": "footerAlign"; "required": false; }; "footerGap": { "alias": "footerGap"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
80
107
|
}
|
|
108
|
+
export {};
|
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { UiButtonDescriptor, UiButtonAreaAlign } from '../button/button.types';
|
|
6
6
|
export { UiButtonDescriptor, UiButtonAreaAlign };
|
|
7
|
+
/**
|
|
8
|
+
* Chiavi opzionali di `data` sulla rotta attiva riconosciute da `UiBaseLayoutComponent`.
|
|
9
|
+
*
|
|
10
|
+
* - `id`: stessa risalita usata dai breadcrumb (dal segmento foglia verso il root: primo `id` trovato).
|
|
11
|
+
* - `breadcrumbOff` / `footerNavOff`: se `true` su **qualsiasi** segmento in `pathFromRoot`, l’area viene nascosta.
|
|
12
|
+
*/
|
|
13
|
+
export interface UiBaseLayoutRouteData {
|
|
14
|
+
/** Identificativo stabile della rotta; reso come `data-route-id` sul wrapper `.ui-base-layout`. */
|
|
15
|
+
id?: string;
|
|
16
|
+
/** Se `true`, non viene renderizzato `ui-page-header` (breadcrumb e titolo). */
|
|
17
|
+
breadcrumbOff?: boolean;
|
|
18
|
+
/** Se `true`, non viene renderizzata la barra `ui-base-layout__footer` (azioni / indietro). */
|
|
19
|
+
footerNavOff?: boolean;
|
|
20
|
+
}
|
|
7
21
|
/**
|
|
8
22
|
* Configuration for the automatic "back" button rendered in the footer action area.
|
|
9
23
|
*
|
|
@@ -2,11 +2,10 @@ import { EventEmitter } from '@angular/core';
|
|
|
2
2
|
import { UiFormErrorDetail } from '../../types/validation.types';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Riepilogo stato validazione del form.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* per consentire lo scroll-to-field con highlight nel form builder.
|
|
7
|
+
* Con errori: indicatore + dropdown hover/click per il dettaglio e navigazione ai campi.
|
|
8
|
+
* Senza errori: messaggio di stato positivo fisso (no dropdown), UI prevedibile.
|
|
10
9
|
*
|
|
11
10
|
* @selector ui-form-error-summary
|
|
12
11
|
*/
|
|
@@ -15,14 +14,18 @@ export declare class UiFormErrorSummaryComponent {
|
|
|
15
14
|
errors: UiFormErrorDetail[];
|
|
16
15
|
/** Conteggio totale degli errori (somma di tutti i messaggi). */
|
|
17
16
|
totalErrorCount: number;
|
|
17
|
+
/** Testo mostrato quando non ci sono errori. */
|
|
18
|
+
validMessage: string;
|
|
18
19
|
/** Emesso quando l'utente clicca su un errore per navigare al campo. */
|
|
19
20
|
fieldClick: EventEmitter<string>;
|
|
20
|
-
/** @internal Stato del dropdown. */
|
|
21
|
+
/** @internal Stato del dropdown (solo con errori). */
|
|
21
22
|
showDropdown: boolean;
|
|
23
|
+
/** True se il form ha almeno un errore da mostrare nel summary. */
|
|
24
|
+
get hasErrors(): boolean;
|
|
22
25
|
/** Conteggio da visualizzare: usa totalErrorCount se fornito, altrimenti conta dai dettagli. */
|
|
23
26
|
get displayCount(): number;
|
|
24
27
|
/** @internal Gestione click su errore. */
|
|
25
28
|
onFieldClick(fieldKey: string): void;
|
|
26
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<UiFormErrorSummaryComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UiFormErrorSummaryComponent, "ui-form-error-summary", never, { "errors": { "alias": "errors"; "required": false; }; "totalErrorCount": { "alias": "totalErrorCount"; "required": false; }; }, { "fieldClick": "fieldClick"; }, never, never, true, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UiFormErrorSummaryComponent, "ui-form-error-summary", never, { "errors": { "alias": "errors"; "required": false; }; "totalErrorCount": { "alias": "totalErrorCount"; "required": false; }; "validMessage": { "alias": "validMessage"; "required": false; }; }, { "fieldClick": "fieldClick"; }, never, never, true, never>;
|
|
28
31
|
}
|
|
@@ -147,8 +147,15 @@ export interface UiFormBuilderConfig {
|
|
|
147
147
|
columns?: number;
|
|
148
148
|
/** Mostra i pulsanti di azione (submit/reset). @default true */
|
|
149
149
|
showButtons?: boolean;
|
|
150
|
-
/** Nasconde l'
|
|
150
|
+
/** Nasconde solo l'area pulsanti del footer (`ui-button-area`), non il summary errori. */
|
|
151
151
|
hideFooter?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Nasconde del tutto il blocco `ui-form-error-summary`.
|
|
154
|
+
* Se assente/falsy il summary è visibile anche senza errori (stato ok prevedibile).
|
|
155
|
+
*/
|
|
156
|
+
hideErrorSummary?: boolean;
|
|
157
|
+
/** Messaggio nel summary quando il form non ha errori (stato ok). */
|
|
158
|
+
errorSummaryValidMessage?: string;
|
|
152
159
|
/** Label personalizzate per i pulsanti. */
|
|
153
160
|
buttonLabels?: {
|
|
154
161
|
submit?: string;
|
|
@@ -168,7 +175,7 @@ export interface UiFormBuilderConfig {
|
|
|
168
175
|
* showProgress: true,
|
|
169
176
|
* progressStyle: 'steps',
|
|
170
177
|
* allowBackNavigation: true,
|
|
171
|
-
* buttonLabels: {
|
|
178
|
+
* buttonLabels: { submit: 'Salva e prosegui', previous: 'Indietro', finish: 'Completa' },
|
|
172
179
|
* };
|
|
173
180
|
* ```
|
|
174
181
|
*/
|
|
@@ -193,10 +200,21 @@ export interface UiWizardConfig {
|
|
|
193
200
|
showNavigationButtons?: boolean;
|
|
194
201
|
/** Posizione dei pulsanti di navigazione. @default 'bottom' */
|
|
195
202
|
navigationPosition?: 'top' | 'bottom' | 'both';
|
|
203
|
+
/**
|
|
204
|
+
* Consente di saltare a uno step già completato cliccando bullet o titolo step
|
|
205
|
+
* quando `progressStyle` è `'steps'`. @default true
|
|
206
|
+
*/
|
|
207
|
+
allowStepIndicatorNavigation?: boolean;
|
|
196
208
|
/** Label personalizzate per i pulsanti del wizard. */
|
|
197
209
|
buttonLabels?: {
|
|
198
210
|
previous?: string;
|
|
211
|
+
/** Label pulsante avanti; se assente si usa `submit`. */
|
|
199
212
|
next?: string;
|
|
213
|
+
/**
|
|
214
|
+
* Alias di convenienza (come `submit` sul form builder) per il pulsante «avanti» / salva e prosegui.
|
|
215
|
+
* Usato solo se `next` non è valorizzato.
|
|
216
|
+
*/
|
|
217
|
+
submit?: string;
|
|
200
218
|
finish?: string;
|
|
201
219
|
save?: string;
|
|
202
220
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject, ViewEncapsulation, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject, signal, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
4
4
|
import { debounceTime, filter } from 'rxjs/operators';
|
|
@@ -14,6 +14,14 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
* Optionally renders an automatic "back" button in the footer, derived from
|
|
15
15
|
* the breadcrumb trail (navigates to the parent breadcrumb).
|
|
16
16
|
*
|
|
17
|
+
* ### Route `data`
|
|
18
|
+
*
|
|
19
|
+
* Sulla rotta attiva (foglia) puoi impostare:
|
|
20
|
+
*
|
|
21
|
+
* - `breadcrumbOff: true` — nasconde `ui-page-header`
|
|
22
|
+
* - `footerNavOff: true` — nasconde `ui-base-layout__footer`
|
|
23
|
+
* - `id: string` — valorizza `data-route-id` sul contenitore `.ui-base-layout`
|
|
24
|
+
*
|
|
17
25
|
* @selector ui-base-layout
|
|
18
26
|
*
|
|
19
27
|
* @example
|
|
@@ -65,6 +73,19 @@ export class UiBaseLayoutComponent {
|
|
|
65
73
|
this.activatedRoute = inject(ActivatedRoute);
|
|
66
74
|
this.breadcrumbService = inject(UiBreadcrumbService);
|
|
67
75
|
this.destroyRef = inject(DestroyRef);
|
|
76
|
+
/**
|
|
77
|
+
* Flag derivati dalla catena attiva (`breadcrumbOff`, `footerNavOff`, `id`).
|
|
78
|
+
* Aggiornati a ogni `NavigationEnd`.
|
|
79
|
+
*/
|
|
80
|
+
this.routeSnapshotFlags = signal({
|
|
81
|
+
breadcrumbOff: false,
|
|
82
|
+
footerNavOff: false,
|
|
83
|
+
routeId: null,
|
|
84
|
+
});
|
|
85
|
+
/** Header visibile se abilitato da input e non disattivato da `data.breadcrumbOff`. */
|
|
86
|
+
this.effectiveShowHeader = () => this.showHeader && !this.routeSnapshotFlags().breadcrumbOff;
|
|
87
|
+
/** Footer azioni visibile se ci sono azioni visibili e non disattivato da `data.footerNavOff`. */
|
|
88
|
+
this.effectiveShowFooterNav = () => !this.routeSnapshotFlags().footerNavOff && this.hasVisibleActions;
|
|
68
89
|
}
|
|
69
90
|
/**
|
|
70
91
|
* Merged action list (back button + consumer actions).
|
|
@@ -92,25 +113,59 @@ export class UiBaseLayoutComponent {
|
|
|
92
113
|
return this.mergedActions.some((a) => !a.hidden);
|
|
93
114
|
}
|
|
94
115
|
ngOnInit() {
|
|
95
|
-
this.
|
|
116
|
+
this.syncFromActivatedRoute();
|
|
96
117
|
this.router.events
|
|
97
118
|
.pipe(filter((event) => event instanceof NavigationEnd), debounceTime(50), takeUntilDestroyed(this.destroyRef))
|
|
98
|
-
.subscribe(() => this.
|
|
119
|
+
.subscribe(() => this.syncFromActivatedRoute());
|
|
99
120
|
}
|
|
100
|
-
/** @internal
|
|
101
|
-
|
|
121
|
+
/** @internal Allinea breadcrumb service e flag layout alla rotta corrente. */
|
|
122
|
+
syncFromActivatedRoute() {
|
|
123
|
+
this.refreshRouteSnapshotFlags();
|
|
102
124
|
this.breadcrumbService.getBreadcrumbsForRoute(this.activatedRoute);
|
|
103
125
|
}
|
|
126
|
+
/** @internal Legge `breadcrumbOff`, `footerNavOff`, `id` dalla catena `pathFromRoot` / foglia. */
|
|
127
|
+
refreshRouteSnapshotFlags() {
|
|
128
|
+
const deepest = this.deepestChildRoute(this.activatedRoute);
|
|
129
|
+
let breadcrumbOff = false;
|
|
130
|
+
let footerNavOff = false;
|
|
131
|
+
for (const seg of deepest.pathFromRoot) {
|
|
132
|
+
const d = seg.snapshot.data;
|
|
133
|
+
if (!d)
|
|
134
|
+
continue;
|
|
135
|
+
// biome-ignore lint/complexity/useLiteralKeys: chiavi documentate in UiBaseLayoutRouteData
|
|
136
|
+
if (d['breadcrumbOff'] === true)
|
|
137
|
+
breadcrumbOff = true;
|
|
138
|
+
// biome-ignore lint/complexity/useLiteralKeys: chiavi documentate in UiBaseLayoutRouteData
|
|
139
|
+
if (d['footerNavOff'] === true)
|
|
140
|
+
footerNavOff = true;
|
|
141
|
+
}
|
|
142
|
+
let routeId = null;
|
|
143
|
+
let cursor = deepest;
|
|
144
|
+
while (cursor) {
|
|
145
|
+
const raw = cursor.snapshot.data?.['id'];
|
|
146
|
+
if (typeof raw === 'string' && raw.length > 0) {
|
|
147
|
+
routeId = raw;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
cursor = cursor.parent;
|
|
151
|
+
}
|
|
152
|
+
this.routeSnapshotFlags.set({ breadcrumbOff, footerNavOff, routeId });
|
|
153
|
+
}
|
|
154
|
+
/** @internal Percorre fino al `ActivatedRoute` foglia sotto il punto di iniezione. */
|
|
155
|
+
deepestChildRoute(route) {
|
|
156
|
+
let deepest = route;
|
|
157
|
+
while (deepest.firstChild) {
|
|
158
|
+
deepest = deepest.firstChild;
|
|
159
|
+
}
|
|
160
|
+
return deepest;
|
|
161
|
+
}
|
|
104
162
|
/** @internal Determina se il back button deve essere nascosto per la rotta corrente. */
|
|
105
163
|
shouldHideBackButton() {
|
|
106
164
|
const currentPath = this.router.url.split('?')[0].split('#')[0];
|
|
107
165
|
if (currentPath === this.homeRoute) {
|
|
108
166
|
return true;
|
|
109
167
|
}
|
|
110
|
-
|
|
111
|
-
while (deepestRoute.firstChild) {
|
|
112
|
-
deepestRoute = deepestRoute.firstChild;
|
|
113
|
-
}
|
|
168
|
+
const deepestRoute = this.deepestChildRoute(this.activatedRoute);
|
|
114
169
|
// biome-ignore lint/complexity/useLiteralKeys: <explanation>
|
|
115
170
|
if (deepestRoute.snapshot.data?.['hideBackButton'] === true) {
|
|
116
171
|
return true;
|
|
@@ -123,8 +178,8 @@ export class UiBaseLayoutComponent {
|
|
|
123
178
|
}
|
|
124
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
125
180
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiBaseLayoutComponent, isStandalone: true, selector: "ui-base-layout", inputs: { showHeader: "showHeader", title: "title", homeRoute: "homeRoute", showHome: "showHome", updateDocumentTitle: "updateDocumentTitle", titleSuffix: "titleSuffix", showBackButton: "showBackButton", backButtonConfig: "backButtonConfig", actions: "actions", footerAlign: "footerAlign", footerGap: "footerGap" }, host: { classAttribute: "ui-base-layout-host" }, ngImport: i0, template: `
|
|
126
|
-
<div class="ui-base-layout">
|
|
127
|
-
@if (
|
|
181
|
+
<div class="ui-base-layout" [attr.data-route-id]="routeSnapshotFlags().routeId">
|
|
182
|
+
@if (effectiveShowHeader()) {
|
|
128
183
|
<ui-page-header
|
|
129
184
|
[title]="title"
|
|
130
185
|
[homeRoute]="homeRoute"
|
|
@@ -138,7 +193,7 @@ export class UiBaseLayoutComponent {
|
|
|
138
193
|
<ng-content />
|
|
139
194
|
</main>
|
|
140
195
|
|
|
141
|
-
@if (
|
|
196
|
+
@if (effectiveShowFooterNav()) {
|
|
142
197
|
<aside
|
|
143
198
|
class="ui-base-layout__footer"
|
|
144
199
|
aria-label="Page actions"
|
|
@@ -160,8 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
160
215
|
args: [{ selector: 'ui-base-layout', standalone: true, imports: [UiPageHeaderComponent, UiButtonAreaComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
161
216
|
class: 'ui-base-layout-host',
|
|
162
217
|
}, template: `
|
|
163
|
-
<div class="ui-base-layout">
|
|
164
|
-
@if (
|
|
218
|
+
<div class="ui-base-layout" [attr.data-route-id]="routeSnapshotFlags().routeId">
|
|
219
|
+
@if (effectiveShowHeader()) {
|
|
165
220
|
<ui-page-header
|
|
166
221
|
[title]="title"
|
|
167
222
|
[homeRoute]="homeRoute"
|
|
@@ -175,7 +230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
175
230
|
<ng-content />
|
|
176
231
|
</main>
|
|
177
232
|
|
|
178
|
-
@if (
|
|
233
|
+
@if (effectiveShowFooterNav()) {
|
|
179
234
|
<aside
|
|
180
235
|
class="ui-base-layout__footer"
|
|
181
236
|
aria-label="Page actions"
|
|
@@ -214,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
214
269
|
}], footerGap: [{
|
|
215
270
|
type: Input
|
|
216
271
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRzdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUE0Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQTNDbEM7UUE0Q0UsZ0VBQWdFO1FBQ3ZELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFM0IsaUZBQWlGO1FBQ3hFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsK0NBQStDO1FBQ3RDLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFekIsZ0VBQWdFO1FBQ3ZELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFekIsMkRBQTJEO1FBQ2xELHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUVyQywyQ0FBMkM7UUFDbEMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7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O1FBQzdELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELG9GQUFvRjtJQUM1RSxZQUFZO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBL0dVLHFCQUFxQjttR0FBckIscUJBQXFCLHViQWxDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQscWxCQXJDUyxxQkFBcUIsNklBQUUscUJBQXFCOzs0RkF3QzNDLHFCQUFxQjtrQkEzQ2pDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsbUJBQ3RDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjtxQkFDN0IsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs4QkFLUSxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgSW5wdXQsXHJcbiAgaW5qZWN0LFxyXG4gIHR5cGUgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgVWlCdXR0b25BcmVhQWxpZ24sIFVpQnV0dG9uRGVzY3JpcHRvciB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24udHlwZXMnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkFyZWFDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHsgVWlCYWNrQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9iYXNlLWxheW91dC50eXBlcyc7XHJcblxyXG4vKipcclxuICogRnVsbC1wYWdlIGxheW91dCBjb21wb25lbnQgdGhhdCBjb21iaW5lcyBhIHBhZ2UgaGVhZGVyIChicmVhZGNydW1icyArIHRpdGxlKSxcclxuICogYSBtYWluIGNvbnRlbnQgYXJlYSB2aWEgYDxuZy1jb250ZW50PmAsIGFuZCBhIHN0aWNreSBmb290ZXIgYWN0aW9uIGJhclxyXG4gKiBwb3dlcmVkIGJ5IGBVaUJ1dHRvbkFyZWFDb21wb25lbnRgLlxyXG4gKlxyXG4gKiBPcHRpb25hbGx5IHJlbmRlcnMgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBpbiB0aGUgZm9vdGVyLCBkZXJpdmVkIGZyb21cclxuICogdGhlIGJyZWFkY3J1bWIgdHJhaWwgKG5hdmlnYXRlcyB0byB0aGUgcGFyZW50IGJyZWFkY3J1bWIpLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktYmFzZS1sYXlvdXRcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dWktYmFzZS1sYXlvdXQgW2FjdGlvbnNdPVwicGFnZUFjdGlvbnNcIiBmb290ZXJBbGlnbj1cImVuZFwiPlxyXG4gKiAgIDxwPllvdXIgcGFnZSBjb250ZW50IGhlcmU8L3A+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDwhLS0gV2l0aCBiYWNrIGJ1dHRvbiBhbmQgY3VzdG9tIHRpdGxlIC0tPlxyXG4gKiA8dWktYmFzZS1sYXlvdXRcclxuICogICB0aXRsZT1cIkRldHRhZ2xpbyB1dGVudGVcIlxyXG4gKiAgIFtzaG93QmFja0J1dHRvbl09XCJ0cnVlXCJcclxuICogICBbYWN0aW9uc109XCJbXHJcbiAqICAgICB7IGlkOiAnc2F2ZScsIGxhYmVsOiAnU2FsdmEnLCB2YXJpYW50OiAncHJpbWFyeScsIGljb246ICdzYXZlJywgYWN0aW9uOiBzYXZlIH0sXHJcbiAqICAgXVwiXHJcbiAqID5cclxuICogICA8YXBwLXVzZXItZGV0YWlsIC8+XHJcbiAqIDwvdWktYmFzZS1sYXlvdXQ+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1iYXNlLWxheW91dCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbVWlQYWdlSGVhZGVyQ29tcG9uZW50LCBVaUJ1dHRvbkFyZWFDb21wb25lbnRdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICd1aS1iYXNlLWxheW91dC1ob3N0JyxcclxuICB9LFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidWktYmFzZS1sYXlvdXRcIj5cclxuICAgICAgQGlmIChzaG93SGVhZGVyKSB7XHJcbiAgICAgICAgPHVpLXBhZ2UtaGVhZGVyXHJcbiAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgW2hvbWVSb3V0ZV09XCJob21lUm91dGVcIlxyXG4gICAgICAgICAgW3Nob3dIb21lXT1cInNob3dIb21lXCJcclxuICAgICAgICAgIFt1cGRhdGVEb2N1bWVudFRpdGxlXT1cInVwZGF0ZURvY3VtZW50VGl0bGVcIlxyXG4gICAgICAgICAgW3RpdGxlU3VmZml4XT1cInRpdGxlU3VmZml4XCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bWFpbiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0X19jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9tYWluPlxyXG5cclxuICAgICAgQGlmIChoYXNWaXNpYmxlQWN0aW9ucykge1xyXG4gICAgICAgIDxhc2lkZVxyXG4gICAgICAgICAgY2xhc3M9XCJ1aS1iYXNlLWxheW91dF9fZm9vdGVyXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdlIGFjdGlvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx1aS1idXR0b24tYXJlYVxyXG4gICAgICAgICAgICBbYnV0dG9uc109XCJtZXJnZWRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW2FsaWduXT1cImZvb3RlckFsaWduXCJcclxuICAgICAgICAgICAgW2dhcF09XCJmb290ZXJHYXBcIlxyXG4gICAgICAgICAgICBbc3RhY2tPbk1vYmlsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgYXJpYUxhYmVsPVwiUGFnZSBhY3Rpb25zXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9hc2lkZT5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vYmFzZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlCYXNlTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBwYWdlIGhlYWRlciAoYnJlYWRjcnVtYnMgKyB0aXRsZSkuICovXHJcbiAgQElucHV0KCkgc2hvd0hlYWRlciA9IHRydWU7XHJcblxyXG4gIC8qKiBPdmVycmlkZSB0aGUgYXV0by1kZXRlY3RlZCBwYWdlIHRpdGxlLiBQYXNzZWQgdGhyb3VnaCB0byBgdWktcGFnZS1oZWFkZXJgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XHJcblxyXG4gIC8qKiBSb3V0ZSBwYXRoIGZvciB0aGUgSG9tZSBicmVhZGNydW1iIGxpbmsuICovXHJcbiAgQElucHV0KCkgaG9tZVJvdXRlID0gJy8nO1xyXG5cclxuICAvKiogV2hldGhlciB0byBkaXNwbGF5IHRoZSBIb21lIGxpbmsgaW4gdGhlIGJyZWFkY3J1bWIgdHJhaWwuICovXHJcbiAgQElucHV0KCkgc2hvd0hvbWUgPSB0cnVlO1xyXG5cclxuICAvKiogV2hlbiBgdHJ1ZWAsIHVwZGF0ZXMgYGRvY3VtZW50LnRpdGxlYCBvbiBuYXZpZ2F0aW9uLiAqL1xyXG4gIEBJbnB1dCgpIHVwZGF0ZURvY3VtZW50VGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFN1ZmZpeCBhcHBlbmRlZCB0byBgZG9jdW1lbnQudGl0bGVgLiAqL1xyXG4gIEBJbnB1dCgpIHRpdGxlU3VmZml4ID0gJyc7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgYW4gYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiBiYXNlZCBvbiBicmVhZGNydW1icy4gKi9cclxuICBASW5wdXQoKSBzaG93QmFja0J1dHRvbiA9IHRydWU7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIG92ZXJyaWRlcyBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrIGJ1dHRvbi4gKi9cclxuICBASW5wdXQoKSBiYWNrQnV0dG9uQ29uZmlnOiBVaUJhY2tCdXR0b25Db25maWcgPSB7fTtcclxuXHJcbiAgLyoqIEFycmF5IG9mIGJ1dHRvbiBkZXNjcmlwdG9ycyBmb3IgdGhlIGZvb3RlciBhY3Rpb24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBhY3Rpb25zOiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAvKiogSG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIGZvb3RlciBidXR0b24gYXJlYS4gKi9cclxuICBASW5wdXQoKSBmb290ZXJBbGlnbjogVWlCdXR0b25BcmVhQWxpZ24gPSAnc3RhcnQnO1xyXG5cclxuICAvKiogR2FwIHNpemUgYmV0d2VlbiBmb290ZXIgYnV0dG9ucy4gKi9cclxuICBASW5wdXQoKSBmb290ZXJHYXA6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ3NtJztcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBicmVhZGNydW1iU2VydmljZSA9IGluamVjdChVaUJyZWFkY3J1bWJTZXJ2aWNlKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTWVyZ2VkIGFjdGlvbiBsaXN0IChiYWNrIGJ1dHRvbiArIGNvbnN1bWVyIGFjdGlvbnMpLlxyXG4gICAqIENvbXB1dGVkIG9uIGV2ZXJ5IGNoYW5nZS1kZXRlY3Rpb24gY2hlY2sgc28gaXQgc3RheXMgaW4gc3luY1xyXG4gICAqIHdpdGggYm90aCBuYXZpZ2F0aW9uIHN0YXRlIChicmVhZGNydW1icykgYW5kIGlucHV0IGNoYW5nZXMuXHJcbiAgICovXHJcbiAgZ2V0IG1lcmdlZEFjdGlvbnMoKTogVWlCdXR0b25EZXNjcmlwdG9yW10ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBVaUJ1dHRvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dCYWNrQnV0dG9uKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBpZDogJ19fdWktYmFjaycsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMuYmFja0J1dHRvbkNvbmZpZy5sYWJlbCA/PyAnSW5kaWV0cm8nLFxyXG4gICAgICAgIGljb246ICh0aGlzLmJhY2tCdXR0b25Db25maWcuaWNvbiBhcyBhbnkpID8/ICdhcnJvdy1sZWZ0JyxcclxuICAgICAgICBpY29uUG9zaXRpb246ICdsZWFkaW5nJyxcclxuICAgICAgICB2YXJpYW50OiAodGhpcy5iYWNrQnV0dG9uQ29uZmlnLnZhcmlhbnQgYXMgYW55KSA/PyAnb3V0bGluZScsXHJcbiAgICAgICAgaGlkZGVuOiB0aGlzLnNob3VsZEhpZGVCYWNrQnV0dG9uKCksXHJcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm5hdmlnYXRlQmFjaygpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXN1bHQucHVzaCguLi50aGlzLmFjdGlvbnMpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBmb290ZXIgc2hvdWxkIHJlbmRlciAoYXQgbGVhc3Qgb25lIG5vbi1oaWRkZW4gYWN0aW9uIGV4aXN0cykuICovXHJcbiAgZ2V0IGhhc1Zpc2libGVBY3Rpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWVyZ2VkQWN0aW9ucy5zb21lKChhKSA9PiAhYS5oaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hCcmVhZGNydW1icygpO1xyXG5cclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXHJcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2hCcmVhZGNydW1icygpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQWdnaW9ybmEgbG8gc3RhdG8gZGVpIGJyZWFkY3J1bWIgbmVsIHNlcnZpY2UgZGFsbGEgcm90dGEgY29ycmVudGUuICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoQnJlYWRjcnVtYnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmdldEJyZWFkY3J1bWJzRm9yUm91dGUodGhpcy5hY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIERldGVybWluYSBzZSBpbCBiYWNrIGJ1dHRvbiBkZXZlIGVzc2VyZSBuYXNjb3N0byBwZXIgbGEgcm90dGEgY29ycmVudGUuICovXHJcbiAgcHJpdmF0ZSBzaG91bGRIaWRlQmFja0J1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF0uc3BsaXQoJyMnKVswXTtcclxuICAgIGlmIChjdXJyZW50UGF0aCA9PT0gdGhpcy5ob21lUm91dGUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRlZXBlc3RSb3V0ZSA9IHRoaXMuYWN0aXZhdGVkUm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS91c2VMaXRlcmFsS2V5czogPGV4cGxhbmF0aW9uPlxyXG4gICAgaWYgKGRlZXBlc3RSb3V0ZS5zbmFwc2hvdC5kYXRhPy5bJ2hpZGVCYWNrQnV0dG9uJ10gPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBOYXZpZ2EgYWwgYnJlYWRjcnVtYiBnZW5pdG9yZSBvIGVzZWd1ZSBpbCBmYWxsYmFjayBhbGxhIGhvbWUgcm91dGUuICovXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZUJhY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLm5hdmlnYXRlQmFjayh0aGlzLmhvbWVSb3V0ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVU3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ0c7QUE0Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQTNDbEM7UUE0Q0UsZ0VBQWdFO1FBQ3ZELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFM0IsaUZBQWlGO1FBQ3hFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsK0NBQStDO1FBQ3RDLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFekIsZ0VBQWdFO1FBQ3ZELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFekIsMkRBQTJEO1FBQ2xELHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUVyQywyQ0FBMkM7UUFDbEMsZ0JB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RUFBRSxxQkFBcUIsQ0FBQyxtQkFDdEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRGVzdHJveVJlZixcclxuICBJbnB1dCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsLFxyXG4gIHR5cGUgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgVWlCdXR0b25BcmVhQWxpZ24sIFVpQnV0dG9uRGVzY3JpcHRvciB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24udHlwZXMnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkFyZWFDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHsgVWlCYWNrQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9iYXNlLWxheW91dC50eXBlcyc7XHJcblxyXG4vKiogU3RhdG8gbGV0dG8gZGFsbGEgcm90dGEgZm9nbGlhIHBlciBoZWFkZXIvZm9vdGVyIG9wemlvbmFsaSBlIGBkYXRhLXJvdXRlLWlkYC4gKi9cclxuaW50ZXJmYWNlIFVpQmFzZUxheW91dFJvdXRlU25hcHNob3RGbGFncyB7XHJcbiAgYnJlYWRjcnVtYk9mZjogYm9vbGVhbjtcclxuICBmb290ZXJOYXZPZmY6IGJvb2xlYW47XHJcbiAgcm91dGVJZDogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bGwtcGFnZSBsYXlvdXQgY29tcG9uZW50IHRoYXQgY29tYmluZXMgYSBwYWdlIGhlYWRlciAoYnJlYWRjcnVtYnMgKyB0aXRsZSksXHJcbiAqIGEgbWFpbiBjb250ZW50IGFyZWEgdmlhIGA8bmctY29udGVudD5gLCBhbmQgYSBzdGlja3kgZm9vdGVyIGFjdGlvbiBiYXJcclxuICogcG93ZXJlZCBieSBgVWlCdXR0b25BcmVhQ29tcG9uZW50YC5cclxuICpcclxuICogT3B0aW9uYWxseSByZW5kZXJzIGFuIGF1dG9tYXRpYyBcImJhY2tcIiBidXR0b24gaW4gdGhlIGZvb3RlciwgZGVyaXZlZCBmcm9tXHJcbiAqIHRoZSBicmVhZGNydW1iIHRyYWlsIChuYXZpZ2F0ZXMgdG8gdGhlIHBhcmVudCBicmVhZGNydW1iKS5cclxuICpcclxuICogIyMjIFJvdXRlIGBkYXRhYFxyXG4gKlxyXG4gKiBTdWxsYSByb3R0YSBhdHRpdmEgKGZvZ2xpYSkgcHVvaSBpbXBvc3RhcmU6XHJcbiAqXHJcbiAqIC0gYGJyZWFkY3J1bWJPZmY6IHRydWVgIOKAlCBuYXNjb25kZSBgdWktcGFnZS1oZWFkZXJgXHJcbiAqIC0gYGZvb3Rlck5hdk9mZjogdHJ1ZWAg4oCUIG5hc2NvbmRlIGB1aS1iYXNlLWxheW91dF9fZm9vdGVyYFxyXG4gKiAtIGBpZDogc3RyaW5nYCDigJQgdmFsb3JpenphIGBkYXRhLXJvdXRlLWlkYCBzdWwgY29udGVuaXRvcmUgYC51aS1iYXNlLWxheW91dGBcclxuICpcclxuICogQHNlbGVjdG9yIHVpLWJhc2UtbGF5b3V0XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHVpLWJhc2UtbGF5b3V0IFthY3Rpb25zXT1cInBhZ2VBY3Rpb25zXCIgZm9vdGVyQWxpZ249XCJlbmRcIj5cclxuICogICA8cD5Zb3VyIHBhZ2UgY29udGVudCBoZXJlPC9wPlxyXG4gKiA8L3VpLWJhc2UtbGF5b3V0PlxyXG4gKiBgYGBcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8IS0tIFdpdGggYmFjayBidXR0b24gYW5kIGN1c3RvbSB0aXRsZSAtLT5cclxuICogPHVpLWJhc2UtbGF5b3V0XHJcbiAqICAgdGl0bGU9XCJEZXR0YWdsaW8gdXRlbnRlXCJcclxuICogICBbc2hvd0JhY2tCdXR0b25dPVwidHJ1ZVwiXHJcbiAqICAgW2FjdGlvbnNdPVwiW1xyXG4gKiAgICAgeyBpZDogJ3NhdmUnLCBsYWJlbDogJ1NhbHZhJywgdmFyaWFudDogJ3ByaW1hcnknLCBpY29uOiAnc2F2ZScsIGFjdGlvbjogc2F2ZSB9LFxyXG4gKiAgIF1cIlxyXG4gKiA+XHJcbiAqICAgPGFwcC11c2VyLWRldGFpbCAvPlxyXG4gKiA8L3VpLWJhc2UtbGF5b3V0PlxyXG4gKiBgYGBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYmFzZS1sYXlvdXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1VpUGFnZUhlYWRlckNvbXBvbmVudCwgVWlCdXR0b25BcmVhQ29tcG9uZW50XSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAndWktYmFzZS1sYXlvdXQtaG9zdCcsXHJcbiAgfSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0XCIgW2F0dHIuZGF0YS1yb3V0ZS1pZF09XCJyb3V0ZVNuYXBzaG90RmxhZ3MoKS5yb3V0ZUlkXCI+XHJcbiAgICAgIEBpZiAoZWZmZWN0aXZlU2hvd0hlYWRlcigpKSB7XHJcbiAgICAgICAgPHVpLXBhZ2UtaGVhZGVyXHJcbiAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgW2hvbWVSb3V0ZV09XCJob21lUm91dGVcIlxyXG4gICAgICAgICAgW3Nob3dIb21lXT1cInNob3dIb21lXCJcclxuICAgICAgICAgIFt1cGRhdGVEb2N1bWVudFRpdGxlXT1cInVwZGF0ZURvY3VtZW50VGl0bGVcIlxyXG4gICAgICAgICAgW3RpdGxlU3VmZml4XT1cInRpdGxlU3VmZml4XCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bWFpbiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0X19jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9tYWluPlxyXG5cclxuICAgICAgQGlmIChlZmZlY3RpdmVTaG93Rm9vdGVyTmF2KCkpIHtcclxuICAgICAgICA8YXNpZGVcclxuICAgICAgICAgIGNsYXNzPVwidWktYmFzZS1sYXlvdXRfX2Zvb3RlclwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUGFnZSBhY3Rpb25zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dWktYnV0dG9uLWFyZWFcclxuICAgICAgICAgICAgW2J1dHRvbnNdPVwibWVyZ2VkQWN0aW9uc1wiXHJcbiAgICAgICAgICAgIFthbGlnbl09XCJmb290ZXJBbGlnblwiXHJcbiAgICAgICAgICAgIFtnYXBdPVwiZm9vdGVyR2FwXCJcclxuICAgICAgICAgICAgW3N0YWNrT25Nb2JpbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbD1cIlBhZ2UgYWN0aW9uc1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYXNpZGU+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmw6ICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQmFzZUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgcGFnZSBoZWFkZXIgKGJyZWFkY3J1bWJzICsgdGl0bGUpLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xyXG5cclxuICAvKiogT3ZlcnJpZGUgdGhlIGF1dG8tZGV0ZWN0ZWQgcGFnZSB0aXRsZS4gUGFzc2VkIHRocm91Z2ggdG8gYHVpLXBhZ2UtaGVhZGVyYC4gKi9cclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG5cclxuICAvKiogUm91dGUgcGF0aCBmb3IgdGhlIEhvbWUgYnJlYWRjcnVtYiBsaW5rLiAqL1xyXG4gIEBJbnB1dCgpIGhvbWVSb3V0ZSA9ICcvJztcclxuXHJcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgSG9tZSBsaW5rIGluIHRoZSBicmVhZGNydW1iIHRyYWlsLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dIb21lID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFdoZW4gYHRydWVgLCB1cGRhdGVzIGBkb2N1bWVudC50aXRsZWAgb24gbmF2aWdhdGlvbi4gKi9cclxuICBASW5wdXQoKSB1cGRhdGVEb2N1bWVudFRpdGxlID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTdWZmaXggYXBwZW5kZWQgdG8gYGRvY3VtZW50LnRpdGxlYC4gKi9cclxuICBASW5wdXQoKSB0aXRsZVN1ZmZpeCA9ICcnO1xyXG5cclxuICAvKiogV2hldGhlciB0byBzaG93IGFuIGF1dG9tYXRpYyBcImJhY2tcIiBidXR0b24gYmFzZWQgb24gYnJlYWRjcnVtYnMuICovXHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSB0cnVlO1xyXG5cclxuICAvKiogQ29uZmlndXJhdGlvbiBvdmVycmlkZXMgZm9yIHRoZSBhdXRvbWF0aWMgYmFjayBidXR0b24uICovXHJcbiAgQElucHV0KCkgYmFja0J1dHRvbkNvbmZpZzogVWlCYWNrQnV0dG9uQ29uZmlnID0ge307XHJcblxyXG4gIC8qKiBBcnJheSBvZiBidXR0b24gZGVzY3JpcHRvcnMgZm9yIHRoZSBmb290ZXIgYWN0aW9uIGFyZWEuICovXHJcbiAgQElucHV0KCkgYWN0aW9uczogVWlCdXR0b25EZXNjcmlwdG9yW10gPSBbXTtcclxuXHJcbiAgLyoqIEhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBmb290ZXIgYnV0dG9uIGFyZWEuICovXHJcbiAgQElucHV0KCkgZm9vdGVyQWxpZ246IFVpQnV0dG9uQXJlYUFsaWduID0gJ3N0YXJ0JztcclxuXHJcbiAgLyoqIEdhcCBzaXplIGJldHdlZW4gZm9vdGVyIGJ1dHRvbnMuICovXHJcbiAgQElucHV0KCkgZm9vdGVyR2FwOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICdzbSc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWRjcnVtYlNlcnZpY2UgPSBpbmplY3QoVWlCcmVhZGNydW1iU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICAvKipcclxuICAgKiBGbGFnIGRlcml2YXRpIGRhbGxhIGNhdGVuYSBhdHRpdmEgKGBicmVhZGNydW1iT2ZmYCwgYGZvb3Rlck5hdk9mZmAsIGBpZGApLlxyXG4gICAqIEFnZ2lvcm5hdGkgYSBvZ25pIGBOYXZpZ2F0aW9uRW5kYC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVTbmFwc2hvdEZsYWdzID0gc2lnbmFsPFVpQmFzZUxheW91dFJvdXRlU25hcHNob3RGbGFncz4oe1xyXG4gICAgYnJlYWRjcnVtYk9mZjogZmFsc2UsXHJcbiAgICBmb290ZXJOYXZPZmY6IGZhbHNlLFxyXG4gICAgcm91dGVJZDogbnVsbCxcclxuICB9KTtcclxuXHJcbiAgLyoqIEhlYWRlciB2aXNpYmlsZSBzZSBhYmlsaXRhdG8gZGEgaW5wdXQgZSBub24gZGlzYXR0aXZhdG8gZGEgYGRhdGEuYnJlYWRjcnVtYk9mZmAuICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVmZmVjdGl2ZVNob3dIZWFkZXIgPSAoKSA9PlxyXG4gICAgdGhpcy5zaG93SGVhZGVyICYmICF0aGlzLnJvdXRlU25hcHNob3RGbGFncygpLmJyZWFkY3J1bWJPZmY7XHJcblxyXG4gIC8qKiBGb290ZXIgYXppb25pIHZpc2liaWxlIHNlIGNpIHNvbm8gYXppb25pIHZpc2liaWxpIGUgbm9uIGRpc2F0dGl2YXRvIGRhIGBkYXRhLmZvb3Rlck5hdk9mZmAuICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVmZmVjdGl2ZVNob3dGb290ZXJOYXYgPSAoKSA9PlxyXG4gICAgIXRoaXMucm91dGVTbmFwc2hvdEZsYWdzKCkuZm9vdGVyTmF2T2ZmICYmIHRoaXMuaGFzVmlzaWJsZUFjdGlvbnM7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlZCBhY3Rpb24gbGlzdCAoYmFjayBidXR0b24gKyBjb25zdW1lciBhY3Rpb25zKS5cclxuICAgKiBDb21wdXRlZCBvbiBldmVyeSBjaGFuZ2UtZGV0ZWN0aW9uIGNoZWNrIHNvIGl0IHN0YXlzIGluIHN5bmNcclxuICAgKiB3aXRoIGJvdGggbmF2aWdhdGlvbiBzdGF0ZSAoYnJlYWRjcnVtYnMpIGFuZCBpbnB1dCBjaGFuZ2VzLlxyXG4gICAqL1xyXG4gIGdldCBtZXJnZWRBY3Rpb25zKCk6IFVpQnV0dG9uRGVzY3JpcHRvcltdIHtcclxuICAgIGNvbnN0IHJlc3VsdDogVWlCdXR0b25EZXNjcmlwdG9yW10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93QmFja0J1dHRvbikge1xyXG4gICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgaWQ6ICdfX3VpLWJhY2snLFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLmJhY2tCdXR0b25Db25maWcubGFiZWwgPz8gJ0luZGlldHJvJyxcclxuICAgICAgICBpY29uOiAodGhpcy5iYWNrQnV0dG9uQ29uZmlnLmljb24gYXMgYW55KSA/PyAnYXJyb3ctbGVmdCcsXHJcbiAgICAgICAgaWNvblBvc2l0aW9uOiAnbGVhZGluZycsXHJcbiAgICAgICAgdmFyaWFudDogKHRoaXMuYmFja0J1dHRvbkNvbmZpZy52YXJpYW50IGFzIGFueSkgPz8gJ291dGxpbmUnLFxyXG4gICAgICAgIGhpZGRlbjogdGhpcy5zaG91bGRIaWRlQmFja0J1dHRvbigpLFxyXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5uYXZpZ2F0ZUJhY2soKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdWx0LnB1c2goLi4udGhpcy5hY3Rpb25zKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciB0aGUgZm9vdGVyIHNob3VsZCByZW5kZXIgKGF0IGxlYXN0IG9uZSBub24taGlkZGVuIGFjdGlvbiBleGlzdHMpLiAqL1xyXG4gIGdldCBoYXNWaXNpYmxlQWN0aW9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1lcmdlZEFjdGlvbnMuc29tZSgoYSkgPT4gIWEuaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zeW5jRnJvbUFjdGl2YXRlZFJvdXRlKCk7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3luY0Zyb21BY3RpdmF0ZWRSb3V0ZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQWxsaW5lYSBicmVhZGNydW1iIHNlcnZpY2UgZSBmbGFnIGxheW91dCBhbGxhIHJvdHRhIGNvcnJlbnRlLiAqL1xyXG4gIHByaXZhdGUgc3luY0Zyb21BY3RpdmF0ZWRSb3V0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaFJvdXRlU25hcHNob3RGbGFncygpO1xyXG4gICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5nZXRCcmVhZGNydW1ic0ZvclJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBMZWdnZSBgYnJlYWRjcnVtYk9mZmAsIGBmb290ZXJOYXZPZmZgLCBgaWRgIGRhbGxhIGNhdGVuYSBgcGF0aEZyb21Sb290YCAvIGZvZ2xpYS4gKi9cclxuICBwcml2YXRlIHJlZnJlc2hSb3V0ZVNuYXBzaG90RmxhZ3MoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWVwZXN0ID0gdGhpcy5kZWVwZXN0Q2hpbGRSb3V0ZSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbiAgICBsZXQgYnJlYWRjcnVtYk9mZiA9IGZhbHNlO1xyXG4gICAgbGV0IGZvb3Rlck5hdk9mZiA9IGZhbHNlO1xyXG4gICAgZm9yIChjb25zdCBzZWcgb2YgZGVlcGVzdC5wYXRoRnJvbVJvb3QpIHtcclxuICAgICAgY29uc3QgZCA9IHNlZy5zbmFwc2hvdC5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoIWQpIGNvbnRpbnVlO1xyXG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiBjaGlhdmkgZG9jdW1lbnRhdGUgaW4gVWlCYXNlTGF5b3V0Um91dGVEYXRhXHJcbiAgICAgIGlmIChkWydicmVhZGNydW1iT2ZmJ10gPT09IHRydWUpIGJyZWFkY3J1bWJPZmYgPSB0cnVlO1xyXG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiBjaGlhdmkgZG9jdW1lbnRhdGUgaW4gVWlCYXNlTGF5b3V0Um91dGVEYXRhXHJcbiAgICAgIGlmIChkWydmb290ZXJOYXZPZmYnXSA9PT0gdHJ1ZSkgZm9vdGVyTmF2T2ZmID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcm91dGVJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgY3Vyc29yOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0O1xyXG4gICAgd2hpbGUgKGN1cnNvcikge1xyXG4gICAgICBjb25zdCByYXcgPSBjdXJzb3Iuc25hcHNob3QuZGF0YT8uWydpZCddO1xyXG4gICAgICBpZiAodHlwZW9mIHJhdyA9PT0gJ3N0cmluZycgJiYgcmF3Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICByb3V0ZUlkID0gcmF3O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnNvciA9IGN1cnNvci5wYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3V0ZVNuYXBzaG90RmxhZ3Muc2V0KHsgYnJlYWRjcnVtYk9mZiwgZm9vdGVyTmF2T2ZmLCByb3V0ZUlkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBQZXJjb3JyZSBmaW5vIGFsIGBBY3RpdmF0ZWRSb3V0ZWAgZm9nbGlhIHNvdHRvIGlsIHB1bnRvIGRpIGluaWV6aW9uZS4gKi9cclxuICBwcml2YXRlIGRlZXBlc3RDaGlsZFJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IEFjdGl2YXRlZFJvdXRlIHtcclxuICAgIGxldCBkZWVwZXN0ID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdC5maXJzdENoaWxkKSB7XHJcbiAgICAgIGRlZXBlc3QgPSBkZWVwZXN0LmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVlcGVzdDtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgRGV0ZXJtaW5hIHNlIGlsIGJhY2sgYnV0dG9uIGRldmUgZXNzZXJlIG5hc2Nvc3RvIHBlciBsYSByb3R0YSBjb3JyZW50ZS4gKi9cclxuICBwcml2YXRlIHNob3VsZEhpZGVCYWNrQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xyXG4gICAgaWYgKGN1cnJlbnRQYXRoID09PSB0aGlzLmhvbWVSb3V0ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkZWVwZXN0Um91dGUgPSB0aGlzLmRlZXBlc3RDaGlsZFJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvdXNlTGl0ZXJhbEtleXM6IDxleHBsYW5hdGlvbj5cclxuICAgIGlmIChkZWVwZXN0Um91dGUuc25hcHNob3QuZGF0YT8uWydoaWRlQmFja0J1dHRvbiddID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTmF2aWdhIGFsIGJyZWFkY3J1bWIgZ2VuaXRvcmUgbyBlc2VndWUgaWwgZmFsbGJhY2sgYWxsYSBob21lIHJvdXRlLiAqL1xyXG4gIHByaXZhdGUgbmF2aWdhdGVCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5uYXZpZ2F0ZUJhY2sodGhpcy5ob21lUm91dGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Types and interfaces for UiBaseLayout component.
|
|
4
4
|
*/
|
|
5
5
|
export {};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbW9kdWxlIG5nLXVpLXN5c3RlbS9iYXNlLWxheW91dFxyXG4gKiBUeXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgVWlCYXNlTGF5b3V0IGNvbXBvbmVudC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBVaUJ1dHRvbkRlc2NyaXB0b3IsIFVpQnV0dG9uQXJlYUFsaWduIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi50eXBlcyc7XHJcblxyXG4vLyBSZS1leHBvcnQgZm9yIGNvbnN1bWVyIGNvbnZlbmllbmNlXHJcbmV4cG9ydCB7IFVpQnV0dG9uRGVzY3JpcHRvciwgVWlCdXR0b25BcmVhQWxpZ24gfTtcclxuXHJcbi8qKlxyXG4gKiBDaGlhdmkgb3B6aW9uYWxpIGRpIGBkYXRhYCBzdWxsYSByb3R0YSBhdHRpdmEgcmljb25vc2NpdXRlIGRhIGBVaUJhc2VMYXlvdXRDb21wb25lbnRgLlxyXG4gKlxyXG4gKiAtIGBpZGA6IHN0ZXNzYSByaXNhbGl0YSB1c2F0YSBkYWkgYnJlYWRjcnVtYiAoZGFsIHNlZ21lbnRvIGZvZ2xpYSB2ZXJzbyBpbCByb290OiBwcmltbyBgaWRgIHRyb3ZhdG8pLlxyXG4gKiAtIGBicmVhZGNydW1iT2ZmYCAvIGBmb290ZXJOYXZPZmZgOiBzZSBgdHJ1ZWAgc3UgKipxdWFsc2lhc2kqKiBzZWdtZW50byBpbiBgcGF0aEZyb21Sb290YCwgbOKAmWFyZWEgdmllbmUgbmFzY29zdGEuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVpQmFzZUxheW91dFJvdXRlRGF0YSB7XHJcbiAgLyoqIElkZW50aWZpY2F0aXZvIHN0YWJpbGUgZGVsbGEgcm90dGE7IHJlc28gY29tZSBgZGF0YS1yb3V0ZS1pZGAgc3VsIHdyYXBwZXIgYC51aS1iYXNlLWxheW91dGAuICovXHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgLyoqIFNlIGB0cnVlYCwgbm9uIHZpZW5lIHJlbmRlcml6emF0byBgdWktcGFnZS1oZWFkZXJgIChicmVhZGNydW1iIGUgdGl0b2xvKS4gKi9cclxuICBicmVhZGNydW1iT2ZmPzogYm9vbGVhbjtcclxuICAvKiogU2UgYHRydWVgLCBub24gdmllbmUgcmVuZGVyaXp6YXRhIGxhIGJhcnJhIGB1aS1iYXNlLWxheW91dF9fZm9vdGVyYCAoYXppb25pIC8gaW5kaWV0cm8pLiAqL1xyXG4gIGZvb3Rlck5hdk9mZj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiByZW5kZXJlZCBpbiB0aGUgZm9vdGVyIGFjdGlvbiBhcmVhLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGJhY2tDb25maWc6IFVpQmFja0J1dHRvbkNvbmZpZyA9IHtcclxuICogICBsYWJlbDogJ0luZGlldHJvJyxcclxuICogICBpY29uOiAnYXJyb3ctbGVmdCcsXHJcbiAqICAgdmFyaWFudDogJ291dGxpbmUnLFxyXG4gKiB9O1xyXG4gKiBgYGBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlCYWNrQnV0dG9uQ29uZmlnIHtcclxuICAvKiogTGFiZWwgdGV4dCBmb3IgdGhlIGJhY2sgYnV0dG9uLiBAZGVmYXVsdCAnSW5kaWV0cm8nICovXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqIEx1Y2lkZSBpY29uIG5hbWUuIEBkZWZhdWx0ICdhcnJvdy1sZWZ0JyAqL1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgLyoqIFZpc3VhbCB2YXJpYW50LiBAZGVmYXVsdCAnb3V0bGluZScgKi9cclxuICB2YXJpYW50Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
*/
|
|
12
12
|
// Components
|
|
13
13
|
export { UiBaseLayoutComponent } from './base-layout.component';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogbmctdWktc3lzdGVtIOKAlCBCYXNlIExheW91dCBlbnRyeSBwb2ludC5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpbXBvcnQge1xyXG4gKiAgIFVpQmFzZUxheW91dENvbXBvbmVudCxcclxuICogICBVaUJhY2tCdXR0b25Db25maWcsXHJcbiAqIH0gZnJvbSAnbmctdWktc3lzdGVtJztcclxuICogYGBgXHJcbiAqL1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5leHBvcnQgeyBVaUJhc2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XHJcblxyXG4vLyBUeXBlc1xyXG5leHBvcnQgeyBVaUJhY2tCdXR0b25Db25maWcsIFVpQmFzZUxheW91dFJvdXRlRGF0YSB9IGZyb20gJy4vYmFzZS1sYXlvdXQudHlwZXMnO1xyXG4iXX0=
|