@ascentgl/ads-ui 0.0.25 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/components/form-fields/area/textarea.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/date-picker/datepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/datepickers/time-picker/timepicker.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/dropdowns/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/dropdowns/multi-select-dropdown/multi-select-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/input/input.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/phone-field/index.mjs +2 -0
- package/esm2022/lib/components/form-fields/phone-field/phone-field.component.mjs +52 -0
- package/esm2022/lib/components/form-fields/phone-field/phone-field.module.mjs +62 -0
- package/esm2022/lib/components/form-fields/phone-field/public-api.mjs +3 -0
- package/esm2022/lib/components/form-fields/search-fields/search-dropdown/search-dropdown.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/search-fields/search-input/search-input.component.mjs +3 -3
- package/esm2022/lib/components/form-fields/selection-fields/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.component.mjs +3 -4
- package/esm2022/lib/components/modal/modal.module.mjs +3 -4
- package/esm2022/lib/components/snackbars/snackbar/snackbar.component.mjs +4 -5
- package/esm2022/lib/components/snackbars/snackbar/snackbar.module.mjs +3 -4
- package/esm2022/lib/components/tags/create-tag/create-tag.component.mjs +3 -4
- package/esm2022/lib/components/tags/create-tag/create-tag.module.mjs +1 -4
- package/fesm2022/ascentgl-ads-ui.mjs +124 -40
- package/fesm2022/ascentgl-ads-ui.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/components/form-fields/phone-field/index.d.ts +1 -0
- package/lib/components/form-fields/phone-field/phone-field.component.d.ts +17 -0
- package/lib/components/form-fields/phone-field/phone-field.module.d.ts +18 -0
- package/lib/components/form-fields/phone-field/public-api.d.ts +2 -0
- package/lib/components/modal/modal.component.d.ts +4 -1
- package/lib/components/modal/modal.module.d.ts +2 -3
- package/lib/components/snackbars/snackbar/snackbar.component.d.ts +1 -1
- package/lib/components/snackbars/snackbar/snackbar.module.d.ts +2 -3
- package/lib/components/tags/create-tag/create-tag.module.d.ts +3 -4
- package/package.json +20 -19
package/esm2022/lib/components/form-fields/datepickers/datetime-picker/datetimepicker.component.mjs
CHANGED
|
@@ -367,11 +367,11 @@ export class AdsDatetimepickerComponent extends AbstractInputComponent {
|
|
|
367
367
|
return this.removeOffset(value, this.getRequiredOffset(value));
|
|
368
368
|
}
|
|
369
369
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatetimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
370
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatetimepickerComponent, selector: "ads-datetimepicker", inputs: { twelveHour: "twelveHour", offset: "offset", allowPastValues: "allowPastValues", allowManualInput: "allowManualInput", useShortcuts: "useShortcuts", overrideDisplayFormat: "overrideDisplayFormat", showTimePicker: "showTimePicker", customDisplayFormat: "customDisplayFormat" }, viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatetimepickerComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsDatetimepickerComponent, selector: "ads-datetimepicker", inputs: { twelveHour: "twelveHour", offset: "offset", allowPastValues: "allowPastValues", allowManualInput: "allowManualInput", useShortcuts: "useShortcuts", overrideDisplayFormat: "overrideDisplayFormat", showTimePicker: "showTimePicker", customDisplayFormat: "customDisplayFormat" }, viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatetimepickerComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\n <div [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n </div>\n @if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n }\n</div>\n", styles: [".ads-field-container{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "component", type: i6.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i6.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
371
371
|
}
|
|
372
372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsDatetimepickerComponent, decorators: [{
|
|
373
373
|
type: Component,
|
|
374
|
-
args: [{ selector: 'ads-datetimepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"] }]
|
|
374
|
+
args: [{ selector: 'ads-datetimepicker', template: "<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\n <div [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n </div>\n @if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n }\n</div>\n", styles: [".ads-field-container{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"] }]
|
|
375
375
|
}], ctorParameters: () => [], propDecorators: { picker: [{
|
|
376
376
|
type: ViewChild,
|
|
377
377
|
args: [MatDatetimepickerComponent]
|
|
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
395
395
|
type: ViewChild,
|
|
396
396
|
args: ['input']
|
|
397
397
|
}] } });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGRzL2RhdGVwaWNrZXJzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUtULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtJQStEcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTVEViw0SEFBNEg7UUFDbkgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUs1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Q0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBMWJVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdZQUUxQiwwQkFBMEIsNktDbkN2QyxnekdBNkZBOzsyRkQ1RGEsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLG9CQUFvQjt3REFVUyxNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLDBCQUEwQjtnQkFHNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5wdXQsXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZSxcbiAgT25DaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkc0ljb25Dcm9zcywgYWRzSWNvbkRhdGVwaWNrZXIsIGFkc0ljb25UaW1lcGlja2VyIH0gZnJvbSAnQGFzY2VudGdsL2Fkcy1pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGFkZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9EQVRFVElNRSB9IGZyb20gJy4vY3VzdG9tLWRhdGV0aW1lLWZvcm1hdCc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudCwgTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZS9kYXRldGltZXBpY2tlci9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9kYXRldGltZS10ZW1wbGF0ZS5mb3JtYXR0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZGF0ZXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vY29tbW9uL2NvbW1vbi5pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkc0RhdGV0aW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKE1hdERhdGV0aW1lcGlja2VyQ29tcG9uZW50KSBwaWNrZXI/OiBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudDx1bmtub3duPjtcblxuICAvKiogQ2hvb3NlIGJldHdlZW4gMTIgYW5kIDI0IGhvdXIgdGltZSBpbnB1dCBtb2RlLiBOT1RFOiB0d2VsdmVIb3VyPXRydWUgbWF5IGhhdmUgbWlub3IgaXNzdWVzIHdoZW4gYWxsb3dQYXN0VmFsdWVzPWZhbHNlICovXG4gIEBJbnB1dCgpIHR3ZWx2ZUhvdXIgPSBmYWxzZTtcblxuICAvKiogU2V0IHRpbWUgb2Zmc2V0IHJlbGF0aXZlIHRvIEdNVC4gSWYgcGFyYW1ldGVyIGlzIG9taXR0ZWQgb2Zmc2V0IHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiBicm93c2VyIGluZm8gKi9cbiAgQElucHV0KCkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKiBBbGxvdyBvciBmb3JiaWQgY2hvb3NpbmcgZGF0ZSB2YWx1ZXMgZnJvbSB0aGUgcGFzdCAqL1xuICBASW5wdXQoKSBhbGxvd1Bhc3RWYWx1ZXMgPSB0cnVlO1xuXG4gIC8qKiBTZXQgdG8gaW5wdXR0aW5nIHZhbHVlIG1hbnVhbGx5ICovXG4gIEBJbnB1dCgpIGFsbG93TWFudWFsSW5wdXQgPSB0cnVlO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHVzZSBrZXkgc2hvcnRjdXRzIChcInlcIiwgXCJuXCIsIFwidFwiKSBmb3Igc2V0dGluZyB0aGUgdmFsdWUgKi9cbiAgQElucHV0KCkgdXNlU2hvcnRjdXRzID0gdHJ1ZTtcblxuICAvKiogU2V0IHRvIHVzZSBjdXN0b20gZGlzcGxheSBmb3JtYXQsIG92ZXJyaWRpbmcgdGhlIG9uZSwgcHJvdmlkZWQgYnkgbG9jYWxlICovXG4gIEBJbnB1dCgpIG92ZXJyaWRlRGlzcGxheUZvcm1hdCA9IHRydWU7XG5cbiAgLyoqIFNob3cgb3IgaGlkZSB0aW1lIHBpY2tlciAqL1xuICBASW5wdXQoKSBzaG93VGltZVBpY2tlciA9IHRydWU7XG5cbiAgLyoqIGlmIG92ZXJyaWRlRGlzcGxheUZvcm1hdD10cnVlLCB0aGlzIGRpc3BsYXkgZm9ybWF0IHdpbGwgYmUgdXNlZCAqL1xuICBASW5wdXQoKSBjdXN0b21EaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBGT1JNQVRfREFURVRJTUU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IEVsZW1lbnRSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlOiBHRU5FUklDX0NPTExFQ1RJT04gPSB7fTtcblxuICAvKiogQGlnbm9yZSAqL1xuICB0eXBlOiBNYXREYXRldGltZXBpY2tlclR5cGUgPSAnZGF0ZXRpbWUnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG1pbkRhdGU/OiBzdHJpbmc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNob3J0Y3V0czogR0VORVJJQ19DT0xMRUNUSU9OID0ge1xuICAgIHk6IC0xLCAvL3llc3RlcmRheVxuICAgIG46IDAsIC8vbm93XG4gICAgdDogMSwgLy90b21vcnJvd1xuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RXJyb3JNZXNzYWdlczogR0VORVJJQ19DT0xMRUNUSU9OPHN0cmluZz4gPSB7XG4gICAgbWF0RGF0ZXBpY2tlclBhcnNlOiAnRGF0ZSBhbmQgVGltZSBtdXN0IGFwcGVhciBpbiB0aGlzIGZvcm1hdDogTU0vREQvWVlZWSBISDptbScsXG4gICAgbWF0RGF0ZXBpY2tlck1pbjogJ1RoZSB2YWx1ZSBpcyB0b28gb2xkJyxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUZvcm1hdHRlciA9IG5ldyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKFthZHNJY29uQ3Jvc3MsIGFkc0ljb25EYXRlcGlja2VyLCBhZHNJY29uVGltZXBpY2tlcl0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmFwcGx5Q3VzdG9tRm9ybWF0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtcbiAgICBjdXN0b21EaXNwbGF5Rm9ybWF0OiBTaW1wbGVDaGFuZ2U7XG4gICAgb2Zmc2V0OiBTaW1wbGVDaGFuZ2U7XG4gICAgc2hvd1RpbWVQaWNrZXI6IFNpbXBsZUNoYW5nZTtcbiAgICBpbW1lZGlhdGVWYWxpZGF0aW9uOiBTaW1wbGVDaGFuZ2U7XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jdXN0b21EaXNwbGF5Rm9ybWF0IHx8IGNoYW5nZXMuc2hvd1RpbWVQaWNrZXIpIHtcbiAgICAgIHRoaXMuYXBwbHlDdXN0b21Gb3JtYXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5vZmZzZXQgJiYgIWNoYW5nZXMub2Zmc2V0LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHRvZ2dsZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLnBpY2tlcj8ub3BlbmVkKSB7XG4gICAgICB0aGlzLnBpY2tlci5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBpY2tlcj8ub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGdldCBzaG93RXhjbGFtYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0V4Y2xhbWF0aW9uT25FcnJvciAmJiB0aGlzLmRpc3BsYXlDb250cm9sLmludmFsaWQgJiYgdGhpcy5kaXNwbGF5Q29udHJvbC50b3VjaGVkO1xuICB9XG5cbiAgZ2V0IGNhbkNsZWFyKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbiAmJiAhIXRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjYW5TaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMgJiYgKHRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLmltbWVkaWF0ZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZGlzcGxheUZpcnN0RXJyb3IoY29udHJvbDogRm9ybUNvbnRyb2wgPSB0aGlzLmRpc3BsYXlDb250cm9sKTogc3RyaW5nIHtcbiAgICAvKipcbiAgICAgKiBpZiB3ZSBoYXZlIGZvcm1hdCBlcnJvciAtIG1ha2Ugc3VyZSB0byBzaG93IGl0IGZpcnN0XG4gICAgICovXG4gICAgaWYgKHRoaXMuZGlzcGxheUNvbnRyb2wuZXJyb3JzPy5tYXREYXRlcGlja2VyUGFyc2UpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wuc2V0RXJyb3JzKHsgbWF0RGF0ZXBpY2tlclBhcnNlOiB0aGlzLmRpc3BsYXlDb250cm9sLmVycm9ycz8ubWF0RGF0ZXBpY2tlclBhcnNlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5kaXNwbGF5Rmlyc3RFcnJvcihjb250cm9sKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYmx1ciBpbnB1dCB0byBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIGFwcGxpZWRcbiAgICAgKi9cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc2V0TWluVmFsdWUoKTtcbiAgICAgIGV2ZW50LnRhcmdldC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnVzZVNob3J0Y3V0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3J0Y3V0T2Zmc2V0ID0gdGhpcy5zaG9ydGN1dHNbZXZlbnQua2V5LnRvTG93ZXJDYXNlKCldO1xuXG4gICAgLyoqXG4gICAgICogaWYgb25lIG9mIHRoZSBzaG9ydGN1dHMgd2FzIGNsaWNrZWQgLSBzZXQgY3VycmVudCBkYXRlIHZhbHVlIGFjY29yZGluZ2x5XG4gICAgICovXG4gICAgaWYgKHNob3J0Y3V0T2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGRhdGUgb2JqZWN0LiB0YWtpbmcgaW50byBhY2NvdW50IHNob3J0Y3V0IG9mZnNldCAoeWVzdGVyZGF5LCBub3csIHRvbW9ycm93KVxuICAgICAgICovXG4gICAgICBjb25zdCB2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZShzaG9ydGN1dE9mZnNldCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogc2V0IGRhdGUgb2JqZWN0IHRvIHJlcXVpcmVkIG9mZnNldCB2YWx1ZSwgYW5kIGFwcGx5IGl0IHRvIHZhbHVlQ29udHJvbFxuICAgICAgICogKGl0IHdpbGwgZXZlbnR1YWxseSBzeW5jIGRpc3BsYXlDb250cm9sIHRvbylcbiAgICAgICAqL1xuICAgICAgdGhpcy5vbkNoYW5nZWQodGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdG91Y2hDb250cm9scygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLnZhbHVlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc3BsYXlDb250cm9sLmRpcnR5KSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC5kaXJ0eSkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjbGVhcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIHN0b3AgZXZlbiBwcm9wYWdhdGlvbiBzbyB0aGF0IGNhbGVuZGFyIHdvbid0IG9wZW4gb24gXCJjbGVhclwiIGJ1dHRvbiBjbGlja1xuICAgICAqL1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMub25DaGFuZ2VkKHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGVGb3JtYXR0ZXIucmVzZXQoKTtcbiAgICB0aGlzLnNldE1pblZhbHVlKCk7XG4gICAgdGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIE5PVEU6IHRoaXMgaXMgbmVlZGVkIHRvIG92ZXJyaWRlIGFuIGlzc3VlIHdoZW4gY2xvc2luZyBhIGRyb3Bkb3duIHBhc3NlcyBmb2N1cyB0byBpbnB1dFxuICAgICAqIHdoZW4gYWxsb3dNYW51YWxJbnB1dCBpcyBmYWxzZVxuICAgICAqL1xuICAgIGlmICghdGhpcy5hbGxvd01hbnVhbElucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBjb250cm9sIHZhbHVlIGlzIGVtcHR5LCBkaXNwbGF5Q29udHJvbCB3aXRoIGJlIGNsZWFyZWQgKGJyb3VnaHQgdG8gaW5pdGlhbCBzdGF0ZSlcbiAgICAgKi9cbiAgICB0aGlzLnN5bmNFbXB0eVZhbHVlcygpO1xuXG4gICAgLyoqXG4gICAgICogZm9jdXMgb24gY29udHJvbCB2YWx1ZSBhbmQgc2VsZWN0IHRpbWUgcGFydFxuICAgICAqL1xuICAgIGlmICghdGhpcy5zaG93VGltZVBpY2tlciAmJiB0aGlzLmlzRGlzcGxheVZhbHVlQ2hhbmdlUmVnaXN0ZXJlZCAmJiB0aGlzLnR5cGUgIT09ICdkYXRlJykge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICBjb25zdCBzcGFjZVBvc2l0aW9uID0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZS5sYXN0SW5kZXhPZignICcpO1xuICAgICAgY29uc3QgdG90YWxMZW5ndGggPSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aDtcblxuICAgICAgaWYgKHNwYWNlUG9zaXRpb24gPiAtMSkge1xuICAgICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNwYWNlUG9zaXRpb24gKyAxLCBzcGFjZVBvc2l0aW9uICsgKHRvdGFsTGVuZ3RoIC0gc3BhY2VQb3NpdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2hhbmdlZChldmVudDogTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50PHN0cmluZz4gfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudCA9PT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgZXZlbnQgPT0gJ3N0cmluZycgPyBldmVudCA6IGV2ZW50LnZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogc3luYyB2YWx1ZUNvbnRyb2wgZXJyb3JzIHdpdGggZGlzcGxheUNvbnRyb2wgZXJyb3JzXG4gICAgICogTk9URTogdGhpcyBpcyBuZWVkZWQgZm9yIFwiaW52YWxpZCBmb3JtYXRcIiBlcnJvcnMgdGhhdCBhcmUgY2FsY3VsYXRlZCBmb3IgZGlzcGxheUNvbnRyb2xcbiAgICAgKiBieSBNYXREYXRldGltZXBpY2tlciBjb21wb25lbnRcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlQ29udHJvbC5zZXRFcnJvcnModGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMpO1xuXG4gICAgdGhpcy5vbkRpc3BsYXllZFZhbHVlQ2hhbmdlKHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBtYXJrIGNvbnRyb2xzIGFzIHRvdWNoZWQgYW5kIGRpcnR5IHRvIGVuc3VyZSBwcm9wZXIgZXJyb3IgZGlzcGxheVxuICAgICAqL1xuICAgIHRoaXMudG91Y2hDb250cm9scygpO1xuICB9XG5cbiAgb25WaWV3Q2hhbmdlZCh2aWV3OiBNYXRDYWxlbmRhclZpZXcpIHtcbiAgICB0aGlzLnRlbXBsYXRlRm9ybWF0dGVyLnJ1bih2aWV3KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB0b3VjaEludmFsaWQoY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICBzdXBlci50b3VjaEludmFsaWQoY29udHJvbCk7XG4gICAgc3VwZXIudG91Y2hJbnZhbGlkKHRoaXMuZGlzcGxheUNvbnRyb2wpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFwcGx5Q3VzdG9tRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlID0ge307XG5cbiAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlLmRhdGV0aW1lSW5wdXQgPSB0aGlzLmN1c3RvbURpc3BsYXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNob3dUaW1lUGlja2VyKSB7XG4gICAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gRk9STUFUX0RBVEVUSU1FO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXRDb250cm9sVmFsdWUoY29udHJvbDogRm9ybUNvbnRyb2wsIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChjb250cm9sLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGVtaXRFdmVudCB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25TeW5jRGlzcGxheWVkVmFsdWUodmFsdWVUb0FwcGx5OiBzdHJpbmcgPSB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZSk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGFsd2F5cyBtYWtlIHN1cmUgdGhhdCBkYXRlIHN0cmluZyBpcyBpbiBVVEMgZm9ybWF0XG4gICAgICovXG4gICAgY29uc3QgdmFsdWU6IERhdGUgPSBuZXcgRGF0ZSh2YWx1ZVRvQXBwbHkgKyAodmFsdWVUb0FwcGx5LmVuZHNXaXRoKCdaJykgPyAnJyA6ICdaJykpO1xuXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5kaXNwbGF5Q29udHJvbCwgdGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25EaXNwbGF5ZWRWYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWU6IG51bGwgfCBzdHJpbmcgPSBudWxsO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBuZXdWYWx1ZSA9IHRoaXMuZGlzcGxheWVkVmFsdWVUb0NvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSBzZXQgdmFsdWUgaWYgaXQgZGlkIGNoYW5nZVxuICAgICAqL1xuICAgIGlmIChuZXdWYWx1ZSA9PT0gdGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgY29udHJvbCB2YWx1ZSByZXZlcnRpbmcgb2Zmc2V0IGNhbGN1bGF0aW9uXG4gICAgICovXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy52YWx1ZUNvbnRyb2wsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRWYWx1ZVRvQ29udHJvbFZhbHVlKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVG9BY3R1YWxPZmZzZXQodmFsdWUpLnRvSVNPU3RyaW5nKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2V0TWluVmFsdWUoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogY2FsY3VsYXRlIG1pbmltdW0gYWxsb3dlZCBkYXRldGltZSBpZiBuZWVkZWRcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuYWxsb3dQYXN0VmFsdWVzKSB7XG4gICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRhdGVUb1JlcXVpcmVkT2Zmc2V0KCkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYWRkT2Zmc2V0KGRhdGU6IERhdGUsIG9mZnNldDogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIGFkZChkYXRlLCB7IG1pbnV0ZXM6IG9mZnNldCB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZW1vdmVPZmZzZXQoZGF0ZTogRGF0ZSwgb2Zmc2V0OiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gYWRkKGRhdGUsIHsgbWludXRlczogb2Zmc2V0ICogLTEgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZSgpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGdldFJlcXVpcmVkT2Zmc2V0KHZhbHVlOiBEYXRlID0gdGhpcy5jcmVhdGVEYXRlKCkpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA/IHRoaXMub2Zmc2V0ICogNjAgOiB0aGlzLmdldEFjdHVhbERhdGVPZmZzZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZURhdGUoZGF5c1NoaWZ0ID0gMCk6IERhdGUge1xuICAgIGxldCB2YWx1ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoZGF5c1NoaWZ0KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuYWRkT2Zmc2V0KHZhbHVlLCBkYXlzU2hpZnQgKiAyNCAqIDYwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqc3luYyBkaXNwbGF5IGNvbnRyb2wgc3RhdHVzZXMgd2l0aCB2YWx1ZSBjb250cm9sIHN0YXR1cyBmb3IgcHJvcGVyIGVycm9yIGRpc3BsYXlcbiAgICAgKiBtYWtlIHN1cmUgXCJkaXNwbGF5Q29udHJvbFwiIGRpc2FibGVkIHN0YXRlIGFuZCB2YWx1ZSBhcmUgc3luY2hyb25pemVkIHdpdGggXCJjb250cm9sXCIgZGlzYWJsZWQgc3RhdGUgYW5kIHZhbHVlXG4gICAgICovXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy52YWx1ZUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jU3RhdGUoKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKSkpO1xuXG4gICAgLyoqXG4gICAgICogTk9URTogcmVnaXN0ZXJpbmcgZGlzcGxheSB2YWx1ZSBjaGFuZ2UgaXMgbmVlZGVkIHRvIGtub3cgd2hlbiB0byBmb2N1cyB0aW1lIHBhcnQgb2YgZGF0ZXRpbWUgaWYgc2hvd1RpbWVQaWNrZXIgaXMgZmFsc2VcbiAgICAgKi9cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiAodGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSB0cnVlKSksXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIG1ha2Ugc3VyZSBkaXNwbGF5Q29udHJvbCBoYXMgdGhlIHNhbWUgdmFsaWRhdG9ycyBhcyBjb250cm9sXG4gICAgICovXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5hZGRWYWxpZGF0b3JzKHRoaXMudmFsdWVDb250cm9sLnZhbGlkYXRvciA/PyBbXSk7XG4gICAgLyoqXG4gICAgICogcmVxdWlyZWQgdmFsaWRhdG9yIG11c3QgYmUgc2V0IG1hbnVhbGx5IGluIHRoaXMgY29tcG9uZW50XG4gICAgICogYmVjYXVzZSB2YWx1ZUNvbnRyb2wgaXMgZGlzY29ubmVjdGVkIGZyb20gaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAvKipcbiAgICAgKiBwZXJmb3JtIGluaXRpYWwgc3luY2hyb25pemF0aW9uc1xuICAgICAqL1xuICAgIHRoaXMuc3luY1N0YXRlKCk7XG4gICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgc3luY0Rpc3BsYXllZFZhbHVlKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGlmIGNvbnRyb2wgdmFsdWUgaXMgZW1wdHksIGRpc3BsYXlDb250cm9sIHdpdGggYmUgY2xlYXJlZCAoYnJvdWdodCB0byBpbml0aWFsIHN0YXRlKVxuICAgICAqL1xuICAgIGlmICh0aGlzLnN5bmNFbXB0eVZhbHVlcygpKSByZXR1cm47XG5cbiAgICB0aGlzLm9uU3luY0Rpc3BsYXllZFZhbHVlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN5bmNFbXB0eVZhbHVlcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuZGlzcGxheUNvbnRyb2wsIHRoaXMudmFsdWVDb250cm9sLnZhbHVlLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGF0ZVRvUmVxdWlyZWRPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5yZW1vdmVPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLmFkZE9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBkYXRlVG9BY3R1YWxPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLnJlbW92ZU9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgbWluV2lkdGg6IHdpZHRoIH1cIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2ltbWVkaWF0ZS12YWxpZGF0aW9uJzogaW1tZWRpYXRlVmFsaWRhdGlvbixcbiAgICAgICduby1sZWZ0LXBhZGRpbmcnOiAhc2hvd0V4Y2xhbWF0aW9uLFxuICAgICAgaW52YWxpZDogY2FuU2hvd0Vycm9yKCksXG4gICAgICBtYW51YWw6IGFsbG93TWFudWFsSW5wdXQsXG4gICAgICAnc3VjY2Vzcy1sYWJlbCc6IGNhblNob3dTdWNjZXNzKCksXG4gICAgICAneC1zbWFsbCc6IHNtYWxsU2l6ZSxcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbiAgPlxuICAgIEBpZiAoKGxhYmVsIHx8IHJlcXVpcmVkKSAmJiAhc21hbGxTaXplKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcbiAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgKHZpZXdDaGFuZ2VkKT1cIm9uVmlld0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAob3BlbmVkKT1cIm9uT3BlbmVkKClcIlxuICAgICAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbiAgICAgIFt0eXBlXT1cInR5cGUgPT09ICdkYXRldGltZScgPyAoc2hvd1RpbWVQaWNrZXIgPyAnZGF0ZXRpbWUnIDogJ2RhdGUnKSA6IHR5cGVcIlxuICAgICAgW29wZW5PbkZvY3VzXT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgIFt0d2VsdmVob3VyXT1cInR3ZWx2ZUhvdXJcIlxuICAgICAgW3RpbWVJbnRlcnZhbF09XCI1XCJcbiAgICAgIFttb2RlXT1cIidwb3J0cmFpdCdcIlxuICAgIC8+XG4gICAgPGlucHV0XG4gICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBkYXRlVGltZVBpY2tlckZvcm1hdFxuICAgICAgW292ZXJyaWRlRGlzcGxheUZvcm1hdF09XCJvdmVycmlkZURpc3BsYXlGb3JtYXQgfHwgKHR5cGUgPT09ICdkYXRldGltZScgPyAhc2hvd1RpbWVQaWNrZXIgOiBmYWxzZSlcIlxuICAgICAgW2N1c3RvbURpc3BsYXlGb3JtYXRdPVwiY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaW52aXNpYmxlOiAhdmFsdWVDb250cm9sLnZhbHVlIH1cIlxuICAgICAgI2lucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgKGtleWRvd24pPVwiYWxsb3dNYW51YWxJbnB1dCA/IG9uS2V5RG93bigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAoaW5wdXQpPVwidG91Y2hDb250cm9scygpXCJcbiAgICAgIChibHVyKT1cInRvdWNoQ29udHJvbHMoKVwiXG4gICAgICBbdGFiSW5kZXhdPVwiYWxsb3dNYW51YWxJbnB1dCA/IDAgOiAtMVwiXG4gICAgICBbbWluXT1cIm1pbkRhdGUgfHwgbnVsbFwiXG4gICAgICBbcmVhZG9ubHldPVwiIWFsbG93TWFudWFsSW5wdXRcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImRpc3BsYXlDb250cm9sXCJcbiAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJkYXRldGltZVBpY2tlclwiXG4gICAgICBhdXRvY29tcGxldGU9XCJmYWxzZVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgICBAaWYgKHR5cGUgPT09ICd0aW1lJykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXRUZXh0U3VmZml4XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGltZVBpY2tlclwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgPlxuICAgICAgICA8YWRzLWljb24gY2xhc3M9XCJwaWNrZXJcIiBuYW1lPVwidGltZXBpY2tlclwiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3NtJ1wiIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxidXR0b24gbWF0VGV4dFN1ZmZpeCB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwicGlja2VyXCIgbmFtZT1cImRhdGVwaWNrZXJcIiBbc2l6ZV09XCJzbWFsbFNpemUgPyAneHhzJyA6ICdzbSdcIiBbc3Ryb2tlXT1cIidpY29uUHJpbWFyeSdcIiAvPlxuICAgICAgICBAaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICA8YWRzLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwic3ViLXRpbWVwaWNrZXIgbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUgcGlja2VyXCJcbiAgICAgICAgICAgIG5hbWU9XCJ0aW1lcGlja2VyXCJcbiAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKGNhbkNsZWFyKSB7XG4gICAgICA8YnV0dG9uIG1hdFRleHRTdWZmaXggdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwiY3Jvc3MtaWNvblwiIG5hbWU9XCJjcm9zc1wiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3hzJ1wiIFt0aGVtZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgIEBpZiAoY2FuU2hvd0Vycm9yKCkpIHtcbiAgICAgICAgPGFkcy1lcnJvciBbZXJyb3JdPVwiZGlzcGxheUZpcnN0RXJyb3IoKVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoY2FuU2hvd1N1Y2Nlc3MoKSkge1xuICAgICAgICA8YWRzLXN1Y2Nlc3MgW3N1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2UhXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChoaW50KSB7XG4gICAgICAgIDxhZHMtaGludCBbaGludF09XCJoaW50XCIgW2NvbnRyb2xdPVwidmFsdWVDb250cm9sXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmICh0b29sdGlwKSB7XG4gIDxhZHMtaW5wdXQtdG9vbHRpcCBbdG9vbHRpcF09XCJ0b29sdGlwXCIgLz5cbn1cbiJdfQ==
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hZHMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0tZmllbGRzL2RhdGVwaWNrZXJzL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUtULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9GLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBK0IsTUFBTSwwQkFBMEIsQ0FBQztBQUVuRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtJQStEcEU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTVEViw0SEFBNEg7UUFDbkgsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUs1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Q0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7OEdBMWJVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGdZQUUxQiwwQkFBMEIsNktDbkN2QyxvakhBK0ZBOzsyRkQ5RGEsMEJBQTBCO2tCQVR0QyxTQUFTOytCQUNFLG9CQUFvQjt3REFVUyxNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLDBCQUEwQjtnQkFHNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5wdXQsXG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZSxcbiAgT25DaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkc0ljb25Dcm9zcywgYWRzSWNvbkRhdGVwaWNrZXIsIGFkc0ljb25UaW1lcGlja2VyIH0gZnJvbSAnQGFzY2VudGdsL2Fkcy1pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGFkZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9EQVRFVElNRSB9IGZyb20gJy4vY3VzdG9tLWRhdGV0aW1lLWZvcm1hdCc7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudCwgTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQG1hdC1kYXRldGltZXBpY2tlci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZS9kYXRldGltZXBpY2tlci9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9kYXRldGltZS10ZW1wbGF0ZS5mb3JtYXR0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZHMtZGF0ZXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgICAnLi4vLi4vY29tbW9uL2NvbW1vbi5pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkc0RhdGV0aW1lcGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKE1hdERhdGV0aW1lcGlja2VyQ29tcG9uZW50KSBwaWNrZXI/OiBNYXREYXRldGltZXBpY2tlckNvbXBvbmVudDx1bmtub3duPjtcblxuICAvKiogQ2hvb3NlIGJldHdlZW4gMTIgYW5kIDI0IGhvdXIgdGltZSBpbnB1dCBtb2RlLiBOT1RFOiB0d2VsdmVIb3VyPXRydWUgbWF5IGhhdmUgbWlub3IgaXNzdWVzIHdoZW4gYWxsb3dQYXN0VmFsdWVzPWZhbHNlICovXG4gIEBJbnB1dCgpIHR3ZWx2ZUhvdXIgPSBmYWxzZTtcblxuICAvKiogU2V0IHRpbWUgb2Zmc2V0IHJlbGF0aXZlIHRvIEdNVC4gSWYgcGFyYW1ldGVyIGlzIG9taXR0ZWQgb2Zmc2V0IHdpbGwgYmUgY2FsY3VsYXRlZCBiYXNlZCBvbiBicm93c2VyIGluZm8gKi9cbiAgQElucHV0KCkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKiBBbGxvdyBvciBmb3JiaWQgY2hvb3NpbmcgZGF0ZSB2YWx1ZXMgZnJvbSB0aGUgcGFzdCAqL1xuICBASW5wdXQoKSBhbGxvd1Bhc3RWYWx1ZXMgPSB0cnVlO1xuXG4gIC8qKiBTZXQgdG8gaW5wdXR0aW5nIHZhbHVlIG1hbnVhbGx5ICovXG4gIEBJbnB1dCgpIGFsbG93TWFudWFsSW5wdXQgPSB0cnVlO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHVzZSBrZXkgc2hvcnRjdXRzIChcInlcIiwgXCJuXCIsIFwidFwiKSBmb3Igc2V0dGluZyB0aGUgdmFsdWUgKi9cbiAgQElucHV0KCkgdXNlU2hvcnRjdXRzID0gdHJ1ZTtcblxuICAvKiogU2V0IHRvIHVzZSBjdXN0b20gZGlzcGxheSBmb3JtYXQsIG92ZXJyaWRpbmcgdGhlIG9uZSwgcHJvdmlkZWQgYnkgbG9jYWxlICovXG4gIEBJbnB1dCgpIG92ZXJyaWRlRGlzcGxheUZvcm1hdCA9IHRydWU7XG5cbiAgLyoqIFNob3cgb3IgaGlkZSB0aW1lIHBpY2tlciAqL1xuICBASW5wdXQoKSBzaG93VGltZVBpY2tlciA9IHRydWU7XG5cbiAgLyoqIGlmIG92ZXJyaWRlRGlzcGxheUZvcm1hdD10cnVlLCB0aGlzIGRpc3BsYXkgZm9ybWF0IHdpbGwgYmUgdXNlZCAqL1xuICBASW5wdXQoKSBjdXN0b21EaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBGT1JNQVRfREFURVRJTUU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IEVsZW1lbnRSZWY7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlOiBHRU5FUklDX0NPTExFQ1RJT04gPSB7fTtcblxuICAvKiogQGlnbm9yZSAqL1xuICB0eXBlOiBNYXREYXRldGltZXBpY2tlclR5cGUgPSAnZGF0ZXRpbWUnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG1pbkRhdGU/OiBzdHJpbmc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNob3J0Y3V0czogR0VORVJJQ19DT0xMRUNUSU9OID0ge1xuICAgIHk6IC0xLCAvL3llc3RlcmRheVxuICAgIG46IDAsIC8vbm93XG4gICAgdDogMSwgLy90b21vcnJvd1xuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RXJyb3JNZXNzYWdlczogR0VORVJJQ19DT0xMRUNUSU9OPHN0cmluZz4gPSB7XG4gICAgbWF0RGF0ZXBpY2tlclBhcnNlOiAnRGF0ZSBhbmQgVGltZSBtdXN0IGFwcGVhciBpbiB0aGlzIGZvcm1hdDogTU0vREQvWVlZWSBISDptbScsXG4gICAgbWF0RGF0ZXBpY2tlck1pbjogJ1RoZSB2YWx1ZSBpcyB0b28gb2xkJyxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUZvcm1hdHRlciA9IG5ldyBEYXRldGltZVRlbXBsYXRlRm9ybWF0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKFthZHNJY29uQ3Jvc3MsIGFkc0ljb25EYXRlcGlja2VyLCBhZHNJY29uVGltZXBpY2tlcl0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmFwcGx5Q3VzdG9tRm9ybWF0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtcbiAgICBjdXN0b21EaXNwbGF5Rm9ybWF0OiBTaW1wbGVDaGFuZ2U7XG4gICAgb2Zmc2V0OiBTaW1wbGVDaGFuZ2U7XG4gICAgc2hvd1RpbWVQaWNrZXI6IFNpbXBsZUNoYW5nZTtcbiAgICBpbW1lZGlhdGVWYWxpZGF0aW9uOiBTaW1wbGVDaGFuZ2U7XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jdXN0b21EaXNwbGF5Rm9ybWF0IHx8IGNoYW5nZXMuc2hvd1RpbWVQaWNrZXIpIHtcbiAgICAgIHRoaXMuYXBwbHlDdXN0b21Gb3JtYXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5vZmZzZXQgJiYgIWNoYW5nZXMub2Zmc2V0LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgICB9XG5cbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHRvZ2dsZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLnBpY2tlcj8ub3BlbmVkKSB7XG4gICAgICB0aGlzLnBpY2tlci5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBpY2tlcj8ub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGdldCBzaG93RXhjbGFtYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0V4Y2xhbWF0aW9uT25FcnJvciAmJiB0aGlzLmRpc3BsYXlDb250cm9sLmludmFsaWQgJiYgdGhpcy5kaXNwbGF5Q29udHJvbC50b3VjaGVkO1xuICB9XG5cbiAgZ2V0IGNhbkNsZWFyKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbiAmJiAhIXRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjYW5TaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMgJiYgKHRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLmltbWVkaWF0ZVZhbGlkYXRpb24pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZGlzcGxheUZpcnN0RXJyb3IoY29udHJvbDogRm9ybUNvbnRyb2wgPSB0aGlzLmRpc3BsYXlDb250cm9sKTogc3RyaW5nIHtcbiAgICAvKipcbiAgICAgKiBpZiB3ZSBoYXZlIGZvcm1hdCBlcnJvciAtIG1ha2Ugc3VyZSB0byBzaG93IGl0IGZpcnN0XG4gICAgICovXG4gICAgaWYgKHRoaXMuZGlzcGxheUNvbnRyb2wuZXJyb3JzPy5tYXREYXRlcGlja2VyUGFyc2UpIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wuc2V0RXJyb3JzKHsgbWF0RGF0ZXBpY2tlclBhcnNlOiB0aGlzLmRpc3BsYXlDb250cm9sLmVycm9ycz8ubWF0RGF0ZXBpY2tlclBhcnNlIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5kaXNwbGF5Rmlyc3RFcnJvcihjb250cm9sKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICghKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYmx1ciBpbnB1dCB0byBtYWtlIHN1cmUgdGhlIHZhbHVlIGlzIGFwcGxpZWRcbiAgICAgKi9cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmIGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc2V0TWluVmFsdWUoKTtcbiAgICAgIGV2ZW50LnRhcmdldC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnVzZVNob3J0Y3V0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3J0Y3V0T2Zmc2V0ID0gdGhpcy5zaG9ydGN1dHNbZXZlbnQua2V5LnRvTG93ZXJDYXNlKCldO1xuXG4gICAgLyoqXG4gICAgICogaWYgb25lIG9mIHRoZSBzaG9ydGN1dHMgd2FzIGNsaWNrZWQgLSBzZXQgY3VycmVudCBkYXRlIHZhbHVlIGFjY29yZGluZ2x5XG4gICAgICovXG4gICAgaWYgKHNob3J0Y3V0T2Zmc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8qKlxuICAgICAgICogY3JlYXRlIGRhdGUgb2JqZWN0LiB0YWtpbmcgaW50byBhY2NvdW50IHNob3J0Y3V0IG9mZnNldCAoeWVzdGVyZGF5LCBub3csIHRvbW9ycm93KVxuICAgICAgICovXG4gICAgICBjb25zdCB2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZShzaG9ydGN1dE9mZnNldCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogc2V0IGRhdGUgb2JqZWN0IHRvIHJlcXVpcmVkIG9mZnNldCB2YWx1ZSwgYW5kIGFwcGx5IGl0IHRvIHZhbHVlQ29udHJvbFxuICAgICAgICogKGl0IHdpbGwgZXZlbnR1YWxseSBzeW5jIGRpc3BsYXlDb250cm9sIHRvbylcbiAgICAgICAqL1xuICAgICAgdGhpcy5vbkNoYW5nZWQodGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdG91Y2hDb250cm9scygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy5kaXNwbGF5Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLnZhbHVlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpc3BsYXlDb250cm9sLmRpcnR5KSB7XG4gICAgICB0aGlzLmRpc3BsYXlDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZhbHVlQ29udHJvbC5kaXJ0eSkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBjbGVhcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIHN0b3AgZXZlbiBwcm9wYWdhdGlvbiBzbyB0aGF0IGNhbGVuZGFyIHdvbid0IG9wZW4gb24gXCJjbGVhclwiIGJ1dHRvbiBjbGlja1xuICAgICAqL1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMub25DaGFuZ2VkKHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uT3BlbmVkKCk6IHZvaWQge1xuICAgIHRoaXMudGVtcGxhdGVGb3JtYXR0ZXIucmVzZXQoKTtcbiAgICB0aGlzLnNldE1pblZhbHVlKCk7XG4gICAgdGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIE5PVEU6IHRoaXMgaXMgbmVlZGVkIHRvIG92ZXJyaWRlIGFuIGlzc3VlIHdoZW4gY2xvc2luZyBhIGRyb3Bkb3duIHBhc3NlcyBmb2N1cyB0byBpbnB1dFxuICAgICAqIHdoZW4gYWxsb3dNYW51YWxJbnB1dCBpcyBmYWxzZVxuICAgICAqL1xuICAgIGlmICghdGhpcy5hbGxvd01hbnVhbElucHV0KSB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBjb250cm9sIHZhbHVlIGlzIGVtcHR5LCBkaXNwbGF5Q29udHJvbCB3aXRoIGJlIGNsZWFyZWQgKGJyb3VnaHQgdG8gaW5pdGlhbCBzdGF0ZSlcbiAgICAgKi9cbiAgICB0aGlzLnN5bmNFbXB0eVZhbHVlcygpO1xuXG4gICAgLyoqXG4gICAgICogZm9jdXMgb24gY29udHJvbCB2YWx1ZSBhbmQgc2VsZWN0IHRpbWUgcGFydFxuICAgICAqL1xuICAgIGlmICghdGhpcy5zaG93VGltZVBpY2tlciAmJiB0aGlzLmlzRGlzcGxheVZhbHVlQ2hhbmdlUmVnaXN0ZXJlZCAmJiB0aGlzLnR5cGUgIT09ICdkYXRlJykge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICBjb25zdCBzcGFjZVBvc2l0aW9uID0gdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZS5sYXN0SW5kZXhPZignICcpO1xuICAgICAgY29uc3QgdG90YWxMZW5ndGggPSB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlLmxlbmd0aDtcblxuICAgICAgaWYgKHNwYWNlUG9zaXRpb24gPiAtMSkge1xuICAgICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNwYWNlUG9zaXRpb24gKyAxLCBzcGFjZVBvc2l0aW9uICsgKHRvdGFsTGVuZ3RoIC0gc3BhY2VQb3NpdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uQ2hhbmdlZChldmVudDogTWF0RGF0ZXRpbWVwaWNrZXJJbnB1dEV2ZW50PHN0cmluZz4gfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudCA9PT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgZXZlbnQgPT0gJ3N0cmluZycgPyBldmVudCA6IGV2ZW50LnZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogc3luYyB2YWx1ZUNvbnRyb2wgZXJyb3JzIHdpdGggZGlzcGxheUNvbnRyb2wgZXJyb3JzXG4gICAgICogTk9URTogdGhpcyBpcyBuZWVkZWQgZm9yIFwiaW52YWxpZCBmb3JtYXRcIiBlcnJvcnMgdGhhdCBhcmUgY2FsY3VsYXRlZCBmb3IgZGlzcGxheUNvbnRyb2xcbiAgICAgKiBieSBNYXREYXRldGltZXBpY2tlciBjb21wb25lbnRcbiAgICAgKi9cbiAgICB0aGlzLnZhbHVlQ29udHJvbC5zZXRFcnJvcnModGhpcy5kaXNwbGF5Q29udHJvbC5lcnJvcnMpO1xuXG4gICAgdGhpcy5vbkRpc3BsYXllZFZhbHVlQ2hhbmdlKHZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBtYXJrIGNvbnRyb2xzIGFzIHRvdWNoZWQgYW5kIGRpcnR5IHRvIGVuc3VyZSBwcm9wZXIgZXJyb3IgZGlzcGxheVxuICAgICAqL1xuICAgIHRoaXMudG91Y2hDb250cm9scygpO1xuICB9XG5cbiAgb25WaWV3Q2hhbmdlZCh2aWV3OiBNYXRDYWxlbmRhclZpZXcpIHtcbiAgICB0aGlzLnRlbXBsYXRlRm9ybWF0dGVyLnJ1bih2aWV3KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB0b3VjaEludmFsaWQoY29udHJvbDogRm9ybUNvbnRyb2wpOiB2b2lkIHtcbiAgICBzdXBlci50b3VjaEludmFsaWQoY29udHJvbCk7XG4gICAgc3VwZXIudG91Y2hJbnZhbGlkKHRoaXMuZGlzcGxheUNvbnRyb2wpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFwcGx5Q3VzdG9tRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlID0ge307XG5cbiAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgIHRoaXMuY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlLmRhdGV0aW1lSW5wdXQgPSB0aGlzLmN1c3RvbURpc3BsYXlGb3JtYXQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNob3dUaW1lUGlja2VyKSB7XG4gICAgICBpZiAodGhpcy5vdmVycmlkZURpc3BsYXlGb3JtYXQpIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUuZGF0ZUlucHV0ID0gRk9STUFUX0RBVEVUSU1FO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXRDb250cm9sVmFsdWUoY29udHJvbDogRm9ybUNvbnRyb2wsIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCwgZW1pdEV2ZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChjb250cm9sLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGVtaXRFdmVudCB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25TeW5jRGlzcGxheWVkVmFsdWUodmFsdWVUb0FwcGx5OiBzdHJpbmcgPSB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZSk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGFsd2F5cyBtYWtlIHN1cmUgdGhhdCBkYXRlIHN0cmluZyBpcyBpbiBVVEMgZm9ybWF0XG4gICAgICovXG4gICAgY29uc3QgdmFsdWU6IERhdGUgPSBuZXcgRGF0ZSh2YWx1ZVRvQXBwbHkgKyAodmFsdWVUb0FwcGx5LmVuZHNXaXRoKCdaJykgPyAnJyA6ICdaJykpO1xuXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5kaXNwbGF5Q29udHJvbCwgdGhpcy5kYXRlVG9SZXF1aXJlZE9mZnNldCh2YWx1ZSkudG9JU09TdHJpbmcoKSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgb25EaXNwbGF5ZWRWYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWU6IG51bGwgfCBzdHJpbmcgPSBudWxsO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBuZXdWYWx1ZSA9IHRoaXMuZGlzcGxheWVkVmFsdWVUb0NvbnRyb2xWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSBzZXQgdmFsdWUgaWYgaXQgZGlkIGNoYW5nZVxuICAgICAqL1xuICAgIGlmIChuZXdWYWx1ZSA9PT0gdGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgY29udHJvbCB2YWx1ZSByZXZlcnRpbmcgb2Zmc2V0IGNhbGN1bGF0aW9uXG4gICAgICovXG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy52YWx1ZUNvbnRyb2wsIG5ld1ZhbHVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRWYWx1ZVRvQ29udHJvbFZhbHVlKHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlVG9BY3R1YWxPZmZzZXQodmFsdWUpLnRvSVNPU3RyaW5nKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2V0TWluVmFsdWUoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogY2FsY3VsYXRlIG1pbmltdW0gYWxsb3dlZCBkYXRldGltZSBpZiBuZWVkZWRcbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuYWxsb3dQYXN0VmFsdWVzKSB7XG4gICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmRhdGVUb1JlcXVpcmVkT2Zmc2V0KCkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYWRkT2Zmc2V0KGRhdGU6IERhdGUsIG9mZnNldDogbnVtYmVyKTogRGF0ZSB7XG4gICAgcmV0dXJuIGFkZChkYXRlLCB7IG1pbnV0ZXM6IG9mZnNldCB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZW1vdmVPZmZzZXQoZGF0ZTogRGF0ZSwgb2Zmc2V0OiBudW1iZXIpOiBEYXRlIHtcbiAgICByZXR1cm4gYWRkKGRhdGUsIHsgbWludXRlczogb2Zmc2V0ICogLTEgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZTogRGF0ZSA9IHRoaXMuY3JlYXRlRGF0ZSgpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGdldFJlcXVpcmVkT2Zmc2V0KHZhbHVlOiBEYXRlID0gdGhpcy5jcmVhdGVEYXRlKCkpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA/IHRoaXMub2Zmc2V0ICogNjAgOiB0aGlzLmdldEFjdHVhbERhdGVPZmZzZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZURhdGUoZGF5c1NoaWZ0ID0gMCk6IERhdGUge1xuICAgIGxldCB2YWx1ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoZGF5c1NoaWZ0KSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuYWRkT2Zmc2V0KHZhbHVlLCBkYXlzU2hpZnQgKiAyNCAqIDYwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqc3luYyBkaXNwbGF5IGNvbnRyb2wgc3RhdHVzZXMgd2l0aCB2YWx1ZSBjb250cm9sIHN0YXR1cyBmb3IgcHJvcGVyIGVycm9yIGRpc3BsYXlcbiAgICAgKiBtYWtlIHN1cmUgXCJkaXNwbGF5Q29udHJvbFwiIGRpc2FibGVkIHN0YXRlIGFuZCB2YWx1ZSBhcmUgc3luY2hyb25pemVkIHdpdGggXCJjb250cm9sXCIgZGlzYWJsZWQgc3RhdGUgYW5kIHZhbHVlXG4gICAgICovXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy52YWx1ZUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jU3RhdGUoKSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudmFsdWVDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKSkpO1xuXG4gICAgLyoqXG4gICAgICogTk9URTogcmVnaXN0ZXJpbmcgZGlzcGxheSB2YWx1ZSBjaGFuZ2UgaXMgbmVlZGVkIHRvIGtub3cgd2hlbiB0byBmb2N1cyB0aW1lIHBhcnQgb2YgZGF0ZXRpbWUgaWYgc2hvd1RpbWVQaWNrZXIgaXMgZmFsc2VcbiAgICAgKi9cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZGlzcGxheUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiAodGhpcy5pc0Rpc3BsYXlWYWx1ZUNoYW5nZVJlZ2lzdGVyZWQgPSB0cnVlKSksXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIG1ha2Ugc3VyZSBkaXNwbGF5Q29udHJvbCBoYXMgdGhlIHNhbWUgdmFsaWRhdG9ycyBhcyBjb250cm9sXG4gICAgICovXG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC5hZGRWYWxpZGF0b3JzKHRoaXMudmFsdWVDb250cm9sLnZhbGlkYXRvciA/PyBbXSk7XG4gICAgLyoqXG4gICAgICogcmVxdWlyZWQgdmFsaWRhdG9yIG11c3QgYmUgc2V0IG1hbnVhbGx5IGluIHRoaXMgY29tcG9uZW50XG4gICAgICogYmVjYXVzZSB2YWx1ZUNvbnRyb2wgaXMgZGlzY29ubmVjdGVkIGZyb20gaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy52YWx1ZUNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5kaXNwbGF5Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAvKipcbiAgICAgKiBwZXJmb3JtIGluaXRpYWwgc3luY2hyb25pemF0aW9uc1xuICAgICAqL1xuICAgIHRoaXMuc3luY1N0YXRlKCk7XG4gICAgdGhpcy5zeW5jRGlzcGxheWVkVmFsdWUoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgc3luY0Rpc3BsYXllZFZhbHVlKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGlmIGNvbnRyb2wgdmFsdWUgaXMgZW1wdHksIGRpc3BsYXlDb250cm9sIHdpdGggYmUgY2xlYXJlZCAoYnJvdWdodCB0byBpbml0aWFsIHN0YXRlKVxuICAgICAqL1xuICAgIGlmICh0aGlzLnN5bmNFbXB0eVZhbHVlcygpKSByZXR1cm47XG5cbiAgICB0aGlzLm9uU3luY0Rpc3BsYXllZFZhbHVlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHN5bmNFbXB0eVZhbHVlcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy52YWx1ZUNvbnRyb2wudmFsdWUpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuZGlzcGxheUNvbnRyb2wsIHRoaXMudmFsdWVDb250cm9sLnZhbHVlLCBmYWxzZSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZGF0ZVRvUmVxdWlyZWRPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5yZW1vdmVPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLmFkZE9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBkYXRlVG9BY3R1YWxPZmZzZXQodmFsdWU6IERhdGUgPSB0aGlzLmNyZWF0ZURhdGUoKSk6IERhdGUge1xuICAgIHZhbHVlID0gdGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0QWN0dWFsRGF0ZU9mZnNldCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzLnJlbW92ZU9mZnNldCh2YWx1ZSwgdGhpcy5nZXRSZXF1aXJlZE9mZnNldCh2YWx1ZSkpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgbWluV2lkdGg6IHdpZHRoIH1cIiBjbGFzcz1cImFkcy1maWVsZC1jb250YWluZXJcIj5cbiAgPGRpdiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdpbW1lZGlhdGUtdmFsaWRhdGlvbic6IGltbWVkaWF0ZVZhbGlkYXRpb24sXG4gICAgICAgICduby1sZWZ0LXBhZGRpbmcnOiAhc2hvd0V4Y2xhbWF0aW9uLFxuICAgICAgICBpbnZhbGlkOiBjYW5TaG93RXJyb3IoKSxcbiAgICAgICAgbWFudWFsOiBhbGxvd01hbnVhbElucHV0LFxuICAgICAgICAnc3VjY2Vzcy1sYWJlbCc6IGNhblNob3dTdWNjZXNzKCksXG4gICAgICAgICd4LXNtYWxsJzogc21hbGxTaXplLFxuICAgICAgfVwiXG4gICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbiAgICA+XG4gICAgICBAaWYgKChsYWJlbCB8fCByZXF1aXJlZCkgJiYgIXNtYWxsU2l6ZSkge1xuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgICB9XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgICAodmlld0NoYW5nZWQpPVwib25WaWV3Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW5lZCgpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbiAgICAgICAgW3R5cGVdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IChzaG93VGltZVBpY2tlciA/ICdkYXRldGltZScgOiAnZGF0ZScpIDogdHlwZVwiXG4gICAgICAgIFtvcGVuT25Gb2N1c109XCIhYWxsb3dNYW51YWxJbnB1dFwiXG4gICAgICAgIFt0d2VsdmVob3VyXT1cInR3ZWx2ZUhvdXJcIlxuICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICBbbW9kZV09XCIncG9ydHJhaXQnXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBkYXRlVGltZVBpY2tlckZvcm1hdFxuICAgICAgICBbb3ZlcnJpZGVEaXNwbGF5Rm9ybWF0XT1cIm92ZXJyaWRlRGlzcGxheUZvcm1hdCB8fCAodHlwZSA9PT0gJ2RhdGV0aW1lJyA/ICFzaG93VGltZVBpY2tlciA6IGZhbHNlKVwiXG4gICAgICAgIFtjdXN0b21EaXNwbGF5Rm9ybWF0XT1cImN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgaW52aXNpYmxlOiAhdmFsdWVDb250cm9sLnZhbHVlIH1cIlxuICAgICAgICAjaW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgKGtleWRvd24pPVwiYWxsb3dNYW51YWxJbnB1dCA/IG9uS2V5RG93bigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChpbnB1dCk9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgICAoYmx1cik9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiYWxsb3dNYW51YWxJbnB1dCA/IDAgOiAtMVwiXG4gICAgICAgIFttaW5dPVwibWluRGF0ZSB8fCBudWxsXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImRpc3BsYXlDb250cm9sXCJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgLz5cbiAgICAgIEBpZiAodHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXRUZXh0U3VmZml4XG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNob3dUaW1lUGlja2VyXCJcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJ0aW1lcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPlxuICAgICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJkYXRlcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgICBAaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgIDxhZHMtaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInN1Yi10aW1lcGlja2VyIG1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlIHBpY2tlclwiXG4gICAgICAgICAgICAgIG5hbWU9XCJ0aW1lcGlja2VyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXG4gICAgICAgICAgICAgIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoY2FuQ2xlYXIpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyKCRldmVudClcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+XG4gICAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwiY3Jvc3MtaWNvblwiIG5hbWU9XCJjcm9zc1wiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3hzJ1wiIFt0aGVtZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAoY2FuU2hvd0Vycm9yKCkpIHtcbiAgICAgICAgICA8YWRzLWVycm9yIFtlcnJvcl09XCJkaXNwbGF5Rmlyc3RFcnJvcigpXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNhblNob3dTdWNjZXNzKCkpIHtcbiAgICAgICAgICA8YWRzLXN1Y2Nlc3MgW3N1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2UhXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGhpbnQpIHtcbiAgICAgICAgICA8YWRzLWhpbnQgW2hpbnRdPVwiaGludFwiIFtjb250cm9sXT1cInZhbHVlQ29udHJvbFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKHRvb2x0aXApIHtcbiAgICA8YWRzLWlucHV0LXRvb2x0aXAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiIC8+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -66,12 +66,12 @@ export class AdsTimepickerComponent extends AdsDatetimepickerComponent {
|
|
|
66
66
|
super.onSyncDisplayedValue(valueToApply);
|
|
67
67
|
}
|
|
68
68
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsTimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsTimepickerComponent, selector: "ads-timepicker", inputs: { customDisplayFormat: "customDisplayFormat" }, usesInheritance: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i2.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: AdsTimepickerComponent, selector: "ads-timepicker", inputs: { customDisplayFormat: "customDisplayFormat" }, usesInheritance: true, ngImport: i0, template: "<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\n <div [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n </div>\n @if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n }\n</div>\n", styles: [".ads-field-container{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "directive", type: i2.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.AdsIconComponent, selector: "ads-icon", inputs: ["size", "name", "color", "theme", "stroke"] }, { kind: "directive", type: i7.DateTimePickerFormatDirective, selector: "[dateTimePickerFormat]", inputs: ["customDisplayFormat", "overrideDisplayFormat"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.AdsInputTooltipComponent, selector: "ads-input-tooltip", inputs: ["tooltip", "smallSize"] }, { kind: "component", type: i10.AdsErrorComponent, selector: "ads-error", inputs: ["error"] }, { kind: "component", type: i11.AdsHintComponent, selector: "ads-hint", inputs: ["control", "hint"] }, { kind: "component", type: i12.AdsSuccessComponent, selector: "ads-success", inputs: ["success"] }] }); }
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AdsTimepickerComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
|
-
args: [{ selector: 'ads-timepicker', template: "<div [ngStyle]=\"{ minWidth: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n</div>\n@if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n}\n", styles: [":host{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"] }]
|
|
73
|
+
args: [{ selector: 'ads-timepicker', template: "<div [ngStyle]=\"{ minWidth: width }\" class=\"ads-field-container\">\n <div [ngStyle]=\"{ width: width }\">\n <mat-form-field\n [ngClass]=\"{\n 'immediate-validation': immediateValidation,\n 'no-left-padding': !showExclamation,\n invalid: canShowError(),\n manual: allowManualInput,\n 'success-label': canShowSuccess(),\n 'x-small': smallSize,\n }\"\n [ngStyle]=\"{ width: width }\"\n >\n @if ((label || required) && !smallSize) {\n <mat-label>{{ label }}</mat-label>\n }\n <mat-datetimepicker\n #datetimePicker\n (viewChanged)=\"onViewChanged($event)\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n [type]=\"type === 'datetime' ? (showTimePicker ? 'datetime' : 'date') : type\"\n [openOnFocus]=\"!allowManualInput\"\n [twelvehour]=\"twelveHour\"\n [timeInterval]=\"5\"\n [mode]=\"'portrait'\"\n />\n <input\n (dateChange)=\"onChanged($event)\"\n dateTimePickerFormat\n [overrideDisplayFormat]=\"overrideDisplayFormat || (type === 'datetime' ? !showTimePicker : false)\"\n [customDisplayFormat]=\"customDisplayFormatOverride\"\n [ngClass]=\"{ invisible: !valueControl.value }\"\n #input\n matInput\n (keydown)=\"allowManualInput ? onKeyDown($event) : null\"\n (input)=\"touchControls()\"\n (blur)=\"touchControls()\"\n [tabIndex]=\"allowManualInput ? 0 : -1\"\n [min]=\"minDate || null\"\n [readonly]=\"!allowManualInput\"\n [formControl]=\"displayControl\"\n [matDatetimepicker]=\"datetimePicker\"\n autocomplete=\"false\"\n [id]=\"id\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n />\n @if (type === 'time') {\n <button\n matTextSuffix\n type=\"button\"\n mat-icon-button\n (click)=\"toggle($event)\"\n [disabled]=\"!showTimePicker\"\n class=\"action-icon\"\n >\n <ads-icon class=\"picker\" name=\"timepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n </button>\n } @else {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"toggle($event)\" class=\"action-icon\">\n <ads-icon class=\"picker\" name=\"datepicker\" [size]=\"smallSize ? 'xxs' : 'sm'\" [stroke]=\"'iconPrimary'\" />\n @if (type === 'datetime') {\n <ads-icon\n class=\"sub-timepicker mat-mdc-button-persistent-ripple picker\"\n name=\"timepicker\"\n size=\"xxs\"\n [stroke]=\"'iconPrimary'\"\n />\n }\n </button>\n }\n\n @if (canClear) {\n <button matTextSuffix type=\"button\" mat-icon-button (click)=\"clear($event)\" class=\"action-icon\">\n <ads-icon class=\"cross-icon\" name=\"cross\" [size]=\"smallSize ? 'xxs' : 'xs'\" [theme]=\"'iconPrimary'\" />\n </button>\n }\n </mat-form-field>\n @if (showFooter) {\n <div class=\"footer-container\">\n @if (canShowError()) {\n <ads-error [error]=\"displayFirstError()\" [ngStyle]=\"{ width: width }\" />\n } @else if (canShowSuccess()) {\n <ads-success [success]=\"successMessage!\" [ngStyle]=\"{ width: width }\" />\n } @else if (hint) {\n <ads-hint [hint]=\"hint\" [control]=\"valueControl\" [ngStyle]=\"{ width: width }\" />\n }\n </div>\n }\n </div>\n @if (tooltip) {\n <ads-input-tooltip [tooltip]=\"tooltip\" />\n }\n</div>\n", styles: [".ads-field-container{display:flex;gap:12px;align-items:flex-start}:host::ng-deep mat-form-field{--mdc-filled-text-field-input-text-color: var(--color-medium);--mdc-filled-text-field-error-label-text-color: var(--color-error);--mdc-filled-text-field-label-text-color: var(--color-medium);--mdc-filled-text-field-focus-label-text-color: var(--color-medium);--mdc-filled-text-field-hover-label-text-color: var(--color-medium);--mdc-filled-text-field-label-text-size: 16px}:host::ng-deep mat-form-field .mdc-floating-label--float-above{--mdc-filled-text-field-label-text-size: 12px}:host::ng-deep mat-form-field .mdc-text-field{box-sizing:border-box;border-radius:5px;outline:1px solid var(--color-light);outline-offset:-1px;align-items:center;padding:0 12px;cursor:text;height:48px}:host::ng-deep mat-form-field .mdc-text-field .cross-icon{stroke:var(--color-medium)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex{height:100%}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--no-label .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-items:center}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input{height:24px}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-outer-spin-button,:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}:host::ng-deep mat-form-field .mdc-text-field:not(.mdc-text-field--no-label) .mat-mdc-form-field-infix input[type=number]{-moz-appearance:textfield}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .cross-icon,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .visibility-eye,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .picker{stroke:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .chevron-down,:host::ng-deep mat-form-field .mdc-text-field.mdc-text-field--invalid .search-icon{color:var(--color-error)!important}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex{align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{display:flex;align-items:flex-end;width:120px}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label{width:100%}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix label .mat-mdc-form-field-required-marker{color:var(--mdc-filled-text-field-error-label-text-color)}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix{display:flex;align-items:center}:host::ng-deep mat-form-field .mdc-text-field .mat-mdc-form-field-text-suffix .mat-mdc-icon-button{display:flex;align-items:center;justify-content:center}:host::ng-deep mat-form-field .action-icon{padding:0;--mdc-icon-button-state-layer-size: 35px}:host::ng-deep mat-form-field .action-icon .mat-mdc-button-touch-target{height:unset;width:unset}:host::ng-deep mat-form-field.x-small .mdc-text-field{height:24px;padding:0 8px}:host::ng-deep mat-form-field.x-small .mdc-text-field .mat-mdc-form-field-input-control{font-size:12px;line-height:16px}:host::ng-deep mat-form-field.x-small .action-icon{--mdc-icon-button-state-layer-size: 22px}:host::ng-deep mat-form-field.readonly .mdc-text-field{background-color:var(--mdc-filled-text-field-disabled-container-color);border:none}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover{background-color:var(--color-light-30);outline:2px solid var(--color-secondary-hover);outline-offset:-2px}:host::ng-deep mat-form-field:not(.readonly) .mdc-text-field:hover .visibility-eye{fill:var(--color-light-30)!important}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px;background-color:var(--color-muted)}:host::ng-deep mat-form-field:not(.readonly).mat-focused .mdc-text-field .visibility-eye{fill:var(--color-muted)!important}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field{outline:2px solid var(--color-medium);outline-offset:-2px}:host::ng-deep mat-form-field.immediate-validation .mdc-text-field.mdc-text-field--invalid{outline:2px solid var(--color-error);outline-offset:-2px}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{color:var(--mdc-filled-text-field-label-text-color)}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper:before{content:none}:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-error-wrapper,:host::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper .mat-mdc-form-field-hint-wrapper{position:relative;padding:0}:host::ng-deep mat-form-field .mdc-line-ripple{display:none}:host::ng-deep mat-form-field.success-label .mat-mdc-form-field-required-marker,:host::ng-deep mat-form-field.success-label mat-label{color:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .mdc-text-field{outline:2px solid var(--color-success);outline-offset:-2px}:host::ng-deep mat-form-field.success-label .cross-icon,:host::ng-deep mat-form-field.success-label .visibility-eye,:host::ng-deep mat-form-field.success-label .picker{stroke:var(--color-success)!important}:host::ng-deep mat-form-field.success-label .chevron-down,:host::ng-deep mat-form-field.success-label .search-icon{color:var(--color-success)!important}:host::ng-deep mat-form-field.error-label mat-label{color:var(--color-error)}:host::ng-deep mat-hint{display:inline-block}:host::ng-deep .mat-mdc-form-field-hint-spacer{display:none}.info-tooltip{position:relative;top:12px}mat-error{display:flex;padding-top:2px}mat-error .error{display:flex;align-items:flex-start;gap:2px}mat-error .error ads-icon{position:relative;top:2px}\n", "button .sub-timepicker{position:absolute;top:18%;left:18%;background-color:var(--color-white);border-radius:50%}mat-form-field:not(.manual) ::ng-deep .mdc-text-field{cursor:pointer}mat-form-field:not(.manual) ::ng-deep .mdc-text-field input{cursor:pointer}::ng-deep .mdc-text-field:hover button .sub-timepicker{background-color:var(--color-light-30)}\n", ".footer-container{min-height:20px}\n"] }]
|
|
74
74
|
}], ctorParameters: () => [], propDecorators: { customDisplayFormat: [{
|
|
75
75
|
type: Input
|
|
76
76
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvdGltZS1waWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVk5RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBaUJwRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBakJWLHNFQUFzRTtRQUM3RCx3QkFBbUIsR0FBVyxXQUFXLENBQUM7UUFFbkQsY0FBYztRQUNkLFNBQUksR0FBMEIsTUFBTSxDQUFDO1FBRXJDLGNBQWM7UUFDSixjQUFTLEdBQXVCO1lBQ3hDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSztTQUNaLENBQUM7UUFFRixjQUFjO1FBQ0sseUJBQW9CLEdBQStCO1lBQ3BFLGtCQUFrQixFQUFFLHdDQUF3QztTQUM3RCxDQUFDO1FBSUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsS0FBMEQ7UUFDbEU7OztXQUdHO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNKLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdFLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNKLDRCQUE0QixDQUFDLEtBQVc7UUFDaEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELGNBQWM7SUFDSixvQkFBb0IsQ0FBQyxlQUF1QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUs7UUFDM0UsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDekYsQ0FBQztRQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQXpEVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixxSUNsQm5DLGd6R0E2RkE7OzJGRDNFYSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsZ0JBQWdCO3dEQVVqQixtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZHNEYXRldGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9USU1FIH0gZnJvbSAnLi4vZGF0ZXRpbWUtcGlja2VyL2N1c3RvbS1kYXRldGltZS1mb3JtYXQnO1xuaW1wb3J0IHsgYWRzSWNvblRpbWVwaWNrZXIgfSBmcm9tICdAYXNjZW50Z2wvYWRzLWljb25zL2ljb25zJztcbmltcG9ydCB7IE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fkcy10aW1lcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi8uLi9jb21tb24vY29tbW9uLmlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRzVGltZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFkc0RhdGV0aW1lcGlja2VyQ29tcG9uZW50IHtcbiAgLyoqIGlmIG92ZXJyaWRlRGlzcGxheUZvcm1hdD10cnVlLCB0aGlzIGRpc3BsYXkgZm9ybWF0IHdpbGwgYmUgdXNlZCAqL1xuICBASW5wdXQoKSBjdXN0b21EaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBGT1JNQVRfVElNRTtcblxuICAvKiogQGlnbm9yZSAqL1xuICB0eXBlOiBNYXREYXRldGltZXBpY2tlclR5cGUgPSAndGltZSc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNob3J0Y3V0czogR0VORVJJQ19DT0xMRUNUSU9OID0ge1xuICAgIG46IDAsIC8vbm93XG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRFcnJvck1lc3NhZ2VzOiBHRU5FUklDX0NPTExFQ1RJT048c3RyaW5nPiA9IHtcbiAgICBtYXREYXRlcGlja2VyUGFyc2U6ICdUaW1lIG11c3QgYXBwZWFyIGluIHRoaXMgZm9ybWF0OiBISDptbScsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKFthZHNJY29uVGltZXBpY2tlcl0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb25DaGFuZ2VkKGV2ZW50OiBNYXREYXRldGltZXBpY2tlcklucHV0RXZlbnQ8c3RyaW5nPiB8IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBOT1RFOiB0aGlzIGlzIG5lZWRlZCB0byBjbGVhciB2YWx1ZXMgd2hlbiBpbnB1dCBmaWVsZCBpcyBjbGVhcmVkO1xuICAgICAqIG90aGVyd2lzZSB0aGUgdGltZXBpY2tlciB3aWxsIGJlIHNldCB0byAwMDowMFxuICAgICAqL1xuICAgIGlmICh0aGlzLmRpc3BsYXlDb250cm9sLnZhbHVlICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLmRpc3BsYXlDb250cm9sLCBudWxsKTtcbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMudmFsdWVDb250cm9sLCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25DaGFuZ2VkKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYXBwbHlDdXN0b21Gb3JtYXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUgPSB7fTtcblxuICAgIGlmICh0aGlzLm92ZXJyaWRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUgPSB7IHRpbWVJbnB1dDogdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0IH07XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGRpc3BsYXllZFZhbHVlVG9Db250cm9sVmFsdWUodmFsdWU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXQodGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0UmVxdWlyZWRPZmZzZXQodmFsdWUpICogLTEpLCAnSEg6bW06MDAnKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBvblN5bmNEaXNwbGF5ZWRWYWx1ZSh2YWx1ZVRvQXBwbHk6IHN0cmluZyA9IHRoaXMudmFsdWVDb250cm9sLnZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVDb250cm9sLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZVRvQXBwbHkgPSBmb3JtYXQodGhpcy5jcmVhdGVEYXRlKCksICd5eXl5LU1NLWRkJykgKyAnICcgKyB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICBzdXBlci5vblN5bmNEaXNwbGF5ZWRWYWx1ZSh2YWx1ZVRvQXBwbHkpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgbWluV2lkdGg6IHdpZHRoIH1cIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2ltbWVkaWF0ZS12YWxpZGF0aW9uJzogaW1tZWRpYXRlVmFsaWRhdGlvbixcbiAgICAgICduby1sZWZ0LXBhZGRpbmcnOiAhc2hvd0V4Y2xhbWF0aW9uLFxuICAgICAgaW52YWxpZDogY2FuU2hvd0Vycm9yKCksXG4gICAgICBtYW51YWw6IGFsbG93TWFudWFsSW5wdXQsXG4gICAgICAnc3VjY2Vzcy1sYWJlbCc6IGNhblNob3dTdWNjZXNzKCksXG4gICAgICAneC1zbWFsbCc6IHNtYWxsU2l6ZSxcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbiAgPlxuICAgIEBpZiAoKGxhYmVsIHx8IHJlcXVpcmVkKSAmJiAhc21hbGxTaXplKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXJcbiAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgKHZpZXdDaGFuZ2VkKT1cIm9uVmlld0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAob3BlbmVkKT1cIm9uT3BlbmVkKClcIlxuICAgICAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbiAgICAgIFt0eXBlXT1cInR5cGUgPT09ICdkYXRldGltZScgPyAoc2hvd1RpbWVQaWNrZXIgPyAnZGF0ZXRpbWUnIDogJ2RhdGUnKSA6IHR5cGVcIlxuICAgICAgW29wZW5PbkZvY3VzXT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgIFt0d2VsdmVob3VyXT1cInR3ZWx2ZUhvdXJcIlxuICAgICAgW3RpbWVJbnRlcnZhbF09XCI1XCJcbiAgICAgIFttb2RlXT1cIidwb3J0cmFpdCdcIlxuICAgIC8+XG4gICAgPGlucHV0XG4gICAgICAoZGF0ZUNoYW5nZSk9XCJvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBkYXRlVGltZVBpY2tlckZvcm1hdFxuICAgICAgW292ZXJyaWRlRGlzcGxheUZvcm1hdF09XCJvdmVycmlkZURpc3BsYXlGb3JtYXQgfHwgKHR5cGUgPT09ICdkYXRldGltZScgPyAhc2hvd1RpbWVQaWNrZXIgOiBmYWxzZSlcIlxuICAgICAgW2N1c3RvbURpc3BsYXlGb3JtYXRdPVwiY3VzdG9tRGlzcGxheUZvcm1hdE92ZXJyaWRlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgaW52aXNpYmxlOiAhdmFsdWVDb250cm9sLnZhbHVlIH1cIlxuICAgICAgI2lucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgKGtleWRvd24pPVwiYWxsb3dNYW51YWxJbnB1dCA/IG9uS2V5RG93bigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAoaW5wdXQpPVwidG91Y2hDb250cm9scygpXCJcbiAgICAgIChibHVyKT1cInRvdWNoQ29udHJvbHMoKVwiXG4gICAgICBbdGFiSW5kZXhdPVwiYWxsb3dNYW51YWxJbnB1dCA/IDAgOiAtMVwiXG4gICAgICBbbWluXT1cIm1pbkRhdGUgfHwgbnVsbFwiXG4gICAgICBbcmVhZG9ubHldPVwiIWFsbG93TWFudWFsSW5wdXRcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImRpc3BsYXlDb250cm9sXCJcbiAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJkYXRldGltZVBpY2tlclwiXG4gICAgICBhdXRvY29tcGxldGU9XCJmYWxzZVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgLz5cbiAgICBAaWYgKHR5cGUgPT09ICd0aW1lJykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXRUZXh0U3VmZml4XG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VGltZVBpY2tlclwiXG4gICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgPlxuICAgICAgICA8YWRzLWljb24gY2xhc3M9XCJwaWNrZXJcIiBuYW1lPVwidGltZXBpY2tlclwiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3NtJ1wiIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxidXR0b24gbWF0VGV4dFN1ZmZpeCB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwicGlja2VyXCIgbmFtZT1cImRhdGVwaWNrZXJcIiBbc2l6ZV09XCJzbWFsbFNpemUgPyAneHhzJyA6ICdzbSdcIiBbc3Ryb2tlXT1cIidpY29uUHJpbWFyeSdcIiAvPlxuICAgICAgICBAaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICA8YWRzLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwic3ViLXRpbWVwaWNrZXIgbWF0LW1kYy1idXR0b24tcGVyc2lzdGVudC1yaXBwbGUgcGlja2VyXCJcbiAgICAgICAgICAgIG5hbWU9XCJ0aW1lcGlja2VyXCJcbiAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG5cbiAgICBAaWYgKGNhbkNsZWFyKSB7XG4gICAgICA8YnV0dG9uIG1hdFRleHRTdWZmaXggdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj5cbiAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwiY3Jvc3MtaWNvblwiIG5hbWU9XCJjcm9zc1wiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3hzJ1wiIFt0aGVtZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgQGlmIChzaG93Rm9vdGVyKSB7XG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIj5cbiAgICAgIEBpZiAoY2FuU2hvd0Vycm9yKCkpIHtcbiAgICAgICAgPGFkcy1lcnJvciBbZXJyb3JdPVwiZGlzcGxheUZpcnN0RXJyb3IoKVwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoY2FuU2hvd1N1Y2Nlc3MoKSkge1xuICAgICAgICA8YWRzLXN1Y2Nlc3MgW3N1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2UhXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChoaW50KSB7XG4gICAgICAgIDxhZHMtaGludCBbaGludF09XCJoaW50XCIgW2NvbnRyb2xdPVwidmFsdWVDb250cm9sXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmICh0b29sdGlwKSB7XG4gIDxhZHMtaW5wdXQtdG9vbHRpcCBbdG9vbHRpcF09XCJ0b29sdGlwXCIgLz5cbn1cbiJdfQ==
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvdGltZS1waWNrZXIvdGltZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Fkcy11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1maWVsZHMvZGF0ZXBpY2tlcnMvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVk5RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBaUJwRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBakJWLHNFQUFzRTtRQUM3RCx3QkFBbUIsR0FBVyxXQUFXLENBQUM7UUFFbkQsY0FBYztRQUNkLFNBQUksR0FBMEIsTUFBTSxDQUFDO1FBRXJDLGNBQWM7UUFDSixjQUFTLEdBQXVCO1lBQ3hDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSztTQUNaLENBQUM7UUFFRixjQUFjO1FBQ0sseUJBQW9CLEdBQStCO1lBQ3BFLGtCQUFrQixFQUFFLHdDQUF3QztTQUM3RCxDQUFDO1FBSUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsS0FBMEQ7UUFDbEU7OztXQUdHO1FBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNKLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDO1FBRXRDLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdFLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNKLDRCQUE0QixDQUFDLEtBQVc7UUFDaEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELGNBQWM7SUFDSixvQkFBb0IsQ0FBQyxlQUF1QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUs7UUFDM0UsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDekYsQ0FBQztRQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQXpEVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixxSUNsQm5DLG9qSEErRkE7OzJGRDdFYSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0UsZ0JBQWdCO3dEQVVqQixtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZHNEYXRldGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBNYXREYXRldGltZXBpY2tlclR5cGUgfSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUvZGF0ZXRpbWVwaWNrZXIvZGF0ZXRpbWVwaWNrZXItdHlwZSc7XG5pbXBvcnQgeyBHRU5FUklDX0NPTExFQ1RJT04gfSBmcm9tICdAYXNjZW50Z2wvYWRzLXV0aWxzJztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IEZPUk1BVF9USU1FIH0gZnJvbSAnLi4vZGF0ZXRpbWUtcGlja2VyL2N1c3RvbS1kYXRldGltZS1mb3JtYXQnO1xuaW1wb3J0IHsgYWRzSWNvblRpbWVwaWNrZXIgfSBmcm9tICdAYXNjZW50Z2wvYWRzLWljb25zL2ljb25zJztcbmltcG9ydCB7IE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0BtYXQtZGF0ZXRpbWVwaWNrZXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Fkcy10aW1lcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi9kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICAgICcuLi8uLi9jb21tb24vY29tbW9uLmlucHV0LmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRzVGltZXBpY2tlckNvbXBvbmVudCBleHRlbmRzIEFkc0RhdGV0aW1lcGlja2VyQ29tcG9uZW50IHtcbiAgLyoqIGlmIG92ZXJyaWRlRGlzcGxheUZvcm1hdD10cnVlLCB0aGlzIGRpc3BsYXkgZm9ybWF0IHdpbGwgYmUgdXNlZCAqL1xuICBASW5wdXQoKSBjdXN0b21EaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBGT1JNQVRfVElNRTtcblxuICAvKiogQGlnbm9yZSAqL1xuICB0eXBlOiBNYXREYXRldGltZXBpY2tlclR5cGUgPSAndGltZSc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNob3J0Y3V0czogR0VORVJJQ19DT0xMRUNUSU9OID0ge1xuICAgIG46IDAsIC8vbm93XG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRFcnJvck1lc3NhZ2VzOiBHRU5FUklDX0NPTExFQ1RJT048c3RyaW5nPiA9IHtcbiAgICBtYXREYXRlcGlja2VyUGFyc2U6ICdUaW1lIG11c3QgYXBwZWFyIGluIHRoaXMgZm9ybWF0OiBISDptbScsXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyKFthZHNJY29uVGltZXBpY2tlcl0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb25DaGFuZ2VkKGV2ZW50OiBNYXREYXRldGltZXBpY2tlcklucHV0RXZlbnQ8c3RyaW5nPiB8IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBOT1RFOiB0aGlzIGlzIG5lZWRlZCB0byBjbGVhciB2YWx1ZXMgd2hlbiBpbnB1dCBmaWVsZCBpcyBjbGVhcmVkO1xuICAgICAqIG90aGVyd2lzZSB0aGUgdGltZXBpY2tlciB3aWxsIGJlIHNldCB0byAwMDowMFxuICAgICAqL1xuICAgIGlmICh0aGlzLmRpc3BsYXlDb250cm9sLnZhbHVlICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLmRpc3BsYXlDb250cm9sLCBudWxsKTtcbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMudmFsdWVDb250cm9sLCBudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIub25DaGFuZ2VkKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYXBwbHlDdXN0b21Gb3JtYXQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUgPSB7fTtcblxuICAgIGlmICh0aGlzLm92ZXJyaWRlRGlzcGxheUZvcm1hdCkge1xuICAgICAgdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0T3ZlcnJpZGUgPSB7IHRpbWVJbnB1dDogdGhpcy5jdXN0b21EaXNwbGF5Rm9ybWF0IH07XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGRpc3BsYXllZFZhbHVlVG9Db250cm9sVmFsdWUodmFsdWU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXQodGhpcy5hZGRPZmZzZXQodmFsdWUsIHRoaXMuZ2V0UmVxdWlyZWRPZmZzZXQodmFsdWUpICogLTEpLCAnSEg6bW06MDAnKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBvblN5bmNEaXNwbGF5ZWRWYWx1ZSh2YWx1ZVRvQXBwbHk6IHN0cmluZyA9IHRoaXMudmFsdWVDb250cm9sLnZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVDb250cm9sLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZVRvQXBwbHkgPSBmb3JtYXQodGhpcy5jcmVhdGVEYXRlKCksICd5eXl5LU1NLWRkJykgKyAnICcgKyB0aGlzLnZhbHVlQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICBzdXBlci5vblN5bmNEaXNwbGF5ZWRWYWx1ZSh2YWx1ZVRvQXBwbHkpO1xuICB9XG59XG4iLCI8ZGl2IFtuZ1N0eWxlXT1cInsgbWluV2lkdGg6IHdpZHRoIH1cIiBjbGFzcz1cImFkcy1maWVsZC1jb250YWluZXJcIj5cbiAgPGRpdiBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdpbW1lZGlhdGUtdmFsaWRhdGlvbic6IGltbWVkaWF0ZVZhbGlkYXRpb24sXG4gICAgICAgICduby1sZWZ0LXBhZGRpbmcnOiAhc2hvd0V4Y2xhbWF0aW9uLFxuICAgICAgICBpbnZhbGlkOiBjYW5TaG93RXJyb3IoKSxcbiAgICAgICAgbWFudWFsOiBhbGxvd01hbnVhbElucHV0LFxuICAgICAgICAnc3VjY2Vzcy1sYWJlbCc6IGNhblNob3dTdWNjZXNzKCksXG4gICAgICAgICd4LXNtYWxsJzogc21hbGxTaXplLFxuICAgICAgfVwiXG4gICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCB9XCJcbiAgICA+XG4gICAgICBAaWYgKChsYWJlbCB8fCByZXF1aXJlZCkgJiYgIXNtYWxsU2l6ZSkge1xuICAgICAgICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgICB9XG4gICAgICA8bWF0LWRhdGV0aW1lcGlja2VyXG4gICAgICAgICNkYXRldGltZVBpY2tlclxuICAgICAgICAodmlld0NoYW5nZWQpPVwib25WaWV3Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW5lZCgpXCJcbiAgICAgICAgKGNsb3NlZCk9XCJvbkNsb3NlZCgpXCJcbiAgICAgICAgW3R5cGVdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IChzaG93VGltZVBpY2tlciA/ICdkYXRldGltZScgOiAnZGF0ZScpIDogdHlwZVwiXG4gICAgICAgIFtvcGVuT25Gb2N1c109XCIhYWxsb3dNYW51YWxJbnB1dFwiXG4gICAgICAgIFt0d2VsdmVob3VyXT1cInR3ZWx2ZUhvdXJcIlxuICAgICAgICBbdGltZUludGVydmFsXT1cIjVcIlxuICAgICAgICBbbW9kZV09XCIncG9ydHJhaXQnXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBkYXRlVGltZVBpY2tlckZvcm1hdFxuICAgICAgICBbb3ZlcnJpZGVEaXNwbGF5Rm9ybWF0XT1cIm92ZXJyaWRlRGlzcGxheUZvcm1hdCB8fCAodHlwZSA9PT0gJ2RhdGV0aW1lJyA/ICFzaG93VGltZVBpY2tlciA6IGZhbHNlKVwiXG4gICAgICAgIFtjdXN0b21EaXNwbGF5Rm9ybWF0XT1cImN1c3RvbURpc3BsYXlGb3JtYXRPdmVycmlkZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgaW52aXNpYmxlOiAhdmFsdWVDb250cm9sLnZhbHVlIH1cIlxuICAgICAgICAjaW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgKGtleWRvd24pPVwiYWxsb3dNYW51YWxJbnB1dCA/IG9uS2V5RG93bigkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgIChpbnB1dCk9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgICAoYmx1cik9XCJ0b3VjaENvbnRyb2xzKClcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiYWxsb3dNYW51YWxJbnB1dCA/IDAgOiAtMVwiXG4gICAgICAgIFttaW5dPVwibWluRGF0ZSB8fCBudWxsXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cIiFhbGxvd01hbnVhbElucHV0XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImRpc3BsYXlDb250cm9sXCJcbiAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImRhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwiZmFsc2VcIlxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgLz5cbiAgICAgIEBpZiAodHlwZSA9PT0gJ3RpbWUnKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXRUZXh0U3VmZml4XG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNob3dUaW1lUGlja2VyXCJcbiAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJ0aW1lcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZSgkZXZlbnQpXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPlxuICAgICAgICAgIDxhZHMtaWNvbiBjbGFzcz1cInBpY2tlclwiIG5hbWU9XCJkYXRlcGlja2VyXCIgW3NpemVdPVwic21hbGxTaXplID8gJ3h4cycgOiAnc20nXCIgW3N0cm9rZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgICBAaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgIDxhZHMtaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInN1Yi10aW1lcGlja2VyIG1hdC1tZGMtYnV0dG9uLXBlcnNpc3RlbnQtcmlwcGxlIHBpY2tlclwiXG4gICAgICAgICAgICAgIG5hbWU9XCJ0aW1lcGlja2VyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXG4gICAgICAgICAgICAgIFtzdHJva2VdPVwiJ2ljb25QcmltYXJ5J1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoY2FuQ2xlYXIpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXRUZXh0U3VmZml4IHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyKCRldmVudClcIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+XG4gICAgICAgICAgPGFkcy1pY29uIGNsYXNzPVwiY3Jvc3MtaWNvblwiIG5hbWU9XCJjcm9zc1wiIFtzaXplXT1cInNtYWxsU2l6ZSA/ICd4eHMnIDogJ3hzJ1wiIFt0aGVtZV09XCInaWNvblByaW1hcnknXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAoY2FuU2hvd0Vycm9yKCkpIHtcbiAgICAgICAgICA8YWRzLWVycm9yIFtlcnJvcl09XCJkaXNwbGF5Rmlyc3RFcnJvcigpXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNhblNob3dTdWNjZXNzKCkpIHtcbiAgICAgICAgICA8YWRzLXN1Y2Nlc3MgW3N1Y2Nlc3NdPVwic3VjY2Vzc01lc3NhZ2UhXCIgW25nU3R5bGVdPVwieyB3aWR0aDogd2lkdGggfVwiIC8+XG4gICAgICAgIH0gQGVsc2UgaWYgKGhpbnQpIHtcbiAgICAgICAgICA8YWRzLWhpbnQgW2hpbnRdPVwiaGludFwiIFtjb250cm9sXT1cInZhbHVlQ29udHJvbFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHdpZHRoIH1cIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKHRvb2x0aXApIHtcbiAgICA8YWRzLWlucHV0LXRvb2x0aXAgW3Rvb2x0aXBdPVwidG9vbHRpcFwiIC8+XG4gIH1cbjwvZGl2PlxuIl19
|