@sebgroup/green-angular 1.8.5 → 1.9.0
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/esm2020/lib/modal/index.mjs +3 -1
- package/esm2020/lib/modal/modal-footer.directive.mjs +16 -0
- package/esm2020/lib/modal/modal-header.directive.mjs +16 -0
- package/esm2020/lib/modal/modal.component.mjs +16 -4
- package/esm2020/lib/modal/modal.module.mjs +13 -3
- package/fesm2015/sebgroup-green-angular.mjs +51 -5
- package/fesm2015/sebgroup-green-angular.mjs.map +1 -1
- package/fesm2020/sebgroup-green-angular.mjs +51 -5
- package/fesm2020/sebgroup-green-angular.mjs.map +1 -1
- package/lib/modal/index.d.ts +2 -0
- package/lib/modal/modal-footer.directive.d.ts +8 -0
- package/lib/modal/modal-header.directive.d.ts +8 -0
- package/lib/modal/modal.component.d.ts +7 -1
- package/lib/modal/modal.module.d.ts +5 -3
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from './modal.component';
|
|
2
2
|
export * from './modal.module';
|
|
3
|
-
|
|
3
|
+
export * from './modal-header.directive';
|
|
4
|
+
export * from './modal-footer.directive';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RhbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL21vZGFsLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwtaGVhZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsLWZvb3Rlci5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Directive, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NggModalFooterDirective {
|
|
4
|
+
constructor(viewContainerRef) {
|
|
5
|
+
this.viewContainerRef = viewContainerRef;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NggModalFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalFooterDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
NggModalFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NggModalFooterDirective, selector: "[nggModalFooter]", ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalFooterDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: '[nggModalFooter]'
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9vdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL21vZGFsL21vZGFsLWZvb3Rlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7O29IQUQ5Qyx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2dNb2RhbEZvb3Rlcl0nXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsRm9vdGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Directive, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NggModalHeaderDirective {
|
|
4
|
+
constructor(viewContainerRef) {
|
|
5
|
+
this.viewContainerRef = viewContainerRef;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
NggModalHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalHeaderDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
NggModalHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NggModalHeaderDirective, selector: "[nggModalHeader]", ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalHeaderDirective, decorators: [{
|
|
11
|
+
type: Directive,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: '[nggModalHeader]'
|
|
14
|
+
}]
|
|
15
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL21vZGFsL21vZGFsLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7O29IQUQ5Qyx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2dNb2RhbEhlYWRlcl0nXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsSGVhZGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
|
|
3
3
|
import { disableBodyScroll, enableBodyScroll, } from "body-scroll-lock";
|
|
4
|
+
import { NggModalHeaderDirective } from './modal-header.directive';
|
|
5
|
+
import { NggModalFooterDirective } from './modal-footer.directive';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
import * as i1 from "@angular/cdk/a11y";
|
|
6
8
|
import * as i2 from "@angular/common";
|
|
@@ -95,10 +97,10 @@ export class NggModalComponent {
|
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
NggModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
-
NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <
|
|
100
|
+
NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", hideHeader: "hideHeader", hideFooter: "hideFooter", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, queries: [{ propertyName: "modalHeaderContent", first: true, predicate: NggModalHeaderDirective, descendants: true }, { propertyName: "modalFooterContent", first: true, predicate: NggModalFooterDirective, descendants: true }], viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main data-testid=\"modal\" *ngSwitchCase=\"'takeover'\" role=\"dialog\" aria-modal=\"true\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section data-testid=\"modal\" *ngSwitchDefault role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header *ngIf=\"!modalHeaderContent; else headerContentTemplate\" ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer *ngIf=\"!modalFooterContent; else footerContentTemplate\" ngg-modal-footer data-testid=\"modal-footer\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div #backdrop data-testid=\"modal-backdrop\" class=\"backdrop\" (click)=\"this.handleBackdropClick($event)\" [attr.aria-hidden]=\"true\"></div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal-backdrop)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalHeaderComponent; }), selector: "[ngg-modal-header]", inputs: ["header"], outputs: ["closed"] }, { kind: "component", type: i0.forwardRef(function () { return NggModalBodyComponent; }), selector: "[ngg-modal-body]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalFooterComponent; }), selector: "[ngg-modal-footer]", inputs: ["dismissLabel", "confirmLabel"], outputs: ["dismiss", "confirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
99
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalComponent, decorators: [{
|
|
100
102
|
type: Component,
|
|
101
|
-
args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <
|
|
103
|
+
args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main data-testid=\"modal\" *ngSwitchCase=\"'takeover'\" role=\"dialog\" aria-modal=\"true\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section data-testid=\"modal\" *ngSwitchDefault role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header *ngIf=\"!modalHeaderContent; else headerContentTemplate\" ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer *ngIf=\"!modalFooterContent; else footerContentTemplate\" ngg-modal-footer data-testid=\"modal-footer\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div #backdrop data-testid=\"modal-backdrop\" class=\"backdrop\" (click)=\"this.handleBackdropClick($event)\" [attr.aria-hidden]=\"true\"></div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal-backdrop)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
102
104
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }]; }, propDecorators: { modalType: [{
|
|
103
105
|
type: Input
|
|
104
106
|
}], header: [{
|
|
@@ -109,6 +111,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
109
111
|
type: Input
|
|
110
112
|
}], size: [{
|
|
111
113
|
type: Input
|
|
114
|
+
}], hideHeader: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], hideFooter: [{
|
|
117
|
+
type: Input
|
|
112
118
|
}], trapFocus: [{
|
|
113
119
|
type: Input
|
|
114
120
|
}], isOpen: [{
|
|
@@ -127,6 +133,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
127
133
|
}], backdropRef: [{
|
|
128
134
|
type: ViewChild,
|
|
129
135
|
args: ['backdrop']
|
|
136
|
+
}], modalHeaderContent: [{
|
|
137
|
+
type: ContentChild,
|
|
138
|
+
args: [NggModalHeaderDirective]
|
|
139
|
+
}], modalFooterContent: [{
|
|
140
|
+
type: ContentChild,
|
|
141
|
+
args: [NggModalFooterDirective]
|
|
130
142
|
}] } });
|
|
131
143
|
export class NggModalHeaderComponent {
|
|
132
144
|
constructor() {
|
|
@@ -198,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
198
210
|
}], confirm: [{
|
|
199
211
|
type: Output
|
|
200
212
|
}] } });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkosT0FBTyxFQUF5Qiw0QkFBNEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ25CLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFRMUIsTUFBTSxPQUFPLGlCQUFpQjtJQXdEMUIsWUFBb0IsR0FBNEIsRUFBVSw0QkFBMEQ7UUFBaEcsUUFBRyxHQUFILEdBQUcsQ0FBeUI7UUFBVSxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBWG5HLGlCQUFZLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDbEUsV0FBTSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ2xFLFlBQU8sR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNuRSxZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFTaEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBcERELElBQW9CLFNBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFNBQVMsQ0FBQyxLQUEwQjtR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QixxQkFBcUIsd0RBRnBCLDJCQUEyQjsyRkFFNUIscUJBQXFCO2tCQU5qQyxTQUFTOytCQUVJLGtCQUFrQixZQUVsQiwyQkFBMkI7O0FBY3pDLE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFZYyxZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBRSxDQUFDO0tBU3BFO0lBUEcsYUFBYSxDQUFDLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7b0hBWlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdUxBTHRCOzs7S0FHVDsyRkFFUSx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBRUksb0JBQW9CLFlBRXBCOzs7S0FHVDs4QkFHUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxUeXBlLCBTaXplIH0gZnJvbSAnQHNlYmdyb3VwL2V4dHJhY3QnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwLCBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgICBkaXNhYmxlQm9keVNjcm9sbCxcbiAgICBlbmFibGVCb2R5U2Nyb2xsLFxufSBmcm9tIFwiYm9keS1zY3JvbGwtbG9ja1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25nZy1tb2RhbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtb2RhbFR5cGU/OiBNb2RhbFR5cGVcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVhZGVyPzogc3RyaW5nXG4gICAgQElucHV0KCkgcHVibGljIGNvbmZpcm1MYWJlbD86IHN0cmluZ1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNtaXNzTGFiZWw/OiBzdHJpbmdcbiAgICBASW5wdXQoKSBwdWJsaWMgc2l6ZT86IFNpemVcbiAgICBASW5wdXQoKSBwdWJsaWMgZ2V0IHRyYXBGb2N1cygpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYXBGb2N1cztcbiAgICB9XG4gICAgcHVibGljIHNldCB0cmFwRm9jdXModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fdHJhcEZvY3VzID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGVGb2N1c1RyYXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZvY3VzVHJhcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgICB9XG4gICAgcHVibGljIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5faXNPcGVuID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50cmFwRm9jdXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUZvY3VzVHJhcCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXNhYmxlQm9keVNjcm9sbCh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgYWxsb3dUb3VjaE1vdmU6IChlbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbGxvdyB0b3VjaG1vdmUgZm9yIGVsZW1lbnRzIGluc2lkZSBtb2RhbCwgaXRzIHJlcXVpcmVkIGZvciBzY3JvbGwgdG8gd29yayBvbiBpT1MgZGV2aWNlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhlbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVGb2N1c1RyYXAoKTtcbiAgICAgICAgICAgIGVuYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIGlzT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VkOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb25maXJtOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBkaXNtaXNzOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9wZW4nKSBnZXQgb3BlbigpIHsgcmV0dXJuIHRoaXMuaXNPcGVuOyB9XG4gICAgQFZpZXdDaGlsZCgnYmFja2Ryb3AnKSBwcml2YXRlIGJhY2tkcm9wUmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBwcml2YXRlIF9pc09wZW4/OiBib29sZWFuO1xuICAgIHByaXZhdGUgX3RyYXBGb2N1cz86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5OiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5KSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwID0gdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLnRyYXBGb2N1cylcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRm9jdXNUcmFwKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZvY3VzVHJhcCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDbG9zZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PSB0aGlzLmJhY2tkcm9wUmVmPy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRGlzbWlzcyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc21pc3MuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbmZpcm0oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VNb2RhbChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVGb2N1c1RyYXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVGb2N1c1RyYXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwPy5kZXN0cm95KCk7XG4gICAgICAgIGVuYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1oZWFkZXJdJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGgzIGRhdGEtdGVzdGlkPVwibW9kYWwtaGVhZGVyLXRleHRcIj57e2hlYWRlcn19PC9oMz5cbiAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibW9kYWwtY2xvc2UtYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJ0aGlzLmhhbmRsZUNsb3NlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxuICAgICAgICA8aT48L2k+XG4gICAgPC9idXR0b24+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dNb2RhbEhlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgaGVhZGVyPzogc3RyaW5nO1xuICAgIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIGhhbmRsZUNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1ib2R5XScsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsQm9keUNvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbbmdnLW1vZGFsLWZvb3Rlcl0nLFxuICAgIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibW9kYWwtZGlzbWlzcy1idXR0b25cIiAqbmdJZj1cImRpc21pc3NMYWJlbFwiIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCI+e3tkaXNtaXNzTGFiZWx9fTwvYnV0dG9uPlxuICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJtb2RhbC1jb25maXJtLWJ1dHRvblwiICpuZ0lmPVwiY29uZmlybUxhYmVsXCIgY2xhc3M9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRoaXMuaGFuZGxlQ29uZmlybSgkZXZlbnQpXCI+e3tjb25maXJtTGFiZWx9fTwvYnV0dG9uPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgTmdnTW9kYWxGb290ZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRpc21pc3NMYWJlbD86IHN0cmluZztcbiAgICBASW5wdXQoKSBjb25maXJtTGFiZWw/OiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGRpc21pc3M6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY29uZmlybTogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaGFuZGxlRGlzbWlzcyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc21pc3MuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ29uZmlybShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNvbmZpcm0uZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzT3BlblwiIFtuZ1N3aXRjaF09XCJtb2RhbFR5cGVcIj5cbiAgICA8YXNpZGUgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiICpuZ1N3aXRjaENhc2U9XCInc2xpZGVvdXQnXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbSdcIiBbY2xhc3MubWVkaXVtXT1cInNpemUgPT09ICdtZCdcIiBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xnJ1wiPlxuICAgICAgICA8aGVhZGVyIG5nZy1tb2RhbC1oZWFkZXIgZGF0YS10ZXN0aWQ9XCJtb2RhbC1oZWFkZXJcIiBbaGVhZGVyXT1cImhlYWRlclwiIChjbG9zZWQpPVwidGhpcy5oYW5kbGVDbG9zZUNsaWNrKCRldmVudClcIj48L2hlYWRlcj5cbiAgICAgICAgPGRpdiBuZ2ctbW9kYWwtYm9keSBkYXRhLXRlc3RpZD1cIm1vZGFsLWJvZHlcIiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+IFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvb3RlciBuZ2ctbW9kYWwtZm9vdGVyIGRhdGEtdGVzdGlkPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJkaXNtaXNzTGFiZWwgfHwgY29uZmlybUxhYmVsXCIgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIiBbY29uZmlybUxhYmVsXT1cImNvbmZpcm1MYWJlbFwiIChkaXNtaXNzKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCIgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIj48L2Zvb3Rlcj5cbiAgICA8L2FzaWRlPlxuICAgIDxtYWluIGRhdGEtdGVzdGlkPVwibW9kYWxcIiAqbmdTd2l0Y2hDYXNlPVwiJ3Rha2VvdmVyJ1wiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiPlxuICAgICAgICA8aGVhZGVyIG5nZy1tb2RhbC1oZWFkZXIgZGF0YS10ZXN0aWQ9XCJtb2RhbC1oZWFkZXJcIiBbaGVhZGVyXT1cImhlYWRlclwiIChjbG9zZWQpPVwidGhpcy5oYW5kbGVDbG9zZUNsaWNrKCRldmVudClcIj48L2hlYWRlcj5cbiAgICAgICAgPGRpdiBuZ2ctbW9kYWwtYm9keSBkYXRhLXRlc3RpZD1cIm1vZGFsLWJvZHlcIiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+IFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvb3RlciBuZ2ctbW9kYWwtZm9vdGVyIGRhdGEtdGVzdGlkPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJkaXNtaXNzTGFiZWwgfHwgY29uZmlybUxhYmVsXCIgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIiBbY29uZmlybUxhYmVsXT1cImNvbmZpcm1MYWJlbFwiIChkaXNtaXNzKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCIgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIj48L2Zvb3Rlcj5cbiAgICA8L21haW4+XG4gICAgPHNlY3Rpb24gZGF0YS10ZXN0aWQ9XCJtb2RhbFwiICpuZ1N3aXRjaERlZmF1bHQgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbSdcIiBbY2xhc3MubWVkaXVtXT1cInNpemUgPT09ICdtZCdcIiBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xnJ1wiPlxuICAgICAgICA8aGVhZGVyIG5nZy1tb2RhbC1oZWFkZXIgZGF0YS10ZXN0aWQ9XCJtb2RhbC1oZWFkZXJcIiBbaGVhZGVyXT1cImhlYWRlclwiIChjbG9zZWQpPVwidGhpcy5oYW5kbGVDbG9zZUNsaWNrKCRldmVudClcIj48L2hlYWRlcj5cbiAgICAgICAgPGRpdiBuZ2ctbW9kYWwtYm9keSBkYXRhLXRlc3RpZD1cIm1vZGFsLWJvZHlcIiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+IFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvb3RlciBuZ2ctbW9kYWwtZm9vdGVyIGRhdGEtdGVzdGlkPVwibW9kYWwtZm9vdGVyXCIgKm5nSWY9XCJkaXNtaXNzTGFiZWwgfHwgY29uZmlybUxhYmVsXCIgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIiBbY29uZmlybUxhYmVsXT1cImNvbmZpcm1MYWJlbFwiIChkaXNtaXNzKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCIgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIj48L2Zvb3Rlcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiAjYmFja2Ryb3AgZGF0YS10ZXN0aWQ9XCJtb2RhbC1iYWNrZHJvcFwiIGNsYXNzPVwiYmFja2Ryb3BcIiAoY2xpY2spPVwidGhpcy5oYW5kbGVCYWNrZHJvcENsaWNrKCRldmVudClcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+PC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJLLE9BQU8sRUFBeUIsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGdCQUFnQixHQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBUW5FLE1BQU0sT0FBTyxpQkFBaUI7SUE0RDFCLFlBQW9CLEdBQTRCLEVBQVUsNEJBQTBEO1FBQWhHLFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVUsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQWJuRyxpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2xFLFdBQU0sR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNsRSxZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFDbkUsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBV2hGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENB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QWlCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O29IQU5RLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHVIQVJ0Qjs7Ozs7O0tBTVQ7MkZBRVEsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUVJLG9CQUFvQixZQUVwQjs7Ozs7O0tBTVQ7OEJBR1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTs7QUFjWCxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO3NHQUFyQixxQkFBcUIsd0RBRnBCLDJCQUEyQjsyRkFFNUIscUJBQXFCO2tCQU5qQyxTQUFTOytCQUVJLGtCQUFrQixZQUVsQiwyQkFBMkI7O0FBY3pDLE1BQU0sT0FBTyx1QkFBdUI7SUFUcEM7UUFZYyxZQUFPLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBRSxDQUFDO0tBU3BFO0lBUEcsYUFBYSxDQUFDLEtBQWlCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7b0hBWlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdUxBTHRCOzs7S0FHVDsyRkFFUSx1QkFBdUI7a0JBVG5DLFNBQVM7K0JBRUksb0JBQW9CLFlBRXBCOzs7S0FHVDs4QkFHUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbFR5cGUsIFNpemUgfSBmcm9tICdAc2ViZ3JvdXAvZXh0cmFjdCc7XG5pbXBvcnQgeyBDb25maWd1cmFibGVGb2N1c1RyYXAsIENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIGRpc2FibGVCb2R5U2Nyb2xsLFxuICAgIGVuYWJsZUJvZHlTY3JvbGwsXG59IGZyb20gXCJib2R5LXNjcm9sbC1sb2NrXCI7XG5pbXBvcnQgeyBOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtaGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtZm9vdGVyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmdnLW1vZGFsJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmdnTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgQElucHV0KCkgcHVibGljIG1vZGFsVHlwZT86IE1vZGFsVHlwZVxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWFkZXI/OiBzdHJpbmdcbiAgICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxhYmVsPzogc3RyaW5nXG4gICAgQElucHV0KCkgcHVibGljIGRpc21pc3NMYWJlbD86IHN0cmluZ1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaXplPzogU2l6ZVxuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGlkZUZvb3Rlcj86IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGdldCB0cmFwRm9jdXMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFwRm9jdXM7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgdHJhcEZvY3VzKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3RyYXBGb2N1cyA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRm9jdXNUcmFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVGb2N1c1RyYXAoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc09wZW47XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNPcGVuKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHJhcEZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGVGb2N1c1RyYXAoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGlzYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgICAgIGFsbG93VG91Y2hNb3ZlOiAoZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgdG91Y2htb3ZlIGZvciBlbGVtZW50cyBpbnNpZGUgbW9kYWwsIGl0cyByZXF1aXJlZCBmb3Igc2Nyb2xsIHRvIHdvcmsgb24gaU9TIGRldmljZXNcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKCk7XG4gICAgICAgICAgICBlbmFibGVCb2R5U2Nyb2xsKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGNsb3NlZDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgY29uZmlybTogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZGlzbWlzczogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vcGVuJykgZ2V0IG9wZW4oKSB7IHJldHVybiB0aGlzLmlzT3BlbjsgfVxuICAgIEBWaWV3Q2hpbGQoJ2JhY2tkcm9wJykgcHJpdmF0ZSBiYWNrZHJvcFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgQENvbnRlbnRDaGlsZChOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSkgcHVibGljIG1vZGFsSGVhZGVyQ29udGVudD86IE5nZ01vZGFsSGVhZGVyRGlyZWN0aXZlO1xuICAgIEBDb250ZW50Q2hpbGQoTmdnTW9kYWxGb290ZXJEaXJlY3RpdmUpIHB1YmxpYyBtb2RhbEZvb3RlckNvbnRlbnQ/OiBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZTtcbiAgICBwcml2YXRlIF9pc09wZW4/OiBib29sZWFuO1xuICAgIHByaXZhdGUgX3RyYXBGb2N1cz86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5OiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5KSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwID0gdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLnRyYXBGb2N1cylcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRm9jdXNUcmFwKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZvY3VzVHJhcCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDbG9zZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PSB0aGlzLmJhY2tkcm9wUmVmPy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRGlzbWlzcyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc21pc3MuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbmZpcm0oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jb25maXJtLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VNb2RhbChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWQub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVGb2N1c1RyYXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcC5mb2N1c0luaXRpYWxFbGVtZW50V2hlblJlYWR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVGb2N1c1RyYXAoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwPy5kZXN0cm95KCk7XG4gICAgICAgIGVuYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1oZWFkZXJdJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGgzIGRhdGEtdGVzdGlkPVwibW9kYWwtaGVhZGVyLXRleHRcIj57e2hlYWRlcn19PC9oMz5cbiAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibW9kYWwtY2xvc2UtYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJ0aGlzLmhhbmRsZUNsb3NlKCRldmVudClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxuICAgICAgICA8aT48L2k+XG4gICAgPC9idXR0b24+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dNb2RhbEhlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgaGVhZGVyPzogc3RyaW5nO1xuICAgIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIGhhbmRsZUNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1ib2R5XScsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsQm9keUNvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbbmdnLW1vZGFsLWZvb3Rlcl0nLFxuICAgIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibW9kYWwtZGlzbWlzcy1idXR0b25cIiAqbmdJZj1cImRpc21pc3NMYWJlbFwiIGNsYXNzPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCI+e3tkaXNtaXNzTGFiZWx9fTwvYnV0dG9uPlxuICAgIDxidXR0b24gZGF0YS10ZXN0aWQ9XCJtb2RhbC1jb25maXJtLWJ1dHRvblwiICpuZ0lmPVwiY29uZmlybUxhYmVsXCIgY2xhc3M9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRoaXMuaGFuZGxlQ29uZmlybSgkZXZlbnQpXCI+e3tjb25maXJtTGFiZWx9fTwvYnV0dG9uPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgTmdnTW9kYWxGb290ZXJDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRpc21pc3NMYWJlbD86IHN0cmluZztcbiAgICBASW5wdXQoKSBjb25maXJtTGFiZWw/OiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGRpc21pc3M6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgY29uZmlybTogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaGFuZGxlRGlzbWlzcyhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmRpc21pc3MuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ29uZmlybShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmNvbmZpcm0uZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzT3BlblwiIFtuZ1N3aXRjaF09XCJtb2RhbFR5cGVcIj5cbiAgICA8YXNpZGUgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiICpuZ1N3aXRjaENhc2U9XCInc2xpZGVvdXQnXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCIgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbSdcIiBbY2xhc3MubWVkaXVtXT1cInNpemUgPT09ICdtZCdcIiBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xnJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hc2lkZT5cbiAgICA8bWFpbiBkYXRhLXRlc3RpZD1cIm1vZGFsXCIgKm5nU3dpdGNoQ2FzZT1cIid0YWtlb3ZlcidcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWFpbj5cbiAgICA8c2VjdGlvbiBkYXRhLXRlc3RpZD1cIm1vZGFsXCIgKm5nU3dpdGNoRGVmYXVsdCByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIiBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtJ1wiIFtjbGFzcy5tZWRpdW1dPVwic2l6ZSA9PT0gJ21kJ1wiIFtjbGFzcy5sYXJnZV09XCJzaXplID09PSAnbGcnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZUhlYWRlclwiPlxuICAgICAgICAgICAgPGhlYWRlciAqbmdJZj1cIiFtb2RhbEhlYWRlckNvbnRlbnQ7IGVsc2UgaGVhZGVyQ29udGVudFRlbXBsYXRlXCIgbmdnLW1vZGFsLWhlYWRlciBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiIFtoZWFkZXJdPVwiaGVhZGVyXCIgKGNsb3NlZCk9XCJ0aGlzLmhhbmRsZUNsb3NlQ2xpY2soJGV2ZW50KVwiPjwvaGVhZGVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBuZ2ctbW9kYWwtYm9keSBkYXRhLXRlc3RpZD1cIm1vZGFsLWJvZHlcIiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5Q29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVGb290ZXIgJiYgKGRpc21pc3NMYWJlbCB8fCBjb25maXJtTGFiZWwpXCI+XG4gICAgICAgICAgICA8Zm9vdGVyICpuZ0lmPVwiIW1vZGFsRm9vdGVyQ29udGVudDsgZWxzZSBmb290ZXJDb250ZW50VGVtcGxhdGVcIiBuZ2ctbW9kYWwtZm9vdGVyIGRhdGEtdGVzdGlkPVwibW9kYWwtZm9vdGVyXCIgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIiBbY29uZmlybUxhYmVsXT1cImNvbmZpcm1MYWJlbFwiIChkaXNtaXNzKT1cInRoaXMuaGFuZGxlRGlzbWlzcygkZXZlbnQpXCIgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIj48L2Zvb3Rlcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlckNvbnRlbnRUZW1wbGF0ZT5cbiAgICAgICAgPGhlYWRlciBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW25nZ01vZGFsSGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2JvZHlDb250ZW50VGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyQ29udGVudFRlbXBsYXRlPlxuICAgICAgICA8Zm9vdGVyIGRhdGEtdGVzdGlkPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmdnTW9kYWxGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Zvb3Rlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgI2JhY2tkcm9wIGRhdGEtdGVzdGlkPVwibW9kYWwtYmFja2Ryb3BcIiBjbGFzcz1cImJhY2tkcm9wXCIgKGNsaWNrKT1cInRoaXMuaGFuZGxlQmFja2Ryb3BDbGljaygkZXZlbnQpXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -2,15 +2,21 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
4
4
|
import { NggModalBodyComponent, NggModalComponent, NggModalFooterComponent, NggModalHeaderComponent } from './modal.component';
|
|
5
|
+
import { NggModalHeaderDirective } from './modal-header.directive';
|
|
6
|
+
import { NggModalFooterDirective } from './modal-footer.directive';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
const DECLARATIONS = [
|
|
7
9
|
NggModalComponent,
|
|
8
10
|
NggModalHeaderComponent,
|
|
9
11
|
NggModalBodyComponent,
|
|
10
|
-
NggModalFooterComponent
|
|
12
|
+
NggModalFooterComponent,
|
|
13
|
+
NggModalHeaderDirective,
|
|
14
|
+
NggModalFooterDirective
|
|
11
15
|
];
|
|
12
16
|
const EXPORTS = [
|
|
13
17
|
NggModalComponent,
|
|
18
|
+
NggModalHeaderDirective,
|
|
19
|
+
NggModalFooterDirective
|
|
14
20
|
];
|
|
15
21
|
export class NggModalModule {
|
|
16
22
|
}
|
|
@@ -18,7 +24,11 @@ NggModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
18
24
|
NggModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, declarations: [NggModalComponent,
|
|
19
25
|
NggModalHeaderComponent,
|
|
20
26
|
NggModalBodyComponent,
|
|
21
|
-
NggModalFooterComponent
|
|
27
|
+
NggModalFooterComponent,
|
|
28
|
+
NggModalHeaderDirective,
|
|
29
|
+
NggModalFooterDirective], imports: [A11yModule, CommonModule], exports: [NggModalComponent,
|
|
30
|
+
NggModalHeaderDirective,
|
|
31
|
+
NggModalFooterDirective] });
|
|
22
32
|
NggModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, imports: [A11yModule, CommonModule] });
|
|
23
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, decorators: [{
|
|
24
34
|
type: NgModule,
|
|
@@ -28,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
28
38
|
declarations: DECLARATIONS,
|
|
29
39
|
}]
|
|
30
40
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFbkUsTUFBTSxZQUFZLEdBQUc7SUFDakIsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2QixxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2Qix1QkFBdUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ1osaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2Qix1QkFBdUI7Q0FDMUIsQ0FBQztBQU9GLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBbkJ2QixpQkFBaUI7UUFDakIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsdUJBQXVCO1FBQ3ZCLHVCQUF1QixhQVVaLFVBQVUsRUFBRSxZQUFZLGFBTm5DLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsdUJBQXVCOzRHQVFkLGNBQWMsWUFKWixVQUFVLEVBQUUsWUFBWTsyRkFJMUIsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBRSxVQUFVLEVBQUUsWUFBWSxDQUFFO29CQUNyQyxPQUFPLEVBQUUsT0FBTztvQkFDaEIsWUFBWSxFQUFFLFlBQVk7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ2dNb2RhbEJvZHlDb21wb25lbnQsIE5nZ01vZGFsQ29tcG9uZW50LCBOZ2dNb2RhbEZvb3RlckNvbXBvbmVudCwgTmdnTW9kYWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtaGVhZGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtZm9vdGVyLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IERFQ0xBUkFUSU9OUyA9IFtcbiAgICBOZ2dNb2RhbENvbXBvbmVudCxcbiAgICBOZ2dNb2RhbEhlYWRlckNvbXBvbmVudCxcbiAgICBOZ2dNb2RhbEJvZHlDb21wb25lbnQsXG4gICAgTmdnTW9kYWxGb290ZXJDb21wb25lbnQsXG4gICAgTmdnTW9kYWxIZWFkZXJEaXJlY3RpdmUsXG4gICAgTmdnTW9kYWxGb290ZXJEaXJlY3RpdmVcbl07XG5cbmNvbnN0IEVYUE9SVFMgPSBbXG4gICAgTmdnTW9kYWxDb21wb25lbnQsXG4gICAgTmdnTW9kYWxIZWFkZXJEaXJlY3RpdmUsXG4gICAgTmdnTW9kYWxGb290ZXJEaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogWyBBMTF5TW9kdWxlLCBDb21tb25Nb2R1bGUgXSxcbiAgICBleHBvcnRzOiBFWFBPUlRTLFxuICAgIGRlY2xhcmF0aW9uczogREVDTEFSQVRJT05TLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2dNb2RhbE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -969,6 +969,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
969
969
|
}]
|
|
970
970
|
}] });
|
|
971
971
|
|
|
972
|
+
class NggModalHeaderDirective {
|
|
973
|
+
constructor(viewContainerRef) {
|
|
974
|
+
this.viewContainerRef = viewContainerRef;
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
NggModalHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalHeaderDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
978
|
+
NggModalHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NggModalHeaderDirective, selector: "[nggModalHeader]", ngImport: i0 });
|
|
979
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalHeaderDirective, decorators: [{
|
|
980
|
+
type: Directive,
|
|
981
|
+
args: [{
|
|
982
|
+
selector: '[nggModalHeader]'
|
|
983
|
+
}]
|
|
984
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
985
|
+
|
|
986
|
+
class NggModalFooterDirective {
|
|
987
|
+
constructor(viewContainerRef) {
|
|
988
|
+
this.viewContainerRef = viewContainerRef;
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
NggModalFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalFooterDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
992
|
+
NggModalFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: NggModalFooterDirective, selector: "[nggModalFooter]", ngImport: i0 });
|
|
993
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalFooterDirective, decorators: [{
|
|
994
|
+
type: Directive,
|
|
995
|
+
args: [{
|
|
996
|
+
selector: '[nggModalFooter]'
|
|
997
|
+
}]
|
|
998
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
999
|
+
|
|
972
1000
|
class NggModalComponent {
|
|
973
1001
|
constructor(ref, configurableFocusTrapFactory) {
|
|
974
1002
|
this.ref = ref;
|
|
@@ -1062,10 +1090,10 @@ class NggModalComponent {
|
|
|
1062
1090
|
}
|
|
1063
1091
|
}
|
|
1064
1092
|
NggModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
1065
|
-
NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <
|
|
1093
|
+
NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", hideHeader: "hideHeader", hideFooter: "hideFooter", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, queries: [{ propertyName: "modalHeaderContent", first: true, predicate: NggModalHeaderDirective, descendants: true }, { propertyName: "modalFooterContent", first: true, predicate: NggModalFooterDirective, descendants: true }], viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main data-testid=\"modal\" *ngSwitchCase=\"'takeover'\" role=\"dialog\" aria-modal=\"true\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section data-testid=\"modal\" *ngSwitchDefault role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header *ngIf=\"!modalHeaderContent; else headerContentTemplate\" ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer *ngIf=\"!modalFooterContent; else footerContentTemplate\" ngg-modal-footer data-testid=\"modal-footer\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div #backdrop data-testid=\"modal-backdrop\" class=\"backdrop\" (click)=\"this.handleBackdropClick($event)\" [attr.aria-hidden]=\"true\"></div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal-backdrop)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalHeaderComponent; }), selector: "[ngg-modal-header]", inputs: ["header"], outputs: ["closed"] }, { kind: "component", type: i0.forwardRef(function () { return NggModalBodyComponent; }), selector: "[ngg-modal-body]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalFooterComponent; }), selector: "[ngg-modal-footer]", inputs: ["dismissLabel", "confirmLabel"], outputs: ["dismiss", "confirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1066
1094
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalComponent, decorators: [{
|
|
1067
1095
|
type: Component,
|
|
1068
|
-
args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <
|
|
1096
|
+
args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <aside data-testid=\"modal\" *ngSwitchCase=\"'slideout'\" role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main data-testid=\"modal\" *ngSwitchCase=\"'takeover'\" role=\"dialog\" aria-modal=\"true\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section data-testid=\"modal\" *ngSwitchDefault role=\"dialog\" aria-modal=\"true\" [class.small]=\"size === 'sm'\" [class.medium]=\"size === 'md'\" [class.large]=\"size === 'lg'\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header *ngIf=\"!modalHeaderContent; else headerContentTemplate\" ngg-modal-header data-testid=\"modal-header\" [header]=\"header\" (closed)=\"this.handleCloseClick($event)\"></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer *ngIf=\"!modalFooterContent; else footerContentTemplate\" ngg-modal-footer data-testid=\"modal-footer\" [dismissLabel]=\"dismissLabel\" [confirmLabel]=\"confirmLabel\" (dismiss)=\"this.handleDismiss($event)\" (confirm)=\"this.handleConfirm($event)\"></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div #backdrop data-testid=\"modal-backdrop\" class=\"backdrop\" (click)=\"this.handleBackdropClick($event)\" [attr.aria-hidden]=\"true\"></div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal-backdrop)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
|
|
1069
1097
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.ConfigurableFocusTrapFactory }]; }, propDecorators: { modalType: [{
|
|
1070
1098
|
type: Input
|
|
1071
1099
|
}], header: [{
|
|
@@ -1076,6 +1104,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1076
1104
|
type: Input
|
|
1077
1105
|
}], size: [{
|
|
1078
1106
|
type: Input
|
|
1107
|
+
}], hideHeader: [{
|
|
1108
|
+
type: Input
|
|
1109
|
+
}], hideFooter: [{
|
|
1110
|
+
type: Input
|
|
1079
1111
|
}], trapFocus: [{
|
|
1080
1112
|
type: Input
|
|
1081
1113
|
}], isOpen: [{
|
|
@@ -1094,6 +1126,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1094
1126
|
}], backdropRef: [{
|
|
1095
1127
|
type: ViewChild,
|
|
1096
1128
|
args: ['backdrop']
|
|
1129
|
+
}], modalHeaderContent: [{
|
|
1130
|
+
type: ContentChild,
|
|
1131
|
+
args: [NggModalHeaderDirective]
|
|
1132
|
+
}], modalFooterContent: [{
|
|
1133
|
+
type: ContentChild,
|
|
1134
|
+
args: [NggModalFooterDirective]
|
|
1097
1135
|
}] } });
|
|
1098
1136
|
class NggModalHeaderComponent {
|
|
1099
1137
|
constructor() {
|
|
@@ -1170,10 +1208,14 @@ const DECLARATIONS = [
|
|
|
1170
1208
|
NggModalComponent,
|
|
1171
1209
|
NggModalHeaderComponent,
|
|
1172
1210
|
NggModalBodyComponent,
|
|
1173
|
-
NggModalFooterComponent
|
|
1211
|
+
NggModalFooterComponent,
|
|
1212
|
+
NggModalHeaderDirective,
|
|
1213
|
+
NggModalFooterDirective
|
|
1174
1214
|
];
|
|
1175
1215
|
const EXPORTS = [
|
|
1176
1216
|
NggModalComponent,
|
|
1217
|
+
NggModalHeaderDirective,
|
|
1218
|
+
NggModalFooterDirective
|
|
1177
1219
|
];
|
|
1178
1220
|
class NggModalModule {
|
|
1179
1221
|
}
|
|
@@ -1181,7 +1223,11 @@ NggModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
1181
1223
|
NggModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, declarations: [NggModalComponent,
|
|
1182
1224
|
NggModalHeaderComponent,
|
|
1183
1225
|
NggModalBodyComponent,
|
|
1184
|
-
NggModalFooterComponent
|
|
1226
|
+
NggModalFooterComponent,
|
|
1227
|
+
NggModalHeaderDirective,
|
|
1228
|
+
NggModalFooterDirective], imports: [A11yModule, CommonModule], exports: [NggModalComponent,
|
|
1229
|
+
NggModalHeaderDirective,
|
|
1230
|
+
NggModalFooterDirective] });
|
|
1185
1231
|
NggModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, imports: [A11yModule, CommonModule] });
|
|
1186
1232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NggModalModule, decorators: [{
|
|
1187
1233
|
type: NgModule,
|
|
@@ -1660,5 +1706,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1660
1706
|
* Generated bundle index. Do not edit.
|
|
1661
1707
|
*/
|
|
1662
1708
|
|
|
1663
|
-
export { NggAccordionComponent, NggAccordionListItemComponent, NggAccordionModule, NggBadgeComponent, NggBadgeModule, NggButtonComponent, NggButtonModule, NggContextMenuComponent, NggContextMenuModule, NggDatepickerComponent, NggDatepickerModule, NggDropdownButtonDirective, NggDropdownComponent, NggDropdownModule, NggDropdownOptionDirective, NggInPageWizardModule, NggInPageWizardStepCardComponent, NggModalBodyComponent, NggModalComponent, NggModalFooterComponent, NggModalHeaderComponent, NggModalModule, NggModule, NggOnScrollDirective, NggPaginationComponent, NggPaginationModule, NggProgressCircleComponent, NggProgressCircleModule, NggSegmentedControlComponent, NggSegmentedControlModule, NggSharedModule, NggSliderComponent, NggSliderModule, ON_SCROLL_TOKEN, dateValidator };
|
|
1709
|
+
export { NggAccordionComponent, NggAccordionListItemComponent, NggAccordionModule, NggBadgeComponent, NggBadgeModule, NggButtonComponent, NggButtonModule, NggContextMenuComponent, NggContextMenuModule, NggDatepickerComponent, NggDatepickerModule, NggDropdownButtonDirective, NggDropdownComponent, NggDropdownModule, NggDropdownOptionDirective, NggInPageWizardModule, NggInPageWizardStepCardComponent, NggModalBodyComponent, NggModalComponent, NggModalFooterComponent, NggModalFooterDirective, NggModalHeaderComponent, NggModalHeaderDirective, NggModalModule, NggModule, NggOnScrollDirective, NggPaginationComponent, NggPaginationModule, NggProgressCircleComponent, NggProgressCircleModule, NggSegmentedControlComponent, NggSegmentedControlModule, NggSharedModule, NggSliderComponent, NggSliderModule, ON_SCROLL_TOKEN, dateValidator };
|
|
1664
1710
|
//# sourceMappingURL=sebgroup-green-angular.mjs.map
|