@tolle_/tolle-ui 18.2.23 → 18.2.25
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/esm2022/lib/accordion-item.component.mjs +17 -5
- package/esm2022/lib/alert-dialog-dynamic.component.mjs +1 -1
- package/esm2022/lib/alert-dialog.component.mjs +48 -10
- package/esm2022/lib/alert-dialog.service.mjs +13 -2
- package/esm2022/lib/alert.component.mjs +5 -5
- package/esm2022/lib/avatar.component.mjs +30 -9
- package/esm2022/lib/badge.component.mjs +41 -15
- package/esm2022/lib/breadcrumb-link.component.mjs +5 -5
- package/esm2022/lib/button.component.mjs +14 -3
- package/esm2022/lib/calendar.component.mjs +99 -17
- package/esm2022/lib/card.component.mjs +29 -9
- package/esm2022/lib/carousel/carousel.component.mjs +19 -3
- package/esm2022/lib/checkbox.component.mjs +44 -21
- package/esm2022/lib/collapsible.component.mjs +12 -4
- package/esm2022/lib/country-selector.component.mjs +140 -20
- package/esm2022/lib/data-table.component.mjs +27 -16
- package/esm2022/lib/date-picker.component.mjs +60 -25
- package/esm2022/lib/date-range-picker.component.mjs +64 -26
- package/esm2022/lib/dropdown-item.component.mjs +19 -5
- package/esm2022/lib/dropdown-label.component.mjs +3 -3
- package/esm2022/lib/dropdown-menu.component.mjs +3 -3
- package/esm2022/lib/dropdown-separator.component.mjs +3 -3
- package/esm2022/lib/dropdown-trigger.directive.mjs +7 -3
- package/esm2022/lib/empty-state.component.mjs +3 -3
- package/esm2022/lib/hover-card.component.mjs +4 -2
- package/esm2022/lib/input.component.mjs +7 -5
- package/esm2022/lib/label.component.mjs +2 -2
- package/esm2022/lib/masked-input.component.mjs +3 -3
- package/esm2022/lib/modal.component.mjs +58 -22
- package/esm2022/lib/modal.service.mjs +13 -1
- package/esm2022/lib/multi-select.component.mjs +228 -20
- package/esm2022/lib/otp.component.mjs +6 -3
- package/esm2022/lib/pagination.component.mjs +19 -9
- package/esm2022/lib/progress.component.mjs +8 -5
- package/esm2022/lib/radio-group.component.mjs +51 -3
- package/esm2022/lib/radio-item.component.mjs +46 -8
- package/esm2022/lib/radio-service.mjs +60 -1
- package/esm2022/lib/range-calendar.component.mjs +317 -98
- package/esm2022/lib/resizable-panel.component.mjs +5 -4
- package/esm2022/lib/scroll-area.component.mjs +5 -5
- package/esm2022/lib/segment.component.mjs +73 -7
- package/esm2022/lib/select-item.component.mjs +20 -2
- package/esm2022/lib/select-separator.component.mjs +3 -3
- package/esm2022/lib/select.component.mjs +221 -14
- package/esm2022/lib/separator.component.mjs +12 -6
- package/esm2022/lib/sheet-ref.mjs +8 -1
- package/esm2022/lib/sheet-wrapper.component.mjs +27 -11
- package/esm2022/lib/sheet.component.mjs +57 -16
- package/esm2022/lib/sheet.service.mjs +5 -1
- package/esm2022/lib/sidebar.component.mjs +73 -15
- package/esm2022/lib/skeleton.component.mjs +19 -5
- package/esm2022/lib/switch.component.mjs +59 -53
- package/esm2022/lib/tabs.component.mjs +75 -13
- package/esm2022/lib/tag-input.component.mjs +6 -3
- package/esm2022/lib/textarea.component.mjs +9 -7
- package/esm2022/lib/theme.service.mjs +114 -138
- package/esm2022/lib/toaster.component.mjs +19 -9
- package/esm2022/lib/toggle-group.component.mjs +76 -4
- package/esm2022/lib/tolle-config.mjs +1 -1
- package/esm2022/lib/tooltip.directive.mjs +41 -17
- package/esm2022/lib/utils/color.mjs +324 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/tolle-ui.mjs +2715 -682
- package/fesm2022/tolle-ui.mjs.map +1 -1
- package/lib/alert-dialog.component.d.ts +10 -1
- package/lib/avatar.component.d.ts +16 -3
- package/lib/badge.component.d.ts +17 -5
- package/lib/button.component.d.ts +8 -1
- package/lib/calendar.component.d.ts +21 -3
- package/lib/card.component.d.ts +6 -0
- package/lib/carousel/carousel.component.d.ts +1 -0
- package/lib/checkbox.component.d.ts +12 -4
- package/lib/country-selector.component.d.ts +11 -2
- package/lib/date-picker.component.d.ts +2 -1
- package/lib/date-range-picker.component.d.ts +5 -2
- package/lib/dropdown-item.component.d.ts +4 -2
- package/lib/dropdown-trigger.directive.d.ts +1 -1
- package/lib/modal.component.d.ts +6 -0
- package/lib/multi-select.component.d.ts +20 -0
- package/lib/otp.component.d.ts +1 -0
- package/lib/progress.component.d.ts +1 -0
- package/lib/radio-group.component.d.ts +8 -0
- package/lib/radio-item.component.d.ts +10 -4
- package/lib/radio-service.d.ts +29 -0
- package/lib/range-calendar.component.d.ts +33 -4
- package/lib/segment.component.d.ts +13 -0
- package/lib/select-item.component.d.ts +4 -1
- package/lib/select.component.d.ts +20 -0
- package/lib/separator.component.d.ts +2 -0
- package/lib/sheet-wrapper.component.d.ts +4 -0
- package/lib/sheet.component.d.ts +10 -1
- package/lib/sidebar.component.d.ts +2 -0
- package/lib/skeleton.component.d.ts +9 -3
- package/lib/switch.component.d.ts +13 -20
- package/lib/tabs.component.d.ts +11 -1
- package/lib/theme.service.d.ts +21 -6
- package/lib/toaster.component.d.ts +2 -2
- package/lib/toggle-group.component.d.ts +20 -2
- package/lib/tolle-config.d.ts +8 -0
- package/lib/tooltip.directive.d.ts +3 -0
- package/lib/utils/color.d.ts +87 -0
- package/package.json +4 -1
- package/preset.js +28 -0
- package/public-api.d.ts +1 -0
- package/registry/docs-content.json +4214 -0
- package/registry/llms-full.txt +1599 -0
- package/registry/llms.txt +83 -0
- package/registry/manifest.json +4925 -0
- package/registry/r/accordion-item.json +21 -0
- package/registry/r/accordion.json +23 -0
- package/registry/r/alert-dialog-dynamic.json +31 -0
- package/registry/r/alert-dialog.json +26 -0
- package/registry/r/alert.json +23 -0
- package/registry/r/aspect-ratio.json +21 -0
- package/registry/r/avatar-fallback.json +16 -0
- package/registry/r/avatar.json +23 -0
- package/registry/r/badge.json +23 -0
- package/registry/r/breadcrumb-item.json +16 -0
- package/registry/r/breadcrumb-link.json +16 -0
- package/registry/r/breadcrumb-separator.json +16 -0
- package/registry/r/breadcrumb.json +21 -0
- package/registry/r/button-group.json +21 -0
- package/registry/r/button.json +23 -0
- package/registry/r/calendar.json +23 -0
- package/registry/r/card.json +21 -0
- package/registry/r/carousel.json +18 -0
- package/registry/r/checkbox.json +23 -0
- package/registry/r/collapsible.json +21 -0
- package/registry/r/context-menu-trigger.json +23 -0
- package/registry/r/context-menu.json +28 -0
- package/registry/r/country-selector.json +31 -0
- package/registry/r/data-table.json +38 -0
- package/registry/r/date-picker.json +27 -0
- package/registry/r/date-range-picker.json +32 -0
- package/registry/r/dropdown-item.json +21 -0
- package/registry/r/dropdown-label.json +16 -0
- package/registry/r/dropdown-menu.json +16 -0
- package/registry/r/dropdown-separator.json +16 -0
- package/registry/r/dropdown-trigger.json +20 -0
- package/registry/r/empty-state.json +23 -0
- package/registry/r/hover-card.json +23 -0
- package/registry/r/input.json +21 -0
- package/registry/r/label.json +21 -0
- package/registry/r/masked-input.json +21 -0
- package/registry/r/modal.json +36 -0
- package/registry/r/multi-select.json +33 -0
- package/registry/r/otp-group.json +16 -0
- package/registry/r/otp-slot.json +21 -0
- package/registry/r/otp.json +21 -0
- package/registry/r/pagination.json +32 -0
- package/registry/r/phone-number-input.json +34 -0
- package/registry/r/popover-content.json +21 -0
- package/registry/r/popover.json +18 -0
- package/registry/r/progress.json +21 -0
- package/registry/r/radio-group.json +26 -0
- package/registry/r/radio-item.json +26 -0
- package/registry/r/range-calendar.json +28 -0
- package/registry/r/resizable-panel-item.json +23 -0
- package/registry/r/resizable-panel.json +23 -0
- package/registry/r/resizable.json +21 -0
- package/registry/r/scroll-area.json +21 -0
- package/registry/r/segment.json +21 -0
- package/registry/r/select-group.json +21 -0
- package/registry/r/select-item.json +26 -0
- package/registry/r/select-separator.json +21 -0
- package/registry/r/select.json +31 -0
- package/registry/r/separator.json +21 -0
- package/registry/r/sheet-wrapper.json +31 -0
- package/registry/r/sheet.json +21 -0
- package/registry/r/sidebar.json +21 -0
- package/registry/r/skeleton.json +23 -0
- package/registry/r/slider.json +21 -0
- package/registry/r/switch.json +23 -0
- package/registry/r/tabs.json +23 -0
- package/registry/r/tag-input.json +25 -0
- package/registry/r/textarea.json +21 -0
- package/registry/r/toaster.json +26 -0
- package/registry/r/toggle-group.json +25 -0
- package/registry/r/toggle.json +23 -0
- package/registry/r/tolle-cell.json +16 -0
- package/registry/r/tooltip.json +23 -0
- package/registry/registry.json +1540 -0
- package/theme.css +60 -5
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { Component, TemplateRef, inject } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
3
4
|
import { SheetRef } from './sheet-ref';
|
|
4
5
|
import { cn } from './utils/cn';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/cdk/a11y";
|
|
7
9
|
export class SheetWrapperComponent {
|
|
8
10
|
contentType = 'string';
|
|
9
11
|
content;
|
|
10
12
|
isOpen = false;
|
|
13
|
+
/** Stable, per-instance ids used to wire dialog ARIA relationships. */
|
|
14
|
+
_uid = Math.random().toString(36).substr(2, 9);
|
|
15
|
+
titleId = `tolle-sheet-title-${this._uid}`;
|
|
16
|
+
descId = `tolle-sheet-description-${this._uid}`;
|
|
11
17
|
ref = inject(SheetRef);
|
|
12
18
|
ngOnInit() {
|
|
13
19
|
this.content = this.ref.config.content;
|
|
@@ -52,15 +58,20 @@ export class SheetWrapperComponent {
|
|
|
52
58
|
}
|
|
53
59
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
54
60
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetWrapperComponent, isStandalone: true, selector: "tolle-sheet-wrapper", ngImport: i0, template: `
|
|
55
|
-
<div
|
|
56
|
-
[class]="computedClass"
|
|
61
|
+
<div
|
|
62
|
+
[class]="computedClass"
|
|
57
63
|
[attr.data-state]="isOpen ? 'open' : 'closed'"
|
|
64
|
+
role="dialog"
|
|
65
|
+
aria-modal="true"
|
|
66
|
+
[attr.aria-labelledby]="ref.config.title ? titleId : null"
|
|
67
|
+
[attr.aria-describedby]="ref.config.description ? descId : null"
|
|
68
|
+
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
58
69
|
(mousedown)="$event.stopPropagation()"
|
|
59
70
|
>
|
|
60
71
|
<!-- Header -->
|
|
61
72
|
<div *ngIf="ref.config.showCloseButton !== false || ref.config.title" class="flex flex-col space-y-2 mb-4">
|
|
62
73
|
<div class="flex items-center justify-between">
|
|
63
|
-
<h3 *ngIf="ref.config.title" class="text-lg font-semibold text-foreground tracking-tight">
|
|
74
|
+
<h3 *ngIf="ref.config.title" [id]="titleId" class="text-lg font-semibold text-foreground tracking-tight">
|
|
64
75
|
{{ ref.config.title }}
|
|
65
76
|
</h3>
|
|
66
77
|
<button
|
|
@@ -72,7 +83,7 @@ export class SheetWrapperComponent {
|
|
|
72
83
|
<span class="sr-only">Close</span>
|
|
73
84
|
</button>
|
|
74
85
|
</div>
|
|
75
|
-
<p *ngIf="ref.config.description" class="text-sm text-muted-foreground">
|
|
86
|
+
<p *ngIf="ref.config.description" [id]="descId" class="text-sm text-muted-foreground">
|
|
76
87
|
{{ ref.config.description }}
|
|
77
88
|
</p>
|
|
78
89
|
</div>
|
|
@@ -92,20 +103,25 @@ export class SheetWrapperComponent {
|
|
|
92
103
|
</ng-container>
|
|
93
104
|
</div>
|
|
94
105
|
</div>
|
|
95
|
-
`, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
|
|
106
|
+
`, isInline: true, styles: [":host{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
|
|
96
107
|
}
|
|
97
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetWrapperComponent, decorators: [{
|
|
98
109
|
type: Component,
|
|
99
|
-
args: [{ selector: 'tolle-sheet-wrapper', standalone: true, imports: [CommonModule], template: `
|
|
100
|
-
<div
|
|
101
|
-
[class]="computedClass"
|
|
110
|
+
args: [{ selector: 'tolle-sheet-wrapper', standalone: true, imports: [CommonModule, A11yModule], template: `
|
|
111
|
+
<div
|
|
112
|
+
[class]="computedClass"
|
|
102
113
|
[attr.data-state]="isOpen ? 'open' : 'closed'"
|
|
114
|
+
role="dialog"
|
|
115
|
+
aria-modal="true"
|
|
116
|
+
[attr.aria-labelledby]="ref.config.title ? titleId : null"
|
|
117
|
+
[attr.aria-describedby]="ref.config.description ? descId : null"
|
|
118
|
+
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
103
119
|
(mousedown)="$event.stopPropagation()"
|
|
104
120
|
>
|
|
105
121
|
<!-- Header -->
|
|
106
122
|
<div *ngIf="ref.config.showCloseButton !== false || ref.config.title" class="flex flex-col space-y-2 mb-4">
|
|
107
123
|
<div class="flex items-center justify-between">
|
|
108
|
-
<h3 *ngIf="ref.config.title" class="text-lg font-semibold text-foreground tracking-tight">
|
|
124
|
+
<h3 *ngIf="ref.config.title" [id]="titleId" class="text-lg font-semibold text-foreground tracking-tight">
|
|
109
125
|
{{ ref.config.title }}
|
|
110
126
|
</h3>
|
|
111
127
|
<button
|
|
@@ -117,7 +133,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
117
133
|
<span class="sr-only">Close</span>
|
|
118
134
|
</button>
|
|
119
135
|
</div>
|
|
120
|
-
<p *ngIf="ref.config.description" class="text-sm text-muted-foreground">
|
|
136
|
+
<p *ngIf="ref.config.description" [id]="descId" class="text-sm text-muted-foreground">
|
|
121
137
|
{{ ref.config.description }}
|
|
122
138
|
</p>
|
|
123
139
|
</div>
|
|
@@ -139,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
139
155
|
</div>
|
|
140
156
|
`, styles: [":host{display:contents}\n"] }]
|
|
141
157
|
}] });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQtd3JhcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NoZWV0LXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQTJEaEMsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixXQUFXLEdBQXdDLFFBQVEsQ0FBQztJQUM1RCxPQUFPLENBQU07SUFDYixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRWYsdUVBQXVFO0lBQ3RELElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsT0FBTyxHQUFHLHFCQUFxQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsTUFBTSxHQUFHLDJCQUEyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFbEQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QixRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDdkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUIsMEJBQTBCO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFTiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO2FBQzdELElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7O1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUEyQixDQUFDLENBQUMsQ0FBQztJQUM3RCxJQUFJLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFvQixDQUFDLENBQUMsQ0FBQztJQUV2RCxLQUFLO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRztZQUNoQixHQUFHLEVBQUUsaUZBQWlGO1lBQ3RGLE1BQU0sRUFBRSwwRkFBMEY7WUFDbEcsSUFBSSxFQUFFLDZHQUE2RztZQUNuSCxLQUFLLEVBQUUsZ0hBQWdIO1NBQzFILENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRztZQUNwQixHQUFHLEVBQUUsZUFBZTtZQUNwQixNQUFNLEVBQUUsZUFBZTtZQUN2QixJQUFJLEVBQUUsZUFBZTtZQUNyQixLQUFLLEVBQUUsZUFBZTtTQUN6QixDQUFDO1FBRUYsT0FBTyxFQUFFLENBQ0wsZ0dBQWdHLEVBQ2hHLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN4QixDQUFDO0lBQ04sQ0FBQzt3R0E5RFEscUJBQXFCOzRGQUFyQixxQkFBcUIsK0VBckRwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDWCxrR0EvQ1csWUFBWSw2dUJBQUUsVUFBVTs7NEZBc0R6QixxQkFBcUI7a0JBekRqQyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU2hlZXRSZWYgfSBmcm9tICcuL3NoZWV0LXJlZic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LXdyYXBwZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICBbYXR0ci5kYXRhLXN0YXRlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInJlZi5jb25maWcudGl0bGUgPyB0aXRsZUlkIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cInJlZi5jb25maWcuZGVzY3JpcHRpb24gPyBkZXNjSWQgOiBudWxsXCJcbiAgICAgIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZVxuICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgID5cbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInJlZi5jb25maWcuc2hvd0Nsb3NlQnV0dG9uICE9PSBmYWxzZSB8fCByZWYuY29uZmlnLnRpdGxlXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiBtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8aDMgKm5nSWY9XCJyZWYuY29uZmlnLnRpdGxlXCIgW2lkXT1cInRpdGxlSWRcIiBjbGFzcz1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmQgdHJhY2tpbmctdGlnaHRcIj5cbiAgICAgICAgICAgIHt7IHJlZi5jb25maWcudGl0bGUgfX1cbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICAqbmdJZj1cInJlZi5jb25maWcuc2hvd0Nsb3NlQnV0dG9uICE9PSBmYWxzZVwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIiBcbiAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byBwLTEgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOnRleHQtZm9yZWdyb3VuZCBob3ZlcjpiZy1hY2NlbnQgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQtMnhsXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCAqbmdJZj1cInJlZi5jb25maWcuZGVzY3JpcHRpb25cIiBbaWRdPVwiZGVzY0lkXCIgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIHt7IHJlZi5jb25maWcuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm93IG92ZXJmbG93LXktYXV0b1wiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb250ZW50VHlwZVwiPlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCI+e3sgY29udGVudCB9fTwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFzVGVtcGxhdGU7IGNvbnRleHQ6IHJlZi5jb25maWcuY29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbXBvbmVudCdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiYXNDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGVldFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnRlbnRUeXBlOiAndGVtcGxhdGUnIHwgJ3N0cmluZycgfCAnY29tcG9uZW50JyA9ICdzdHJpbmcnO1xuICAgIGNvbnRlbnQ6IGFueTtcbiAgICBpc09wZW4gPSBmYWxzZTtcblxuICAgIC8qKiBTdGFibGUsIHBlci1pbnN0YW5jZSBpZHMgdXNlZCB0byB3aXJlIGRpYWxvZyBBUklBIHJlbGF0aW9uc2hpcHMuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdWlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgIHJlYWRvbmx5IHRpdGxlSWQgPSBgdG9sbGUtc2hlZXQtdGl0bGUtJHt0aGlzLl91aWR9YDtcbiAgICByZWFkb25seSBkZXNjSWQgPSBgdG9sbGUtc2hlZXQtZGVzY3JpcHRpb24tJHt0aGlzLl91aWR9YDtcblxuICAgIHB1YmxpYyByZWYgPSBpbmplY3QoU2hlZXRSZWYpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMucmVmLmNvbmZpZy5jb250ZW50O1xuICAgICAgICB0aGlzLmRldGVybWluZUNvbnRlbnRUeXBlKCk7XG5cbiAgICAgICAgLy8gVHJpZ2dlciBlbnRyeSBhbmltYXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIC8vIExpc3RlbiBmb3IgY2xvc2UgcmVxdWVzdHNcbiAgICAgICAgdGhpcy5yZWYuYWZ0ZXJDbG9zZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGVybWluZUNvbnRlbnRUeXBlKCkge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycpIHRoaXMuY29udGVudFR5cGUgPSAnc3RyaW5nJztcbiAgICAgICAgZWxzZSBpZiAodGhpcy5jb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHRoaXMuY29udGVudFR5cGUgPSAndGVtcGxhdGUnO1xuICAgICAgICBlbHNlIHRoaXMuY29udGVudFR5cGUgPSAnY29tcG9uZW50JztcbiAgICB9XG5cbiAgICBnZXQgYXNUZW1wbGF0ZSgpIHsgcmV0dXJuIHRoaXMuY29udGVudCBhcyBUZW1wbGF0ZVJlZjxhbnk+OyB9XG4gICAgZ2V0IGFzQ29tcG9uZW50KCkgeyByZXR1cm4gdGhpcy5jb250ZW50IGFzIFR5cGU8YW55PjsgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMucmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgICAgIGNvbnN0IHNpZGUgPSB0aGlzLnJlZi5jb25maWcuc2lkZSB8fCAncmlnaHQnO1xuICAgICAgICBjb25zdCBzaWRlQ2xhc3NlcyA9IHtcbiAgICAgICAgICAgIHRvcDogXCJpbnNldC14LTAgdG9wLTAgYm9yZGVyLWIgc2xpZGUtaW4tZnJvbS10b3AgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tdG9wXCIsXG4gICAgICAgICAgICBib3R0b206IFwiaW5zZXQteC0wIGJvdHRvbS0wIGJvcmRlci10IHNsaWRlLWluLWZyb20tYm90dG9tIGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWJvdHRvbVwiLFxuICAgICAgICAgICAgbGVmdDogXCJpbnNldC15LTAgbGVmdC0wIGgtZnVsbCB3LTMvNCBib3JkZXItciBzbGlkZS1pbi1mcm9tLWxlZnQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tbGVmdCBzbTptYXgtdy1zbVwiLFxuICAgICAgICAgICAgcmlnaHQ6IFwiaW5zZXQteS0wIHJpZ2h0LTAgaC1mdWxsIHctMy80IGJvcmRlci1sIHNsaWRlLWluLWZyb20tcmlnaHQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tcmlnaHQgc206bWF4LXctc21cIixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByb3VuZGluZ0NsYXNzZXMgPSB7XG4gICAgICAgICAgICB0b3A6IFwicm91bmRlZC1iLTJ4bFwiLFxuICAgICAgICAgICAgYm90dG9tOiBcInJvdW5kZWQtdC0yeGxcIixcbiAgICAgICAgICAgIGxlZnQ6IFwicm91bmRlZC1yLTJ4bFwiLFxuICAgICAgICAgICAgcmlnaHQ6IFwicm91bmRlZC1sLTJ4bFwiLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBjbihcbiAgICAgICAgICAgIFwiZml4ZWQgei01MCBmbGV4IGZsZXgtY29sIGdhcC00IGJnLWJhY2tncm91bmQgcC02IHNoYWRvdy1sZyB0cmFuc2l0aW9uIGVhc2UtaW4tb3V0IGR1cmF0aW9uLTMwMFwiLFxuICAgICAgICAgICAgc2lkZUNsYXNzZXNbc2lkZV0sXG4gICAgICAgICAgICB0aGlzLnJlZi5jb25maWcucm91bmRlZCAmJiByb3VuZGluZ0NsYXNzZXNbc2lkZV0sXG4gICAgICAgICAgICB0aGlzLnJlZi5jb25maWcuY2xhc3NcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -2,8 +2,10 @@ import { Component, Input, Output, EventEmitter, inject, ViewChild, ViewContaine
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { Overlay, OverlayConfig, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
4
4
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
5
|
+
import { A11yModule } from '@angular/cdk/a11y';
|
|
5
6
|
import { cn } from './utils/cn';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
7
9
|
export class SheetComponent {
|
|
8
10
|
isOpen = false;
|
|
9
11
|
hasBackdrop = true;
|
|
@@ -12,6 +14,8 @@ export class SheetComponent {
|
|
|
12
14
|
viewContainerRef = inject(ViewContainerRef);
|
|
13
15
|
scrollStrategy = inject(ScrollStrategyOptions);
|
|
14
16
|
overlayRef;
|
|
17
|
+
/** Element focused before the sheet opened, restored on close. */
|
|
18
|
+
previouslyFocused;
|
|
15
19
|
contentComponent;
|
|
16
20
|
open() {
|
|
17
21
|
if (this.isOpen)
|
|
@@ -30,6 +34,8 @@ export class SheetComponent {
|
|
|
30
34
|
show() {
|
|
31
35
|
if (this.overlayRef || !this.contentComponent?.contentTemplate)
|
|
32
36
|
return;
|
|
37
|
+
// Remember the trigger so focus can be restored when the sheet closes.
|
|
38
|
+
this.previouslyFocused = document.activeElement;
|
|
33
39
|
const overlayConfig = new OverlayConfig({
|
|
34
40
|
hasBackdrop: this.hasBackdrop,
|
|
35
41
|
backdropClass: 'tolle-modal-backdrop',
|
|
@@ -42,15 +48,25 @@ export class SheetComponent {
|
|
|
42
48
|
if (this.hasBackdrop) {
|
|
43
49
|
this.overlayRef.backdropClick().subscribe(() => this.close());
|
|
44
50
|
}
|
|
51
|
+
// Escape-to-close.
|
|
52
|
+
this.overlayRef.keydownEvents().subscribe((event) => {
|
|
53
|
+
if (event.key === 'Escape') {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
this.close();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
45
58
|
}
|
|
46
59
|
hide() {
|
|
47
60
|
if (this.overlayRef) {
|
|
61
|
+
const toRestore = this.previouslyFocused;
|
|
48
62
|
setTimeout(() => {
|
|
49
63
|
if (this.overlayRef) {
|
|
50
64
|
this.overlayRef.detach();
|
|
51
65
|
this.overlayRef.dispose();
|
|
52
66
|
this.overlayRef = undefined;
|
|
53
67
|
}
|
|
68
|
+
// Restore focus to the trigger after the exit animation.
|
|
69
|
+
toRestore?.focus?.();
|
|
54
70
|
}, 300);
|
|
55
71
|
}
|
|
56
72
|
}
|
|
@@ -107,6 +123,9 @@ export class SheetContentComponent {
|
|
|
107
123
|
rounded = false;
|
|
108
124
|
class = '';
|
|
109
125
|
contentTemplate;
|
|
126
|
+
/** Projected title/description used to build the dialog's accessible name. */
|
|
127
|
+
titleCmp;
|
|
128
|
+
descriptionCmp;
|
|
110
129
|
sheet = inject(SheetComponent);
|
|
111
130
|
close() {
|
|
112
131
|
this.sheet.close();
|
|
@@ -127,14 +146,19 @@ export class SheetContentComponent {
|
|
|
127
146
|
return cn("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:duration-500 data-[state=closed]:duration-300", sideClasses[this.side], this.rounded && roundingClasses[this.side], this.class);
|
|
128
147
|
}
|
|
129
148
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
130
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetContentComponent, isStandalone: true, selector: "tolle-sheet-content", inputs: { side: "side", rounded: "rounded", class: "class" }, viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["sheetContent"], descendants: true, static: true }], ngImport: i0, template: `
|
|
149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetContentComponent, isStandalone: true, selector: "tolle-sheet-content", inputs: { side: "side", rounded: "rounded", class: "class" }, queries: [{ propertyName: "titleCmp", first: true, predicate: i0.forwardRef(() => SheetTitleComponent), descendants: true }, { propertyName: "descriptionCmp", first: true, predicate: i0.forwardRef(() => SheetDescriptionComponent), descendants: true }], viewQueries: [{ propertyName: "contentTemplate", first: true, predicate: ["sheetContent"], descendants: true, static: true }], ngImport: i0, template: `
|
|
131
150
|
<ng-template #sheetContent>
|
|
132
|
-
<div
|
|
133
|
-
[class]="computedClass"
|
|
151
|
+
<div
|
|
152
|
+
[class]="computedClass"
|
|
134
153
|
[attr.data-state]="sheet.isOpen ? 'open' : 'closed'"
|
|
154
|
+
role="dialog"
|
|
155
|
+
aria-modal="true"
|
|
156
|
+
[attr.aria-labelledby]="titleCmp?.id || null"
|
|
157
|
+
[attr.aria-describedby]="descriptionCmp?.id || null"
|
|
158
|
+
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
135
159
|
(mousedown)="$event.stopPropagation()">
|
|
136
|
-
<button
|
|
137
|
-
(click)="close()"
|
|
160
|
+
<button
|
|
161
|
+
(click)="close()"
|
|
138
162
|
class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
|
|
139
163
|
>
|
|
140
164
|
<i class="ri-close-line text-xl"></i>
|
|
@@ -143,22 +167,27 @@ export class SheetContentComponent {
|
|
|
143
167
|
<ng-content></ng-content>
|
|
144
168
|
</div>
|
|
145
169
|
</ng-template>
|
|
146
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
170
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
|
|
147
171
|
}
|
|
148
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetContentComponent, decorators: [{
|
|
149
173
|
type: Component,
|
|
150
174
|
args: [{
|
|
151
175
|
selector: 'tolle-sheet-content',
|
|
152
176
|
standalone: true,
|
|
153
|
-
imports: [CommonModule],
|
|
177
|
+
imports: [CommonModule, A11yModule],
|
|
154
178
|
template: `
|
|
155
179
|
<ng-template #sheetContent>
|
|
156
|
-
<div
|
|
157
|
-
[class]="computedClass"
|
|
180
|
+
<div
|
|
181
|
+
[class]="computedClass"
|
|
158
182
|
[attr.data-state]="sheet.isOpen ? 'open' : 'closed'"
|
|
183
|
+
role="dialog"
|
|
184
|
+
aria-modal="true"
|
|
185
|
+
[attr.aria-labelledby]="titleCmp?.id || null"
|
|
186
|
+
[attr.aria-describedby]="descriptionCmp?.id || null"
|
|
187
|
+
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
159
188
|
(mousedown)="$event.stopPropagation()">
|
|
160
|
-
<button
|
|
161
|
-
(click)="close()"
|
|
189
|
+
<button
|
|
190
|
+
(click)="close()"
|
|
162
191
|
class="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none"
|
|
163
192
|
>
|
|
164
193
|
<i class="ri-close-line text-xl"></i>
|
|
@@ -178,6 +207,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
178
207
|
}], contentTemplate: [{
|
|
179
208
|
type: ViewChild,
|
|
180
209
|
args: ['sheetContent', { static: true }]
|
|
210
|
+
}], titleCmp: [{
|
|
211
|
+
type: ContentChild,
|
|
212
|
+
args: [forwardRef(() => SheetTitleComponent)]
|
|
213
|
+
}], descriptionCmp: [{
|
|
214
|
+
type: ContentChild,
|
|
215
|
+
args: [forwardRef(() => SheetDescriptionComponent)]
|
|
181
216
|
}] } });
|
|
182
217
|
export class SheetHeaderComponent {
|
|
183
218
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -220,8 +255,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
220
255
|
}]
|
|
221
256
|
}] });
|
|
222
257
|
export class SheetTitleComponent {
|
|
258
|
+
/** Stable id referenced by the sheet's `aria-labelledby`. */
|
|
259
|
+
id = `tolle-sheet-title-${Math.random().toString(36).substr(2, 9)}`;
|
|
223
260
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetTitleComponent, isStandalone: true, selector: "tolle-sheet-title", ngImport: i0, template: `
|
|
261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetTitleComponent, isStandalone: true, selector: "tolle-sheet-title", host: { properties: { "attr.id": "id" } }, ngImport: i0, template: `
|
|
225
262
|
<h3 class="text-lg font-semibold text-foreground">
|
|
226
263
|
<ng-content></ng-content>
|
|
227
264
|
</h3>
|
|
@@ -236,12 +273,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
236
273
|
<h3 class="text-lg font-semibold text-foreground">
|
|
237
274
|
<ng-content></ng-content>
|
|
238
275
|
</h3>
|
|
239
|
-
|
|
276
|
+
`,
|
|
277
|
+
host: { '[attr.id]': 'id' }
|
|
240
278
|
}]
|
|
241
279
|
}] });
|
|
242
280
|
export class SheetDescriptionComponent {
|
|
281
|
+
/** Stable id referenced by the sheet's `aria-describedby`. */
|
|
282
|
+
id = `tolle-sheet-description-${Math.random().toString(36).substr(2, 9)}`;
|
|
243
283
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
244
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetDescriptionComponent, isStandalone: true, selector: "tolle-sheet-description", ngImport: i0, template: `
|
|
284
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetDescriptionComponent, isStandalone: true, selector: "tolle-sheet-description", host: { properties: { "attr.id": "id" } }, ngImport: i0, template: `
|
|
245
285
|
<p class="text-sm text-muted-foreground">
|
|
246
286
|
<ng-content></ng-content>
|
|
247
287
|
</p>
|
|
@@ -256,7 +296,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
256
296
|
<p class="text-sm text-muted-foreground">
|
|
257
297
|
<ng-content></ng-content>
|
|
258
298
|
</p>
|
|
259
|
-
|
|
299
|
+
`,
|
|
300
|
+
host: { '[attr.id]': 'id' }
|
|
260
301
|
}]
|
|
261
302
|
}] });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9zaGVldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFhLFlBQVksRUFBRSxVQUFVLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQVFoQyxNQUFNLE9BQU8sY0FBYztJQUNoQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNsQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUU3QyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLGNBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvQyxVQUFVLENBQWM7SUFFdUIsZ0JBQWdCLENBQU87SUFFOUUsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJ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TjFCOzs7O0dBSVQ7OzRGQUVVLHlCQUF5QjtrQkFUckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIENvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgRWxlbWVudFJlZiwgQWZ0ZXJDb250ZW50SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIE92ZXJsYXlDb25maWcsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhhc0JhY2tkcm9wID0gdHJ1ZTtcbiAgQE91dHB1dCgpIGlzT3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSBzY3JvbGxTdHJhdGVneSA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xuXG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0Q29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBhbnk7XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgfHwgIXRoaXMuY29udGVudENvbXBvbmVudD8uY29udGVudFRlbXBsYXRlKSByZXR1cm47XG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICBiYWNrZHJvcENsYXNzOiAndG9sbGUtbW9kYWwtYmFja2Ryb3AnLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3kuYmxvY2soKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSAvLyBUaGlzIGNlbnRlcnMga2V5LCBidXQgc2hlZXQgaXMgZml4ZWQgdmlhIGNsYXNzZXNcbiAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5jb250ZW50Q29tcG9uZW50LmNvbnRlbnRUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICBpZiAodGhpcy5oYXNCYWNrZHJvcCkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gSW1tZWRpYXRlIGNsZWFudXAgb24gZGVzdHJveVxuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LXRyaWdnZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgaG9zdDoge1xuICAgICcoY2xpY2spJzogJ29uQ2xpY2soKScsXG4gICAgJ2NsYXNzJzogJ2lubGluZS1ibG9jaydcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBTaGVldFRyaWdnZXJDb21wb25lbnQge1xuICBwcml2YXRlIHNoZWV0ID0gaW5qZWN0KFNoZWV0Q29tcG9uZW50KTtcblxuICBvbkNsaWNrKCkge1xuICAgIHRoaXMuc2hlZXQub3BlbigpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LWNvbnRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctdGVtcGxhdGUgI3NoZWV0Q29udGVudD5cbiAgICAgIDxkaXYgXG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZENsYXNzXCIgXG4gICAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwic2hlZXQuaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgICAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCIgXG4gICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC00IHRvcC00IHJvdW5kZWQtc20gb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQteGxcIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Q29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnc2hlZXRDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgc2hlZXQgPSBpbmplY3QoU2hlZXRDb21wb25lbnQpO1xuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2hlZXQuY2xvc2UoKTtcbiAgfVxuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIGNvbnN0IHNpZGVDbGFzc2VzID0ge1xuICAgICAgdG9wOiBcImluc2V0LXgtMCB0b3AtMCBib3JkZXItYiBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tdG9wIGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tdG9wXCIsXG4gICAgICBib3R0b206IFwiaW5zZXQteC0wIGJvdHRvbS0wIGJvcmRlci10IGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1ib3R0b20gZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1ib3R0b21cIixcbiAgICAgIGxlZnQ6IFwiaW5zZXQteS0wIGxlZnQtMCBoLWZ1bGwgdy0zLzQgYm9yZGVyLXIgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWxlZnQgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1sZWZ0IHNtOm1heC13LXNtXCIsXG4gICAgICByaWdodDogXCJpbnNldC15LTAgcmlnaHQtMCBoLWZ1bGwgdy0zLzQgIGJvcmRlci1sIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1yaWdodCBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXJpZ2h0IHNtOm1heC13LXNtXCIsXG4gICAgfTtcblxuICAgIGNvbnN0IHJvdW5kaW5nQ2xhc3NlcyA9IHtcbiAgICAgIHRvcDogXCJyb3VuZGVkLWItMnhsXCIsXG4gICAgICBib3R0b206IFwicm91bmRlZC10LTJ4bFwiLFxuICAgICAgbGVmdDogXCJyb3VuZGVkLXItMnhsXCIsXG4gICAgICByaWdodDogXCJyb3VuZGVkLWwtMnhsXCIsXG4gICAgfTtcblxuICAgIHJldHVybiBjbihcbiAgICAgIFwiZml4ZWQgei01MCBnYXAtNCBiZy1iYWNrZ3JvdW5kIHAtNiBzaGFkb3ctbGcgdHJhbnNpdGlvbiBlYXNlLWluLW91dCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9b3Blbl06ZHVyYXRpb24tNTAwIGRhdGEtW3N0YXRlPWNsb3NlZF06ZHVyYXRpb24tMzAwXCIsXG4gICAgICBzaWRlQ2xhc3Nlc1t0aGlzLnNpZGVdLFxuICAgICAgdGhpcy5yb3VuZGVkICYmIHJvdW5kaW5nQ2xhc3Nlc1t0aGlzLnNpZGVdLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBzcGFjZS15LTIgdGV4dC1jZW50ZXIgc206dGV4dC1sZWZ0XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRIZWFkZXJDb21wb25lbnQgeyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wtcmV2ZXJzZSBzbTpmbGV4LXJvdyBzbTpqdXN0aWZ5LWVuZCBzbTpzcGFjZS14LTJcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBTaGVldEZvb3RlckNvbXBvbmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtdGl0bGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxoMyBjbGFzcz1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWZvcmVncm91bmRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2gzPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0VGl0bGVDb21wb25lbnQgeyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LWRlc2NyaXB0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cCBjbGFzcz1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9wPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0RGVzY3JpcHRpb25Db21wb25lbnQgeyB9XG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9zaGVldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFhLFlBQVksRUFBRSxVQUFVLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBUWhDLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9DLFVBQVUsQ0FBYztJQUNoQyxrRUFBa0U7SUFDMUQsaUJBQWlCLENBQXNCO0lBRVEsZ0JBQWdCLENBQU87SUFFOUUsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElB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QyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7d0dBRnhFLHlCQUF5Qjs0RkFBekIseUJBQXlCLDhIQVAxQjs7OztHQUlUOzs0RkFHVSx5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95LCBDb250ZW50Q2hpbGQsIGZvcndhcmRSZWYsIEVsZW1lbnRSZWYsIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmLCBPdmVybGF5Q29uZmlnLCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRDb21wb25lbnQge1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzQmFja2Ryb3AgPSB0cnVlO1xuICBAT3V0cHV0KCkgaXNPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHNjcm9sbFN0cmF0ZWd5ID0gaW5qZWN0KFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgLyoqIEVsZW1lbnQgZm9jdXNlZCBiZWZvcmUgdGhlIHNoZWV0IG9wZW5lZCwgcmVzdG9yZWQgb24gY2xvc2UuICovXG4gIHByaXZhdGUgcHJldmlvdXNseUZvY3VzZWQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0Q29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBhbnk7XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgfHwgIXRoaXMuY29udGVudENvbXBvbmVudD8uY29udGVudFRlbXBsYXRlKSByZXR1cm47XG5cbiAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgd2hlbiB0aGUgc2hlZXQgY2xvc2VzLlxuICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0b2xsZS1tb2RhbC1iYWNrZHJvcCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneS5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpIC8vIFRoaXMgY2VudGVycyBrZXksIGJ1dCBzaGVldCBpcyBmaXhlZCB2aWEgY2xhc3Nlc1xuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnRDb21wb25lbnQuY29udGVudFRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIGlmICh0aGlzLmhhc0JhY2tkcm9wKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8vIEVzY2FwZS10by1jbG9zZS5cbiAgICB0aGlzLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCB0b1Jlc3RvcmUgPSB0aGlzLnByZXZpb3VzbHlGb2N1c2VkO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgdHJpZ2dlciBhZnRlciB0aGUgZXhpdCBhbmltYXRpb24uXG4gICAgICAgIHRvUmVzdG9yZT8uZm9jdXM/LigpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBJbW1lZGlhdGUgY2xlYW51cCBvbiBkZXN0cm95XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtdHJpZ2dlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBob3N0OiB7XG4gICAgJyhjbGljayknOiAnb25DbGljaygpJyxcbiAgICAnY2xhc3MnOiAnaW5saW5lLWJsb2NrJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0VHJpZ2dlckNvbXBvbmVudCB7XG4gIHByaXZhdGUgc2hlZXQgPSBpbmplY3QoU2hlZXRDb21wb25lbnQpO1xuXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5zaGVldC5vcGVuKCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEExMXlNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjc2hlZXRDb250ZW50PlxuICAgICAgPGRpdlxuICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwic2hlZXQuaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidGl0bGVDbXA/LmlkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NyaXB0aW9uQ21wPy5pZCB8fCBudWxsXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlXG4gICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC00IHRvcC00IHJvdW5kZWQtc20gb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQteGxcIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Q29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnc2hlZXRDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogUHJvamVjdGVkIHRpdGxlL2Rlc2NyaXB0aW9uIHVzZWQgdG8gYnVpbGQgdGhlIGRpYWxvZydzIGFjY2Vzc2libGUgbmFtZS4gKi9cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0VGl0bGVDb21wb25lbnQpKSB0aXRsZUNtcD86IFNoZWV0VGl0bGVDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBTaGVldERlc2NyaXB0aW9uQ29tcG9uZW50KSkgZGVzY3JpcHRpb25DbXA/OiBTaGVldERlc2NyaXB0aW9uQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBzaGVldCA9IGluamVjdChTaGVldENvbXBvbmVudCk7XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zaGVldC5jbG9zZSgpO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgY29uc3Qgc2lkZUNsYXNzZXMgPSB7XG4gICAgICB0b3A6IFwiaW5zZXQteC0wIHRvcC0wIGJvcmRlci1iIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS10b3BcIixcbiAgICAgIGJvdHRvbTogXCJpbnNldC14LTAgYm90dG9tLTAgYm9yZGVyLXQgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWJvdHRvbSBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLWJvdHRvbVwiLFxuICAgICAgbGVmdDogXCJpbnNldC15LTAgbGVmdC0wIGgtZnVsbCB3LTMvNCBib3JkZXItciBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tbGVmdCBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLWxlZnQgc206bWF4LXctc21cIixcbiAgICAgIHJpZ2h0OiBcImluc2V0LXktMCByaWdodC0wIGgtZnVsbCB3LTMvNCAgYm9yZGVyLWwgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLXJpZ2h0IGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tcmlnaHQgc206bWF4LXctc21cIixcbiAgICB9O1xuXG4gICAgY29uc3Qgcm91bmRpbmdDbGFzc2VzID0ge1xuICAgICAgdG9wOiBcInJvdW5kZWQtYi0yeGxcIixcbiAgICAgIGJvdHRvbTogXCJyb3VuZGVkLXQtMnhsXCIsXG4gICAgICBsZWZ0OiBcInJvdW5kZWQtci0yeGxcIixcbiAgICAgIHJpZ2h0OiBcInJvdW5kZWQtbC0yeGxcIixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJmaXhlZCB6LTUwIGdhcC00IGJnLWJhY2tncm91bmQgcC02IHNoYWRvdy1sZyB0cmFuc2l0aW9uIGVhc2UtaW4tb3V0IGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1vcGVuXTpkdXJhdGlvbi01MDAgZGF0YS1bc3RhdGU9Y2xvc2VkXTpkdXJhdGlvbi0zMDBcIixcbiAgICAgIHNpZGVDbGFzc2VzW3RoaXMuc2lkZV0sXG4gICAgICB0aGlzLnJvdW5kZWQgJiYgcm91bmRpbmdDbGFzc2VzW3RoaXMuc2lkZV0sXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBTaGVldEhlYWRlckNvbXBvbmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIHNtOmZsZXgtcm93IHNtOmp1c3RpZnktZW5kIHNtOnNwYWNlLXgtMlwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Rm9vdGVyQ29tcG9uZW50IHsgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC10aXRsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGgzIGNsYXNzPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvaDM+XG4gIGAsXG4gIGhvc3Q6IHsgJ1thdHRyLmlkXSc6ICdpZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBTaGVldFRpdGxlQ29tcG9uZW50IHtcbiAgLyoqIFN0YWJsZSBpZCByZWZlcmVuY2VkIGJ5IHRoZSBzaGVldCdzIGBhcmlhLWxhYmVsbGVkYnlgLiAqL1xuICByZWFkb25seSBpZCA9IGB0b2xsZS1zaGVldC10aXRsZS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1kZXNjcmlwdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvcD5cbiAgYCxcbiAgaG9zdDogeyAnW2F0dHIuaWRdJzogJ2lkJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0RGVzY3JpcHRpb25Db21wb25lbnQge1xuICAvKiogU3RhYmxlIGlkIHJlZmVyZW5jZWQgYnkgdGhlIHNoZWV0J3MgYGFyaWEtZGVzY3JpYmVkYnlgLiAqL1xuICByZWFkb25seSBpZCA9IGB0b2xsZS1zaGVldC1kZXNjcmlwdGlvbi0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufVxuIl19
|
|
@@ -8,8 +8,12 @@ export class SheetService {
|
|
|
8
8
|
overlay = inject(Overlay);
|
|
9
9
|
injector = inject(Injector);
|
|
10
10
|
open(config) {
|
|
11
|
+
// Remember the trigger so focus can be restored once the sheet is disposed.
|
|
12
|
+
const previouslyFocused = document.activeElement;
|
|
11
13
|
const overlayRef = this.createOverlay(config);
|
|
12
14
|
const sheetRef = new SheetRef(overlayRef, config);
|
|
15
|
+
// Restore focus to the trigger after the overlay tears down.
|
|
16
|
+
overlayRef.detachments().subscribe(() => previouslyFocused?.focus?.());
|
|
13
17
|
const customInjector = Injector.create({
|
|
14
18
|
parent: this.injector,
|
|
15
19
|
providers: [
|
|
@@ -45,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
45
49
|
type: Injectable,
|
|
46
50
|
args: [{ providedIn: 'root' }]
|
|
47
51
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvc2hlZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLFlBQVk7SUFDYixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsSUFBSSxDQUFVLE1BQW1CO1FBQzdCLDRFQUE0RTtRQUM1RSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBRXZFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUksVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXJELDZEQUE2RDtRQUM3RCxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7YUFDNUM7U0FDSixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDaEYsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQixtREFBbUQ7UUFDbkQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQVUsRUFBRSxFQUFFO1lBQzVCLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QixpREFBaUQ7WUFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDO1FBRUYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFtQjtRQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUNwQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsS0FBSyxLQUFLO1lBQ3pDLGFBQWEsRUFBRSxzQkFBc0I7WUFDckMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRTtTQUM3RixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7d0dBOUNRLFlBQVk7NEdBQVosWUFBWSxjQURDLE1BQU07OzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFNoZWV0Q29uZmlnIH0gZnJvbSAnLi9zaGVldC50eXBlcyc7XG5pbXBvcnQgeyBTaGVldFJlZiB9IGZyb20gJy4vc2hlZXQtcmVmJztcbmltcG9ydCB7IFNoZWV0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vc2hlZXQtd3JhcHBlci5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNoZWV0U2VydmljZSB7XG4gICAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgb3BlbjxSID0gYW55Pihjb25maWc6IFNoZWV0Q29uZmlnKTogU2hlZXRSZWY8Uj4ge1xuICAgICAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgb25jZSB0aGUgc2hlZXQgaXMgZGlzcG9zZWQuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgICAgICBjb25zdCBzaGVldFJlZiA9IG5ldyBTaGVldFJlZjxSPihvdmVybGF5UmVmLCBjb25maWcpO1xuXG4gICAgICAgIC8vIFJlc3RvcmUgZm9jdXMgdG8gdGhlIHRyaWdnZXIgYWZ0ZXIgdGhlIG92ZXJsYXkgdGVhcnMgZG93bi5cbiAgICAgICAgb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLnN1YnNjcmliZSgoKSA9PiBwcmV2aW91c2x5Rm9jdXNlZD8uZm9jdXM/LigpKTtcblxuICAgICAgICBjb25zdCBjdXN0b21JbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFNoZWV0UmVmLCB1c2VWYWx1ZTogc2hlZXRSZWYgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFNoZWV0V3JhcHBlckNvbXBvbmVudCwgbnVsbCwgY3VzdG9tSW5qZWN0b3IpO1xuICAgICAgICBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgICAgIC8vIE92ZXJyaWRlIHRoZSBjbG9zZSBtZXRob2QgdG8gYWRkIGFuaW1hdGlvbiBkZWxheVxuICAgICAgICBjb25zdCBvcmlnaW5hbENsb3NlID0gc2hlZXRSZWYuY2xvc2UuYmluZChzaGVldFJlZik7XG4gICAgICAgIHNoZWV0UmVmLmNsb3NlID0gKHJlc3VsdD86IFIpID0+IHtcbiAgICAgICAgICAgIG9yaWdpbmFsQ2xvc2UocmVzdWx0KTtcbiAgICAgICAgICAgIC8vIFdhaXQgZm9yIGV4aXQgYW5pbWF0aW9uIChtYXRjaGVzIENTUyBkdXJhdGlvbilcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNoZWV0UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHNoZWV0UmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3ZlcmxheShjb25maWc6IFNoZWV0Q29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wICE9PSBmYWxzZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0b2xsZS1tb2RhbC1iYWNrZHJvcCcsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICB9XG59XG4iXX0=
|