@gnggln/ng-ui-system 1.0.0-alpha.16 → 1.0.0-alpha.18
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/base-layout/lib/components/button/button.component.d.ts +8 -2
- package/base-layout/lib/components/button/button.types.d.ts +5 -0
- package/blackbox/lib/components/button/button.component.d.ts +8 -2
- package/blackbox/lib/components/button/button.types.d.ts +5 -0
- package/button/lib/components/button/button.component.d.ts +8 -2
- package/button/lib/components/button/button.types.d.ts +5 -0
- package/crud-table/lib/components/button/button.component.d.ts +8 -2
- package/crud-table/lib/components/button/button.types.d.ts +5 -0
- 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/base-layout/lib/components/button/button-area.component.mjs +3 -1
- package/esm2022/base-layout/lib/components/button/button.component.mjs +21 -5
- package/esm2022/base-layout/lib/components/button/button.types.mjs +1 -1
- package/esm2022/blackbox/lib/components/button/button-area.component.mjs +3 -1
- package/esm2022/blackbox/lib/components/button/button.component.mjs +21 -5
- package/esm2022/blackbox/lib/components/button/button.types.mjs +1 -1
- package/esm2022/button/lib/components/button/button-area.component.mjs +3 -1
- package/esm2022/button/lib/components/button/button.component.mjs +21 -5
- package/esm2022/button/lib/components/button/button.types.mjs +1 -1
- package/esm2022/crud-table/lib/components/button/button-area.component.mjs +3 -1
- package/esm2022/crud-table/lib/components/button/button.component.mjs +21 -5
- package/esm2022/crud-table/lib/components/button/button.types.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/button/button-area.component.mjs +3 -1
- package/esm2022/form-builder/lib/components/button/button.component.mjs +21 -5
- package/esm2022/form-builder/lib/components/button/button.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/button/button-area.component.mjs +3 -1
- package/esm2022/form-builder-editor/lib/components/button/button.component.mjs +21 -5
- package/esm2022/form-builder-editor/lib/components/button/button.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/button/button-area.component.mjs +3 -1
- package/esm2022/lib/components/button/button.component.mjs +21 -5
- package/esm2022/lib/components/button/button.types.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/esm2022/modal/lib/components/button/button.component.mjs +21 -5
- package/esm2022/modal/lib/components/button/button.types.mjs +1 -1
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +92 -19
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-blackbox.mjs +22 -4
- package/fesm2022/gnggln-ng-ui-system-blackbox.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-button.mjs +22 -4
- package/fesm2022/gnggln-ng-ui-system-button.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +165 -118
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +165 -118
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +340 -156
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system-modal.mjs +20 -4
- package/fesm2022/gnggln-ng-ui-system-modal.mjs.map +1 -1
- package/fesm2022/gnggln-ng-ui-system.mjs +409 -170
- package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
- package/form-builder/lib/components/button/button.component.d.ts +8 -2
- package/form-builder/lib/components/button/button.types.d.ts +5 -0
- 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/button/button.component.d.ts +8 -2
- package/form-builder-editor/lib/components/button/button.types.d.ts +5 -0
- 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/button/button.component.d.ts +8 -2
- package/lib/components/button/button.types.d.ts +5 -0
- 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/modal/lib/components/button/button.component.d.ts +8 -2
- package/modal/lib/components/button/button.types.d.ts +5 -0
- package/package.json +18 -18
|
@@ -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
|
*
|
|
@@ -17,8 +17,8 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
* <!-- Loading -->
|
|
18
18
|
* <ui-button label="Submitting..." variant="primary" [loading]="true" />
|
|
19
19
|
*
|
|
20
|
-
* <!-- Icon-only -->
|
|
21
|
-
* <ui-button icon="trash-2" variant="warn"
|
|
20
|
+
* <!-- Icon-only: tooltip o ariaLabel forniscono il nome accessibile -->
|
|
21
|
+
* <ui-button icon="trash-2" variant="warn" tooltip="Elimina" (click)="delete()" />
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export declare class UiButtonComponent {
|
|
@@ -46,6 +46,12 @@ export declare class UiButtonComponent {
|
|
|
46
46
|
ariaLabel?: string;
|
|
47
47
|
/** Additional CSS class for edge cases. */
|
|
48
48
|
customClass?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Nome accessibile risolto per il pulsante nativo.
|
|
51
|
+
* Usa `ariaLabel` se impostato; per pulsanti solo icona senza testo visibile
|
|
52
|
+
* ricade sul `tooltip` (il tooltip Material non sostituisce il nome accessibile).
|
|
53
|
+
*/
|
|
54
|
+
get effectiveAriaLabel(): string | undefined;
|
|
49
55
|
/** Computed icon pixel size based on button size. */
|
|
50
56
|
get iconSize(): number;
|
|
51
57
|
/** Assembled CSS class string for the native button element. */
|
|
@@ -40,6 +40,11 @@ export interface UiButtonDescriptor {
|
|
|
40
40
|
label: string;
|
|
41
41
|
/** Tooltip text shown on hover. */
|
|
42
42
|
tooltip?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Nome accessibile esplicito (override).
|
|
45
|
+
* Per pulsanti solo icona senza `label`, se omesso si usa `tooltip` come `aria-label`.
|
|
46
|
+
*/
|
|
47
|
+
ariaLabel?: string;
|
|
43
48
|
/**
|
|
44
49
|
* Click handler. Supports both sync and async callbacks.
|
|
45
50
|
* Receives the native MouseEvent as argument.
|
|
@@ -17,8 +17,8 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
* <!-- Loading -->
|
|
18
18
|
* <ui-button label="Submitting..." variant="primary" [loading]="true" />
|
|
19
19
|
*
|
|
20
|
-
* <!-- Icon-only -->
|
|
21
|
-
* <ui-button icon="trash-2" variant="warn"
|
|
20
|
+
* <!-- Icon-only: tooltip o ariaLabel forniscono il nome accessibile -->
|
|
21
|
+
* <ui-button icon="trash-2" variant="warn" tooltip="Elimina" (click)="delete()" />
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export declare class UiButtonComponent {
|
|
@@ -46,6 +46,12 @@ export declare class UiButtonComponent {
|
|
|
46
46
|
ariaLabel?: string;
|
|
47
47
|
/** Additional CSS class for edge cases. */
|
|
48
48
|
customClass?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Nome accessibile risolto per il pulsante nativo.
|
|
51
|
+
* Usa `ariaLabel` se impostato; per pulsanti solo icona senza testo visibile
|
|
52
|
+
* ricade sul `tooltip` (il tooltip Material non sostituisce il nome accessibile).
|
|
53
|
+
*/
|
|
54
|
+
get effectiveAriaLabel(): string | undefined;
|
|
49
55
|
/** Computed icon pixel size based on button size. */
|
|
50
56
|
get iconSize(): number;
|
|
51
57
|
/** Assembled CSS class string for the native button element. */
|
|
@@ -40,6 +40,11 @@ export interface UiButtonDescriptor {
|
|
|
40
40
|
label: string;
|
|
41
41
|
/** Tooltip text shown on hover. */
|
|
42
42
|
tooltip?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Nome accessibile esplicito (override).
|
|
45
|
+
* Per pulsanti solo icona senza `label`, se omesso si usa `tooltip` come `aria-label`.
|
|
46
|
+
*/
|
|
47
|
+
ariaLabel?: string;
|
|
43
48
|
/**
|
|
44
49
|
* Click handler. Supports both sync and async callbacks.
|
|
45
50
|
* Receives the native MouseEvent as argument.
|
|
@@ -17,8 +17,8 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
* <!-- Loading -->
|
|
18
18
|
* <ui-button label="Submitting..." variant="primary" [loading]="true" />
|
|
19
19
|
*
|
|
20
|
-
* <!-- Icon-only -->
|
|
21
|
-
* <ui-button icon="trash-2" variant="warn"
|
|
20
|
+
* <!-- Icon-only: tooltip o ariaLabel forniscono il nome accessibile -->
|
|
21
|
+
* <ui-button icon="trash-2" variant="warn" tooltip="Elimina" (click)="delete()" />
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export declare class UiButtonComponent {
|
|
@@ -46,6 +46,12 @@ export declare class UiButtonComponent {
|
|
|
46
46
|
ariaLabel?: string;
|
|
47
47
|
/** Additional CSS class for edge cases. */
|
|
48
48
|
customClass?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Nome accessibile risolto per il pulsante nativo.
|
|
51
|
+
* Usa `ariaLabel` se impostato; per pulsanti solo icona senza testo visibile
|
|
52
|
+
* ricade sul `tooltip` (il tooltip Material non sostituisce il nome accessibile).
|
|
53
|
+
*/
|
|
54
|
+
get effectiveAriaLabel(): string | undefined;
|
|
49
55
|
/** Computed icon pixel size based on button size. */
|
|
50
56
|
get iconSize(): number;
|
|
51
57
|
/** Assembled CSS class string for the native button element. */
|
|
@@ -40,6 +40,11 @@ export interface UiButtonDescriptor {
|
|
|
40
40
|
label: string;
|
|
41
41
|
/** Tooltip text shown on hover. */
|
|
42
42
|
tooltip?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Nome accessibile esplicito (override).
|
|
45
|
+
* Per pulsanti solo icona senza `label`, se omesso si usa `tooltip` come `aria-label`.
|
|
46
|
+
*/
|
|
47
|
+
ariaLabel?: string;
|
|
43
48
|
/**
|
|
44
49
|
* Click handler. Supports both sync and async callbacks.
|
|
45
50
|
* Receives the native MouseEvent as argument.
|
|
@@ -17,8 +17,8 @@ import * as i0 from "@angular/core";
|
|
|
17
17
|
* <!-- Loading -->
|
|
18
18
|
* <ui-button label="Submitting..." variant="primary" [loading]="true" />
|
|
19
19
|
*
|
|
20
|
-
* <!-- Icon-only -->
|
|
21
|
-
* <ui-button icon="trash-2" variant="warn"
|
|
20
|
+
* <!-- Icon-only: tooltip o ariaLabel forniscono il nome accessibile -->
|
|
21
|
+
* <ui-button icon="trash-2" variant="warn" tooltip="Elimina" (click)="delete()" />
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
24
|
export declare class UiButtonComponent {
|
|
@@ -46,6 +46,12 @@ export declare class UiButtonComponent {
|
|
|
46
46
|
ariaLabel?: string;
|
|
47
47
|
/** Additional CSS class for edge cases. */
|
|
48
48
|
customClass?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Nome accessibile risolto per il pulsante nativo.
|
|
51
|
+
* Usa `ariaLabel` se impostato; per pulsanti solo icona senza testo visibile
|
|
52
|
+
* ricade sul `tooltip` (il tooltip Material non sostituisce il nome accessibile).
|
|
53
|
+
*/
|
|
54
|
+
get effectiveAriaLabel(): string | undefined;
|
|
49
55
|
/** Computed icon pixel size based on button size. */
|
|
50
56
|
get iconSize(): number;
|
|
51
57
|
/** Assembled CSS class string for the native button element. */
|
|
@@ -40,6 +40,11 @@ export interface UiButtonDescriptor {
|
|
|
40
40
|
label: string;
|
|
41
41
|
/** Tooltip text shown on hover. */
|
|
42
42
|
tooltip?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Nome accessibile esplicito (override).
|
|
45
|
+
* Per pulsanti solo icona senza `label`, se omesso si usa `tooltip` come `aria-label`.
|
|
46
|
+
*/
|
|
47
|
+
ariaLabel?: string;
|
|
43
48
|
/**
|
|
44
49
|
* Click handler. Supports both sync and async callbacks.
|
|
45
50
|
* Receives the native MouseEvent as argument.
|
|
@@ -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=
|