@skyux/modals 8.0.0-alpha.2 → 8.0.0-alpha.21
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/documentation.json +1162 -388
- package/esm2020/lib/modules/confirm/confirm.component.mjs +5 -5
- package/esm2020/lib/modules/confirm/confirm.module.mjs +4 -4
- package/esm2020/lib/modules/confirm/confirm.service.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-adapter.service.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-before-close-handler.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-configuration.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-content.component.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-footer.component.mjs +6 -6
- package/esm2020/lib/modules/modal/modal-header.component.mjs +5 -5
- package/esm2020/lib/modules/modal/modal-host-context.mjs +3 -3
- package/esm2020/lib/modules/modal/modal-host.component.mjs +10 -10
- package/esm2020/lib/modules/modal/modal-host.service.mjs +12 -12
- package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +3 -3
- package/esm2020/lib/modules/modal/modal.component.mjs +51 -33
- package/esm2020/lib/modules/modal/modal.module.mjs +4 -4
- package/esm2020/lib/modules/modal/modal.service.mjs +3 -3
- package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +4 -4
- package/esm2020/testing/modal/modal-harness-filters.mjs +2 -0
- package/esm2020/testing/modal/modal-harness.mjs +73 -0
- package/esm2020/testing/public-api.mjs +3 -1
- package/fesm2015/skyux-modals-testing.mjs +84 -1
- package/fesm2015/skyux-modals-testing.mjs.map +1 -1
- package/fesm2015/skyux-modals.mjs +118 -102
- package/fesm2015/skyux-modals.mjs.map +1 -1
- package/fesm2020/skyux-modals-testing.mjs +72 -1
- package/fesm2020/skyux-modals-testing.mjs.map +1 -1
- package/fesm2020/skyux-modals.mjs +118 -102
- package/fesm2020/skyux-modals.mjs.map +1 -1
- package/lib/modules/confirm/confirm-button-action.d.ts +1 -1
- package/lib/modules/confirm/confirm-button-style-type.d.ts +1 -1
- package/lib/modules/modal/modal-before-close-handler.d.ts +11 -2
- package/lib/modules/modal/modal.component.d.ts +4 -2
- package/package.json +10 -10
- package/testing/modal/modal-harness-filters.d.ts +6 -0
- package/testing/modal/modal-harness.d.ts +42 -0
- package/testing/public-api.d.ts +2 -0
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
var _SkyModalComponent_hostService, _SkyModalComponent_elRef, _SkyModalComponent_windowRef, _SkyModalComponent_componentAdapter, _SkyModalComponent_coreAdapter, _SkyModalComponent_dockService, _SkyModalComponent_mediaQueryService, _SkyModalComponent__ariaDescribedBy, _SkyModalComponent__ariaLabelledBy;
|
|
1
|
+
var _SkyModalComponent_hostService, _SkyModalComponent_elRef, _SkyModalComponent_windowRef, _SkyModalComponent_componentAdapter, _SkyModalComponent_coreAdapter, _SkyModalComponent_dockService, _SkyModalComponent_mediaQueryService, _SkyModalComponent_ngUnsubscribe, _SkyModalComponent__ariaDescribedBy, _SkyModalComponent__ariaLabelledBy, _SkyModalComponent_changeDetector, _SkyModalComponent_liveAnnouncerSvc;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { Component, ElementRef, Host, HostBinding, HostListener, Input, Optional, ViewChild, } from '@angular/core';
|
|
4
|
-
import { SkyDockLocation, SkyDockService, } from '@skyux/core';
|
|
3
|
+
import { ChangeDetectorRef, Component, ElementRef, Host, HostBinding, HostListener, Input, Optional, ViewChild, inject, } from '@angular/core';
|
|
4
|
+
import { SkyDockLocation, SkyDockService, SkyLiveAnnouncerService, } from '@skyux/core';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
7
|
import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
|
|
6
8
|
import { SkyModalHostService } from './modal-host.service';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
@@ -20,8 +22,33 @@ const ARIA_ROLE_DEFAULT = 'dialog';
|
|
|
20
22
|
* and buttons.
|
|
21
23
|
*/
|
|
22
24
|
export class SkyModalComponent {
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
set ariaRole(value) {
|
|
29
|
+
this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
set ariaDescribedBy(id) {
|
|
35
|
+
__classPrivateFieldSet(this, _SkyModalComponent__ariaDescribedBy, id, "f");
|
|
36
|
+
}
|
|
37
|
+
get ariaDescribedBy() {
|
|
38
|
+
return __classPrivateFieldGet(this, _SkyModalComponent__ariaDescribedBy, "f");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
set ariaLabelledBy(id) {
|
|
44
|
+
__classPrivateFieldSet(this, _SkyModalComponent__ariaLabelledBy, id, "f");
|
|
45
|
+
}
|
|
46
|
+
get ariaLabelledBy() {
|
|
47
|
+
return __classPrivateFieldGet(this, _SkyModalComponent__ariaLabelledBy, "f");
|
|
48
|
+
}
|
|
23
49
|
constructor(hostService, config, elRef, windowRef, componentAdapter, coreAdapter, dockService, mediaQueryService) {
|
|
24
50
|
this.ariaRoleOrDefault = ARIA_ROLE_DEFAULT;
|
|
51
|
+
this.ariaOwns = null;
|
|
25
52
|
this.modalState = 'in';
|
|
26
53
|
_SkyModalComponent_hostService.set(this, void 0);
|
|
27
54
|
_SkyModalComponent_elRef.set(this, void 0);
|
|
@@ -30,8 +57,11 @@ export class SkyModalComponent {
|
|
|
30
57
|
_SkyModalComponent_coreAdapter.set(this, void 0);
|
|
31
58
|
_SkyModalComponent_dockService.set(this, void 0);
|
|
32
59
|
_SkyModalComponent_mediaQueryService.set(this, void 0);
|
|
60
|
+
_SkyModalComponent_ngUnsubscribe.set(this, new Subject());
|
|
33
61
|
_SkyModalComponent__ariaDescribedBy.set(this, void 0);
|
|
34
62
|
_SkyModalComponent__ariaLabelledBy.set(this, void 0);
|
|
63
|
+
_SkyModalComponent_changeDetector.set(this, inject(ChangeDetectorRef));
|
|
64
|
+
_SkyModalComponent_liveAnnouncerSvc.set(this, inject(SkyLiveAnnouncerService));
|
|
35
65
|
__classPrivateFieldSet(this, _SkyModalComponent_hostService, hostService, "f");
|
|
36
66
|
__classPrivateFieldSet(this, _SkyModalComponent_elRef, elRef, "f");
|
|
37
67
|
__classPrivateFieldSet(this, _SkyModalComponent_windowRef, windowRef, "f");
|
|
@@ -50,30 +80,6 @@ export class SkyModalComponent {
|
|
|
50
80
|
: config.size?.toLowerCase() || 'medium';
|
|
51
81
|
this.modalZIndex = __classPrivateFieldGet(this, _SkyModalComponent_hostService, "f").zIndex;
|
|
52
82
|
}
|
|
53
|
-
/**
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
set ariaRole(value) {
|
|
57
|
-
this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @internal
|
|
61
|
-
*/
|
|
62
|
-
set ariaDescribedBy(id) {
|
|
63
|
-
__classPrivateFieldSet(this, _SkyModalComponent__ariaDescribedBy, id, "f");
|
|
64
|
-
}
|
|
65
|
-
get ariaDescribedBy() {
|
|
66
|
-
return __classPrivateFieldGet(this, _SkyModalComponent__ariaDescribedBy, "f");
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* @internal
|
|
70
|
-
*/
|
|
71
|
-
set ariaLabelledBy(id) {
|
|
72
|
-
__classPrivateFieldSet(this, _SkyModalComponent__ariaLabelledBy, id, "f");
|
|
73
|
-
}
|
|
74
|
-
get ariaLabelledBy() {
|
|
75
|
-
return __classPrivateFieldGet(this, _SkyModalComponent__ariaLabelledBy, "f");
|
|
76
|
-
}
|
|
77
83
|
onDocumentKeyUp(event) {
|
|
78
84
|
/* istanbul ignore else */
|
|
79
85
|
/* sanity check */
|
|
@@ -117,6 +123,16 @@ export class SkyModalComponent {
|
|
|
117
123
|
}
|
|
118
124
|
}
|
|
119
125
|
}
|
|
126
|
+
ngOnInit() {
|
|
127
|
+
__classPrivateFieldGet(this, _SkyModalComponent_liveAnnouncerSvc, "f").announcerElementChanged
|
|
128
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyModalComponent_ngUnsubscribe, "f")))
|
|
129
|
+
.subscribe((element) => {
|
|
130
|
+
if (element?.id) {
|
|
131
|
+
this.ariaOwns = element.id;
|
|
132
|
+
__classPrivateFieldGet(this, _SkyModalComponent_changeDetector, "f").markForCheck();
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
120
136
|
ngAfterViewInit() {
|
|
121
137
|
__classPrivateFieldGet(this, _SkyModalComponent_componentAdapter, "f").handleWindowChange(__classPrivateFieldGet(this, _SkyModalComponent_elRef, "f"));
|
|
122
138
|
// Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.
|
|
@@ -139,6 +155,8 @@ export class SkyModalComponent {
|
|
|
139
155
|
if (__classPrivateFieldGet(this, _SkyModalComponent_mediaQueryService, "f")) {
|
|
140
156
|
__classPrivateFieldGet(this, _SkyModalComponent_mediaQueryService, "f").unobserve();
|
|
141
157
|
}
|
|
158
|
+
__classPrivateFieldGet(this, _SkyModalComponent_ngUnsubscribe, "f").next();
|
|
159
|
+
__classPrivateFieldGet(this, _SkyModalComponent_ngUnsubscribe, "f").complete();
|
|
142
160
|
}
|
|
143
161
|
helpButtonClick() {
|
|
144
162
|
if (this.helpKey) {
|
|
@@ -158,12 +176,12 @@ export class SkyModalComponent {
|
|
|
158
176
|
return __classPrivateFieldGet(this, _SkyModalComponent_componentAdapter, "f").modalContentHasDirectChildViewkeeper(__classPrivateFieldGet(this, _SkyModalComponent_elRef, "f"));
|
|
159
177
|
}
|
|
160
178
|
}
|
|
161
|
-
_SkyModalComponent_hostService = new WeakMap(), _SkyModalComponent_elRef = new WeakMap(), _SkyModalComponent_windowRef = new WeakMap(), _SkyModalComponent_componentAdapter = new WeakMap(), _SkyModalComponent_coreAdapter = new WeakMap(), _SkyModalComponent_dockService = new WeakMap(), _SkyModalComponent_mediaQueryService = new WeakMap(), _SkyModalComponent__ariaDescribedBy = new WeakMap(), _SkyModalComponent__ariaLabelledBy = new WeakMap();
|
|
162
|
-
SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
163
|
-
SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
179
|
+
_SkyModalComponent_hostService = new WeakMap(), _SkyModalComponent_elRef = new WeakMap(), _SkyModalComponent_windowRef = new WeakMap(), _SkyModalComponent_componentAdapter = new WeakMap(), _SkyModalComponent_coreAdapter = new WeakMap(), _SkyModalComponent_dockService = new WeakMap(), _SkyModalComponent_mediaQueryService = new WeakMap(), _SkyModalComponent_ngUnsubscribe = new WeakMap(), _SkyModalComponent__ariaDescribedBy = new WeakMap(), _SkyModalComponent__ariaLabelledBy = new WeakMap(), _SkyModalComponent_changeDetector = new WeakMap(), _SkyModalComponent_liveAnnouncerSvc = new WeakMap();
|
|
180
|
+
SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalComponent, deps: [{ token: i1.SkyModalHostService }, { token: i2.SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: i4.SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyResizeObserverMediaQueryService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody", ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [SkyModalComponentAdapterService, SkyDockService], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length < 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-section-heading': size === 'full-page'\n }\"\n #headerContent\n #headerId=\"skyId\"\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"headerId.id\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentId=\"skyId\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: i7.SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: ["skyModalScrollShadow"] }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }] });
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalComponent, decorators: [{
|
|
165
183
|
type: Component,
|
|
166
|
-
args: [{ selector: 'sky-modal', providers: [SkyModalComponentAdapterService, SkyDockService], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length < 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-section-heading': size === 'full-page'\n }\"\n #headerContent\n #headerId=\"skyId\"\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"headerId.id\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentId=\"skyId\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;
|
|
184
|
+
args: [{ selector: 'sky-modal', providers: [SkyModalComponentAdapterService, SkyDockService], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length < 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n skyId\n [ngClass]=\"{\n 'sky-section-heading': size === 'full-page'\n }\"\n #headerContent\n #headerId=\"skyId\"\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n [attr.aria-labelledby]=\"headerId.id\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentId=\"skyId\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff;--sky-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - 60px);margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - 60px);margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"] }]
|
|
167
185
|
}], ctorParameters: function () { return [{ type: i1.SkyModalHostService }, { type: i2.SkyModalConfiguration }, { type: i0.ElementRef }, { type: i3.SkyAppWindowRef }, { type: i4.SkyModalComponentAdapterService }, { type: i3.SkyCoreAdapterService }, { type: i3.SkyDockService, decorators: [{
|
|
168
186
|
type: Host
|
|
169
187
|
}] }, { type: i3.SkyResizeObserverMediaQueryService, decorators: [{
|
|
@@ -189,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
|
189
207
|
type: HostListener,
|
|
190
208
|
args: ['document:keydown', ['$event']]
|
|
191
209
|
}] } });
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxFQUNmLGNBQWMsR0FFZixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQUczRCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUVuQzs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQW9FNUIsWUFDRSxXQUFnQyxFQUNoQyxNQUE2QixFQUM3QixLQUFpQixFQUNqQixTQUEwQixFQUMxQixnQkFBaUQsRUFDakQsV0FBa0MsRUFDMUIsV0FBMkIsRUFFbkMsaUJBQXNEO1FBakVqRCxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQWtDdEMsZUFBVSxHQUFHLElBQUksQ0FBQztRQVd6QixpREFBa0M7UUFDbEMsMkNBQW1CO1FBQ25CLCtDQUE0QjtRQUM1QixzREFBbUQ7UUFDbkQsaURBQW9DO1FBQ3BDLGlEQUE2QjtRQUM3Qix1REFBbUU7UUFFbkUsc0RBQXNDO1FBQ3RDLHFEQUFxQztRQWFuQyx1QkFBQSxJQUFJ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QixFQUFFLGNBQWMsQ0FBQzs7MEJBNkV6RCxJQUFJOzswQkFDSixRQUFROzRDQTFFSixZQUFZO3NCQURsQixXQUFXO3VCQUFDLE9BQU87Z0JBT1QsUUFBUTtzQkFEbEIsS0FBSztnQkFXQyxTQUFTO3NCQURmLEtBQUs7Z0JBT0ssZUFBZTtzQkFEekIsS0FBSztnQkFhSyxjQUFjO3NCQUR4QixLQUFLO2dCQW9CQywwQkFBMEI7c0JBRGhDLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQWdEL0MsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQm5DLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWYsXG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RG9ja0xvY2F0aW9uLFxuICBTa3lEb2NrU2VydmljZSxcbiAgU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1jb21wb25lbnQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxTY3JvbGxTaGFkb3dFdmVudEFyZ3MgfSBmcm9tICcuL21vZGFsLXNjcm9sbC1zaGFkb3ctZXZlbnQtYXJncyc7XG5cbmNvbnN0IEFSSUFfUk9MRV9ERUZBVUxUID0gJ2RpYWxvZyc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBjb21tb24gbG9vay1hbmQtZmVlbCBmb3IgbW9kYWwgY29udGVudCB3aXRoIG9wdGlvbnMgdG8gZGlzcGxheVxuICogYSBjb21tb24gbW9kYWwgaGVhZGVyLCBzcGVjaWZ5IGJvZHkgY29udGVudCwgYW5kIGRpc3BsYXkgYSBjb21tb24gbW9kYWwgZm9vdGVyXG4gKiBhbmQgYnV0dG9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSwgU2t5RG9ja1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhUm9sZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5hcmlhUm9sZU9yRGVmYXVsdCA9IHZhbHVlIHx8IEFSSUFfUk9MRV9ERUZBVUxUO1xuICB9XG5cbiAgcHVibGljIGFyaWFSb2xlT3JEZWZhdWx0ID0gQVJJQV9ST0xFX0RFRkFVTFQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRpbGVkQm9keTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFEZXNjcmliZWRCeShpZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FyaWFEZXNjcmliZWRCeSA9IGlkO1xuICB9XG5cbiAgcHVibGljIGdldCBhcmlhRGVzY3JpYmVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFEZXNjcmliZWRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYUxhYmVsbGVkQnkoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhTGFiZWxsZWRCeSA9IGlkO1xuICB9XG5cbiAgcHVibGljIGdldCBhcmlhTGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYXJpYUxhYmVsbGVkQnk7XG4gIH1cblxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtb2RhbFN0YXRlID0gJ2luJztcblxuICBwdWJsaWMgbW9kYWxaSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93OiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2l6ZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZTtcbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG4gICNjb21wb25lbnRBZGFwdGVyOiBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlO1xuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI2RvY2tTZXJ2aWNlOiBTa3lEb2NrU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gICNfYXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICNfYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZSxcbiAgICBjb25maWc6IFNreU1vZGFsQ29uZmlndXJhdGlvbixcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBjb21wb25lbnRBZGFwdGVyOiBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLFxuICAgIGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgQEhvc3QoKSBkb2NrU2VydmljZTogU2t5RG9ja1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBtZWRpYVF1ZXJ5U2VydmljZT86IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jaG9zdFNlcnZpY2UgPSBob3N0U2VydmljZTtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyID0gY29tcG9uZW50QWRhcHRlcjtcbiAgICB0aGlzLiNjb3JlQWRhcHRlciA9IGNvcmVBZGFwdGVyO1xuICAgIHRoaXMuI2RvY2tTZXJ2aWNlID0gZG9ja1NlcnZpY2U7XG4gICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UgPSBtZWRpYVF1ZXJ5U2VydmljZTtcblxuICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gY29uZmlnLmFyaWFEZXNjcmliZWRCeTtcbiAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gY29uZmlnLmFyaWFMYWJlbGxlZEJ5O1xuICAgIHRoaXMuYXJpYVJvbGUgPSBjb25maWcuYXJpYVJvbGU7XG4gICAgdGhpcy5oZWxwS2V5ID0gY29uZmlnLmhlbHBLZXk7XG4gICAgdGhpcy50aWxlZEJvZHkgPSBjb25maWcudGlsZWRCb2R5O1xuICAgIHRoaXMud3JhcHBlckNsYXNzID0gY29uZmlnLndyYXBwZXJDbGFzcztcblxuICAgIHRoaXMuc2l6ZSA9IGNvbmZpZy5mdWxsUGFnZVxuICAgICAgPyAnZnVsbC1wYWdlJ1xuICAgICAgOiBjb25maWcuc2l6ZT8udG9Mb3dlckNhc2UoKSB8fCAnbWVkaXVtJztcblxuICAgIHRoaXMubW9kYWxaSW5kZXggPSB0aGlzLiNob3N0U2VydmljZS56SW5kZXg7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvY3VtZW50S2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCkge1xuICAgICAgY29uc3QgdG9wTW9kYWwgPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsO1xuICAgICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsID09PSB0aGlzLiNob3N0U2VydmljZSkge1xuICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XG4gICAgICAgICAgLy8gRXNjYXBlIGtleSB1cFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbkNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG9jdW1lbnRLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHRvcE1vZGFsID0gU2t5TW9kYWxIb3N0U2VydmljZS50b3BNb2RhbDtcbiAgICAgIGlmICh0b3BNb2RhbCAmJiB0b3BNb2RhbCA9PT0gdGhpcy4jaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSA5KSB7XG4gICAgICAgICAgLy8gVGFiIHByZXNzZWRcbiAgICAgICAgICBsZXQgZm9jdXNDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBmb2N1c0VsZW1lbnRMaXN0ID0gdGhpcy4jY29yZUFkYXB0ZXIuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgICB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICAodGhpcy4jY29tcG9uZW50QWRhcHRlci5pc0ZvY3VzSW5GaXJzdEl0ZW0oXG4gICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICBmb2N1c0VsZW1lbnRMaXN0XG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaXNNb2RhbEZvY3VzZWQoZXZlbnQsIHRoaXMuI2VsUmVmKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGZvY3VzQ2hhbmdlZCA9XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuZm9jdXNMYXN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIWV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkxhc3RJdGVtKGV2ZW50LCBmb2N1c0VsZW1lbnRMaXN0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5mb2N1c0ZpcnN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZm9jdXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmhhbmRsZVdpbmRvd0NoYW5nZSh0aGlzLiNlbFJlZik7XG5cbiAgICAvLyBBZGRpbmcgYSB0aW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDA1NjI4NDVcbiAgICB0aGlzLiN3aW5kb3dSZWYubmF0aXZlV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5tb2RhbE9wZW5lZCh0aGlzLiNlbFJlZik7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNkb2NrU2VydmljZS5zZXREb2NrT3B0aW9ucyh7XG4gICAgICBsb2NhdGlvbjogU2t5RG9ja0xvY2F0aW9uLkVsZW1lbnRCb3R0b20sXG4gICAgICByZWZlcmVuY2VFbDogdGhpcy5tb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudCEubmF0aXZlRWxlbWVudCxcbiAgICAgIHpJbmRleDogNSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlKSB7XG4gICAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZS5vYnNlcnZlKHRoaXMubW9kYWxDb250ZW50V3JhcHBlckVsZW1lbnQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLnVub2JzZXJ2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaGVscEtleSkge1xuICAgICAgdGhpcy4jaG9zdFNlcnZpY2Uub25PcGVuSGVscCh0aGlzLmhlbHBLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuI2hvc3RTZXJ2aWNlLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyB3aW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5oYW5kbGVXaW5kb3dDaGFuZ2UodGhpcy4jZWxSZWYpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFNoYWRvd0NoYW5nZShhcmdzOiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU2hhZG93ID0gYXJncztcbiAgfVxuXG4gIHB1YmxpYyB2aWV3a2VlcGVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jY29tcG9uZW50QWRhcHRlci5tb2RhbENvbnRlbnRIYXNEaXJlY3RDaGlsZFZpZXdrZWVwZXIoXG4gICAgICB0aGlzLiNlbFJlZlxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktbW9kYWwtZGlhbG9nXCJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSB8fCBtb2RhbENvbnRlbnRJZC5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSB8fCBoZWFkZXJJZC5pZFwiXG4gIFthdHRyLnJvbGVdPVwiYXJpYVJvbGVPckRlZmF1bHRcIlxuICAod2luZG93OnJlc2l6ZSk9XCJ3aW5kb3dSZXNpemUoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1tb2RhbCBza3ktc2hhZG93IHNreS1ib3ggc2t5LWVsZXZhdGlvbi0xNiBza3ktbW9kYWwte3sgc2l6ZSB9fVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1tb2RhbC10aWxlZCc6IHRpbGVkQm9keSxcbiAgICAgICdza3ktbW9kYWwtdmlld2tlZXBlcic6IHZpZXdrZWVwZXJFbmFibGVkKClcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICB6SW5kZXg6IG1vZGFsWkluZGV4XG4gICAgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXJcIlxuICAgICAgW2hpZGRlbl09XCIhaGVhZGVyQ29udGVudCB8fCAhaGVhZGVyQ29udGVudC5jaGlsZHJlbiB8fCBoZWFkZXJDb250ZW50LmNoaWxkcmVuLmxlbmd0aCAmbHQ7IDFcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnYm94LXNoYWRvdyc6IHNjcm9sbFNoYWRvdz8udG9wU2hhZG93XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgc2t5SWRcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktc2VjdGlvbi1oZWFkaW5nJzogc2l6ZSA9PT0gJ2Z1bGwtcGFnZSdcbiAgICAgICAgfVwiXG4gICAgICAgICNoZWFkZXJDb250ZW50XG4gICAgICAgICNoZWFkZXJJZD1cInNreUlkXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXItYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoZWxwS2V5XCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LW1vZGFsLWJ0bi1oZWxwXCJcbiAgICAgICAgICBuYW1lPVwiaGVscC1idXR0b25cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X21vZGFsX29wZW5faGVscCcgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgIChjbGljayk9XCJoZWxwQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cInF1ZXN0aW9uLWNpcmNsZVwiPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LW1vZGFsLWJ0bi1jbG9zZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfbW9kYWxfY2xvc2UnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2VCdXR0b25DbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwiY2xvc2VcIj48L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWNvbnRlbnQgc2t5LXBhZGRpbmctZXZlbi1sYXJnZVwiXG4gICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBza3lJZFxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImhlYWRlcklkLmlkXCJcbiAgICAgIChza3lNb2RhbFNjcm9sbFNoYWRvdyk9XCJzY3JvbGxTaGFkb3dDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAjbW9kYWxDb250ZW50SWQ9XCJza3lJZFwiXG4gICAgICAjbW9kYWxDb250ZW50V3JhcHBlclxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWZvb3RlclwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICdib3gtc2hhZG93Jzogc2Nyb2xsU2hhZG93Py5ib3R0b21TaGFkb3dcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxlQUFlLEVBQ2YsY0FBYyxFQUNkLHVCQUF1QixHQUV4QixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQUczRCxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUVuQzs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQUk1Qjs7T0FFRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLElBQUksaUJBQWlCLENBQUM7SUFDdEQsQ0FBQztJQVVEOztPQUVHO0lBQ0gsSUFDVyxlQUFlLENBQUMsRUFBc0I7UUFDL0MsdUJBQUEsSUFBSSx1Q0FBcUIsRUFBRSxNQUFBLENBQUM7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QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQm5DLGlCQUFpQjtzQkFEdkIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3QsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreUFwcFdpbmRvd1JlZixcbiAgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICBTa3lEb2NrTG9jYXRpb24sXG4gIFNreURvY2tTZXJ2aWNlLFxuICBTa3lMaXZlQW5ub3VuY2VyU2VydmljZSxcbiAgU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreU1vZGFsQ29tcG9uZW50QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWNvbXBvbmVudC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tb2RhbC1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFNreU1vZGFsSG9zdFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB9IGZyb20gJy4vbW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzJztcblxuY29uc3QgQVJJQV9ST0xFX0RFRkFVTFQgPSAnZGlhbG9nJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciBtb2RhbCBjb250ZW50IHdpdGggb3B0aW9ucyB0byBkaXNwbGF5XG4gKiBhIGNvbW1vbiBtb2RhbCBoZWFkZXIsIHNwZWNpZnkgYm9keSBjb250ZW50LCBhbmQgZGlzcGxheSBhIGNvbW1vbiBtb2RhbCBmb290ZXJcbiAqIGFuZCBidXR0b25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLCBTa3lEb2NrU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHVibGljIHdyYXBwZXJDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYVJvbGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXJpYVJvbGVPckRlZmF1bHQgPSB2YWx1ZSB8fCBBUklBX1JPTEVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBhcmlhUm9sZU9yRGVmYXVsdCA9IEFSSUFfUk9MRV9ERUZBVUxUO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlZEJvZHk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhRGVzY3JpYmVkQnkoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhRGVzY3JpYmVkQnkgPSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYURlc2NyaWJlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19hcmlhRGVzY3JpYmVkQnk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFMYWJlbGxlZEJ5KGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXJpYUxhYmVsbGVkQnkgPSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFMYWJlbGxlZEJ5O1xuICB9XG5cbiAgcHVibGljIGFyaWFPd25zOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtb2RhbFN0YXRlID0gJ2luJztcblxuICBwdWJsaWMgbW9kYWxaSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93OiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2l6ZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZTtcbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG4gICNjb21wb25lbnRBZGFwdGVyOiBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlO1xuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI2RvY2tTZXJ2aWNlOiBTa3lEb2NrU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19hcmlhRGVzY3JpYmVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19hcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNsaXZlQW5ub3VuY2VyU3ZjID0gaW5qZWN0KFNreUxpdmVBbm5vdW5jZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZSxcbiAgICBjb25maWc6IFNreU1vZGFsQ29uZmlndXJhdGlvbixcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBjb21wb25lbnRBZGFwdGVyOiBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLFxuICAgIGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgQEhvc3QoKSBkb2NrU2VydmljZTogU2t5RG9ja1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBtZWRpYVF1ZXJ5U2VydmljZT86IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jaG9zdFNlcnZpY2UgPSBob3N0U2VydmljZTtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyID0gY29tcG9uZW50QWRhcHRlcjtcbiAgICB0aGlzLiNjb3JlQWRhcHRlciA9IGNvcmVBZGFwdGVyO1xuICAgIHRoaXMuI2RvY2tTZXJ2aWNlID0gZG9ja1NlcnZpY2U7XG4gICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UgPSBtZWRpYVF1ZXJ5U2VydmljZTtcblxuICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gY29uZmlnLmFyaWFEZXNjcmliZWRCeTtcbiAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gY29uZmlnLmFyaWFMYWJlbGxlZEJ5O1xuICAgIHRoaXMuYXJpYVJvbGUgPSBjb25maWcuYXJpYVJvbGU7XG4gICAgdGhpcy5oZWxwS2V5ID0gY29uZmlnLmhlbHBLZXk7XG4gICAgdGhpcy50aWxlZEJvZHkgPSBjb25maWcudGlsZWRCb2R5O1xuICAgIHRoaXMud3JhcHBlckNsYXNzID0gY29uZmlnLndyYXBwZXJDbGFzcztcblxuICAgIHRoaXMuc2l6ZSA9IGNvbmZpZy5mdWxsUGFnZVxuICAgICAgPyAnZnVsbC1wYWdlJ1xuICAgICAgOiBjb25maWcuc2l6ZT8udG9Mb3dlckNhc2UoKSB8fCAnbWVkaXVtJztcblxuICAgIHRoaXMubW9kYWxaSW5kZXggPSB0aGlzLiNob3N0U2VydmljZS56SW5kZXg7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkRvY3VtZW50S2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCkge1xuICAgICAgY29uc3QgdG9wTW9kYWwgPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsO1xuICAgICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsID09PSB0aGlzLiNob3N0U2VydmljZSkge1xuICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XG4gICAgICAgICAgLy8gRXNjYXBlIGtleSB1cFxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbkNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG9jdW1lbnRLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHRvcE1vZGFsID0gU2t5TW9kYWxIb3N0U2VydmljZS50b3BNb2RhbDtcbiAgICAgIGlmICh0b3BNb2RhbCAmJiB0b3BNb2RhbCA9PT0gdGhpcy4jaG9zdFNlcnZpY2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSA5KSB7XG4gICAgICAgICAgLy8gVGFiIHByZXNzZWRcbiAgICAgICAgICBsZXQgZm9jdXNDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICBjb25zdCBmb2N1c0VsZW1lbnRMaXN0ID0gdGhpcy4jY29yZUFkYXB0ZXIuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAgICAgICB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICAodGhpcy4jY29tcG9uZW50QWRhcHRlci5pc0ZvY3VzSW5GaXJzdEl0ZW0oXG4gICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICBmb2N1c0VsZW1lbnRMaXN0XG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaXNNb2RhbEZvY3VzZWQoZXZlbnQsIHRoaXMuI2VsUmVmKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGZvY3VzQ2hhbmdlZCA9XG4gICAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuZm9jdXNMYXN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIWV2ZW50LnNoaWZ0S2V5ICYmXG4gICAgICAgICAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkxhc3RJdGVtKGV2ZW50LCBmb2N1c0VsZW1lbnRMaXN0KVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5mb2N1c0ZpcnN0RWxlbWVudChmb2N1c0VsZW1lbnRMaXN0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZm9jdXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2xpdmVBbm5vdW5jZXJTdmMuYW5ub3VuY2VyRWxlbWVudENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlkKSB7XG4gICAgICAgICAgdGhpcy5hcmlhT3ducyA9IGVsZW1lbnQuaWQ7XG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmhhbmRsZVdpbmRvd0NoYW5nZSh0aGlzLiNlbFJlZik7XG5cbiAgICAvLyBBZGRpbmcgYSB0aW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDA1NjI4NDVcbiAgICB0aGlzLiN3aW5kb3dSZWYubmF0aXZlV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5tb2RhbE9wZW5lZCh0aGlzLiNlbFJlZik7XG4gICAgfSk7XG5cbiAgICB0aGlzLiNkb2NrU2VydmljZS5zZXREb2NrT3B0aW9ucyh7XG4gICAgICBsb2NhdGlvbjogU2t5RG9ja0xvY2F0aW9uLkVsZW1lbnRCb3R0b20sXG4gICAgICByZWZlcmVuY2VFbDogdGhpcy5tb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudCEubmF0aXZlRWxlbWVudCxcbiAgICAgIHpJbmRleDogNSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlKSB7XG4gICAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZS5vYnNlcnZlKHRoaXMubW9kYWxDb250ZW50V3JhcHBlckVsZW1lbnQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLnVub2JzZXJ2ZSgpO1xuICAgIH1cbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgaGVscEJ1dHRvbkNsaWNrKCkge1xuICAgIGlmICh0aGlzLmhlbHBLZXkpIHtcbiAgICAgIHRoaXMuI2hvc3RTZXJ2aWNlLm9uT3BlbkhlbHAodGhpcy5oZWxwS2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2VCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLiNob3N0U2VydmljZS5vbkNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgd2luZG93UmVzaXplKCkge1xuICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaGFuZGxlV2luZG93Q2hhbmdlKHRoaXMuI2VsUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxTaGFkb3dDaGFuZ2UoYXJnczogU2t5TW9kYWxTY3JvbGxTaGFkb3dFdmVudEFyZ3MpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFNoYWRvdyA9IGFyZ3M7XG4gIH1cblxuICBwdWJsaWMgdmlld2tlZXBlckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIubW9kYWxDb250ZW50SGFzRGlyZWN0Q2hpbGRWaWV3a2VlcGVyKFxuICAgICAgdGhpcy4jZWxSZWZcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LW1vZGFsLWRpYWxvZ1wiXG4gIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgfHwgbW9kYWxDb250ZW50SWQuaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgfHwgaGVhZGVySWQuaWRcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwiYXJpYU93bnNcIlxuICBbYXR0ci5yb2xlXT1cImFyaWFSb2xlT3JEZWZhdWx0XCJcbiAgKHdpbmRvdzpyZXNpemUpPVwid2luZG93UmVzaXplKClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktbW9kYWwgc2t5LXNoYWRvdyBza3ktYm94IHNreS1lbGV2YXRpb24tMTYgc2t5LW1vZGFsLXt7IHNpemUgfX1cIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktbW9kYWwtdGlsZWQnOiB0aWxlZEJvZHksXG4gICAgICAnc2t5LW1vZGFsLXZpZXdrZWVwZXInOiB2aWV3a2VlcGVyRW5hYmxlZCgpXG4gICAgfVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgekluZGV4OiBtb2RhbFpJbmRleFxuICAgIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyXCJcbiAgICAgIFtoaWRkZW5dPVwiIWhlYWRlckNvbnRlbnQgfHwgIWhlYWRlckNvbnRlbnQuY2hpbGRyZW4gfHwgaGVhZGVyQ29udGVudC5jaGlsZHJlbi5sZW5ndGggJmx0OyAxXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JveC1zaGFkb3cnOiBzY3JvbGxTaGFkb3c/LnRvcFNoYWRvd1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXItY29udGVudFwiXG4gICAgICAgIHNreUlkXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LXNlY3Rpb24taGVhZGluZyc6IHNpemUgPT09ICdmdWxsLXBhZ2UnXG4gICAgICAgIH1cIlxuICAgICAgICAjaGVhZGVyQ29udGVudFxuICAgICAgICAjaGVhZGVySWQ9XCJza3lJZFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1tb2RhbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktbW9kYWwtaGVhZGVyLWJ1dHRvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaGVscEtleVwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1tb2RhbC1idG4taGVscFwiXG4gICAgICAgICAgbmFtZT1cImhlbHAtYnV0dG9uXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9vcGVuX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGVscEJ1dHRvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJxdWVzdGlvbi1jaXJjbGVcIj48L3NreS1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1tb2RhbC1idG4tY2xvc2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3NreXV4X21vZGFsX2Nsb3NlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c2t5LWljb24gaWNvbj1cImNsb3NlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1jb250ZW50IHNreS1wYWRkaW5nLWV2ZW4tbGFyZ2VcIlxuICAgICAgcm9sZT1cInJlZ2lvblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgc2t5SWRcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJoZWFkZXJJZC5pZFwiXG4gICAgICAoc2t5TW9kYWxTY3JvbGxTaGFkb3cpPVwic2Nyb2xsU2hhZG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgI21vZGFsQ29udGVudElkPVwic2t5SWRcIlxuICAgICAgI21vZGFsQ29udGVudFdyYXBwZXJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbW9kYWwtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1mb290ZXJcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnYm94LXNoYWRvdyc6IHNjcm9sbFNoYWRvdz8uYm90dG9tU2hhZG93XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbW9kYWwtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -14,8 +14,8 @@ import { SkyModalComponent } from './modal.component';
|
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class SkyModalModule {
|
|
16
16
|
}
|
|
17
|
-
SkyModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
18
|
-
SkyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
17
|
+
SkyModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
+
SkyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyModalModule, declarations: [SkyModalComponent,
|
|
19
19
|
SkyModalContentComponent,
|
|
20
20
|
SkyModalFooterComponent,
|
|
21
21
|
SkyModalHeaderComponent,
|
|
@@ -30,14 +30,14 @@ SkyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
30
30
|
SkyModalContentComponent,
|
|
31
31
|
SkyModalFooterComponent,
|
|
32
32
|
SkyModalHeaderComponent] });
|
|
33
|
-
SkyModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
33
|
+
SkyModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalModule, imports: [CommonModule,
|
|
34
34
|
RouterModule,
|
|
35
35
|
SkyIconModule,
|
|
36
36
|
SkyIdModule,
|
|
37
37
|
SkyModalsResourcesModule,
|
|
38
38
|
SkyThemeModule,
|
|
39
39
|
SkyTrimModule] });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalModule, decorators: [{
|
|
41
41
|
type: NgModule,
|
|
42
42
|
args: [{
|
|
43
43
|
declarations: [
|
|
@@ -85,9 +85,9 @@ _SkyModalService_dynamicComponentService = new WeakMap(), _SkyModalService_insta
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
|
-
SkyModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
89
|
-
SkyModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
88
|
+
SkyModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
89
|
+
SkyModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalService, providedIn: 'any' });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalService, decorators: [{
|
|
91
91
|
type: Injectable,
|
|
92
92
|
args: [{
|
|
93
93
|
// Must be 'any' so that the modal component is created in the context of its module's injector.
|
|
@@ -29,16 +29,16 @@ export class SkyModalsResourcesProvider {
|
|
|
29
29
|
*/
|
|
30
30
|
export class SkyModalsResourcesModule {
|
|
31
31
|
}
|
|
32
|
-
SkyModalsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
|
33
|
-
SkyModalsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
|
34
|
-
SkyModalsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
|
32
|
+
SkyModalsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
33
|
+
SkyModalsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyModalsResourcesModule, exports: [SkyI18nModule] });
|
|
34
|
+
SkyModalsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalsResourcesModule, providers: [
|
|
35
35
|
{
|
|
36
36
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
37
37
|
useClass: SkyModalsResourcesProvider,
|
|
38
38
|
multi: true,
|
|
39
39
|
},
|
|
40
40
|
], imports: [SkyI18nModule] });
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyModalsResourcesModule, decorators: [{
|
|
42
42
|
type: NgModule,
|
|
43
43
|
args: [{
|
|
44
44
|
exports: [SkyI18nModule],
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9tb2RhbC9tb2RhbC1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreU1vZGFsSGFybmVzcyBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNreU1vZGFsSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7fVxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var _SkyModalHarness_getModal, _SkyModalHarness_getModalDialog;
|
|
2
|
+
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
+
import { SkyComponentHarness } from '@skyux/core/testing';
|
|
4
|
+
/**
|
|
5
|
+
* Harness for interacting with a modal component in tests.
|
|
6
|
+
*/
|
|
7
|
+
export class SkyModalHarness extends SkyComponentHarness {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
_SkyModalHarness_getModal.set(this, this.locatorFor('.sky-modal'));
|
|
11
|
+
_SkyModalHarness_getModalDialog.set(this, this.locatorFor('.sky-modal-dialog'));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Gets a `HarnessPredicate` that can be used to search for a
|
|
15
|
+
* `SkyModalHarness` that meets certain criteria
|
|
16
|
+
*/
|
|
17
|
+
static with(filters) {
|
|
18
|
+
return SkyModalHarness.getDataSkyIdPredicate(filters);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets the aria-describedBy property of the modal
|
|
22
|
+
*/
|
|
23
|
+
async getAriaDescribedBy() {
|
|
24
|
+
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-describedby');
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Gets the aria-labelledBy property of the modal
|
|
28
|
+
*/
|
|
29
|
+
async getAriaLabelledBy() {
|
|
30
|
+
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-labelledby');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Gets the role of the modal.
|
|
34
|
+
*/
|
|
35
|
+
async getAriaRole() {
|
|
36
|
+
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('role');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets the modal size.
|
|
40
|
+
*/
|
|
41
|
+
async getSize() {
|
|
42
|
+
if (await this.isFullPage()) {
|
|
43
|
+
throw new Error('Size cannot be determined because size property is overridden when modal is full page');
|
|
44
|
+
}
|
|
45
|
+
const modal = await __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
46
|
+
if (await modal.hasClass('sky-modal-small')) {
|
|
47
|
+
return 'small';
|
|
48
|
+
}
|
|
49
|
+
if (await modal.hasClass('sky-modal-large')) {
|
|
50
|
+
return 'large';
|
|
51
|
+
}
|
|
52
|
+
return 'medium';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Gets the wrapper class of the modal.
|
|
56
|
+
*/
|
|
57
|
+
async getWrapperClass() {
|
|
58
|
+
return await (await this.host()).getProperty('className');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether the modal is full page.
|
|
62
|
+
*/
|
|
63
|
+
async isFullPage() {
|
|
64
|
+
const modal = __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
65
|
+
return (await modal).hasClass('sky-modal-full-page');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
_SkyModalHarness_getModal = new WeakMap(), _SkyModalHarness_getModalDialog = new WeakMap();
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
SkyModalHarness.hostSelector = 'sky-modal';
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvbW9kYWwvbW9kYWwtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBQXhEOztRQU1FLG9DQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUM7UUFDMUMsMENBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQztJQXNFekQsQ0FBQztJQXBFQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUErQjtRQUUvQixPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksdUNBQWdCLE1BQXBCLElBQUksQ0FBa0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx1Q0FBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx1Q0FBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztTQUNIO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSx1QkFBQSxJQUFJLGlDQUFVLE1BQWQsSUFBSSxDQUFZLENBQUM7UUFFckMsSUFBSSxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELElBQUksTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyx1QkFBQSxJQUFJLGlDQUFVLE1BQWQsSUFBSSxDQUFZLENBQUM7UUFDL0IsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkQsQ0FBQzs7O0FBM0VEOztHQUVHO0FBQ1csNEJBQVksR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2RhbC1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBtb2RhbCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LW1vZGFsJztcblxuICAjZ2V0TW9kYWwgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktbW9kYWwnKTtcbiAgI2dldE1vZGFsRGlhbG9nID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LW1vZGFsLWRpYWxvZycpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lNb2RhbEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreU1vZGFsSGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lNb2RhbEhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5TW9kYWxIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhcmlhLWRlc2NyaWJlZEJ5IHByb3BlcnR5IG9mIHRoZSBtb2RhbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFEZXNjcmliZWRCeSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsRGlhbG9nKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWxsZWRCeSBwcm9wZXJ0eSBvZiB0aGUgbW9kYWxcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhTGFiZWxsZWRCeSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsRGlhbG9nKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcm9sZSBvZiB0aGUgbW9kYWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYVJvbGUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRNb2RhbERpYWxvZygpKS5nZXRBdHRyaWJ1dGUoJ3JvbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtb2RhbCBzaXplLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNpemUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5pc0Z1bGxQYWdlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1NpemUgY2Fubm90IGJlIGRldGVybWluZWQgYmVjYXVzZSBzaXplIHByb3BlcnR5IGlzIG92ZXJyaWRkZW4gd2hlbiBtb2RhbCBpcyBmdWxsIHBhZ2UnXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy4jZ2V0TW9kYWwoKTtcblxuICAgIGlmIChhd2FpdCBtb2RhbC5oYXNDbGFzcygnc2t5LW1vZGFsLXNtYWxsJykpIHtcbiAgICAgIHJldHVybiAnc21hbGwnO1xuICAgIH1cblxuICAgIGlmIChhd2FpdCBtb2RhbC5oYXNDbGFzcygnc2t5LW1vZGFsLWxhcmdlJykpIHtcbiAgICAgIHJldHVybiAnbGFyZ2UnO1xuICAgIH1cblxuICAgIHJldHVybiAnbWVkaXVtJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3cmFwcGVyIGNsYXNzIG9mIHRoZSBtb2RhbC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRXcmFwcGVyQ2xhc3MoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS5nZXRQcm9wZXJ0eSgnY2xhc3NOYW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbW9kYWwgaXMgZnVsbCBwYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRnVsbFBhZ2UoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLiNnZXRNb2RhbCgpO1xuICAgIHJldHVybiAoYXdhaXQgbW9kYWwpLmhhc0NsYXNzKCdza3ktbW9kYWwtZnVsbC1wYWdlJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,4 +2,6 @@ export * from './modal-fixture';
|
|
|
2
2
|
export * from './confirm/confirm-harness';
|
|
3
3
|
export * from './confirm/confirm-button-harness';
|
|
4
4
|
export * from './confirm/confirm-button-harness-filters';
|
|
5
|
-
|
|
5
|
+
export * from './modal/modal-harness';
|
|
6
|
+
export * from './modal/modal-harness-filters';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kYWwtZml4dHVyZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29uZmlybS9jb25maXJtLWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtL2NvbmZpcm0tYnV0dG9uLWhhcm5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maXJtL2NvbmZpcm0tYnV0dG9uLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwtaGFybmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLWhhcm5lc3MtZmlsdGVycyc7XG4iXX0=
|
|
@@ -308,9 +308,92 @@ _SkyConfirmHarness_getBodyEl = new WeakMap(), _SkyConfirmHarness_getButtons = ne
|
|
|
308
308
|
};
|
|
309
309
|
SkyConfirmHarness.hostSelector = 'sky-confirm';
|
|
310
310
|
|
|
311
|
+
var _SkyModalHarness_getModal, _SkyModalHarness_getModalDialog;
|
|
312
|
+
/**
|
|
313
|
+
* Harness for interacting with a modal component in tests.
|
|
314
|
+
*/
|
|
315
|
+
class SkyModalHarness extends SkyComponentHarness {
|
|
316
|
+
constructor() {
|
|
317
|
+
super(...arguments);
|
|
318
|
+
_SkyModalHarness_getModal.set(this, this.locatorFor('.sky-modal'));
|
|
319
|
+
_SkyModalHarness_getModalDialog.set(this, this.locatorFor('.sky-modal-dialog'));
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Gets a `HarnessPredicate` that can be used to search for a
|
|
323
|
+
* `SkyModalHarness` that meets certain criteria
|
|
324
|
+
*/
|
|
325
|
+
static with(filters) {
|
|
326
|
+
return SkyModalHarness.getDataSkyIdPredicate(filters);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Gets the aria-describedBy property of the modal
|
|
330
|
+
*/
|
|
331
|
+
getAriaDescribedBy() {
|
|
332
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
333
|
+
return (yield __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-describedby');
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Gets the aria-labelledBy property of the modal
|
|
338
|
+
*/
|
|
339
|
+
getAriaLabelledBy() {
|
|
340
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
341
|
+
return (yield __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-labelledby');
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Gets the role of the modal.
|
|
346
|
+
*/
|
|
347
|
+
getAriaRole() {
|
|
348
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
349
|
+
return (yield __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('role');
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Gets the modal size.
|
|
354
|
+
*/
|
|
355
|
+
getSize() {
|
|
356
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
357
|
+
if (yield this.isFullPage()) {
|
|
358
|
+
throw new Error('Size cannot be determined because size property is overridden when modal is full page');
|
|
359
|
+
}
|
|
360
|
+
const modal = yield __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
361
|
+
if (yield modal.hasClass('sky-modal-small')) {
|
|
362
|
+
return 'small';
|
|
363
|
+
}
|
|
364
|
+
if (yield modal.hasClass('sky-modal-large')) {
|
|
365
|
+
return 'large';
|
|
366
|
+
}
|
|
367
|
+
return 'medium';
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Gets the wrapper class of the modal.
|
|
372
|
+
*/
|
|
373
|
+
getWrapperClass() {
|
|
374
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
375
|
+
return yield (yield this.host()).getProperty('className');
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Whether the modal is full page.
|
|
380
|
+
*/
|
|
381
|
+
isFullPage() {
|
|
382
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
383
|
+
const modal = __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
384
|
+
return (yield modal).hasClass('sky-modal-full-page');
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
_SkyModalHarness_getModal = new WeakMap(), _SkyModalHarness_getModalDialog = new WeakMap();
|
|
389
|
+
/**
|
|
390
|
+
* @internal
|
|
391
|
+
*/
|
|
392
|
+
SkyModalHarness.hostSelector = 'sky-modal';
|
|
393
|
+
|
|
311
394
|
/**
|
|
312
395
|
* Generated bundle index. Do not edit.
|
|
313
396
|
*/
|
|
314
397
|
|
|
315
|
-
export { SkyConfirmButtonHarness, SkyConfirmHarness, SkyModalFixture };
|
|
398
|
+
export { SkyConfirmButtonHarness, SkyConfirmHarness, SkyModalFixture, SkyModalHarness };
|
|
316
399
|
//# sourceMappingURL=skyux-modals-testing.mjs.map
|