structra-ui 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { LibDialogSize } from '../_models/lib-dialog-size.model';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
@@ -6,8 +6,19 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
* Bloqueio de scroll com {@link lockPageScrollAppDialog} (sem deslocar o `html` como o CDK),
|
|
7
7
|
* para o scrim `position: fixed` alinhar ao viewport em páginas com scroll no `body`.
|
|
8
8
|
*/
|
|
9
|
-
export declare class AppDialogComponent implements OnChanges, OnDestroy {
|
|
9
|
+
export declare class AppDialogComponent implements OnInit, OnChanges, OnDestroy {
|
|
10
10
|
private readonly hostEl;
|
|
11
|
+
private readonly appTheme;
|
|
12
|
+
/**
|
|
13
|
+
* Com o host em `document.body`, sem isto os `--app-color-*` / `--ui-field-*` ficam só com
|
|
14
|
+
* valores de `:root` (azul); alinhamos ao CDK Dialog (`libDialogPanelClasses`).
|
|
15
|
+
*/
|
|
16
|
+
get hostThemeClasses(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Impede o tooltip nativo do browser: o `@Input('title')` alimenta só `dialogHeading`, mas o
|
|
19
|
+
* binding `title="…"` no host ainda podia definir `HTMLElement.title` no `<app-dialog>`.
|
|
20
|
+
*/
|
|
21
|
+
readonly hostTitleAttr: null;
|
|
11
22
|
open: boolean;
|
|
12
23
|
readonly openChange: EventEmitter<boolean>;
|
|
13
24
|
/**
|
|
@@ -42,6 +53,7 @@ export declare class AppDialogComponent implements OnChanges, OnDestroy {
|
|
|
42
53
|
private bodyRestoreNext;
|
|
43
54
|
private previousActive;
|
|
44
55
|
private scrollLock;
|
|
56
|
+
ngOnInit(): void;
|
|
45
57
|
ngOnChanges(changes: SimpleChanges): void;
|
|
46
58
|
ngOnDestroy(): void;
|
|
47
59
|
private attachHostToBody;
|
|
@@ -50,6 +62,7 @@ export declare class AppDialogComponent implements OnChanges, OnDestroy {
|
|
|
50
62
|
onBackdropClick(): void;
|
|
51
63
|
requestClose(): void;
|
|
52
64
|
private restoreFocus;
|
|
65
|
+
private stripHostNativeTitle;
|
|
53
66
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppDialogComponent, never>;
|
|
54
67
|
static ɵcmp: i0.ɵɵComponentDeclaration<AppDialogComponent, "app-dialog", never, { "open": { "alias": "open"; "required": false; }; "dialogHeading": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "allowOverlayDismiss": { "alias": "allowOverlayDismiss"; "required": false; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; }; }, { "openChange": "openChange"; }, never, ["*", "[appDialogFooter]"], true, never>;
|
|
55
68
|
static ngAcceptInputType_open: unknown;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output, booleanAttribute, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, booleanAttribute, } from '@angular/core';
|
|
2
2
|
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
3
3
|
import { lockPageScrollAppDialog, unlockPageScrollAppDialog, } from '../../_utils/scroll/body-scroll-lock.util';
|
|
4
4
|
import { LibDialogSize } from '../_models/lib-dialog-size.model';
|
|
5
|
+
import { AppThemeService } from '../../theme';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
let appDialogSeq = 0;
|
|
7
8
|
/**
|
|
@@ -12,6 +13,12 @@ let appDialogSeq = 0;
|
|
|
12
13
|
export class AppDialogComponent {
|
|
13
14
|
constructor() {
|
|
14
15
|
this.hostEl = inject((ElementRef));
|
|
16
|
+
this.appTheme = inject(AppThemeService);
|
|
17
|
+
/**
|
|
18
|
+
* Impede o tooltip nativo do browser: o `@Input('title')` alimenta só `dialogHeading`, mas o
|
|
19
|
+
* binding `title="…"` no host ainda podia definir `HTMLElement.title` no `<app-dialog>`.
|
|
20
|
+
*/
|
|
21
|
+
this.hostTitleAttr = null;
|
|
15
22
|
this.open = false;
|
|
16
23
|
this.openChange = new EventEmitter();
|
|
17
24
|
/**
|
|
@@ -53,7 +60,18 @@ export class AppDialogComponent {
|
|
|
53
60
|
bodyTouchAction: '',
|
|
54
61
|
};
|
|
55
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Com o host em `document.body`, sem isto os `--app-color-*` / `--ui-field-*` ficam só com
|
|
65
|
+
* valores de `:root` (azul); alinhamos ao CDK Dialog (`libDialogPanelClasses`).
|
|
66
|
+
*/
|
|
67
|
+
get hostThemeClasses() {
|
|
68
|
+
return `app-library-theme ${this.appTheme.themeClass()}`;
|
|
69
|
+
}
|
|
70
|
+
ngOnInit() {
|
|
71
|
+
this.stripHostNativeTitle();
|
|
72
|
+
}
|
|
56
73
|
ngOnChanges(changes) {
|
|
74
|
+
this.stripHostNativeTitle();
|
|
57
75
|
if (changes['open']) {
|
|
58
76
|
if (this.open) {
|
|
59
77
|
this.attachHostToBody();
|
|
@@ -84,6 +102,7 @@ export class AppDialogComponent {
|
|
|
84
102
|
this.bodyRestoreParent = el.parentElement;
|
|
85
103
|
this.bodyRestoreNext = el.nextSibling;
|
|
86
104
|
document.body.appendChild(el);
|
|
105
|
+
this.stripHostNativeTitle();
|
|
87
106
|
}
|
|
88
107
|
detachHostFromBody() {
|
|
89
108
|
const el = this.hostEl.nativeElement;
|
|
@@ -137,13 +156,24 @@ export class AppDialogComponent {
|
|
|
137
156
|
}
|
|
138
157
|
this.previousActive = null;
|
|
139
158
|
}
|
|
159
|
+
stripHostNativeTitle() {
|
|
160
|
+
const el = this.hostEl.nativeElement;
|
|
161
|
+
el.removeAttribute('title');
|
|
162
|
+
el.title = '';
|
|
163
|
+
}
|
|
140
164
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppDialogComponent, isStandalone: true, selector: "app-dialog", inputs: { open: ["open", "open", booleanAttribute], dialogHeading: ["title", "dialogHeading"], description: "description", ariaLabel: "ariaLabel", size: "size", allowOverlayDismiss: ["allowOverlayDismiss", "allowOverlayDismiss", booleanAttribute], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
165
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppDialogComponent, isStandalone: true, selector: "app-dialog", inputs: { open: ["open", "open", booleanAttribute], dialogHeading: ["title", "dialogHeading"], description: "description", ariaLabel: "ariaLabel", size: "size", allowOverlayDismiss: ["allowOverlayDismiss", "allowOverlayDismiss", booleanAttribute], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" }, properties: { "class": "this.hostThemeClasses", "attr.title": "this.hostTitleAttr" } }, usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
142
166
|
}
|
|
143
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, decorators: [{
|
|
144
168
|
type: Component,
|
|
145
169
|
args: [{ selector: 'app-dialog', standalone: true, imports: [CdkTrapFocus], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"] }]
|
|
146
|
-
}], propDecorators: {
|
|
170
|
+
}], propDecorators: { hostThemeClasses: [{
|
|
171
|
+
type: HostBinding,
|
|
172
|
+
args: ['class']
|
|
173
|
+
}], hostTitleAttr: [{
|
|
174
|
+
type: HostBinding,
|
|
175
|
+
args: ['attr.title']
|
|
176
|
+
}], open: [{
|
|
147
177
|
type: Input,
|
|
148
178
|
args: [{ transform: booleanAttribute }]
|
|
149
179
|
}], openChange: [{
|
|
@@ -167,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
167
197
|
type: HostListener,
|
|
168
198
|
args: ['document:keydown', ['$event']]
|
|
169
199
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvYXBwLWRpYWxvZy9hcHAtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9hcHAtZGlhbG9nL2FwcC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHlCQUF5QixHQUUxQixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFakUsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBU21CLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUVsQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVEOzs7O1dBSUc7UUFDYSxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUVuQyxxRkFBcUY7UUFDNUUsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0QixTQUFJLEdBQWtCLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFFaEQ7Ozs7V0FJRztRQUNxQyx3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFF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QUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQzsrR0FoSlUsa0JBQWtCO21HQUFsQixrQkFBa0IsK0VBR1QsZ0JBQWdCLG9MQTBCaEIsZ0JBQWdCLDJEQUVoQixnQkFBZ0IsbUtDcEV0Qyw2NERBcURBLHVuRkRyQlksWUFBWTs7NEZBS1gsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFLUCxJQUFJO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNuQixVQUFVO3NCQUE1QixNQUFNO2dCQU9TLGFBQWE7c0JBQTVCLEtBQUs7dUJBQUMsT0FBTztnQkFHTCxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQU9rQyxtQkFBbUI7c0JBQTFELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRUUsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFtRnRDLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka1RyYXBGb2N1cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIGxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nLFxuICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nLFxuICB0eXBlIEFwcERpYWxvZ1Njcm9sbExvY2tTbmFwc2hvdCxcbn0gZnJvbSAnLi4vLi4vX3V0aWxzL3Njcm9sbC9ib2R5LXNjcm9sbC1sb2NrLnV0aWwnO1xuaW1wb3J0IHsgTGliRGlhbG9nU2l6ZSB9IGZyb20gJy4uL19tb2RlbHMvbGliLWRpYWxvZy1zaXplLm1vZGVsJztcblxubGV0IGFwcERpYWxvZ1NlcSA9IDA7XG5cbi8qKlxuICogRGnDoWxvZ28gbW9kYWwgZGVjbGFyYXRpdm8gY29tIGBbKG9wZW4pXWAsIHByb2plw6fDo28gZGUgY29ycG8gZSByb2RhcMOpIG9wY2lvbmFsIChgW2FwcERpYWxvZ0Zvb3Rlcl1gKS5cbiAqIEJsb3F1ZWlvIGRlIHNjcm9sbCBjb20ge0BsaW5rIGxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nfSAoc2VtIGRlc2xvY2FyIG8gYGh0bWxgIGNvbW8gbyBDREspLFxuICogcGFyYSBvIHNjcmltIGBwb3NpdGlvbjogZml4ZWRgIGFsaW5oYXIgYW8gdmlld3BvcnQgZW0gcMOhZ2luYXMgY29tIHNjcm9sbCBubyBgYm9keWAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kaWFsb2cnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrVHJhcEZvY3VzXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXBwLWRpYWxvZy5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdEVsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgb3BlbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogVMOtdHVsbyBkbyBjYWJlw6dhbGhvIChgPGFwcC1kaWFsb2cgdGl0bGU9XCLigKZcIj5gKS5cbiAgICogTyBub21lIGRhIHByb3ByaWVkYWRlICoqbsOjbyoqIHBvZGUgc2VyIGB0aXRsZWA6IG5vIGhvc3QgRE9NIGlzc28gY29saWRlIGNvbVxuICAgKiBgSFRNTEVsZW1lbnQudGl0bGVgIGUgbyBicm93c2VyIGRlc2VuaGEgbyB0b29sdGlwIG5hdGl2byBwb3IgY2ltYSBkbyBvdmVybGF5LlxuICAgKi9cbiAgQElucHV0KCd0aXRsZScpIGRpYWxvZ0hlYWRpbmcgPSAnJztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gYWJhaXhvIGRvIHTDrXR1bG8gKG9wY2lvbmFsKTsgbGlnYSBgYXJpYS1kZXNjcmliZWRieWAgbm8gcGFpbmVsLiAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICcnO1xuXG4gIC8qKlxuICAgKiBSw7N0dWxvIGFjZXNzw612ZWwgcXVhbmRvIG7Do28gaMOhIHTDrXR1bG8gKGV2aXRhIGRpw6Fsb2dvIHNlbSBub21lKS5cbiAgICogSWdub3JhZG8gc2UgYGRpYWxvZ0hlYWRpbmdgIHRpdmVyIHRleHRvLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsID0gJ0Rpw6Fsb2dvJztcblxuICBASW5wdXQoKSBzaXplOiBMaWJEaWFsb2dTaXplID0gTGliRGlhbG9nU2l6ZS5NZDtcblxuICAvKipcbiAgICogUXVhbmRvIGBmYWxzZWAsIGEgdGVjbGEgRXNjYXBlIGUgbyBjbGlxdWUgbm8gYmFja2Ryb3AgbsOjbyBmZWNoYW0gbyBkacOhbG9nb1xuICAgKiAoYm90w6NvIOKclSwgYFsob3BlbildYCBlIGByZXF1ZXN0Q2xvc2UoKWAgY29udGludWFtIGRpc3BvbsOtdmVpcykuXG4gICAqIE9taXNzbzogYHRydWVgLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsbG93T3ZlcmxheURpc21pc3MgPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gIHJlYWRvbmx5IExpYkRpYWxvZ1NpemUgPSBMaWJEaWFsb2dTaXplO1xuXG4gIHJlYWRvbmx5IHRpdGxlSWQgPSBgYXBwLWRpYWxvZy10aXRsZS0keysrYXBwRGlhbG9nU2VxfWA7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uSWQgPSBgYXBwLWRpYWxvZy1kZXNjLSR7YXBwRGlhbG9nU2VxfWA7XG5cbiAgLyoqXG4gICAqIE8gbW9kYWwgZmljYSBubyBmaW0gZGUgYGRvY3VtZW50LmJvZHlgIGVucXVhbnRvIGFiZXJ0bywgcGFyYSBvIGBiYWNrZHJvcC1maWx0ZXJgXG4gICAqIG7Do28gZmljYXIgwqtwcmVzb8K7IGEgYW5jZXN0cmFpcyBjb20gYG92ZXJmbG93OiBhdXRvYCAoZXguOiBgYXBwLXNoZWxsX19jb250ZW50YCkuXG4gICAqL1xuICBwcml2YXRlIGJvZHlSZXN0b3JlUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGJvZHlSZXN0b3JlTmV4dDogQ2hpbGROb2RlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBwcmV2aW91c0FjdGl2ZTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzY3JvbGxMb2NrOiBBcHBEaWFsb2dTY3JvbGxMb2NrU25hcHNob3QgPSB7XG4gICAgaHRtbE92ZXJmbG93OiAnJyxcbiAgICBzY3JvbGxYOiAwLFxuICAgIHNjcm9sbFk6IDAsXG4gICAgYm9keU92ZXJmbG93OiAnJyxcbiAgICBib2R5VG91Y2hBY3Rpb246ICcnLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snb3BlbiddKSB7XG4gICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoSG9zdFRvQm9keSgpO1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBhICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZSA9IGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxMb2NrID0gbG9ja1BhZ2VTY3JvbGxBcHBEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVubG9ja1BhZ2VTY3JvbGxBcHBEaWFsb2codGhpcy5zY3JvbGxMb2NrKTtcbiAgICAgICAgdGhpcy5kZXRhY2hIb3N0RnJvbUJvZHkoKTtcbiAgICAgICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nKHRoaXMuc2Nyb2xsTG9jayk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEhvc3RUb0JvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gZWwubmV4dFNpYmxpbmc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaEhvc3RGcm9tQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsLnBhcmVudEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBudWxsO1xuICAgICAgdGhpcy5ib2R5UmVzdG9yZU5leHQgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmJvZHlSZXN0b3JlUGFyZW50O1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmJvZHlSZXN0b3JlTmV4dDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlUGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlTmV4dCA9IG51bGw7XG4gICAgaWYgKHBhcmVudCAmJiBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHBhcmVudCkpIHtcbiAgICAgIGlmIChuZXh0ICYmIG5leHQucGFyZW50Tm9kZSA9PT0gcGFyZW50KSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZWwsIG5leHQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhcHBSb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXBwLXJvb3QnKTtcbiAgICBpZiAoYXBwUm9vdCkge1xuICAgICAgYXBwUm9vdC5hcHBlbmRDaGlsZChlbCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRLZXlkb3duKGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wZW4gfHwgZXYua2V5ICE9PSAnRXNjYXBlJyB8fCAhdGhpcy5hbGxvd092ZXJsYXlEaXNtaXNzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UoKTtcbiAgfVxuXG4gIG9uQmFja2Ryb3BDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWxsb3dPdmVybGF5RGlzbWlzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RDbG9zZSgpO1xuICB9XG5cbiAgcmVxdWVzdENsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nKHRoaXMuc2Nyb2xsTG9jayk7XG4gICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXZpb3VzQWN0aXZlICYmIGRvY3VtZW50LmNvbnRhaW5zKHRoaXMucHJldmlvdXNBY3RpdmUpKSB7XG4gICAgICB0aGlzLnByZXZpb3VzQWN0aXZlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9XG4gICAgdGhpcy5wcmV2aW91c0FjdGl2ZSA9IG51bGw7XG4gIH1cbn1cbiIsIkBpZiAob3Blbikge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1iYWNrZHJvcFwiXHJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFwcC1kaWFsb2ctc3RhZ2VcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1wYW5lbFwiXHJcbiAgICAgIFtjbGFzcy5hcHAtZGlhbG9nLXBhbmVsLS1zbV09XCJzaXplID09PSBMaWJEaWFsb2dTaXplLlNtXCJcclxuICAgICAgW2NsYXNzLmFwcC1kaWFsb2ctcGFuZWwtLW1kXT1cInNpemUgPT09IExpYkRpYWxvZ1NpemUuTWRcIlxyXG4gICAgICBbY2xhc3MuYXBwLWRpYWxvZy1wYW5lbC0tbGddPVwic2l6ZSA9PT0gTGliRGlhbG9nU2l6ZS5MZ1wiXHJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxyXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcclxuICAgICAgICBkaWFsb2dIZWFkaW5nLnRyaW0oKSA/IHRpdGxlSWQgOiBkZXNjcmlwdGlvbi50cmltKCkgPyBkZXNjcmlwdGlvbklkIDogbnVsbFxyXG4gICAgICBcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkaWFsb2dIZWFkaW5nLnRyaW0oKSAmJiAhZGVzY3JpcHRpb24udHJpbSgpID8gYXJpYUxhYmVsIDogbnVsbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiXHJcbiAgICAgICAgZGlhbG9nSGVhZGluZy50cmltKCkgJiYgZGVzY3JpcHRpb24udHJpbSgpID8gZGVzY3JpcHRpb25JZCA6IG51bGxcclxuICAgICAgXCJcclxuICAgICAgY2RrVHJhcEZvY3VzXHJcbiAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgIEBpZiAoZGlhbG9nSGVhZGluZy50cmltKCkpIHtcclxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiYXBwLWRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImFwcC1kaWFsb2ctdGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiPnt7IGRpYWxvZ0hlYWRpbmcgfX08L2gyPlxyXG4gICAgICAgICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZlY2hhciBkacOhbG9nb1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcXVlc3RDbG9zZSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaGVhZGVyPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoZGVzY3JpcHRpb24udHJpbSgpKSB7XHJcbiAgICAgICAgPHAgY2xhc3M9XCJhcHAtZGlhbG9nLWRlc2NyaXB0aW9uXCIgW2lkXT1cImRlc2NyaXB0aW9uSWRcIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLWRpYWxvZy1ib2R5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxmb290ZXIgY2xhc3M9XCJhcHAtZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBEaWFsb2dGb290ZXJdXCIgLz5cclxuICAgICAgPC9mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpYWxvZ3MvYXBwLWRpYWxvZy9hcHAtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZGlhbG9ncy9hcHAtZGlhbG9nL2FwcC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FFMUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFOUMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXJCOzs7O0dBSUc7QUFTSCxNQUFNLE9BQU8sa0JBQWtCO0lBUi9CO1FBU21CLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBV3BEOzs7V0FHRztRQUVNLGtCQUFhLEdBQVMsSUFBSSxDQUFDO1FBRUksU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNsQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RDs7OztXQUlHO1FBQ2Esa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFbkMscUZBQXFGO1FBQzVFLGdCQUFXLEdBQUcs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QURyQixXQUFXO3VCQUFDLFlBQVk7Z0JBR2UsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDbkIsVUFBVTtzQkFBNUIsTUFBTTtnQkFPUyxhQUFhO3NCQUE1QixLQUFLO3VCQUFDLE9BQU87Z0JBR0wsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFPa0MsbUJBQW1CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBeUZ0QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtUcmFwRm9jdXMgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBsb2NrUGFnZVNjcm9sbEFwcERpYWxvZyxcbiAgdW5sb2NrUGFnZVNjcm9sbEFwcERpYWxvZyxcbiAgdHlwZSBBcHBEaWFsb2dTY3JvbGxMb2NrU25hcHNob3QsXG59IGZyb20gJy4uLy4uL191dGlscy9zY3JvbGwvYm9keS1zY3JvbGwtbG9jay51dGlsJztcbmltcG9ydCB7IExpYkRpYWxvZ1NpemUgfSBmcm9tICcuLi9fbW9kZWxzL2xpYi1kaWFsb2ctc2l6ZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtZSc7XG5cbmxldCBhcHBEaWFsb2dTZXEgPSAwO1xuXG4vKipcbiAqIERpw6Fsb2dvIG1vZGFsIGRlY2xhcmF0aXZvIGNvbSBgWyhvcGVuKV1gLCBwcm9qZcOnw6NvIGRlIGNvcnBvIGUgcm9kYXDDqSBvcGNpb25hbCAoYFthcHBEaWFsb2dGb290ZXJdYCkuXG4gKiBCbG9xdWVpbyBkZSBzY3JvbGwgY29tIHtAbGluayBsb2NrUGFnZVNjcm9sbEFwcERpYWxvZ30gKHNlbSBkZXNsb2NhciBvIGBodG1sYCBjb21vIG8gQ0RLKSxcbiAqIHBhcmEgbyBzY3JpbSBgcG9zaXRpb246IGZpeGVkYCBhbGluaGFyIGFvIHZpZXdwb3J0IGVtIHDDoWdpbmFzIGNvbSBzY3JvbGwgbm8gYGJvZHlgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGlhbG9nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Nka1RyYXBGb2N1c10sXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FwcC1kaWFsb2cuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXBwRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdEVsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBUaGVtZSA9IGluamVjdChBcHBUaGVtZVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBDb20gbyBob3N0IGVtIGBkb2N1bWVudC5ib2R5YCwgc2VtIGlzdG8gb3MgYC0tYXBwLWNvbG9yLSpgIC8gYC0tdWktZmllbGQtKmAgZmljYW0gc8OzIGNvbVxuICAgKiB2YWxvcmVzIGRlIGA6cm9vdGAgKGF6dWwpOyBhbGluaGFtb3MgYW8gQ0RLIERpYWxvZyAoYGxpYkRpYWxvZ1BhbmVsQ2xhc3Nlc2ApLlxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0VGhlbWVDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBhcHAtbGlicmFyeS10aGVtZSAke3RoaXMuYXBwVGhlbWUudGhlbWVDbGFzcygpfWA7XG4gIH1cblxuICAvKipcbiAgICogSW1wZWRlIG8gdG9vbHRpcCBuYXRpdm8gZG8gYnJvd3NlcjogbyBgQElucHV0KCd0aXRsZScpYCBhbGltZW50YSBzw7MgYGRpYWxvZ0hlYWRpbmdgLCBtYXMgb1xuICAgKiBiaW5kaW5nIGB0aXRsZT1cIuKAplwiYCBubyBob3N0IGFpbmRhIHBvZGlhIGRlZmluaXIgYEhUTUxFbGVtZW50LnRpdGxlYCBubyBgPGFwcC1kaWFsb2c+YC5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gIHJlYWRvbmx5IGhvc3RUaXRsZUF0dHI6IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvcGVuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBUw610dWxvIGRvIGNhYmXDp2FsaG8gKGA8YXBwLWRpYWxvZyB0aXRsZT1cIuKAplwiPmApLlxuICAgKiBPIG5vbWUgZGEgcHJvcHJpZWRhZGUgKipuw6NvKiogcG9kZSBzZXIgYHRpdGxlYDogbm8gaG9zdCBET00gaXNzbyBjb2xpZGUgY29tXG4gICAqIGBIVE1MRWxlbWVudC50aXRsZWAgZSBvIGJyb3dzZXIgZGVzZW5oYSBvIHRvb2x0aXAgbmF0aXZvIHBvciBjaW1hIGRvIG92ZXJsYXkuXG4gICAqL1xuICBASW5wdXQoJ3RpdGxlJykgZGlhbG9nSGVhZGluZyA9ICcnO1xuXG4gIC8qKiBUZXh0byBkZSBhcG9pbyBhYmFpeG8gZG8gdMOtdHVsbyAob3BjaW9uYWwpOyBsaWdhIGBhcmlhLWRlc2NyaWJlZGJ5YCBubyBwYWluZWwuICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG5cbiAgLyoqXG4gICAqIFLDs3R1bG8gYWNlc3PDrXZlbCBxdWFuZG8gbsOjbyBow6EgdMOtdHVsbyAoZXZpdGEgZGnDoWxvZ28gc2VtIG5vbWUpLlxuICAgKiBJZ25vcmFkbyBzZSBgZGlhbG9nSGVhZGluZ2AgdGl2ZXIgdGV4dG8uXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnRGnDoWxvZ28nO1xuXG4gIEBJbnB1dCgpIHNpemU6IExpYkRpYWxvZ1NpemUgPSBMaWJEaWFsb2dTaXplLk1kO1xuXG4gIC8qKlxuICAgKiBRdWFuZG8gYGZhbHNlYCwgYSB0ZWNsYSBFc2NhcGUgZSBvIGNsaXF1ZSBubyBiYWNrZHJvcCBuw6NvIGZlY2hhbSBvIGRpw6Fsb2dvXG4gICAqIChib3TDo28g4pyVLCBgWyhvcGVuKV1gIGUgYHJlcXVlc3RDbG9zZSgpYCBjb250aW51YW0gZGlzcG9uw612ZWlzKS5cbiAgICogT21pc3NvOiBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYWxsb3dPdmVybGF5RGlzbWlzcyA9IHRydWU7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG5cbiAgcmVhZG9ubHkgTGliRGlhbG9nU2l6ZSA9IExpYkRpYWxvZ1NpemU7XG5cbiAgcmVhZG9ubHkgdGl0bGVJZCA9IGBhcHAtZGlhbG9nLXRpdGxlLSR7KythcHBEaWFsb2dTZXF9YDtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb25JZCA9IGBhcHAtZGlhbG9nLWRlc2MtJHthcHBEaWFsb2dTZXF9YDtcblxuICAvKipcbiAgICogTyBtb2RhbCBmaWNhIG5vIGZpbSBkZSBgZG9jdW1lbnQuYm9keWAgZW5xdWFudG8gYWJlcnRvLCBwYXJhIG8gYGJhY2tkcm9wLWZpbHRlcmBcbiAgICogbsOjbyBmaWNhciDCq3ByZXNvwrsgYSBhbmNlc3RyYWlzIGNvbSBgb3ZlcmZsb3c6IGF1dG9gIChleC46IGBhcHAtc2hlbGxfX2NvbnRlbnRgKS5cbiAgICovXG4gIHByaXZhdGUgYm9keVJlc3RvcmVQYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYm9keVJlc3RvcmVOZXh0OiBDaGlsZE5vZGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHByZXZpb3VzQWN0aXZlOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNjcm9sbExvY2s6IEFwcERpYWxvZ1Njcm9sbExvY2tTbmFwc2hvdCA9IHtcbiAgICBodG1sT3ZlcmZsb3c6ICcnLFxuICAgIHNjcm9sbFg6IDAsXG4gICAgc2Nyb2xsWTogMCxcbiAgICBib2R5T3ZlcmZsb3c6ICcnLFxuICAgIGJvZHlUb3VjaEFjdGlvbjogJycsXG4gIH07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdHJpcEhvc3ROYXRpdmVUaXRsZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuc3RyaXBIb3N0TmF0aXZlVGl0bGUoKTtcbiAgICBpZiAoY2hhbmdlc1snb3BlbiddKSB7XG4gICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgIHRoaXMuYXR0YWNoSG9zdFRvQm9keSgpO1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBhICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZSA9IGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JvbGxMb2NrID0gbG9ja1BhZ2VTY3JvbGxBcHBEaWFsb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVubG9ja1BhZ2VTY3JvbGxBcHBEaWFsb2codGhpcy5zY3JvbGxMb2NrKTtcbiAgICAgICAgdGhpcy5kZXRhY2hIb3N0RnJvbUJvZHkoKTtcbiAgICAgICAgdGhpcy5yZXN0b3JlRm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB1bmxvY2tQYWdlU2Nyb2xsQXBwRGlhbG9nKHRoaXMuc2Nyb2xsTG9jayk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEhvc3RUb0JvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gZWwubmV4dFNpYmxpbmc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gICAgdGhpcy5zdHJpcEhvc3ROYXRpdmVUaXRsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hIb3N0RnJvbUJvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICB0aGlzLmJvZHlSZXN0b3JlUGFyZW50ID0gbnVsbDtcbiAgICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5ib2R5UmVzdG9yZVBhcmVudDtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5ib2R5UmVzdG9yZU5leHQ7XG4gICAgdGhpcy5ib2R5UmVzdG9yZVBhcmVudCA9IG51bGw7XG4gICAgdGhpcy5ib2R5UmVzdG9yZU5leHQgPSBudWxsO1xuICAgIGlmIChwYXJlbnQgJiYgZG9jdW1lbnQuYm9keS5jb250YWlucyhwYXJlbnQpKSB7XG4gICAgICBpZiAobmV4dCAmJiBuZXh0LnBhcmVudE5vZGUgPT09IHBhcmVudCkge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGVsLCBuZXh0KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYXBwUm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FwcC1yb290Jyk7XG4gICAgaWYgKGFwcFJvb3QpIHtcbiAgICAgIGFwcFJvb3QuYXBwZW5kQ2hpbGQoZWwpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50S2V5ZG93bihldjogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuIHx8IGV2LmtleSAhPT0gJ0VzY2FwZScgfHwgIXRoaXMuYWxsb3dPdmVybGF5RGlzbWlzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucmVxdWVzdENsb3NlKCk7XG4gIH1cblxuICBvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFsbG93T3ZlcmxheURpc21pc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UoKTtcbiAgfVxuXG4gIHJlcXVlc3RDbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdW5sb2NrUGFnZVNjcm9sbEFwcERpYWxvZyh0aGlzLnNjcm9sbExvY2spO1xuICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2aW91c0FjdGl2ZSAmJiBkb2N1bWVudC5jb250YWlucyh0aGlzLnByZXZpb3VzQWN0aXZlKSkge1xuICAgICAgdGhpcy5wcmV2aW91c0FjdGl2ZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNBY3RpdmUgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcEhvc3ROYXRpdmVUaXRsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWwucmVtb3ZlQXR0cmlidXRlKCd0aXRsZScpO1xuICAgIGVsLnRpdGxlID0gJyc7XG4gIH1cbn1cbiIsIkBpZiAob3Blbikge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1iYWNrZHJvcFwiXHJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCJcclxuICA+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFwcC1kaWFsb2ctc3RhZ2VcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1wYW5lbFwiXHJcbiAgICAgIFtjbGFzcy5hcHAtZGlhbG9nLXBhbmVsLS1zbV09XCJzaXplID09PSBMaWJEaWFsb2dTaXplLlNtXCJcclxuICAgICAgW2NsYXNzLmFwcC1kaWFsb2ctcGFuZWwtLW1kXT1cInNpemUgPT09IExpYkRpYWxvZ1NpemUuTWRcIlxyXG4gICAgICBbY2xhc3MuYXBwLWRpYWxvZy1wYW5lbC0tbGddPVwic2l6ZSA9PT0gTGliRGlhbG9nU2l6ZS5MZ1wiXHJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxyXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcclxuICAgICAgICBkaWFsb2dIZWFkaW5nLnRyaW0oKSA/IHRpdGxlSWQgOiBkZXNjcmlwdGlvbi50cmltKCkgPyBkZXNjcmlwdGlvbklkIDogbnVsbFxyXG4gICAgICBcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIiFkaWFsb2dIZWFkaW5nLnRyaW0oKSAmJiAhZGVzY3JpcHRpb24udHJpbSgpID8gYXJpYUxhYmVsIDogbnVsbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiXHJcbiAgICAgICAgZGlhbG9nSGVhZGluZy50cmltKCkgJiYgZGVzY3JpcHRpb24udHJpbSgpID8gZGVzY3JpcHRpb25JZCA6IG51bGxcclxuICAgICAgXCJcclxuICAgICAgY2RrVHJhcEZvY3VzXHJcbiAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICA+XHJcbiAgICAgIEBpZiAoZGlhbG9nSGVhZGluZy50cmltKCkpIHtcclxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiYXBwLWRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImFwcC1kaWFsb2ctdGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiPnt7IGRpYWxvZ0hlYWRpbmcgfX08L2gyPlxyXG4gICAgICAgICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwLWRpYWxvZy1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkZlY2hhciBkacOhbG9nb1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlcXVlc3RDbG9zZSgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaGVhZGVyPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoZGVzY3JpcHRpb24udHJpbSgpKSB7XHJcbiAgICAgICAgPHAgY2xhc3M9XCJhcHAtZGlhbG9nLWRlc2NyaXB0aW9uXCIgW2lkXT1cImRlc2NyaXB0aW9uSWRcIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwLWRpYWxvZy1ib2R5XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxmb290ZXIgY2xhc3M9XCJhcHAtZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBEaWFsb2dGb290ZXJdXCIgLz5cclxuICAgICAgPC9mb290ZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
package/fesm2022/structra-ui.mjs
CHANGED
|
@@ -7355,6 +7355,12 @@ let appDialogSeq = 0;
|
|
|
7355
7355
|
class AppDialogComponent {
|
|
7356
7356
|
constructor() {
|
|
7357
7357
|
this.hostEl = inject((ElementRef));
|
|
7358
|
+
this.appTheme = inject(AppThemeService);
|
|
7359
|
+
/**
|
|
7360
|
+
* Impede o tooltip nativo do browser: o `@Input('title')` alimenta só `dialogHeading`, mas o
|
|
7361
|
+
* binding `title="…"` no host ainda podia definir `HTMLElement.title` no `<app-dialog>`.
|
|
7362
|
+
*/
|
|
7363
|
+
this.hostTitleAttr = null;
|
|
7358
7364
|
this.open = false;
|
|
7359
7365
|
this.openChange = new EventEmitter();
|
|
7360
7366
|
/**
|
|
@@ -7396,7 +7402,18 @@ class AppDialogComponent {
|
|
|
7396
7402
|
bodyTouchAction: '',
|
|
7397
7403
|
};
|
|
7398
7404
|
}
|
|
7405
|
+
/**
|
|
7406
|
+
* Com o host em `document.body`, sem isto os `--app-color-*` / `--ui-field-*` ficam só com
|
|
7407
|
+
* valores de `:root` (azul); alinhamos ao CDK Dialog (`libDialogPanelClasses`).
|
|
7408
|
+
*/
|
|
7409
|
+
get hostThemeClasses() {
|
|
7410
|
+
return `app-library-theme ${this.appTheme.themeClass()}`;
|
|
7411
|
+
}
|
|
7412
|
+
ngOnInit() {
|
|
7413
|
+
this.stripHostNativeTitle();
|
|
7414
|
+
}
|
|
7399
7415
|
ngOnChanges(changes) {
|
|
7416
|
+
this.stripHostNativeTitle();
|
|
7400
7417
|
if (changes['open']) {
|
|
7401
7418
|
if (this.open) {
|
|
7402
7419
|
this.attachHostToBody();
|
|
@@ -7427,6 +7444,7 @@ class AppDialogComponent {
|
|
|
7427
7444
|
this.bodyRestoreParent = el.parentElement;
|
|
7428
7445
|
this.bodyRestoreNext = el.nextSibling;
|
|
7429
7446
|
document.body.appendChild(el);
|
|
7447
|
+
this.stripHostNativeTitle();
|
|
7430
7448
|
}
|
|
7431
7449
|
detachHostFromBody() {
|
|
7432
7450
|
const el = this.hostEl.nativeElement;
|
|
@@ -7480,13 +7498,24 @@ class AppDialogComponent {
|
|
|
7480
7498
|
}
|
|
7481
7499
|
this.previousActive = null;
|
|
7482
7500
|
}
|
|
7501
|
+
stripHostNativeTitle() {
|
|
7502
|
+
const el = this.hostEl.nativeElement;
|
|
7503
|
+
el.removeAttribute('title');
|
|
7504
|
+
el.title = '';
|
|
7505
|
+
}
|
|
7483
7506
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7484
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppDialogComponent, isStandalone: true, selector: "app-dialog", inputs: { open: ["open", "open", booleanAttribute], dialogHeading: ["title", "dialogHeading"], description: "description", ariaLabel: "ariaLabel", size: "size", allowOverlayDismiss: ["allowOverlayDismiss", "allowOverlayDismiss", booleanAttribute], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" } }, usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7507
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AppDialogComponent, isStandalone: true, selector: "app-dialog", inputs: { open: ["open", "open", booleanAttribute], dialogHeading: ["title", "dialogHeading"], description: "description", ariaLabel: "ariaLabel", size: "size", allowOverlayDismiss: ["allowOverlayDismiss", "allowOverlayDismiss", booleanAttribute], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown": "onDocumentKeydown($event)" }, properties: { "class": "this.hostThemeClasses", "attr.title": "this.hostTitleAttr" } }, usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7485
7508
|
}
|
|
7486
7509
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AppDialogComponent, decorators: [{
|
|
7487
7510
|
type: Component,
|
|
7488
7511
|
args: [{ selector: 'app-dialog', standalone: true, imports: [CdkTrapFocus], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (open) {\r\n <div\r\n class=\"app-dialog-backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n <div class=\"app-dialog-stage\" aria-hidden=\"false\">\r\n <div\r\n class=\"app-dialog-panel\"\r\n [class.app-dialog-panel--sm]=\"size === LibDialogSize.Sm\"\r\n [class.app-dialog-panel--md]=\"size === LibDialogSize.Md\"\r\n [class.app-dialog-panel--lg]=\"size === LibDialogSize.Lg\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"\r\n dialogHeading.trim() ? titleId : description.trim() ? descriptionId : null\r\n \"\r\n [attr.aria-label]=\"!dialogHeading.trim() && !description.trim() ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"\r\n dialogHeading.trim() && description.trim() ? descriptionId : null\r\n \"\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n @if (dialogHeading.trim()) {\r\n <header class=\"app-dialog-header\">\r\n <h2 class=\"app-dialog-title\" [id]=\"titleId\">{{ dialogHeading }}</h2>\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-dialog-close\"\r\n aria-label=\"Fechar di\u00E1logo\"\r\n (click)=\"requestClose()\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n }\r\n @if (description.trim()) {\r\n <p class=\"app-dialog-description\" [id]=\"descriptionId\">{{ description }}</p>\r\n }\r\n <div class=\"app-dialog-body\">\r\n <ng-content />\r\n </div>\r\n <footer class=\"app-dialog-footer\">\r\n <ng-content select=\"[appDialogFooter]\" />\r\n </footer>\r\n </div>\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-dialog-backdrop{position:fixed;inset:0;z-index:var(--app-z-dialog, 1200);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);pointer-events:auto}.app-dialog-stage{position:fixed;inset:0;z-index:calc(var(--app-z-dialog, 1200) + 1);display:flex;align-items:center;justify-content:center;padding:min(1.5rem,4vw);box-sizing:border-box;pointer-events:none;background:transparent}.app-dialog-panel{position:relative;z-index:0;display:flex;flex-direction:column;max-height:min(88vh,40rem);width:100%;pointer-events:auto;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;box-sizing:border-box;border-radius:10px;border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .12));background:var(--app-color-surface, #fff);box-shadow:0 4px 6px -1px #00000014,0 12px 28px -8px #1a2f452e;outline:none;animation:app-lib-dialog-panel-in .28s cubic-bezier(.22,1,.36,1) both}.app-dialog-panel--sm{max-width:min(28rem,94vw)}.app-dialog-panel--md{max-width:min(40rem,94vw)}.app-dialog-panel--lg{max-width:min(56rem,96vw)}@media (prefers-reduced-motion: reduce){.app-dialog-panel{animation:none}}.app-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .65rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-dialog-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-description{margin:0;padding:.65rem 1rem;font-size:.88rem;line-height:1.45;color:var(--app-color-text-secondary, #5a7fa3);flex:0 0 auto}.app-dialog-close{flex:0 0 auto;width:2rem;height:2rem;margin:0;padding:0;border:1px solid var(--app-color-border, #d4d4d4);border-radius:6px;background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);font-size:1.35rem;line-height:1;cursor:pointer}.app-dialog-close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-dialog-close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-dialog-body{padding:1rem;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;font-size:.9rem;line-height:1.5;color:var(--app-color-text-primary, #1a2f45)}.app-dialog-footer{flex:0 0 auto;padding:.65rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-dialog-footer:empty{display:none;padding:0;border:none}\n"] }]
|
|
7489
|
-
}], propDecorators: {
|
|
7512
|
+
}], propDecorators: { hostThemeClasses: [{
|
|
7513
|
+
type: HostBinding,
|
|
7514
|
+
args: ['class']
|
|
7515
|
+
}], hostTitleAttr: [{
|
|
7516
|
+
type: HostBinding,
|
|
7517
|
+
args: ['attr.title']
|
|
7518
|
+
}], open: [{
|
|
7490
7519
|
type: Input,
|
|
7491
7520
|
args: [{ transform: booleanAttribute }]
|
|
7492
7521
|
}], openChange: [{
|