@eui/components 15.3.3 → 15.3.4-snapshot-1683663232013

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.
@@ -92,30 +92,16 @@ export class EuiDateRangeSelectorComponent {
92
92
  this.secondInputPlaceholder = result;
93
93
  });
94
94
  }
95
- this.control?.statusChanges?.pipe(takeUntil(this.destroy$)).subscribe((status) => {
96
- switch (status) {
97
- case 'INVALID': {
98
- this.isInvalid = true;
99
- this.startRangeFormControl.setErrors(this.control.errors);
100
- this.endRangeFormControl.setErrors(this.control.errors);
101
- break;
102
- }
103
- case 'VALID': {
104
- this.isInvalid = false;
105
- this.startRangeFormControl.setErrors(null);
106
- this.endRangeFormControl.setErrors(null);
107
- break;
108
- }
109
- default:
110
- }
111
- });
112
95
  }
113
96
  ngDoCheck() {
114
97
  if (this.control) {
115
- // marks the input control as touched if the form control is touched as there is no touched state to listen on statusChanges
98
+ // marks the input controls as touched/invalid if the form control is touched/invalid
116
99
  this.control?.touched ? this.startRangeFormControl?.markAsTouched() : this.startRangeFormControl.markAsUntouched();
117
100
  this.control?.touched ? this.endRangeFormControl.markAsTouched() : this.endRangeFormControl?.markAsUntouched();
118
101
  this.control?.touched ? (this.isTouched = true) : (this.isTouched = false);
102
+ this.control?.invalid ? this.startRangeFormControl.setErrors(this.control.errors) : this.startRangeFormControl.setErrors(null);
103
+ this.control?.invalid ? this.endRangeFormControl.setErrors(this.control.errors) : this.endRangeFormControl.setErrors(null);
104
+ this.control?.invalid ? (this.isInvalid = true) : (this.isInvalid = false);
119
105
  }
120
106
  }
121
107
  ngAfterContentInit() {
@@ -185,10 +171,10 @@ export class EuiDateRangeSelectorComponent {
185
171
  }
186
172
  }
