@leanix/components 0.3.75 → 0.3.77
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/forms-ui/components/date-input/date-input.component.mjs +10 -6
- package/esm2020/lib/modal-ui/components/modal/modal.component.mjs +3 -3
- package/fesm2015/leanix-components.mjs +8 -5
- package/fesm2015/leanix-components.mjs.map +1 -1
- package/fesm2020/leanix-components.mjs +8 -5
- package/fesm2020/leanix-components.mjs.map +1 -1
- package/lib/forms-ui/components/date-input/date-input.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -12,8 +12,9 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
import * as i1 from "@angular/common";
|
|
13
13
|
import * as i2 from "@angular/forms";
|
|
14
14
|
import * as i3 from "ngx-bootstrap/datepicker";
|
|
15
|
-
import * as i4 from "
|
|
16
|
-
import * as i5 from "../../../core-ui/
|
|
15
|
+
import * as i4 from "@angular/cdk/overlay";
|
|
16
|
+
import * as i5 from "../../../core-ui/directives/autofocus.directive";
|
|
17
|
+
import * as i6 from "../../../core-ui/pipes/custom-date.pipe";
|
|
17
18
|
const DEFAULT_MIN_DATE = new Date('0000-01-01');
|
|
18
19
|
const DEFAULT_MAX_DATE = new Date('9999-12-31');
|
|
19
20
|
export class DateInputComponent {
|
|
@@ -30,6 +31,7 @@ export class DateInputComponent {
|
|
|
30
31
|
this.inputId = ''; // id to be set on input to correspond to outside label
|
|
31
32
|
this.renderingStyle = 'INPUT';
|
|
32
33
|
this.placeholder = 'yyyy-mm-dd';
|
|
34
|
+
this.cdk = true; // Deactivate to use old date picker
|
|
33
35
|
//--- Inputs replicated from datepicker; (selectionDone) is not needed, as (dateChange) is equivalen
|
|
34
36
|
this.datepickerMode = 'day'; // sets datepicker mode, supports: day, month, year
|
|
35
37
|
this.minDate = DEFAULT_MIN_DATE; // oldest selectable date
|
|
@@ -181,10 +183,10 @@ export class DateInputComponent {
|
|
|
181
183
|
}
|
|
182
184
|
}
|
|
183
185
|
DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DATE_FORMATS }, { token: DATE_FN_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
184
|
-
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
|
|
186
|
+
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", cdk: "cdk", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
|
|
185
187
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
186
188
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
|
|
187
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n
|
|
189
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n <ng-container *ngIf=\"showDatepicker\">\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #dateInput>\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n</ng-template>\n\n<ng-template #datePicker>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;top:0;right:0;bottom:0;left:0}.legacy .datepickerContainer{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "showWeeks", "activeDate", "initDate", "minDate", "maxDate", "minMode", "maxMode", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "directive", type: i4.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "pipe", type: i6.CustomDatePipe, name: "lxDate" }] });
|
|
188
190
|
__decorate([
|
|
189
191
|
Observe('initDateString')
|
|
190
192
|
], DateInputComponent.prototype, "initDateString$", void 0);
|
|
@@ -193,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
193
195
|
args: [{ selector: 'lx-date-input', providers: [
|
|
194
196
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
195
197
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
|
|
196
|
-
], template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n
|
|
198
|
+
], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n <ng-container *ngIf=\"showDatepicker\">\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #dateInput>\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n</ng-template>\n\n<ng-template #datePicker>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;top:0;right:0;bottom:0;left:0}.legacy .datepickerContainer{position:absolute}\n"] }]
|
|
197
199
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
198
200
|
type: Inject,
|
|
199
201
|
args: [DATE_FORMATS]
|
|
@@ -218,6 +220,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
218
220
|
type: Input
|
|
219
221
|
}], placeholder: [{
|
|
220
222
|
type: Input
|
|
223
|
+
}], cdk: [{
|
|
224
|
+
type: Input
|
|
221
225
|
}], datepickerMode: [{
|
|
222
226
|
type: Input
|
|
223
227
|
}], initDateString: [{
|
|
@@ -266,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
266
270
|
type: ViewChild,
|
|
267
271
|
args: ['input']
|
|
268
272
|
}] } });
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixhQUFhLEVBQUUsaUJBQWlCLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUF1QixNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztBQUtsRCxNQUFNLGdCQUFnQixHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hELE1B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O3NCQUFsQyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFFYSxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmb3JtYXQsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyLCBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERBVEVfRk5fTE9DQUxFLCBEQVRFX0ZPUk1BVFMsIERhdGVGb3JtYXRzUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2NvcmUtdWkuY29uc3RhbnRzJztcbmltcG9ydCB7IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nLCBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcsIGlzVmFsaWREYXRlU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGUtaGVscGVycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuXG4vLyBJbnB1dCArIG5nMi1ib290c3RyYXAgZGF0ZXBpY2tlclxuZXhwb3J0IHR5cGUgRGF0ZUlucHV0UmVuZGVyaW5nU3R5bGUgPSAnSU5QVVQnIHwgJ0xJTksnO1xuXG5jb25zdCBERUZBVUxUX01JTl9EQVRFID0gbmV3IERhdGUoJzAwMDAtMDEtMDEnKTtcbmNvbnN0IERFRkFVTFRfTUFYX0RBVEUgPSBuZXcgRGF0ZSgnOTk5OS0xMi0zMScpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgcHVibGljIGRhdGU6IERhdGUgfCBudWxsID0gbnVsbDsgLy8gbWFpbiBkYXRlIGlucHV0OyB0aGlzIGlzIGFsc28gdGhlIG9uZSB1c2VkIGZvciBuZ01vZGVsICYgZm9ybUNvbnRyb2whXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTsgLy8gdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBkYXRlIGNoYW5nZXNcbiAgQElucHV0KCkgcHVibGljIGRhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsOyAvLyBzZWNvbmRhcnksIGFsdGVybmF0aXZlIGlucHV0IHdpdGggZGF0ZSBzdHJpbmdcbiAgQE91dHB1dCgpIGRhdGVTdHJpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7IC8vIHRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzXG4gIC8vIERldGVybWluZSB3aGV0aGVyIGZvcm1Hcm91cCdzIHZhbHVlIGFjY2Vzc29yIGlzIGFjY2Vzc2luZyB0aGUgc2VsZWN0ZWQgSURzIG9yIHRoZSBzZWxlY3RlZCBvYmplY3RzXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiAnZGF0ZScgfCAnZGF0ZVN0cmluZycgPSAnZGF0ZSc7XG5cbiAgQElucHV0KCkgcHVibGljIGlucHV0SWQ6IHN0cmluZyA9ICcnOyAvLyBpZCB0byBiZSBzZXQgb24gaW5wdXQgdG8gY29ycmVzcG9uZCB0byBvdXRzaWRlIGxhYmVsXG4gIEBJbnB1dCgpIHB1YmxpYyByZW5kZXJpbmdTdHlsZTogRGF0ZUlucHV0UmVuZGVyaW5nU3R5bGUgPSAnSU5QVVQnO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICd5eXl5LW1tLWRkJztcblxuICAvLy0tLSBJbnB1dHMgcmVwbGljYXRlZCBmcm9tIGRhdGVwaWNrZXI7IChzZWxlY3Rpb25Eb25lKSBpcyBub3QgbmVlZGVkLCBhcyAoZGF0ZUNoYW5nZSkgaXMgZXF1aXZhbGVuXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlcGlja2VyTW9kZTogc3RyaW5nID0gJ2RheSc7IC8vIHNldHMgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBpbml0RGF0ZVN0cmluZyE6IHN0cmluZzsgLy8gZGVmYXVsdCBkYXRlIHRvIHNob3cgaWYgbmctbW9kZWwgdmFsdWUgaXMgbm90IHNwZWNpZmllZFxuICBAT2JzZXJ2ZSgnaW5pdERhdGVTdHJpbmcnKSBpbml0RGF0ZVN0cmluZyQhOiBPYnNlcnZhYmxlPHN0cmluZz47IC8vIGRlZmF1bHQgZGF0ZSB0byBzaG93IGlmIG5nLW1vZGVsIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWRcbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGUgPSBERUZBVUxUX01JTl9EQVRFOyAvLyBvbGRlc3Qgc2VsZWN0YWJsZSBkYXRlXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gREVGQVVMVF9NQVhfREFURTsgLy8gbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZVxuICBASW5wdXQoKSBwdWJsaWMgbWluTW9kZTogc3RyaW5nID0gJ2RheSc7IC8vIHNldCBsb3dlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhNb2RlOiBzdHJpbmcgPSAneWVhcic7IC8vIHNldHMgdXBwZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd1dlZWtzOiBib29sZWFuID0gdHJ1ZTsgLy8gaWYgZmFsc2Ugd2VlayBudW1iZXJzIHdpbGwgYmUgaGlkZGVuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXk6IHN0cmluZyA9ICdERCc7IC8vIGZvcm1hdCBvZiBkYXkgaW4gbW9udGhcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoOiBzdHJpbmcgPSAnTU1NTSc7IC8vIGZvcm1hdCBvZiBtb250aCBpbiB5ZWFyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRZZWFyOiBzdHJpbmcgPSAnWVlZWSc7IC8vIGZvcm1hdCBvZiB5ZWFyIGluIHllYXIgcmFuZ2VcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERheUhlYWRlcjogc3RyaW5nID0gJ2RkJzsgLy8gZm9ybWF0IG9mIGRheSBpbiB3ZWVrIGhlYWRlclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5VGl0bGU6IHN0cmluZyA9ICdNTU1NIFlZWVknOyAvLyBmb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgZGF5XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRNb250aFRpdGxlOiBzdHJpbmcgPSAnWVlZWSc7IC8vIGZvcm1hdCBvZiB0aXRsZSB3aGVuIHNlbGVjdGluZyBtb250aFxuICBASW5wdXQoKSBzdGFydGluZ0RheTogbnVtYmVyID0gMDsgLy8gc3RhcnRpbmcgZGF5IG9mIHRoZSB3ZWVrIGZyb20gMC02ICgwPVN1bmRheSwgLi4uLCA2PVNhdHVyZGF5KSBwdWJsaWNcbiAgQElucHV0KCkgcHVibGljIHllYXJSYW5nZTogbnVtYmVyID0gMjA7IC8vIG51bWJlciBvZiB5ZWFycyBkaXNwbGF5ZWQgaW4geWVhciBzZWxlY3Rpb25cbiAgQElucHV0KCkgcHVibGljIG9ubHlDdXJyZW50TW9udGg6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaWYgdHJ1ZSBvbmx5IGRhdGVzIGZyb20gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGggd2lsbCBiZSBzaG93blxuICBASW5wdXQoKSBwdWJsaWMgc2hvcnRjdXRQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlOyAvLyAgaWYgdHJ1ZSBzaG9ydGN1dGBzIGV2ZW50IHByb3BhZ2F0aW9uIHdpbGwgYmUgZGlzYWJsZWRcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZzsgY2xheno6IHN0cmluZyB9W10gPSBbXTsgLy8gYXJyYXkgb2YgY3VzdG9tIGNzcyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG9cbiAgLy8gdGFyZ2V0ZWQgZGF0ZXNcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGRhdGVEaXNhYmxlZDogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmcgfVtdID0gW107IC8vIGFycmF5IG9mIGRpc2FibGVkIGRhdGVzIGlmIG1vZGUgaXMgZGF5LCBvciB5ZWFycywgZXRjLlxuICBASW5wdXQoKSBhdXRvRm9jdXMgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2xvc2VEYXRlSW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgc2hvd0RhdGVwaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGF0ZUZvcm1hdDogc3RyaW5nO1xuICBpbml0RGF0ZSE6IERhdGU7XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8tLSBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHJpdmF0ZSBmb3JtQ29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoX2RhdGU6IERhdGUgfCBudWxsKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERBVEVfRk9STUFUUykgcHJpdmF0ZSBkYXRlRm9ybWF0c1Byb3ZpZGVyOiBEYXRlRm9ybWF0c1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9GTl9MT0NBTEUpIHByaXZhdGUgZ2V0RGF0ZUZuTG9jYWxlPzogRnVuY3Rpb25cbiAgKSB7XG4gICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0c1Byb3ZpZGVyLmdldERhdGVGb3JtYXQoKTtcbiAgICAvLyBQYXRjaCBEYXRlUGlja2VyIHVudGlsIGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZzItYm9vdHN0cmFwL2lzc3Vlcy8xMzg1IGlzIHJlc29sdmVkXG4gICAgY29uc3Qgd3JpdGVWYWx1ZSA9IERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWU7XG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudC5wcm90b3R5cGUud3JpdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB3cml0ZVZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyBhcyBhbnkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTb21laG93IGRhdGVwaWNrZXIgZG9lcyB1c2UgYSBzZXBhcmF0ZSBtb21lbnQgaW5zdGFuY2UgdGhhbiB3ZSBkby4gVGhhdCBvbmUgcnVucyBvbiBsb2NhbGUgZW4gYnkgZGVmYXVsdC5cbiAgICAvLyBTbyB3ZSBwYXRjaCB0aGUgZm9ybWF0IGZ1bmN0aW9uIGhlcmUgdG8gdXNlIG91ciBtb21lbnQgaW5zdGFuY2UuXG4gICAgLy8gTWF5YmUgaXQgd2lsbCBiZSBmaXhlZCB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvNDU1XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXREYXRlRm5Mb2NhbGUgPyB0aGlzLmdldERhdGVGbkxvY2FsZSgpIDogbnVsbDtcbiAgICBEYXRlRm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXQgPSBmdW5jdGlvbiAoZGF0ZTogRGF0ZSwgZjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGYsIHsgbG9jYWxlIH0pO1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXREYXRlU3RyaW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgIHRoaXMuaW5pdERhdGUgPSBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcoZGF0ZSkgPz8gc3RhcnRPZkRheShuZXcgRGF0ZSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGUnXSkge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nID0gdGhpcy5kYXRlID8gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKSA6IG51bGw7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydkYXRlU3RyaW5nJ10pIHtcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNob3dQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gdHJ1ZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gIXRoaXMuc2hvd0RhdGVwaWNrZXI7XG4gIH1cblxuICBwdWJsaWMgaGlkZVBvcHVwKCkge1xuICAgIGlmICh0aGlzLnNob3dEYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NlRGF0ZUlucHV0LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkRhdGVTdHJpbmdDaGFuZ2UobmV3RGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCwgZW1pdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoaXNWYWxpZERhdGVTdHJpbmcobmV3RGF0ZVN0cmluZykpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcobmV3RGF0ZVN0cmluZyk7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUoZGF0ZSwgZW1pdCk7XG4gICAgfSBlbHNlIGlmIChuZXdEYXRlU3RyaW5nID09PSBudWxsIHx8IG5ld0RhdGVTdHJpbmcgPT09ICcnKSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUobnVsbCwgZW1pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Rpb25Eb25lKG5ld0RhdGU6IERhdGUpIHtcbiAgICB0aGlzLnVwZGF0ZURhdGUobmV3RGF0ZSk7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlKGRhdGU6IERhdGUgfCBudWxsLCBlbWl0OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuZGF0ZSA9IGRhdGU7XG4gICAgdGhpcy5kYXRlU3RyaW5nID0gdGhpcy5kYXRlID8gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKSA6ICcnO1xuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5lbWl0KHRoaXMuZGF0ZVN0cmluZyk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGRhdGUpO1xuICAgIHRoaXMucmVjaGVja0Vycm9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNoZWNrRXJyb3JzKCkge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgLy8tLS0gSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8qKiBXcml0ZSBhIG5ldyB2YWx1ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgd3JpdGVWYWx1ZShuZXdEYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGUgPSBuZXdEYXRlIGFzIERhdGU7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdEYXRlIGFzIHN0cmluZztcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgY2hhbmdlIGV2ZW50LiAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZVN0cmluZycpIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgdG91Y2ggZXZlbnQuICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjO1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yXG4gICAgICA/IHtcbiAgICAgICAgICBkYXRlRm9ybWF0RXJyb3I6IHtcbiAgICAgICAgICAgIGdpdmVuOiB0aGlzLmRhdGVTdHJpbmcsXG4gICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LW1tLWRkJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmFja2Ryb3BcIiAqbmdJZj1cInNob3dEYXRlcGlja2VyXCIgKGNsaWNrKT1cImhpZGVQb3B1cCgpXCI+PC9kaXY+XG48c3BhbiBjbGFzcz1cIndyYXBwZXJcIiBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCIgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiPlxuICA8aW5wdXRcbiAgICAjaW5wdXRcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlQ29udHJvbFwiXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyBwbGFjZWhvbGRlciB9fVwiXG4gICAgW2lkXT1cImlucHV0SWRcIlxuICAgIFtseEF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgIFsobmdNb2RlbCldPVwiZGF0ZVN0cmluZ1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cInNob3dQb3B1cCgpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiaGlkZVBvcHVwKClcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJoaWRlUG9wdXAoKVwiXG4gICAgKGtleWRvd24udGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0lOUFVUJ1wiXG4gIC8+XG4gIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gICAgICA8ZGF0ZXBpY2tlclxuICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgKm5nSWY9XCJzaG93RGF0ZXBpY2tlclwiXG4gICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZGF0ZVwiXG4gICAgICAgIFtkYXRlcGlja2VyTW9kZV09XCJkYXRlcGlja2VyTW9kZVwiXG4gICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgIFttYXhNb2RlXT1cIm1heE1vZGVcIlxuICAgICAgICBbc2hvd1dlZWtzXT1cInNob3dXZWVrc1wiXG4gICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgW2Zvcm1hdE1vbnRoXT1cImZvcm1hdE1vbnRoXCJcbiAgICAgICAgW2Zvcm1hdFllYXJdPVwiZm9ybWF0WWVhclwiXG4gICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgW2Zvcm1hdERheVRpdGxlXT1cImZvcm1hdERheVRpdGxlXCJcbiAgICAgICAgW2Zvcm1hdE1vbnRoVGl0bGVdPVwiZm9ybWF0TW9udGhUaXRsZVwiXG4gICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgIFt5ZWFyUmFuZ2VdPVwieWVhclJhbmdlXCJcbiAgICAgICAgW29ubHlDdXJyZW50TW9udGhdPVwib25seUN1cnJlbnRNb250aFwiXG4gICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiY3VzdG9tQ2xhc3NcIlxuICAgICAgICBbZGF0ZURpc2FibGVkXT1cImRhdGVEaXNhYmxlZFwiXG4gICAgICA+XG4gICAgICA8L2RhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zcGFuPlxuIl19
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixhQUFhLEVBQUUsaUJBQWlCLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUF1QixNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7QUFLbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNoRCxN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QUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBRWEsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciwgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEQVRFX0ZOX0xPQ0FMRSwgREFURV9GT1JNQVRTLCBEYXRlRm9ybWF0c1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb3JlLXVpLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZywgY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nLCBpc1ZhbGlkRGF0ZVN0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlLWhlbHBlcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcblxuLy8gSW5wdXQgKyBuZzItYm9vdHN0cmFwIGRhdGVwaWNrZXJcbmV4cG9ydCB0eXBlIERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJyB8ICdMSU5LJztcblxuY29uc3QgREVGQVVMVF9NSU5fREFURSA9IG5ldyBEYXRlKCcwMDAwLTAxLTAxJyk7XG5jb25zdCBERUZBVUxUX01BWF9EQVRFID0gbmV3IERhdGUoJzk5OTktMTItMzEnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtZGF0ZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkYXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlSW5wdXRDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7IC8vIG1haW4gZGF0ZSBpbnB1dDsgdGhpcyBpcyBhbHNvIHRoZSBvbmUgdXNlZCBmb3IgbmdNb2RlbCAmIGZvcm1Db250cm9sIVxuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7IC8vIHRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDsgLy8gc2Vjb25kYXJ5LCBhbHRlcm5hdGl2ZSBpbnB1dCB3aXRoIGRhdGUgc3RyaW5nXG4gIEBPdXRwdXQoKSBkYXRlU3RyaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpOyAvLyB0cmlnZ2VyZWQgd2hlbmV2ZXIgdGhlIGRhdGUgY2hhbmdlc1xuICAvLyBEZXRlcm1pbmUgd2hldGhlciBmb3JtR3JvdXAncyB2YWx1ZSBhY2Nlc3NvciBpcyBhY2Nlc3NpbmcgdGhlIHNlbGVjdGVkIElEcyBvciB0aGUgc2VsZWN0ZWQgb2JqZWN0c1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVBY2Nlc3NvcjogJ2RhdGUnIHwgJ2RhdGVTdHJpbmcnID0gJ2RhdGUnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dElkOiBzdHJpbmcgPSAnJzsgLy8gaWQgdG8gYmUgc2V0IG9uIGlucHV0IHRvIGNvcnJlc3BvbmQgdG8gb3V0c2lkZSBsYWJlbFxuICBASW5wdXQoKSBwdWJsaWMgcmVuZGVyaW5nU3R5bGU6IERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAneXl5eS1tbS1kZCc7XG5cbiAgQElucHV0KCkgcHVibGljIGNkayA9IHRydWU7IC8vIERlYWN0aXZhdGUgdG8gdXNlIG9sZCBkYXRlIHBpY2tlclxuXG4gIC8vLS0tIElucHV0cyByZXBsaWNhdGVkIGZyb20gZGF0ZXBpY2tlcjsgKHNlbGVjdGlvbkRvbmUpIGlzIG5vdCBuZWVkZWQsIGFzIChkYXRlQ2hhbmdlKSBpcyBlcXVpdmFsZW5cbiAgQElucHV0KCkgcHVibGljIGRhdGVwaWNrZXJNb2RlOiBzdHJpbmcgPSAnZGF5JzsgLy8gc2V0cyBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyXG4gIEBJbnB1dCgpIGluaXREYXRlU3RyaW5nITogc3RyaW5nOyAvLyBkZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkXG4gIEBPYnNlcnZlKCdpbml0RGF0ZVN0cmluZycpIGluaXREYXRlU3RyaW5nJCE6IE9ic2VydmFibGU8c3RyaW5nPjsgLy8gZGVmYXVsdCBkYXRlIHRvIHNob3cgaWYgbmctbW9kZWwgdmFsdWUgaXMgbm90IHNwZWNpZmllZFxuICBASW5wdXQoKSBwdWJsaWMgbWluRGF0ZSA9IERFRkFVTFRfTUlOX0RBVEU7IC8vIG9sZGVzdCBzZWxlY3RhYmxlIGRhdGVcbiAgQElucHV0KCkgcHVibGljIG1heERhdGUgPSBERUZBVUxUX01BWF9EQVRFOyAvLyBsYXRlc3Qgc2VsZWN0YWJsZSBkYXRlXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5Nb2RlOiBzdHJpbmcgPSAnZGF5JzsgLy8gc2V0IGxvd2VyIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGRheSwgbW9udGgsIHllYXJcbiAgQElucHV0KCkgcHVibGljIG1heE1vZGU6IHN0cmluZyA9ICd5ZWFyJzsgLy8gc2V0cyB1cHBlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93V2Vla3M6IGJvb2xlYW4gPSB0cnVlOyAvLyBpZiBmYWxzZSB3ZWVrIG51bWJlcnMgd2lsbCBiZSBoaWRkZW5cbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERheTogc3RyaW5nID0gJ0REJzsgLy8gZm9ybWF0IG9mIGRheSBpbiBtb250aFxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0TW9udGg6IHN0cmluZyA9ICdNTU1NJzsgLy8gZm9ybWF0IG9mIG1vbnRoIGluIHllYXJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdFllYXI6IHN0cmluZyA9ICdZWVlZJzsgLy8gZm9ybWF0IG9mIHllYXIgaW4geWVhciByYW5nZVxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5SGVhZGVyOiBzdHJpbmcgPSAnZGQnOyAvLyBmb3JtYXQgb2YgZGF5IGluIHdlZWsgaGVhZGVyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlUaXRsZTogc3RyaW5nID0gJ01NTU0gWVlZWSc7IC8vIGZvcm1hdCBvZiB0aXRsZSB3aGVuIHNlbGVjdGluZyBkYXlcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoVGl0bGU6IHN0cmluZyA9ICdZWVlZJzsgLy8gZm9ybWF0IG9mIHRpdGxlIHdoZW4gc2VsZWN0aW5nIG1vbnRoXG4gIEBJbnB1dCgpIHN0YXJ0aW5nRGF5OiBudW1iZXIgPSAwOyAvLyBzdGFydGluZyBkYXkgb2YgdGhlIHdlZWsgZnJvbSAwLTYgKDA9U3VuZGF5LCAuLi4sIDY9U2F0dXJkYXkpIHB1YmxpY1xuICBASW5wdXQoKSBwdWJsaWMgeWVhclJhbmdlOiBudW1iZXIgPSAyMDsgLy8gbnVtYmVyIG9mIHllYXJzIGRpc3BsYXllZCBpbiB5ZWFyIHNlbGVjdGlvblxuICBASW5wdXQoKSBwdWJsaWMgb25seUN1cnJlbnRNb250aDogYm9vbGVhbiA9IGZhbHNlOyAvLyBpZiB0cnVlIG9ubHkgZGF0ZXMgZnJvbSB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBtb250aCB3aWxsIGJlIHNob3duXG4gIEBJbnB1dCgpIHB1YmxpYyBzaG9ydGN1dFByb3BhZ2F0aW9uOiBib29sZWFuID0gZmFsc2U7IC8vICBpZiB0cnVlIHNob3J0Y3V0YHMgZXZlbnQgcHJvcGFnYXRpb24gd2lsbCBiZSBkaXNhYmxlZFxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3M6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nOyBjbGF6ejogc3RyaW5nIH1bXSA9IFtdOyAvLyBhcnJheSBvZiBjdXN0b20gY3NzIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0b1xuICAvLyB0YXJnZXRlZCBkYXRlc1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQhOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZURpc2FibGVkOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZyB9W10gPSBbXTsgLy8gYXJyYXkgb2YgZGlzYWJsZWQgZGF0ZXMgaWYgbW9kZSBpcyBkYXksIG9yIHllYXJzLCBldGMuXG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBjbG9zZURhdGVJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBzaG93RGF0ZXBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIGluaXREYXRlITogRGF0ZTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLy0tIEltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcml2YXRlIGZvcm1Db250cm9sITogVW50eXBlZEZvcm1Db250cm9sO1xuICBoYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBvblRvdWNoZWQhOiAoKSA9PiB2b2lkO1xuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfZGF0ZTogRGF0ZSB8IG51bGwpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoREFURV9GT1JNQVRTKSBwcml2YXRlIGRhdGVGb3JtYXRzUHJvdmlkZXI6IERhdGVGb3JtYXRzUHJvdmlkZXIsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX0ZOX0xPQ0FMRSkgcHJpdmF0ZSBnZXREYXRlRm5Mb2NhbGU/OiBGdW5jdGlvblxuICApIHtcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLmRhdGVGb3JtYXRzUHJvdmlkZXIuZ2V0RGF0ZUZvcm1hdCgpO1xuICAgIC8vIFBhdGNoIERhdGVQaWNrZXIgdW50aWwgaHR0cHM6Ly9naXRodWIuY29tL3ZhbG9yLXNvZnR3YXJlL25nMi1ib290c3RyYXAvaXNzdWVzLzEzODUgaXMgcmVzb2x2ZWRcbiAgICBjb25zdCB3cml0ZVZhbHVlID0gRGF0ZVBpY2tlckNvbXBvbmVudC5wcm90b3R5cGUud3JpdGVWYWx1ZTtcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LnByb3RvdHlwZS53cml0ZVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHdyaXRlVmFsdWUuYXBwbHkodGhpcywgYXJndW1lbnRzIGFzIGFueSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFNvbWVob3cgZGF0ZXBpY2tlciBkb2VzIHVzZSBhIHNlcGFyYXRlIG1vbWVudCBpbnN0YW5jZSB0aGFuIHdlIGRvLiBUaGF0IG9uZSBydW5zIG9uIGxvY2FsZSBlbiBieSBkZWZhdWx0LlxuICAgIC8vIFNvIHdlIHBhdGNoIHRoZSBmb3JtYXQgZnVuY3Rpb24gaGVyZSB0byB1c2Ugb3VyIG1vbWVudCBpbnN0YW5jZS5cbiAgICAvLyBNYXliZSBpdCB3aWxsIGJlIGZpeGVkIHdpdGg6IGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZ3gtYm9vdHN0cmFwL2lzc3Vlcy80NTVcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmdldERhdGVGbkxvY2FsZSA/IHRoaXMuZ2V0RGF0ZUZuTG9jYWxlKCkgOiBudWxsO1xuICAgIERhdGVGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdCA9IGZ1bmN0aW9uIChkYXRlOiBEYXRlLCBmOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgZiwgeyBsb2NhbGUgfSk7XG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdERhdGVTdHJpbmckLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZGF0ZSkgPT4ge1xuICAgICAgdGhpcy5pbml0RGF0ZSA9IGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhkYXRlKSA/PyBzdGFydE9mRGF5KG5ldyBEYXRlKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0ZSddKSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGUgPyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpIDogbnVsbDtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZXNbJ2RhdGVTdHJpbmcnXSkge1xuICAgICAgdGhpcy5vbkRhdGVTdHJpbmdDaGFuZ2UodGhpcy5kYXRlU3RyaW5nLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1BvcHVwKCkge1xuICAgIHRoaXMuc2hvd0RhdGVwaWNrZXIgPSB0cnVlO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBvcHVwKCkge1xuICAgIHRoaXMuc2hvd0RhdGVwaWNrZXIgPSAhdGhpcy5zaG93RGF0ZXBpY2tlcjtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlUG9wdXAoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0RhdGVwaWNrZXIpIHtcbiAgICAgIHRoaXMuc2hvd0RhdGVwaWNrZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VEYXRlSW5wdXQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGF0ZVN0cmluZ0NoYW5nZShuZXdEYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsLCBlbWl0OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmIChpc1ZhbGlkRGF0ZVN0cmluZyhuZXdEYXRlU3RyaW5nKSkge1xuICAgICAgY29uc3QgZGF0ZSA9IGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhuZXdEYXRlU3RyaW5nKTtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZShkYXRlLCBlbWl0KTtcbiAgICB9IGVsc2UgaWYgKG5ld0RhdGVTdHJpbmcgPT09IG51bGwgfHwgbmV3RGF0ZVN0cmluZyA9PT0gJycpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZShudWxsLCBlbWl0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGlvbkRvbmUobmV3RGF0ZTogRGF0ZSkge1xuICAgIHRoaXMudXBkYXRlRGF0ZShuZXdEYXRlKTtcbiAgICB0aGlzLmhpZGVQb3B1cCgpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGUoZGF0ZTogRGF0ZSB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5kYXRlID0gZGF0ZTtcbiAgICB0aGlzLmRhdGVTdHJpbmcgPSB0aGlzLmRhdGUgPyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpIDogJyc7XG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLmVtaXQodGhpcy5kYXRlU3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZGF0ZSk7XG4gICAgdGhpcy5yZWNoZWNrRXJyb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlY2hlY2tFcnJvcnMoKSB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvLy0tLSBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLyoqIFdyaXRlIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LiAqL1xuICB3cml0ZVZhbHVlKG5ld0RhdGU6IERhdGUgfCBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMuZGF0ZSA9IG5ld0RhdGUgYXMgRGF0ZTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IG5ld0RhdGUgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5vbkRhdGVTdHJpbmdDaGFuZ2UodGhpcy5kYXRlU3RyaW5nLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldCB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgYSBjaGFuZ2UgZXZlbnQuICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlJykge1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlU3RyaW5nJykge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZShmbik7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldCB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgYSB0b3VjaCBldmVudC4gKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgdmFsaWRhdGUoYzogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGM7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JcbiAgICAgID8ge1xuICAgICAgICAgIGRhdGVGb3JtYXRFcnJvcjoge1xuICAgICAgICAgICAgZ2l2ZW46IHRoaXMuZGF0ZVN0cmluZyxcbiAgICAgICAgICAgIGZvcm1hdDogJ3l5eXktbW0tZGQnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjZGs7IGVsc2Ugd2l0aG91dENka092ZXJsYXlcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cIndyYXBwZXJcIlxuICAgIFtjbGFzcy5mb3JMaW5rXT1cInJlbmRlcmluZ1N0eWxlID09PSAnTElOSydcIlxuICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwiaGFzRXJyb3JcIlxuICAgIGNka092ZXJsYXlPcmlnaW5cbiAgICAjb3JpZ2luPVwiY2RrT3ZlcmxheU9yaWdpblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZUlucHV0XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICNjZGtEYXRlcGlja2VyXG4gICAgICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwic2hvd0RhdGVwaWNrZXJcIlxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwib3JpZ2luXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwidHJ1ZVwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3NdPVwiJ2JhY2tkcm9wJ1wiXG4gICAgICAoYmFja2Ryb3BDbGljayk9XCJoaWRlUG9wdXAoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVQaWNrZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN3aXRob3V0Q2RrT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cImxlZ2FjeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIiAoY2xpY2spPVwiaGlkZVBvcHVwKClcIj48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cIndyYXBwZXJcIiBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCIgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVJbnB1dFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEYXRlcGlja2VyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlUGlja2VyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkYXRlSW5wdXQ+XG4gIDxpbnB1dFxuICAgICNpbnB1dFxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRhdGVDb250cm9sXCJcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgW2x4QXV0b2ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwic2hvd1BvcHVwKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJoaWRlUG9wdXAoKVwiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cImhpZGVQb3B1cCgpXCJcbiAgICAoa2V5ZG93bi50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImhhc0Vycm9yXCJcbiAgICAqbmdJZj1cInJlbmRlcmluZ1N0eWxlID09PSAnSU5QVVQnXCJcbiAgLz5cbiAgPGEgY2xhc3M9XCJkYXRlQ29udHJvbFwiIChjbGljayk9XCJ0b2dnbGVQb3B1cCgpXCIgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCI+e3sgZGF0ZSB8IGx4RGF0ZTogZGF0ZUZvcm1hdCB9fTwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGF0ZVBpY2tlcj5cbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJDb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICAgIDxkYXRlcGlja2VyXG4gICAgICAgIGNsYXNzPVwicG9wdXBcIlxuICAgICAgICAoc2VsZWN0aW9uRG9uZSk9XCJvblNlbGVjdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICBbZGF0ZXBpY2tlck1vZGVdPVwiZGF0ZXBpY2tlck1vZGVcIlxuICAgICAgICBbaW5pdERhdGVdPVwiaW5pdERhdGVcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgIFttaW5Nb2RlXT1cIm1pbk1vZGVcIlxuICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgW3Nob3dXZWVrc109XCJzaG93V2Vla3NcIlxuICAgICAgICBbZm9ybWF0RGF5XT1cImZvcm1hdERheVwiXG4gICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgIFtmb3JtYXRZZWFyXT1cImZvcm1hdFllYXJcIlxuICAgICAgICBbZm9ybWF0RGF5SGVhZGVyXT1cImZvcm1hdERheUhlYWRlclwiXG4gICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgIFtmb3JtYXRNb250aFRpdGxlXT1cImZvcm1hdE1vbnRoVGl0bGVcIlxuICAgICAgICBbc3RhcnRpbmdEYXldPVwic3RhcnRpbmdEYXlcIlxuICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgIFtvbmx5Q3VycmVudE1vbnRoXT1cIm9ubHlDdXJyZW50TW9udGhcIlxuICAgICAgICBbc2hvcnRjdXRQcm9wYWdhdGlvbl09XCJzaG9ydGN1dFByb3BhZ2F0aW9uXCJcbiAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgW2RhdGVEaXNhYmxlZF09XCJkYXRlRGlzYWJsZWRcIlxuICAgICAgPlxuICAgICAgPC9kYXRlcGlja2VyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -146,7 +146,7 @@ export class ModalComponent {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ModalComponent, deps: [{ token: i1.Overlay }, { token: i0.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
|
|
149
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{max-height:calc(84vh - 112px)}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [
|
|
150
150
|
trigger('modal', [
|
|
151
151
|
transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
|
|
152
152
|
transition(':leave', animate('0.15s', style({ opacity: 0 })))
|
|
@@ -159,7 +159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
159
159
|
transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
|
|
160
160
|
transition(':leave', animate('0.15s', style({ opacity: 0 })))
|
|
161
161
|
])
|
|
162
|
-
], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"] }]
|
|
162
|
+
], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{max-height:calc(84vh - 112px)}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"] }]
|
|
163
163
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i6.Observable, decorators: [{
|
|
164
164
|
type: Optional
|
|
165
165
|
}, {
|
|
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
202
202
|
type: HostListener,
|
|
203
203
|
args: ['document:keydown.escape']
|
|
204
204
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbW9kYWwtdWkvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC11aS9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVlILE1BQU0sT0FBTyxjQUFjO0lBb0N6QixZQUNVLE9BQWdCLEVBQ2hCLFFBQW1CLEVBQ2MsV0FBZ0MsRUFDakUs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QWdCO3NCQUF4QixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBRTZCLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNFLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNNLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNVSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFNEIsZUFBZTtzQkFBeEYsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNL0IsUUFBUTtzQkFBaEQsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWwsIFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tb2RhbC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNT0RBTF9DTE9TRSB9IGZyb20gJy4uLy4uL21vZGFsLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBNb2RhbEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWZvb3Rlci9tb2RhbC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuXG4vKipcbiAqXG4gKiBBVFRFTlRJT04gLSBTQ1JPTExBQkxFIERJQUxPRzpcbiAqIFRoZSA8bHgtbW9kYWw+IGNvbXBvbmVudCB3aGVuIHVzZWQgYXMgXCJkaWFsb2dcIiBpcyBub3QgZGVzaWduZWQgdG8gd29yayB3aXRoIGFcbiAqIHNjcm9sbGFibGUgYm9keSAodmlhIFwib3ZlcmZsb3c6IGF1dG8gfCBzY3JvbGxcIikgaW4gY29tYmluYXRpb24gd2l0aCBkcm9wZG93bnMuXG4gKiBUaGUgb3ZlcmZsb3cgb24gdGhlIGJvZHkgd2lsbCBhbHNvIGNsaXAgdGhlIGRyb3Bkb3ducywgd2hpY2ggaXMgZXhwZWN0ZWQuXG4gKlxuICogUmVhc29uaW5nOlxuICogVGhlIGNvbnRlbnRzIHdpdGhpbiB0aGUgZGlhbG9nIHNob3VsZCBiZSBqdXN0IGEgZmV3IGVsZW1lbnRzIHdoaWNoIGZpdCBhbmRcbiAqIGp1c3RpZnkgdGhlIHVzYWdlIG9mIGEgZGlhbG9nLiBJZiB0aGUgY29udGVudCBpcyBsYXJnZXIgdGhhbiB0aGUgZGlhbG9nLCBhbmQgdGh1c1xuICogcmVxdWlyZXMgc2Nyb2xsaW5nLCB3ZSBzaG91bGQgZGlzY3VzcyB3aGV0aGVyIHRvIHB1dCBpdCBpbnRvIGEgZGlhbG9nIGF0IGFsbFxuICogYW5kIHJhdGhlciB0aGluayBhYm91dCBwdXR0aW5nIHRoZSBjb250ZW50IG9uIGEgc2VwYXJhdGUgcm91dGUgb3JcbiAqIHVzaW5nIHRoZSBmdWxsc2NyZWVuIHZlcnNpb24gb2YgdGhlIG1vZGFsLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJ21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdtb2RhbCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJzAuMTVzJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgnMC4xNXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdNb2RhbENvbXBvbmVudCc7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSBmYWxzZTtcbiAgLypcbiAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgdmVydGljYWxseSBpbnN0ZWFkIG9mIGV4cGFuZGluZyBpdHMgaGVpZ2h0LlxuICAgKiBUaGlzIGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIGNvbnRlbnQgaGFzIGRyb3Bkb3ducyBvciBkYXRlIGlucHV0cywgYnV0IGNhbiBiZSBnb29kIGlmIHRoZSBjb250ZW50IGhhcyBhIGh1Z2UgYW1vdW50IG9mIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFNjcm9sbCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiAnZnVsbHNjcmVlbicgfCAnZGlhbG9nLWxhcmdlJyB8ICdkaWFsb2cnID0gJ2Z1bGxzY3JlZW4nO1xuICBASW5wdXQoKSBpc0ZvY3VzVHJhcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjYW5Nb2RhbEJlQ2xvc2VkPzogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKE1vZGFsSGVhZGVyQ29tcG9uZW50KSBoZWFkZXI/OiBNb2RhbEhlYWRlckNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChNb2RhbEZvb3RlckNvbXBvbmVudCkgZm9vdGVyPzogTW9kYWxGb290ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsLCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtQb3J0YWwhOiBQb3J0YWw8Q2RrUG9ydGFsPjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBvbGRPdmVyZmxvdz86IHN0cmluZztcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW9kYWxDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5pbXBsaWNpdENvbnRlbnQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpIG9uRXNjYXBlKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1PREFMX0NMT1NFKSBwcml2YXRlIGNsb3NlTW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgIHByaXZhdGUgZm9jdXNUcmFwOiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5XG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZU1vZGFsKCkpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zaXplID09PSAnZGlhbG9nLWxhcmdlJykge1xuICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCgnNHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxuICAgICAgICBoZWlnaHQ6ICc5MHZoJ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNpemUgJ2RpYWxvZydcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS50b3AoJzh2aCcpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuc2l6ZSxcbiAgICAgICAgbWluV2lkdGg6ICc2MDBweCcsIC8vIE5COiBTb21lIG1vZGFsIGltcGxlbWVudGF0aW9ucyByZWx5IG9uIHRoaXMgbWluV2lkdGggYmVpbmcgNjAwcHhcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaXplICE9PSAnZnVsbHNjcmVlbicpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VNb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMub3ZlcmxheVJlZiAmJiAhdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5vcGVuICYmIHRoaXMub3ZlcmxheVJlZiAmJiB0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpICYmIHRoaXMuaXNGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW5Nb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5vbGRPdmVyZmxvdyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvd1k7XG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsICdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuY2RrUG9ydGFsKTtcbiAgICB0aGlzLnRyYXBGb2N1c0luTW9kYWwodGhpcy5vdmVybGF5UmVmLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIGVtaXRCYWNrKCkge1xuICAgIHRoaXMuYmFjay5lbWl0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsIHRoaXMub2xkT3ZlcmZsb3cpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xvc2VNb2RhbCgpIHtcbiAgICBpZiAoIXRoaXMuY2FuTW9kYWxCZUNsb3NlZCB8fCAoYXdhaXQgdGhpcy5jYW5Nb2RhbEJlQ2xvc2VkKCkpKSB7XG4gICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblxuICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgdGhpcy5vbGRPdmVyZmxvdyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhcEZvY3VzSW5Nb2RhbChob3N0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLmZvY3VzVHJhcC5jcmVhdGUoaG9zdEVsZW1lbnQpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgY2RrUG9ydGFsPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJvcGVuXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBjbGFzcz1cImx4bW9kYWxcIlxuICAgIFtjbGFzcy5seG1vZGFsLS1mdWxsc2NyZWVuXT1cInNpemUgPT09ICdmdWxsc2NyZWVuJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWRpYWxvZ109XCJzaXplID09PSAnZGlhbG9nJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWRpYWxvZy1sYXJnZV09XCJzaXplID09PSAnZGlhbG9nLWxhcmdlJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLXdpdGhGb290ZXJdPVwiISFmb290ZXJcIlxuICAgIFtjbGFzcy5seG1vZGFsLS12ZXJ0aWNhbFNjcm9sbF09XCJ2ZXJ0aWNhbFNjcm9sbFwiXG4gICAgQG1vZGFsXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInNpemUgPT09ICdmdWxsc2NyZWVuJyAmJiBzaG93QmFja0J1dHRvblwiXG4gICAgICAoY2xpY2spPVwiZW1pdEJhY2soKVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiZW1pdEJhY2soKVwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImZhbCBmYS1sb25nLWFycm93LWxlZnRcIlxuICAgID48L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiTkFNRSArICcuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNsYXNzPVwiZmFsIGZhLXRpbWVzIGNsb3NlQnV0dG9uXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJoZWFkZXJcIiBzZWxlY3Q9XCJseC1tb2RhbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsQ29udGVudENvbnRhaW5lclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImZvb3RlclwiIHNlbGVjdD1cImx4LW1vZGFsLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpbXBsaWNpdENvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvbW9kYWwtdWkvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC11aS9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQVlILE1BQU0sT0FBTyxjQUFjO0lBb0N6QixZQUNVLE9BQWdCLEVBQ2hCLFFBQW1CLEVBQ2MsV0FBZ0MsRUFDakUs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QWdCO3NCQUF4QixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBRTZCLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNFLE1BQU07c0JBQXpDLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNNLFNBQVM7c0JBQWhELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNVSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFNEIsZUFBZTtzQkFBeEYsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNL0IsUUFBUTtzQkFBaEQsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWwsIFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tb2RhbC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNT0RBTF9DTE9TRSB9IGZyb20gJy4uLy4uL21vZGFsLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBNb2RhbEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGFsLWZvb3Rlci9tb2RhbC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuXG4vKipcbiAqXG4gKiBBVFRFTlRJT04gLSBTQ1JPTExBQkxFIERJQUxPRzpcbiAqIFRoZSA8bHgtbW9kYWw+IGNvbXBvbmVudCB3aGVuIHVzZWQgYXMgXCJkaWFsb2dcIiBpcyBub3QgZGVzaWduZWQgdG8gd29yayB3aXRoIGFcbiAqIHNjcm9sbGFibGUgYm9keSAodmlhIFwib3ZlcmZsb3c6IGF1dG8gfCBzY3JvbGxcIikgaW4gY29tYmluYXRpb24gd2l0aCBkcm9wZG93bnMuXG4gKiBUaGUgb3ZlcmZsb3cgb24gdGhlIGJvZHkgd2lsbCBhbHNvIGNsaXAgdGhlIGRyb3Bkb3ducywgd2hpY2ggaXMgZXhwZWN0ZWQuXG4gKlxuICogUmVhc29uaW5nOlxuICogVGhlIGNvbnRlbnRzIHdpdGhpbiB0aGUgZGlhbG9nIHNob3VsZCBiZSBqdXN0IGEgZmV3IGVsZW1lbnRzIHdoaWNoIGZpdCBhbmRcbiAqIGp1c3RpZnkgdGhlIHVzYWdlIG9mIGEgZGlhbG9nLiBJZiB0aGUgY29udGVudCBpcyBsYXJnZXIgdGhhbiB0aGUgZGlhbG9nLCBhbmQgdGh1c1xuICogcmVxdWlyZXMgc2Nyb2xsaW5nLCB3ZSBzaG91bGQgZGlzY3VzcyB3aGV0aGVyIHRvIHB1dCBpdCBpbnRvIGEgZGlhbG9nIGF0IGFsbFxuICogYW5kIHJhdGhlciB0aGluayBhYm91dCBwdXR0aW5nIHRoZSBjb250ZW50IG9uIGEgc2VwYXJhdGUgcm91dGUgb3JcbiAqIHVzaW5nIHRoZSBmdWxsc2NyZWVuIHZlcnNpb24gb2YgdGhlIG1vZGFsLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJ21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdtb2RhbCcsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJzAuMTVzJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKV0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgYW5pbWF0ZSgnMC4xNXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpKVxuICAgIF0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdNb2RhbENvbXBvbmVudCc7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSBmYWxzZTtcbiAgLypcbiAgICogSWYgdHJ1ZSwgdGhlbiB0aGUgY29udGVudCBhcmVhIHNjcm9sbHMgdmVydGljYWxseSBpbnN0ZWFkIG9mIGV4cGFuZGluZyBpdHMgaGVpZ2h0LlxuICAgKiBUaGlzIGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIGNvbnRlbnQgaGFzIGRyb3Bkb3ducyBvciBkYXRlIGlucHV0cywgYnV0IGNhbiBiZSBnb29kIGlmIHRoZSBjb250ZW50IGhhcyBhIGh1Z2UgYW1vdW50IG9mIHRleHQuXG4gICAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbFNjcm9sbCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaXplOiAnZnVsbHNjcmVlbicgfCAnZGlhbG9nLWxhcmdlJyB8ICdkaWFsb2cnID0gJ2Z1bGxzY3JlZW4nO1xuICBASW5wdXQoKSBpc0ZvY3VzVHJhcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjYW5Nb2RhbEJlQ2xvc2VkPzogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKE1vZGFsSGVhZGVyQ29tcG9uZW50KSBoZWFkZXI/OiBNb2RhbEhlYWRlckNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChNb2RhbEZvb3RlckNvbXBvbmVudCkgZm9vdGVyPzogTW9kYWxGb290ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsLCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtQb3J0YWwhOiBQb3J0YWw8Q2RrUG9ydGFsPjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmITogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBvbGRPdmVyZmxvdz86IHN0cmluZztcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW9kYWxDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgY29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdENvbnRlbnQgfHwgdGhpcy5pbXBsaWNpdENvbnRlbnQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpIG9uRXNjYXBlKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1PREFMX0NMT1NFKSBwcml2YXRlIGNsb3NlTW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuICAgIHByaXZhdGUgZm9jdXNUcmFwOiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5XG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZU1vZGFsKCkpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICcxMDB2aCdcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zaXplID09PSAnZGlhbG9nLWxhcmdlJykge1xuICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnRvcCgnNHZoJykuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgcGFuZWxDbGFzczogdGhpcy5zaXplLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxuICAgICAgICBoZWlnaHQ6ICc5MHZoJ1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNpemUgJ2RpYWxvZydcbiAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS50b3AoJzh2aCcpLmNlbnRlckhvcml6b250YWxseSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICAgIHBhbmVsQ2xhc3M6IHRoaXMuc2l6ZSxcbiAgICAgICAgbWluV2lkdGg6ICc2MDBweCcsIC8vIE5COiBTb21lIG1vZGFsIGltcGxlbWVudGF0aW9ucyByZWx5IG9uIHRoaXMgbWluV2lkdGggYmVpbmcgNjAwcHhcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaXplICE9PSAnZnVsbHNjcmVlbicpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VNb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5vcGVuICYmIHRoaXMub3ZlcmxheVJlZiAmJiAhdGhpcy5vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5vcGVuICYmIHRoaXMub3ZlcmxheVJlZiAmJiB0aGlzLm92ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4gJiYgdGhpcy5vdmVybGF5UmVmICYmIHRoaXMub3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpICYmIHRoaXMuaXNGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMudHJhcEZvY3VzSW5Nb2RhbCh0aGlzLm92ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aW1lcigwKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW5Nb2RhbCgpKTtcbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgdGhpcy5vbGRPdmVyZmxvdyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvd1k7XG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsICdoaWRkZW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRoaXMuY2RrUG9ydGFsKTtcbiAgICB0aGlzLnRyYXBGb2N1c0luTW9kYWwodGhpcy5vdmVybGF5UmVmLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIGVtaXRCYWNrKCkge1xuICAgIHRoaXMuYmFjay5lbWl0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ292ZXJmbG93WScsIHRoaXMub2xkT3ZlcmZsb3cpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xvc2VNb2RhbCgpIHtcbiAgICBpZiAoIXRoaXMuY2FuTW9kYWxCZUNsb3NlZCB8fCAoYXdhaXQgdGhpcy5jYW5Nb2RhbEJlQ2xvc2VkKCkpKSB7XG4gICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcblxuICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgdGhpcy5vbGRPdmVyZmxvdyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhcEZvY3VzSW5Nb2RhbChob3N0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLmZvY3VzVHJhcC5jcmVhdGUoaG9zdEVsZW1lbnQpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgY2RrUG9ydGFsPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJvcGVuXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBjbGFzcz1cImx4bW9kYWxcIlxuICAgIFtjbGFzcy5seG1vZGFsLS1mdWxsc2NyZWVuXT1cInNpemUgPT09ICdmdWxsc2NyZWVuJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWRpYWxvZ109XCJzaXplID09PSAnZGlhbG9nJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLWRpYWxvZy1sYXJnZV09XCJzaXplID09PSAnZGlhbG9nLWxhcmdlJ1wiXG4gICAgW2NsYXNzLmx4bW9kYWwtLXdpdGhGb290ZXJdPVwiISFmb290ZXJcIlxuICAgIFtjbGFzcy5seG1vZGFsLS12ZXJ0aWNhbFNjcm9sbF09XCJ2ZXJ0aWNhbFNjcm9sbFwiXG4gICAgQG1vZGFsXG4gID5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInNpemUgPT09ICdmdWxsc2NyZWVuJyAmJiBzaG93QmFja0J1dHRvblwiXG4gICAgICAoY2xpY2spPVwiZW1pdEJhY2soKVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiZW1pdEJhY2soKVwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImZhbCBmYS1sb25nLWFycm93LWxlZnRcIlxuICAgID48L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiTkFNRSArICcuY2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGNsYXNzPVwiZmFsIGZhLXRpbWVzIGNsb3NlQnV0dG9uXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJoZWFkZXJcIiBzZWxlY3Q9XCJseC1tb2RhbC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsQ29udGVudENvbnRhaW5lclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImZvb3RlclwiIHNlbGVjdD1cImx4LW1vZGFsLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpbXBsaWNpdENvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -3039,6 +3039,7 @@ class DateInputComponent {
|
|
|
3039
3039
|
this.inputId = ''; // id to be set on input to correspond to outside label
|
|
3040
3040
|
this.renderingStyle = 'INPUT';
|
|
3041
3041
|
this.placeholder = 'yyyy-mm-dd';
|
|
3042
|
+
this.cdk = true; // Deactivate to use old date picker
|
|
3042
3043
|
//--- Inputs replicated from datepicker; (selectionDone) is not needed, as (dateChange) is equivalen
|
|
3043
3044
|
this.datepickerMode = 'day'; // sets datepicker mode, supports: day, month, year
|
|
3044
3045
|
this.minDate = DEFAULT_MIN_DATE; // oldest selectable date
|
|
@@ -3191,10 +3192,10 @@ class DateInputComponent {
|
|
|
3191
3192
|
}
|
|
3192
3193
|
}
|
|
3193
3194
|
DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DATE_FORMATS }, { token: DATE_FN_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
3194
|
-
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
|
|
3195
|
+
DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", cdk: "cdk", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
|
|
3195
3196
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
3196
3197
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
|
|
3197
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n
|
|
3198
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n <ng-container *ngIf=\"showDatepicker\">\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #dateInput>\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n</ng-template>\n\n<ng-template #datePicker>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;top:0;right:0;bottom:0;left:0}.legacy .datepickerContainer{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "showWeeks", "activeDate", "initDate", "minDate", "maxDate", "minMode", "maxMode", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "directive", type: i1$1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "pipe", type: CustomDatePipe, name: "lxDate" }] });
|
|
3198
3199
|
__decorate([
|
|
3199
3200
|
Observe('initDateString')
|
|
3200
3201
|
], DateInputComponent.prototype, "initDateString$", void 0);
|
|
@@ -3203,7 +3204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3203
3204
|
args: [{ selector: 'lx-date-input', providers: [
|
|
3204
3205
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
|
|
3205
3206
|
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
|
|
3206
|
-
], template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n
|
|
3207
|
+
], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n <ng-container *ngIf=\"showDatepicker\">\n <ng-container *ngTemplateOutlet=\"datePicker\"></ng-container>\n </ng-container>\n </span>\n </div>\n</ng-template>\n\n<ng-template #dateInput>\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n</ng-template>\n\n<ng-template #datePicker>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;top:0;right:0;bottom:0;left:0}.legacy .datepickerContainer{position:absolute}\n"] }]
|
|
3207
3208
|
}], ctorParameters: function () {
|
|
3208
3209
|
return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
3209
3210
|
type: Inject,
|
|
@@ -3230,6 +3231,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3230
3231
|
type: Input
|
|
3231
3232
|
}], placeholder: [{
|
|
3232
3233
|
type: Input
|
|
3234
|
+
}], cdk: [{
|
|
3235
|
+
type: Input
|
|
3233
3236
|
}], datepickerMode: [{
|
|
3234
3237
|
type: Input
|
|
3235
3238
|
}], initDateString: [{
|
|
@@ -6091,7 +6094,7 @@ class ModalComponent {
|
|
|
6091
6094
|
}
|
|
6092
6095
|
}
|
|
6093
6096
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ModalComponent, deps: [{ token: i1$1.Overlay }, { token: i0.Renderer2 }, { token: MODAL_CLOSE, optional: true }, { token: i2$2.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
6094
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$6.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], animations: [
|
|
6097
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ModalComponent, selector: "lx-modal", inputs: { open: "open", showCloseButton: "showCloseButton", showBackButton: "showBackButton", verticalScroll: "verticalScroll", size: "size", isFocusTrap: "isFocusTrap", canModalBeClosed: "canModalBeClosed" }, outputs: { close: "close", back: "back" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "header", first: true, predicate: ModalHeaderComponent, descendants: true }, { propertyName: "footer", first: true, predicate: ModalFooterComponent, descendants: true }, { propertyName: "explicitContent", first: true, predicate: ModalContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "cdkPortal", first: true, predicate: CdkPortal, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{max-height:calc(84vh - 112px)}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$6.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], animations: [
|
|
6095
6098
|
trigger('modal', [
|
|
6096
6099
|
transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
|
|
6097
6100
|
transition(':leave', animate('0.15s', style({ opacity: 0 })))
|
|
@@ -6104,7 +6107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
6104
6107
|
transition(':enter', [style({ opacity: 0 }), animate('0.15s', style({ opacity: 1 }))]),
|
|
6105
6108
|
transition(':leave', animate('0.15s', style({ opacity: 0 })))
|
|
6106
6109
|
])
|
|
6107
|
-
], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"] }]
|
|
6110
|
+
], template: "<ng-template cdkPortal>\n <div\n *ngIf=\"open\"\n role=\"dialog\"\n class=\"lxmodal\"\n [class.lxmodal--fullscreen]=\"size === 'fullscreen'\"\n [class.lxmodal--dialog]=\"size === 'dialog'\"\n [class.lxmodal--dialog-large]=\"size === 'dialog-large'\"\n [class.lxmodal--withFooter]=\"!!footer\"\n [class.lxmodal--verticalScroll]=\"verticalScroll\"\n @modal\n >\n <div\n *ngIf=\"size === 'fullscreen' && showBackButton\"\n (click)=\"emitBack()\"\n (keyup.enter)=\"emitBack()\"\n tabindex=\"0\"\n role=\"button\"\n class=\"fal fa-long-arrow-left\"\n ></div>\n <button\n *ngIf=\"showCloseButton\"\n (click)=\"closeModal()\"\n [attr.aria-label]=\"NAME + '.close' | translate\"\n class=\"fal fa-times closeButton\"\n ></button>\n <ng-content *ngIf=\"header\" select=\"lx-modal-header\"></ng-content>\n <div class=\"modalContentContainer\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-content *ngIf=\"footer\" select=\"lx-modal-footer\"></ng-content>\n </div>\n</ng-template>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.lxmodal{background:#fff;width:100%}.lxmodal--withFooter.lxmodal--fullscreen .modalContentContainer{bottom:70px;overflow:hidden}.lxmodal--verticalScroll .modalContentContainer{overflow-y:auto}.lxmodal--fullscreen{height:100%;display:flex;flex-direction:column}.lxmodal--fullscreen .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;right:36px;top:16px;z-index:1}.lxmodal--fullscreen .closeButton:before{cursor:pointer}.lxmodal--fullscreen .closeButton:hover,.lxmodal--fullscreen .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .closeButton:focus{outline:0}.lxmodal--fullscreen .fa-long-arrow-left{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#b2bccc;width:48px;height:48px;font-size:24px;line-height:48px;left:36px;top:16px}.lxmodal--fullscreen .fa-long-arrow-left:before{cursor:pointer}.lxmodal--fullscreen .fa-long-arrow-left:hover,.lxmodal--fullscreen .fa-long-arrow-left:focus{color:#526179;background-color:#eaedf1}.lxmodal--fullscreen .fa-long-arrow-left:focus{outline:0}.lxmodal--dialog,.lxmodal--dialog-large{display:block;position:relative;border-radius:6px;box-shadow:0 8px 20px #0000003d}.lxmodal--dialog .modalContentContainer,.lxmodal--dialog-large .modalContentContainer{padding:16px;position:relative}.lxmodal--dialog .closeButton,.lxmodal--dialog-large .closeButton{border:0;background:transparent;position:absolute;text-align:center;transition:color,background-color .18s;transition-delay:.1s;transition-timing-function:ease;border-radius:50%;color:#8594ad;height:32px;width:32px;font-size:16px;z-index:999;right:10px;top:10px}.lxmodal--dialog .closeButton:before,.lxmodal--dialog-large .closeButton:before{cursor:pointer}.lxmodal--dialog .closeButton:hover,.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:hover,.lxmodal--dialog-large .closeButton:focus{color:#526179;background-color:#eaedf1}.lxmodal--dialog .closeButton:focus,.lxmodal--dialog-large .closeButton:focus{outline:0}.lxmodal--dialog.lxmodal--verticalScroll .modalContentContainer{max-height:calc(84vh - 112px)}.lxmodal--dialog-large .modalContentContainer{height:calc(100% - 112px)}.modalContentContainer{flex:1}\n"] }]
|
|
6108
6111
|
}], ctorParameters: function () {
|
|
6109
6112
|
return [{ type: i1$1.Overlay }, { type: i0.Renderer2 }, { type: i6.Observable, decorators: [{
|
|
6110
6113
|
type: Optional
|