187
173
  /** @nocollapse */ EuiDateRangeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiDateRangeSelectorComponent, deps: [{ token: i1.TranslateService }, { token: i2.LocaleService, optional: true }, { token: i3.DateAdapter }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
188
- /** @nocollapse */ EuiDateRangeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiDateRangeSelectorComponent, selector: "eui-date-range-selector", inputs: { styleClass: "styleClass", e2eAttr: "e2eAttr", minDate: "minDate", maxDate: "maxDate", togglerIcon: "togglerIcon", togglerIconSvg: "togglerIconSvg", togglerLabel: "togglerLabel", firstInputPlaceholder: "firstInputPlaceholder", secondInputPlaceholder: "secondInputPlaceholder", startDateDefaultValue: "startDateDefaultValue", endDateDefaultValue: "endDateDefaultValue", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd", startView: "startView", islongDateFormat: "islongDateFormat", isReadOnly: "isReadOnly", isDisabled: "isDisabled", isResponsive: "isResponsive" }, outputs: { firstSelectedDate: "firstSelectedDate", secondSelectedDate: "secondSelectedDate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i8.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i9.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }], encapsulation: i0.ViewEncapsulation.None });
174
+ /** @nocollapse */ EuiDateRangeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiDateRangeSelectorComponent, selector: "eui-date-range-selector", inputs: { styleClass: "styleClass", e2eAttr: "e2eAttr", minDate: "minDate", maxDate: "maxDate", togglerIcon: "togglerIcon", togglerIconSvg: "togglerIconSvg", togglerLabel: "togglerLabel", firstInputPlaceholder: "firstInputPlaceholder", secondInputPlaceholder: "secondInputPlaceholder", startDateDefaultValue: "startDateDefaultValue", endDateDefaultValue: "endDateDefaultValue", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd", startView: "startView", islongDateFormat: "islongDateFormat", isReadOnly: "isReadOnly", isDisabled: "isDisabled", isResponsive: "isResponsive" }, outputs: { firstSelectedDate: "firstSelectedDate", secondSelectedDate: "secondSelectedDate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--read-only .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:0}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i8.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i9.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }], encapsulation: i0.ViewEncapsulation.None });
189
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiDateRangeSelectorComponent, decorators: [{
190
176
  type: Component,
191
- args: [{ selector: 'eui-date-range-selector', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"] }]
177
+ args: [{ selector: 'eui-date-range-selector', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--read-only .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:0}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"] }]
192
178
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.LocaleService, decorators: [{
193
179
  type: Optional
194
180
  }] }, { type: i3.DateAdapter }, { type: i4.NgControl, decorators: [{
@@ -236,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
236
222
  }], isResponsive: [{
237
223
  type: Input
238
224
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IvZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IvZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7O0FBT3pGLE1BQU0sT0FBTyw2QkFBNkI7SUEyRHRDLFlBQ2MsZ0JBQWtDLEVBQ3RCLGFBQTRCLEVBQ3hDLE9BQXlCLEVBQ0wsT0FBa0I7UUFIdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN4QyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNMLFlBQU8sR0FBUCxPQUFPLENBQVc7UUE5RHBELGtCQUFhLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUdwRSwwQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzFDLHdCQUFtQixHQUFHLElBQUksV0FBVyxFQUFF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RFgsaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFVBQVU7c0JBRGIsS0FBSztnQkFTRixZQUFZO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VySW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlEYXRlUmFuZ2VTZWxlY3RvckRhdGVzIH0gZnJvbSAnLi9tb2RlbHMvZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3ItZGF0ZXMubW9kZWwnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktZGF0ZS1yYW5nZS1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1kYXRlLXJhbmdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlEYXRlUmFuZ2VTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrIHtcbiAgICBzZWxlY3RlZERhdGVzOiBFdWlEYXRlUmFuZ2VTZWxlY3RvckRhdGVzID0gbmV3IEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMoKTtcbiAgICBwdWJsaWMgaXNJbnZhbGlkOiBib29sZWFuO1xuICAgIHB1YmxpYyBpc1RvdWNoZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHN0YXJ0UmFuZ2VGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyBlbmRSYW5nZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICBAT3V0cHV0KCkgZmlyc3RTZWxlY3RlZERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgc2Vjb25kU2VsZWN0ZWREYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZGF0ZS1yYW5nZS1zZWxlY3Rvcic7XG4gICAgQElucHV0KCkgbWluRGF0ZTogYW55O1xuICAgIEBJbnB1dCgpIG1heERhdGU6IGFueTtcbiAgICBASW5wdXQoKSB0b2dnbGVySWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvZ2dsZXJJY29uU3ZnID0gJ2V1aS1jYWxlbmRhci1vdXRsaW5lJztcbiAgICBASW5wdXQoKSB0b2dnbGVyTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBmaXJzdElucHV0UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZWNvbmRJbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3RhcnREYXRlRGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgQElucHV0KCkgZW5kRGF0ZURlZmF1bHRWYWx1ZTogYW55O1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25TdGFydDogYW55O1xuICAgIEBJbnB1dCgpIGNvbXBhcmlzb25FbmQ6IGFueTtcbiAgICBASW5wdXQoKSBzdGFydFZpZXc6ICdtb250aCcgfCAneWVhcicgfCAnbXVsdGkteWVhcicgPSAnbW9udGgnO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzbG9uZ0RhdGVGb3JtYXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc2xvbmdEYXRlRm9ybWF0O1xuICAgIH1cbiAgICBzZXQgaXNsb25nRGF0ZUZvcm1hdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzbG9uZ0RhdGVGb3JtYXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc2xvbmdEYXRlRm9ybWF0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVhZE9ubHk7XG4gICAgfVxuICAgIHNldCBpc1JlYWRPbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNSZWFkT25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzUmVzcG9uc2l2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVzcG9uc2l2ZTtcbiAgICB9XG4gICAgc2V0IGlzUmVzcG9uc2l2ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzUmVzcG9uc2l2ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVzcG9uc2l2ZSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBsb2NhbGVTZXJ2aWNlOiBMb2NhbGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgYWRhcHRlcjogRGF0ZUFkYXB0ZXI8YW55PixcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgY29udHJvbDogTmdDb250cm9sXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRTdGF0ZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRhcHRlci5zZXRMb2NhbGUoc3RhdGUuaWQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5zdGFydERhdGVEZWZhdWx0VmFsdWUsIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQgfSk7XG4gICAgICAgIHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLmVuZERhdGVEZWZhdWx0VmFsdWUsIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZpcnN0SW5wdXRQbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLnN0cmVhbSgnZXVpLmRhdGVyYW5nZXNlbGVjdG9yLkZJUlNUUElDS0VSU0xBQkVMJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdElucHV0UGxhY2Vob2xkZXIgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnNlY29uZElucHV0UGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgICAgICAgICAgICAgIC5zdHJlYW0oJ2V1aS5kYXRlcmFuZ2VzZWxlY3Rvci5TRUNPTkRQSUNLRVJTTEFCRUwnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlY29uZElucHV0UGxhY2Vob2xkZXIgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250cm9sPy5zdGF0dXNDaGFuZ2VzPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnSU5WQUxJRCc6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbC5zZXRFcnJvcnModGhpcy5jb250cm9sLmVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbC5zZXRFcnJvcnModGhpcy5jb250cm9sLmVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdWQUxJRCc6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICAgICAgICAvLyBtYXJrcyB0aGUgaW5wdXQgY29udHJvbCBhcyB0b3VjaGVkIGlmIHRoZSBmb3JtIGNvbnRyb2wgaXMgdG91Y2hlZCBhcyB0aGVyZSBpcyBubyB0b3VjaGVkIHN0YXRlIHRvIGxpc3RlbiBvbiBzdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnRvdWNoZWQgPyB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbD8ubWFya0FzVG91Y2hlZCgpIDogdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnRvdWNoZWQgPyB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpIDogdGhpcy5lbmRSYW5nZUZvcm1Db250cm9sPy5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8udG91Y2hlZCA/ICh0aGlzLmlzVG91Y2hlZCA9IHRydWUpIDogKHRoaXMuaXNUb3VjaGVkID0gZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc2xvbmdEYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlQ2xhc3MgKz0gJ2V1aS1kYXRlLXJhbmdlLXNlbGVjdG9yLS1sb25nLWRhdGUtZm9ybWF0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlc1snc3RhcnREYXRlRGVmYXVsdFZhbHVlJ10pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRSYW5nZUZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuc3RhcnREYXRlRGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzWydlbmREYXRlRGVmYXVsdFZhbHVlJ10pIHtcbiAgICAgICAgICAgIHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmVuZERhdGVEZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlc1snaXNEaXNhYmxlZCddKSB7XG4gICAgICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodGhpcy5pc0Rpc2FibGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25GaXJzdERhdGVDaGFuZ2UoZTogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMuc3RhcnRSYW5nZSA9IGUudmFsdWU7XG4gICAgICAgIHRoaXMuZmlyc3RTZWxlY3RlZERhdGUuZW1pdChlLnZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2Vjb25kRGF0ZUNoYW5nZShlOiBNYXREYXRlcGlja2VySW5wdXRFdmVudDxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5lbmRSYW5nZSA9IGUudmFsdWU7XG4gICAgICAgIHRoaXMuc2Vjb25kU2VsZWN0ZWREYXRlLmVtaXQoZS52YWx1ZSk7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWVzOiBFdWlEYXRlUmFuZ2VTZWxlY3RvckRhdGVzKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZXMgJiYgISh2YWx1ZXMgaW5zdGFuY2VvZiBFdWlEYXRlUmFuZ2VTZWxlY3RvckRhdGVzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWx1ZSBtdXN0IGJlIGFuIEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMgT2JqZWN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlcyAmJiB2YWx1ZXMuc3RhcnRSYW5nZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YXJ0UmFuZ2Ugb2YgRXVpRGF0ZVJhbmdlU2VsZWN0b3JEYXRlcyBtb2RlbCBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5lbmRSYW5nZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2VuZFJhbmdlIG9mIEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMgbW9kZWwgbXVzdCBiZSBkZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXJ0RGF0ZURlZmF1bHRWYWx1ZSA9IHZhbHVlcz8uc3RhcnRSYW5nZTtcbiAgICAgICAgdGhpcy5lbmREYXRlRGVmYXVsdFZhbHVlID0gdmFsdWVzPy5lbmRSYW5nZTtcbiAgICAgICAgdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWVzPy5zdGFydFJhbmdlKTtcbiAgICAgICAgdGhpcy5lbmRSYW5nZUZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlcz8uZW5kUmFuZ2UpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZXMgPSB2YWx1ZXMgfHwgbmV3IEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHt9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3Ige3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIlxuICAgIFtjbGFzcy5ldWktZGF0ZS1yYW5nZS1zZWxlY3Rvci0tcmVzcG9uc2l2ZV09XCJpc1Jlc3BvbnNpdmVcIj5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXRcbiAgICAgICAgW2NsYXNzLm1hdC1kYXRlLXJhbmdlLWlucHV0LS1yZWFkLW9ubHldPVwiaXNSZWFkT25seVwiXG4gICAgICAgIFtjbGFzcy5tYXQtZGF0ZS1yYW5nZS1pbnB1dC0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5tYXQtZGF0ZS1yYW5nZS1pbnB1dC0taW52YWxpZF09XCJpc0ludmFsaWQgJiYgaXNUb3VjaGVkXCJcbiAgICAgICAgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiXG4gICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgIFttYXhdPVwibWF4RGF0ZVwiXG4gICAgICAgIFtjb21wYXJpc29uU3RhcnRdPVwiY29tcGFyaXNvblN0YXJ0XCJcbiAgICAgICAgW2NvbXBhcmlzb25FbmRdPVwiY29tcGFyaXNvbkVuZFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3JfX3N0YXJ0LWRhdGVcIlxuICAgICAgICAgICAgZXVpSW5wdXRUZXh0XG4gICAgICAgICAgICBtYXRTdGFydERhdGVcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgZmlyc3RJbnB1dFBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTdGFydCBkYXRlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydFJhbmdlRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJvbkZpcnN0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImV1aS1kYXRlLXJhbmdlLXNlbGVjdG9yX19lbmQtZGF0ZVwiXG4gICAgICAgICAgICBldWlJbnB1dFRleHRcbiAgICAgICAgICAgIG1hdEVuZERhdGVcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2Vjb25kSW5wdXRQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRW5kIGRhdGVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZFJhbmdlRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJvblNlY29uZERhdGVDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgW3N0YXJ0Vmlld109XCJzdGFydFZpZXdcIj4gPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFpc1JlYWRPbmx5XCJcbiAgICAgICAgY2xhc3M9XCJldWktZGF0ZS1yYW5nZS1zZWxlY3Rvcl9fdG9nZ2xlciBldWktZGF0ZS1yYW5nZS1zZWxlY3Rvcl9fdG9nZ2xlci17eyAhdG9nZ2xlckxhYmVsID8gJ2ljb24nIDogJ2xhYmVsJyB9fVwiXG4gICAgICAgIChjbGljayk9XCJwaWNrZXIub3BlbigpXCJcbiAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgIGV1aVNlY29uZGFyeVxuICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbZXVpRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhdG9nZ2xlckxhYmVsICYmIHRvZ2dsZXJJY29uXCIgZXVpSWNvbiBhcmlhLWxhYmVsPVwiT3BlbiBDYWxlbmRhclwiIGljb25DbGFzcz1cInt7IHRvZ2dsZXJJY29uIH19XCI+PC9zcGFuPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRvZ2dsZXJMYWJlbCAmJiAhdG9nZ2xlckljb25cIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cInt7IHRvZ2dsZXJJY29uU3ZnIH19XCIgYXJpYS1sYWJlbD1cIk9wZW4gQ2FsZW5kYXJcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwidG9nZ2xlckxhYmVsXCI+e3sgdG9nZ2xlckxhYmVsIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IvZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IvZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7O0FBT3pGLE1BQU0sT0FBTyw2QkFBNkI7SUEyRHRDLFlBQ2MsZ0JBQWtDLEVBQ3RCLGFBQTRCLEVBQ3hDLE9BQXlCLEVBQ0wsT0FBa0I7UUFIdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN4QyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNMLFlBQU8sR0FBUCxPQUFPLENBQVc7UUE5RHBELGtCQUFhLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUdwRSwwQkFBcUIsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzFDLHdCQUFtQixHQUFHLElBQUksV0FBVyxFQUFF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SztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixVQUFVO3NCQURiLEtBQUs7Z0JBU0YsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMb2NhbGVTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMgfSBmcm9tICcuL21vZGVscy9ldWktZGF0ZS1yYW5nZS1zZWxlY3Rvci1kYXRlcy5tb2RlbCc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1kYXRlLXJhbmdlLXNlbGVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aURhdGVSYW5nZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIERvQ2hlY2sge1xuICAgIHNlbGVjdGVkRGF0ZXM6IEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMgPSBuZXcgRXVpRGF0ZVJhbmdlU2VsZWN0b3JEYXRlcygpO1xuICAgIHB1YmxpYyBpc0ludmFsaWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGlzVG91Y2hlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgc3RhcnRSYW5nZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIGVuZFJhbmdlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgIEBPdXRwdXQoKSBmaXJzdFNlbGVjdGVkRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzZWNvbmRTZWxlY3RlZERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3MgPSAnJztcbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1kYXRlLXJhbmdlLXNlbGVjdG9yJztcbiAgICBASW5wdXQoKSBtaW5EYXRlOiBhbnk7XG4gICAgQElucHV0KCkgbWF4RGF0ZTogYW55O1xuICAgIEBJbnB1dCgpIHRvZ2dsZXJJY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdG9nZ2xlckljb25TdmcgPSAnZXVpLWNhbGVuZGFyLW91dGxpbmUnO1xuICAgIEBJbnB1dCgpIHRvZ2dsZXJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGZpcnN0SW5wdXRQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNlY29uZElucHV0UGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdGFydERhdGVEZWZhdWx0VmFsdWU6IGFueTtcbiAgICBASW5wdXQoKSBlbmREYXRlRGVmYXVsdFZhbHVlOiBhbnk7XG4gICAgQElucHV0KCkgY29tcGFyaXNvblN0YXJ0OiBhbnk7XG4gICAgQElucHV0KCkgY29tcGFyaXNvbkVuZDogYW55O1xuICAgIEBJbnB1dCgpIHN0YXJ0VmlldzogJ21vbnRoJyB8ICd5ZWFyJyB8ICdtdWx0aS15ZWFyJyA9ICdtb250aCc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNsb25nRGF0ZUZvcm1hdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzbG9uZ0RhdGVGb3JtYXQ7XG4gICAgfVxuICAgIHNldCBpc2xvbmdEYXRlRm9ybWF0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNsb25nRGF0ZUZvcm1hdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzbG9uZ0RhdGVGb3JtYXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgICB9XG4gICAgc2V0IGlzUmVhZE9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlYWRPbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgaXNEaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNSZXNwb25zaXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZXNwb25zaXZlO1xuICAgIH1cbiAgICBzZXQgaXNSZXNwb25zaXZlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNSZXNwb25zaXZlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZXNwb25zaXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBjb250cm9sOiBOZ0NvbnRyb2xcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZVxuICAgICAgICAgICAgLmdldFN0YXRlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGFwdGVyLnNldExvY2FsZShzdGF0ZS5pZCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0YXJ0RGF0ZURlZmF1bHRWYWx1ZSwgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCB9KTtcbiAgICAgICAgdGhpcy5lbmRSYW5nZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuZW5kRGF0ZURlZmF1bHRWYWx1ZSwgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuZmlyc3RJbnB1dFBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAuc3RyZWFtKCdldWkuZGF0ZXJhbmdlc2VsZWN0b3IuRklSU1RQSUNLRVJTTEFCRUwnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpcnN0SW5wdXRQbGFjZWhvbGRlciA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuc2Vjb25kSW5wdXRQbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLnN0cmVhbSgnZXVpLmRhdGVyYW5nZXNlbGVjdG9yLlNFQ09ORFBJQ0tFUlNMQUJFTCcpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vjb25kSW5wdXRQbGFjZWhvbGRlciA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICAgICAgLy8gbWFya3MgdGhlIGlucHV0IGNvbnRyb2xzIGFzIHRvdWNoZWQvaW52YWxpZCBpZiB0aGUgZm9ybSBjb250cm9sIGlzIHRvdWNoZWQvaW52YWxpZFxuICAgICAgICAgICAgdGhpcy5jb250cm9sPy50b3VjaGVkID8gdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKSA6IHRoaXMuc3RhcnRSYW5nZUZvcm1Db250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sPy50b3VjaGVkID8gdGhpcy5lbmRSYW5nZUZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKSA6IHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnRvdWNoZWQgPyAodGhpcy5pc1RvdWNoZWQgPSB0cnVlKSA6ICh0aGlzLmlzVG91Y2hlZCA9IGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8uaW52YWxpZCA/IHRoaXMuc3RhcnRSYW5nZUZvcm1Db250cm9sLnNldEVycm9ycyh0aGlzLmNvbnRyb2wuZXJyb3JzKSA6IHRoaXMuc3RhcnRSYW5nZUZvcm1Db250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8uaW52YWxpZCA/IHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbC5zZXRFcnJvcnModGhpcy5jb250cm9sLmVycm9ycykgOiB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sPy5pbnZhbGlkID8gKHRoaXMuaXNJbnZhbGlkID0gdHJ1ZSkgOiAodGhpcy5pc0ludmFsaWQgPSBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzbG9uZ0RhdGVGb3JtYXQpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVDbGFzcyArPSAnZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3ItLWxvbmctZGF0ZS1mb3JtYXQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzWydzdGFydERhdGVEZWZhdWx0VmFsdWUnXSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFJhbmdlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5zdGFydERhdGVEZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXNbJ2VuZERhdGVEZWZhdWx0VmFsdWUnXSkge1xuICAgICAgICAgICAgdGhpcy5lbmRSYW5nZUZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZW5kRGF0ZURlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzWydpc0Rpc2FibGVkJ10pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZSh0aGlzLmlzRGlzYWJsZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZpcnN0RGF0ZUNoYW5nZShlOiBNYXREYXRlcGlja2VySW5wdXRFdmVudDxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcy5zdGFydFJhbmdlID0gZS52YWx1ZTtcbiAgICAgICAgdGhpcy5maXJzdFNlbGVjdGVkRGF0ZS5lbWl0KGUudmFsdWUpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWNvbmREYXRlQ2hhbmdlKGU6IE1hdERhdGVwaWNrZXJJbnB1dEV2ZW50PGFueT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzLmVuZFJhbmdlID0gZS52YWx1ZTtcbiAgICAgICAgdGhpcy5zZWNvbmRTZWxlY3RlZERhdGUuZW1pdChlLnZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGVzKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZXM6IEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlcyAmJiAhKHZhbHVlcyBpbnN0YW5jZW9mIEV1aURhdGVSYW5nZVNlbGVjdG9yRGF0ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIG11c3QgYmUgYW4gRXVpRGF0ZVJhbmdlU2VsZWN0b3JEYXRlcyBPYmplY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWVzICYmIHZhbHVlcy5zdGFydFJhbmdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc3RhcnRSYW5nZSBvZiBFdWlEYXRlUmFuZ2VTZWxlY3RvckRhdGVzIG1vZGVsIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmVuZFJhbmdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZW5kUmFuZ2Ugb2YgRXVpRGF0ZVJhbmdlU2VsZWN0b3JEYXRlcyBtb2RlbCBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhcnREYXRlRGVmYXVsdFZhbHVlID0gdmFsdWVzPy5zdGFydFJhbmdlO1xuICAgICAgICB0aGlzLmVuZERhdGVEZWZhdWx0VmFsdWUgPSB2YWx1ZXM/LmVuZFJhbmdlO1xuICAgICAgICB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZXM/LnN0YXJ0UmFuZ2UpO1xuICAgICAgICB0aGlzLmVuZFJhbmdlRm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWVzPy5lbmRSYW5nZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlcyA9IHZhbHVlcyB8fCBuZXcgRXVpRGF0ZVJhbmdlU2VsZWN0b3JEYXRlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRSYW5nZUZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UmFuZ2VGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgICAgIHRoaXMuZW5kUmFuZ2VGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSk6IHZvaWQgPT4ge307XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVUb3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJldWktZGF0ZS1yYW5nZS1zZWxlY3RvciB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiXG4gICAgW2NsYXNzLmV1aS1kYXRlLXJhbmdlLXNlbGVjdG9yLS1yZXNwb25zaXZlXT1cImlzUmVzcG9uc2l2ZVwiPlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dFxuICAgICAgICBbY2xhc3MubWF0LWRhdGUtcmFuZ2UtaW5wdXQtLXJlYWQtb25seV09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgW2NsYXNzLm1hdC1kYXRlLXJhbmdlLWlucHV0LS1kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgW2NsYXNzLm1hdC1kYXRlLXJhbmdlLWlucHV0LS1pbnZhbGlkXT1cImlzSW52YWxpZCAmJiBpc1RvdWNoZWRcIlxuICAgICAgICBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgW21pbl09XCJtaW5EYXRlXCJcbiAgICAgICAgW21heF09XCJtYXhEYXRlXCJcbiAgICAgICAgW2NvbXBhcmlzb25TdGFydF09XCJjb21wYXJpc29uU3RhcnRcIlxuICAgICAgICBbY29tcGFyaXNvbkVuZF09XCJjb21wYXJpc29uRW5kXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJldWktZGF0ZS1yYW5nZS1zZWxlY3Rvcl9fc3RhcnQtZGF0ZVwiXG4gICAgICAgICAgICBldWlJbnB1dFRleHRcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgICAgIG1hdFN0YXJ0RGF0ZVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBmaXJzdElucHV0UGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlN0YXJ0IGRhdGVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInN0YXJ0UmFuZ2VGb3JtQ29udHJvbFwiXG4gICAgICAgICAgICAoZGF0ZUlucHV0KT1cIm9uRmlyc3REYXRlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZXVpLWRhdGUtcmFuZ2Utc2VsZWN0b3JfX2VuZC1kYXRlXCJcbiAgICAgICAgICAgIGV1aUlucHV0VGV4dFxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZE9ubHlcIlxuICAgICAgICAgICAgbWF0RW5kRGF0ZVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBzZWNvbmRJbnB1dFBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFbmQgZGF0ZVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW5kUmFuZ2VGb3JtQ29udHJvbFwiXG4gICAgICAgICAgICAoZGF0ZUlucHV0KT1cIm9uU2Vjb25kRGF0ZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlciBbc3RhcnRWaWV3XT1cInN0YXJ0Vmlld1wiPiA8L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIWlzUmVhZE9ubHlcIlxuICAgICAgICBjbGFzcz1cImV1aS1kYXRlLXJhbmdlLXNlbGVjdG9yX190b2dnbGVyIGV1aS1kYXRlLXJhbmdlLXNlbGVjdG9yX190b2dnbGVyLXt7ICF0b2dnbGVyTGFiZWwgPyAnaWNvbicgOiAnbGFiZWwnIH19XCJcbiAgICAgICAgKGNsaWNrKT1cInBpY2tlci5vcGVuKClcIlxuICAgICAgICBldWlCdXR0b25cbiAgICAgICAgZXVpU2Vjb25kYXJ5XG4gICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtldWlEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiF0b2dnbGVyTGFiZWwgJiYgdG9nZ2xlckljb25cIiBldWlJY29uIGFyaWEtbGFiZWw9XCJPcGVuIENhbGVuZGFyXCIgaWNvbkNsYXNzPVwie3sgdG9nZ2xlckljb24gfX1cIj48L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdG9nZ2xlckxhYmVsICYmICF0b2dnbGVySWNvblwiPlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwie3sgdG9nZ2xlckljb25TdmcgfX1cIiBhcmlhLWxhYmVsPVwiT3BlbiBDYWxlbmRhclwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b2dnbGVyTGFiZWxcIj57eyB0b2dnbGVyTGFiZWwgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"eui-date-range-selector.component.d.ts","sourceRoot":"","sources":["../../eui-date-range-selector/eui-date-range-selector.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-date-range-selector.component.d.ts","sourceRoot":"","sources":["../../eui-date-range-selector/eui-date-range-selector.component.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,6 @@ class EuiDateRangeSelectorComponent {
84
84
  this._isResponsive = coerceBooleanProperty(value);
85
85
  }
86
86
  ngOnInit() {
87
- var _a, _b;
88
87
  this.localeService
89
88
  .getState()
90
89
  .pipe(takeUntil(this.destroy$))
@@ -109,31 +108,17 @@ class EuiDateRangeSelectorComponent {
109
108
  this.secondInputPlaceholder = result;
110
109
  });
111
110
  }
112
- (_b = (_a = this.control) === null || _a === void 0 ? void 0 : _a.statusChanges) === null || _b === void 0 ? void 0 : _b.pipe(takeUntil(this.destroy$)).subscribe((status) => {
113
- switch (status) {
114
- case 'INVALID': {
115
- this.isInvalid = true;
116
- this.startRangeFormControl.setErrors(this.control.errors);
117
- this.endRangeFormControl.setErrors(this.control.errors);
118
- break;
119
- }
120
- case 'VALID': {
121
- this.isInvalid = false;
122
- this.startRangeFormControl.setErrors(null);
123
- this.endRangeFormControl.setErrors(null);
124
- break;
125
- }
126
- default:
127
- }
128
- });
129
111
  }
130
112
  ngDoCheck() {
131
- var _a, _b, _c, _d, _e;
113
+ var _a, _b, _c, _d, _e, _f, _g, _h;
132
114
  if (this.control) {
133
- // marks the input control as touched if the form control is touched as there is no touched state to listen on statusChanges
115
+ // marks the input controls as touched/invalid if the form control is touched/invalid
134
116
  ((_a = this.control) === null || _a === void 0 ? void 0 : _a.touched) ? (_b = this.startRangeFormControl) === null || _b === void 0 ? void 0 : _b.markAsTouched() : this.startRangeFormControl.markAsUntouched();
135
117
  ((_c = this.control) === null || _c === void 0 ? void 0 : _c.touched) ? this.endRangeFormControl.markAsTouched() : (_d = this.endRangeFormControl) === null || _d === void 0 ? void 0 : _d.markAsUntouched();
136
118
  ((_e = this.control) === null || _e === void 0 ? void 0 : _e.touched) ? (this.isTouched = true) : (this.isTouched = false);
119
+ ((_f = this.control) === null || _f === void 0 ? void 0 : _f.invalid) ? this.startRangeFormControl.setErrors(this.control.errors) : this.startRangeFormControl.setErrors(null);
120
+ ((_g = this.control) === null || _g === void 0 ? void 0 : _g.invalid) ? this.endRangeFormControl.setErrors(this.control.errors) : this.endRangeFormControl.setErrors(null);
121
+ ((_h = this.control) === null || _h === void 0 ? void 0 : _h.invalid) ? (this.isInvalid = true) : (this.isInvalid = false);
137
122
  }
138
123
  }
139
124
  ngAfterContentInit() {
@@ -203,10 +188,10 @@ class EuiDateRangeSelectorComponent {
203
188
  }
204
189
  }
205
190
  /** @nocollapse */ EuiDateRangeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiDateRangeSelectorComponent, deps: [{ token: i1.TranslateService }, { token: i2.LocaleService, optional: true }, { token: i3.DateAdapter }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
206
- /** @nocollapse */ EuiDateRangeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiDateRangeSelectorComponent, selector: "eui-date-range-selector", inputs: { styleClass: "styleClass", e2eAttr: "e2eAttr", minDate: "minDate", maxDate: "maxDate", togglerIcon: "togglerIcon", togglerIconSvg: "togglerIconSvg", togglerLabel: "togglerLabel", firstInputPlaceholder: "firstInputPlaceholder", secondInputPlaceholder: "secondInputPlaceholder", startDateDefaultValue: "startDateDefaultValue", endDateDefaultValue: "endDateDefaultValue", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd", startView: "startView", islongDateFormat: "islongDateFormat", isReadOnly: "isReadOnly", isDisabled: "isDisabled", isResponsive: "isResponsive" }, outputs: { firstSelectedDate: "firstSelectedDate", secondSelectedDate: "secondSelectedDate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i8.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i9.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }], encapsulation: i0.ViewEncapsulation.None });
191
+ /** @nocollapse */ EuiDateRangeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: EuiDateRangeSelectorComponent, selector: "eui-date-range-selector", inputs: { styleClass: "styleClass", e2eAttr: "e2eAttr", minDate: "minDate", maxDate: "maxDate", togglerIcon: "togglerIcon", togglerIconSvg: "togglerIconSvg", togglerLabel: "togglerLabel", firstInputPlaceholder: "firstInputPlaceholder", secondInputPlaceholder: "secondInputPlaceholder", startDateDefaultValue: "startDateDefaultValue", endDateDefaultValue: "endDateDefaultValue", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd", startView: "startView", islongDateFormat: "islongDateFormat", isReadOnly: "isReadOnly", isDisabled: "isDisabled", isResponsive: "isResponsive" }, outputs: { firstSelectedDate: "firstSelectedDate", secondSelectedDate: "secondSelectedDate" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--read-only .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:0}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i6.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i8.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i9.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["class", "isInvalid"] }], encapsulation: i0.ViewEncapsulation.None });
207
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: EuiDateRangeSelectorComponent, decorators: [{
208
193
  type: Component,
209
- args: [{ selector: 'eui-date-range-selector', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"] }]
194
+ args: [{ selector: 'eui-date-range-selector', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n", styles: [".eui-date-range-selector{display:inline-flex}.eui-date-range-selector--responsive{display:flex}.eui-date-range-selector .mat-date-range-input-container{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-date-range-selector .mat-date-range-input-container div.mat-date-range-input-wrapper{display:flex;height:100%;width:calc(6 * var(--eui-base-spacing-m))}.eui-date-range-selector--long-date-format div.mat-date-range-input-wrapper{width:calc(10 * var(--eui-base-spacing-m))}.eui-date-range-selector .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:1}.eui-date-range-selector__toggler{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}.eui-date-range-selector__toggler-label{width:auto}.eui-date-range-selector .mat-date-range-input{align-items:center;display:flex;box-sizing:border-box;background:var(--eui-base-color-white);border:1px solid var(--eui-base-color-grey-50);border-radius:var(--eui-base-border-radius);border-bottom-right-radius:0;border-top-right-radius:0;text-align:center;height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-2xs))}.eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:39px}.eui-t-compact .eui-t-form-compact .eui-date-range-selector .mat-date-range-input{height:34px}.eui-date-range-selector .mat-date-range-input--read-only{background-color:transparent;border-color:transparent!important;box-shadow:none;height:inherit;padding:var(--eui-base-spacing-2xs) 0;pointer-events:none}.eui-date-range-selector .mat-date-range-input--read-only .mat-date-range-input-separator.mat-date-range-input-separator-hidden{opacity:0}.eui-date-range-selector .mat-date-range-input--disabled{background-image:none;box-shadow:none;cursor:not-allowed;opacity:var(--eui-base-disabled-opacity);background-color:var(--eui-base-color-grey-5);border:1px solid var(--eui-base-color-grey-25)}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__start-date{border-right:none!important}.eui-date-range-selector .mat-date-range-input--disabled input.eui-date-range-selector__end-date{border-left:none!important}.eui-date-range-selector .mat-date-range-input--invalid{border:1px solid var(--eui-base-color-danger-100)}.eui-date-range-selector input.mat-date-range-input-inner{font: 400 1rem/1.25rem arial,sans-serif;-webkit-appearance:none;appearance:none;background-color:inherit;border:hidden;color:var(--eui-base-color-grey-100);display:flex;padding:calc(var(--eui-base-spacing-2xs));width:100%}\n"] }]
210
195
  }], ctorParameters: function () {
211
196
  return [{ type: i1.TranslateService }, { type: i2.LocaleService, decorators: [{
212
197
  type: Optional
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-date-range-selector.mjs","sources":["../../eui-date-range-selector/models/eui-date-range-selector-dates.model.ts","../../eui-date-range-selector/eui-date-range-selector.component.ts","../../eui-date-range-selector/eui-date-range-selector.component.html","../../eui-date-range-selector/eui-date-range-selector.module.ts","../../eui-date-range-selector/eui-date-range-selector.validators.ts","../../eui-date-range-selector/eui-components-eui-date-range-selector.ts"],"sourcesContent":["export class EuiDateRangeSelectorDates {\n startRange: any;\n endRange: any;\n\n constructor(values: object = {}) {\n Object.assign(this, values);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AfterContentInit,\n Component,\n DoCheck,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { DateAdapter } from '@angular/material/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { LocaleService } from '@eui/core';\nimport { EuiDateRangeSelectorDates } from './models/eui-date-range-selector-dates.model';\n@Component({\n selector: 'eui-date-range-selector',\n templateUrl: './eui-date-range-selector.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDateRangeSelectorComponent implements OnInit, AfterContentInit, OnDestroy, OnChanges, ControlValueAccessor, DoCheck {\n selectedDates: EuiDateRangeSelectorDates = new EuiDateRangeSelectorDates();\n public isInvalid: boolean;\n public isTouched: boolean;\n public startRangeFormControl = new FormControl();\n public endRangeFormControl = new FormControl();\n\n @Output() firstSelectedDate = new EventEmitter<any>();\n @Output() secondSelectedDate = new EventEmitter<any>();\n\n @Input() styleClass = '';\n @Input() e2eAttr = 'eui-date-range-selector';\n @Input() minDate: any;\n @Input() maxDate: any;\n @Input() togglerIcon: string;\n @Input() togglerIconSvg = 'eui-calendar-outline';\n @Input() togglerLabel: string;\n @Input() firstInputPlaceholder: string;\n @Input() secondInputPlaceholder: string;\n @Input() startDateDefaultValue: any;\n @Input() endDateDefaultValue: any;\n @Input() comparisonStart: any;\n @Input() comparisonEnd: any;\n @Input() startView: 'month' | 'year' | 'multi-year' = 'month';\n @Input()\n get islongDateFormat(): boolean {\n return this._islongDateFormat;\n }\n set islongDateFormat(value: BooleanInput) {\n this._islongDateFormat = coerceBooleanProperty(value);\n }\n private _islongDateFormat = false;\n @Input()\n get isReadOnly(): boolean {\n return this._isReadOnly;\n }\n set isReadOnly(value: BooleanInput) {\n this._isReadOnly = coerceBooleanProperty(value);\n }\n private _isReadOnly = false;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n private _isDisabled = false;\n @Input()\n get isResponsive(): boolean {\n return this._isResponsive;\n }\n set isResponsive(value: BooleanInput) {\n this._isResponsive = coerceBooleanProperty(value);\n }\n private _isResponsive = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n protected translateService: TranslateService,\n @Optional() protected localeService: LocaleService,\n protected adapter: DateAdapter<any>,\n @Self() @Optional() protected control: NgControl\n ) {\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.localeService\n .getState()\n .pipe(takeUntil(this.destroy$))\n .subscribe((state) => {\n this.adapter.setLocale(state.id);\n });\n\n this.startRangeFormControl = new FormControl({ value: this.startDateDefaultValue, disabled: this.isDisabled });\n this.endRangeFormControl = new FormControl({ value: this.endDateDefaultValue, disabled: this.isDisabled });\n\n if (!this.firstInputPlaceholder) {\n this.translateService\n .stream('eui.daterangeselector.FIRSTPICKERSLABEL')\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: string) => {\n this.firstInputPlaceholder = result;\n });\n }\n if (!this.secondInputPlaceholder) {\n this.translateService\n .stream('eui.daterangeselector.SECONDPICKERSLABEL')\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: string) => {\n this.secondInputPlaceholder = result;\n });\n }\n this.control?.statusChanges?.pipe(takeUntil(this.destroy$)).subscribe((status) => {\n switch (status) {\n case 'INVALID': {\n this.isInvalid = true;\n this.startRangeFormControl.setErrors(this.control.errors);\n this.endRangeFormControl.setErrors(this.control.errors);\n break;\n }\n case 'VALID': {\n this.isInvalid = false;\n this.startRangeFormControl.setErrors(null);\n this.endRangeFormControl.setErrors(null);\n break;\n }\n default:\n }\n });\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input control as touched if the form control is touched as there is no touched state to listen on statusChanges\n this.control?.touched ? this.startRangeFormControl?.markAsTouched() : this.startRangeFormControl.markAsUntouched();\n this.control?.touched ? this.endRangeFormControl.markAsTouched() : this.endRangeFormControl?.markAsUntouched();\n this.control?.touched ? (this.isTouched = true) : (this.isTouched = false);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.islongDateFormat) {\n this.styleClass += 'eui-date-range-selector--long-date-format';\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['startDateDefaultValue']) {\n this.startRangeFormControl.setValue(this.startDateDefaultValue);\n }\n if (changes && changes['endDateDefaultValue']) {\n this.endRangeFormControl.setValue(this.endDateDefaultValue);\n }\n\n if (changes && changes['isDisabled']) {\n this.setDisabledState(this.isDisabled);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public onFirstDateChange(e: MatDatepickerInputEvent<any>): void {\n this.selectedDates.startRange = e.value;\n this.firstSelectedDate.emit(e.value);\n this.propagateChange(this.selectedDates);\n this.propagateTouched();\n }\n\n public onSecondDateChange(e: MatDatepickerInputEvent<any>): void {\n this.selectedDates.endRange = e.value;\n this.secondSelectedDate.emit(e.value);\n this.propagateChange(this.selectedDates);\n this.propagateTouched();\n }\n\n writeValue(values: EuiDateRangeSelectorDates): void {\n if (values && !(values instanceof EuiDateRangeSelectorDates)) {\n throw new Error('value must be an EuiDateRangeSelectorDates Object');\n }\n if (values && values.startRange === undefined) {\n throw new Error('startRange of EuiDateRangeSelectorDates model must be defined');\n }\n if (values && values.endRange === undefined) {\n throw new Error('endRange of EuiDateRangeSelectorDates model must be defined');\n }\n\n this.startDateDefaultValue = values?.startRange;\n this.endDateDefaultValue = values?.endRange;\n this.startRangeFormControl.setValue(values?.startRange);\n this.endRangeFormControl.setValue(values?.endRange);\n this.selectedDates = values || new EuiDateRangeSelectorDates();\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.isDisabled) {\n this.startRangeFormControl.disable();\n this.endRangeFormControl.disable();\n } else {\n this.startRangeFormControl.enable();\n this.endRangeFormControl.enable();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateChange = (_: any): void => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateTouched = (): void => {};\n}\n","<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatMomentDateModule, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport { EuiDateRangeSelectorComponent } from './eui-date-range-selector.component';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { DEFAULT_FORMATS } from '@eui/components/eui-datepicker';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n MatDatepickerModule,\n MatMomentDateModule,\n EuiButtonModule,\n EuiIconModule,\n EuiInputTextModule,\n ],\n exports: [EuiDateRangeSelectorComponent],\n declarations: [EuiDateRangeSelectorComponent],\n providers: [\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: DEFAULT_FORMATS },\n ],\n})\nexport class EuiDateRangeSelectorModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport moment from 'moment';\n\n/**\n * @description\n * Validator that checks that the start date isn't after the end date.\n *\n * @usageNotes\n * If the user types a value in the input field that is not aligned with the provided format the component propagates a null value that\n * can be used to validate the input field.\n *\n * @returns An error map with the\n * `euiDateRangeInvalid` if the validation check fails, otherwise `null`.\n */\n\nexport const euiStartEndDateValidator =\n (adapter: DateAdapter<any>): ValidatorFn =>\n (control: AbstractControl): ValidationErrors | null => {\n const start = moment(adapter.getValidDateOrNull(adapter.deserialize(control.value.startRange)));\n const end = moment(control.value?.endRange);\n return !start || !end || adapter.compareDate(start, end) <= 0 ? null : { euiDateRangeInvalid: { end, actual: start } };\n };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-date-range-selector.mjs","sources":["../../eui-date-range-selector/models/eui-date-range-selector-dates.model.ts","../../eui-date-range-selector/eui-date-range-selector.component.ts","../../eui-date-range-selector/eui-date-range-selector.component.html","../../eui-date-range-selector/eui-date-range-selector.module.ts","../../eui-date-range-selector/eui-date-range-selector.validators.ts","../../eui-date-range-selector/eui-components-eui-date-range-selector.ts"],"sourcesContent":["export class EuiDateRangeSelectorDates {\n startRange: any;\n endRange: any;\n\n constructor(values: object = {}) {\n Object.assign(this, values);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n AfterContentInit,\n Component,\n DoCheck,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { DateAdapter } from '@angular/material/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { LocaleService } from '@eui/core';\nimport { EuiDateRangeSelectorDates } from './models/eui-date-range-selector-dates.model';\n@Component({\n selector: 'eui-date-range-selector',\n templateUrl: './eui-date-range-selector.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiDateRangeSelectorComponent implements OnInit, AfterContentInit, OnDestroy, OnChanges, ControlValueAccessor, DoCheck {\n selectedDates: EuiDateRangeSelectorDates = new EuiDateRangeSelectorDates();\n public isInvalid: boolean;\n public isTouched: boolean;\n public startRangeFormControl = new FormControl();\n public endRangeFormControl = new FormControl();\n\n @Output() firstSelectedDate = new EventEmitter<any>();\n @Output() secondSelectedDate = new EventEmitter<any>();\n\n @Input() styleClass = '';\n @Input() e2eAttr = 'eui-date-range-selector';\n @Input() minDate: any;\n @Input() maxDate: any;\n @Input() togglerIcon: string;\n @Input() togglerIconSvg = 'eui-calendar-outline';\n @Input() togglerLabel: string;\n @Input() firstInputPlaceholder: string;\n @Input() secondInputPlaceholder: string;\n @Input() startDateDefaultValue: any;\n @Input() endDateDefaultValue: any;\n @Input() comparisonStart: any;\n @Input() comparisonEnd: any;\n @Input() startView: 'month' | 'year' | 'multi-year' = 'month';\n @Input()\n get islongDateFormat(): boolean {\n return this._islongDateFormat;\n }\n set islongDateFormat(value: BooleanInput) {\n this._islongDateFormat = coerceBooleanProperty(value);\n }\n private _islongDateFormat = false;\n @Input()\n get isReadOnly(): boolean {\n return this._isReadOnly;\n }\n set isReadOnly(value: BooleanInput) {\n this._isReadOnly = coerceBooleanProperty(value);\n }\n private _isReadOnly = false;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n private _isDisabled = false;\n @Input()\n get isResponsive(): boolean {\n return this._isResponsive;\n }\n set isResponsive(value: BooleanInput) {\n this._isResponsive = coerceBooleanProperty(value);\n }\n private _isResponsive = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n protected translateService: TranslateService,\n @Optional() protected localeService: LocaleService,\n protected adapter: DateAdapter<any>,\n @Self() @Optional() protected control: NgControl\n ) {\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.localeService\n .getState()\n .pipe(takeUntil(this.destroy$))\n .subscribe((state) => {\n this.adapter.setLocale(state.id);\n });\n\n this.startRangeFormControl = new FormControl({ value: this.startDateDefaultValue, disabled: this.isDisabled });\n this.endRangeFormControl = new FormControl({ value: this.endDateDefaultValue, disabled: this.isDisabled });\n\n if (!this.firstInputPlaceholder) {\n this.translateService\n .stream('eui.daterangeselector.FIRSTPICKERSLABEL')\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: string) => {\n this.firstInputPlaceholder = result;\n });\n }\n if (!this.secondInputPlaceholder) {\n this.translateService\n .stream('eui.daterangeselector.SECONDPICKERSLABEL')\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: string) => {\n this.secondInputPlaceholder = result;\n });\n }\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input controls as touched/invalid if the form control is touched/invalid\n this.control?.touched ? this.startRangeFormControl?.markAsTouched() : this.startRangeFormControl.markAsUntouched();\n this.control?.touched ? this.endRangeFormControl.markAsTouched() : this.endRangeFormControl?.markAsUntouched();\n this.control?.touched ? (this.isTouched = true) : (this.isTouched = false);\n this.control?.invalid ? this.startRangeFormControl.setErrors(this.control.errors) : this.startRangeFormControl.setErrors(null);\n this.control?.invalid ? this.endRangeFormControl.setErrors(this.control.errors) : this.endRangeFormControl.setErrors(null);\n this.control?.invalid ? (this.isInvalid = true) : (this.isInvalid = false);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.islongDateFormat) {\n this.styleClass += 'eui-date-range-selector--long-date-format';\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['startDateDefaultValue']) {\n this.startRangeFormControl.setValue(this.startDateDefaultValue);\n }\n if (changes && changes['endDateDefaultValue']) {\n this.endRangeFormControl.setValue(this.endDateDefaultValue);\n }\n\n if (changes && changes['isDisabled']) {\n this.setDisabledState(this.isDisabled);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public onFirstDateChange(e: MatDatepickerInputEvent<any>): void {\n this.selectedDates.startRange = e.value;\n this.firstSelectedDate.emit(e.value);\n this.propagateChange(this.selectedDates);\n this.propagateTouched();\n }\n\n public onSecondDateChange(e: MatDatepickerInputEvent<any>): void {\n this.selectedDates.endRange = e.value;\n this.secondSelectedDate.emit(e.value);\n this.propagateChange(this.selectedDates);\n this.propagateTouched();\n }\n\n writeValue(values: EuiDateRangeSelectorDates): void {\n if (values && !(values instanceof EuiDateRangeSelectorDates)) {\n throw new Error('value must be an EuiDateRangeSelectorDates Object');\n }\n if (values && values.startRange === undefined) {\n throw new Error('startRange of EuiDateRangeSelectorDates model must be defined');\n }\n if (values && values.endRange === undefined) {\n throw new Error('endRange of EuiDateRangeSelectorDates model must be defined');\n }\n\n this.startDateDefaultValue = values?.startRange;\n this.endDateDefaultValue = values?.endRange;\n this.startRangeFormControl.setValue(values?.startRange);\n this.endRangeFormControl.setValue(values?.endRange);\n this.selectedDates = values || new EuiDateRangeSelectorDates();\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n if (this.isDisabled) {\n this.startRangeFormControl.disable();\n this.endRangeFormControl.disable();\n } else {\n this.startRangeFormControl.enable();\n this.endRangeFormControl.enable();\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateChange = (_: any): void => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private propagateTouched = (): void => {};\n}\n","<div\n class=\"eui-date-range-selector {{ styleClass }}\"\n attr.data-e2e=\"{{ e2eAttr }}\"\n [class.eui-date-range-selector--responsive]=\"isResponsive\">\n <mat-date-range-input\n [class.mat-date-range-input--read-only]=\"isReadOnly\"\n [class.mat-date-range-input--disabled]=\"isDisabled\"\n [class.mat-date-range-input--invalid]=\"isInvalid && isTouched\"\n [rangePicker]=\"picker\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [comparisonStart]=\"comparisonStart\"\n [comparisonEnd]=\"comparisonEnd\">\n <input\n class=\"eui-date-range-selector__start-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matStartDate\n placeholder=\"{{ firstInputPlaceholder }}\"\n aria-label=\"Start date\"\n [formControl]=\"startRangeFormControl\"\n (dateInput)=\"onFirstDateChange($event)\" />\n <input\n class=\"eui-date-range-selector__end-date\"\n euiInputText\n [readonly]=\"isReadOnly\"\n matEndDate\n placeholder=\"{{ secondInputPlaceholder }}\"\n aria-label=\"End date\"\n [formControl]=\"endRangeFormControl\"\n (dateInput)=\"onSecondDateChange($event)\" />\n </mat-date-range-input>\n <mat-date-range-picker #picker [startView]=\"startView\"> </mat-date-range-picker>\n <button\n *ngIf=\"!isReadOnly\"\n class=\"eui-date-range-selector__toggler eui-date-range-selector__toggler-{{ !togglerLabel ? 'icon' : 'label' }}\"\n (click)=\"picker.open()\"\n euiButton\n euiSecondary\n euiIconButton\n type=\"button\"\n [euiDisabled]=\"isDisabled\"\n aria-haspopup=\"dialog\">\n <span *ngIf=\"!togglerLabel && togglerIcon\" euiIcon aria-label=\"Open Calendar\" iconClass=\"{{ togglerIcon }}\"></span>\n <ng-container *ngIf=\"!togglerLabel && !togglerIcon\">\n <eui-icon-svg icon=\"{{ togglerIconSvg }}\" aria-label=\"Open Calendar\"></eui-icon-svg>\n </ng-container>\n <span *ngIf=\"togglerLabel\">{{ togglerLabel }}</span>\n </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatMomentDateModule, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport { EuiDateRangeSelectorComponent } from './eui-date-range-selector.component';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { DEFAULT_FORMATS } from '@eui/components/eui-datepicker';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n MatDatepickerModule,\n MatMomentDateModule,\n EuiButtonModule,\n EuiIconModule,\n EuiInputTextModule,\n ],\n exports: [EuiDateRangeSelectorComponent],\n declarations: [EuiDateRangeSelectorComponent],\n providers: [\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\n { provide: MAT_DATE_FORMATS, useValue: DEFAULT_FORMATS },\n ],\n})\nexport class EuiDateRangeSelectorModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport moment from 'moment';\n\n/**\n * @description\n * Validator that checks that the start date isn't after the end date.\n *\n * @usageNotes\n * If the user types a value in the input field that is not aligned with the provided format the component propagates a null value that\n * can be used to validate the input field.\n *\n * @returns An error map with the\n * `euiDateRangeInvalid` if the validation check fails, otherwise `null`.\n */\n\nexport const euiStartEndDateValidator =\n (adapter: DateAdapter<any>): ValidatorFn =>\n (control: AbstractControl): ValidationErrors | null => {\n const start = moment(adapter.getValidDateOrNull(adapter.deserialize(control.value.startRange)));\n const end = moment(control.value?.endRange);\n return !start || !end || adapter.compareDate(start, end) <= 0 ? null : { euiDateRangeInvalid: { end, actual: start } };\n };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}