@energinet/watt 3.0.29 → 3.0.30

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.
@@ -1,28 +1,9 @@
1
- //#region License
2
- /**
3
- * @license
4
- * Copyright 2020 Energinet DataHub A/S
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License2");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- */
18
- //#endregion
19
- import { FormControl } from '@angular/forms';
20
- import { Component, EventEmitter, HostBinding, Injectable, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
1
+ import { input, model, output, inject, Component, Injectable, ViewEncapsulation, } from '@angular/core';
21
2
  import { DateAdapter } from '@angular/material/core';
22
- import { DateRange, DefaultMatCalendarRangeStrategy, MAT_DATE_RANGE_SELECTION_STRATEGY, MatDatepickerModule, } from '@angular/material/datepicker';
23
- import { dayjs, WattDatePipe } from '@energinet/watt/core/date';
24
- import { WattButtonComponent } from '@energinet/watt/button';
3
+ import { DateRange, MatDatepickerModule, MAT_DATE_RANGE_SELECTION_STRATEGY, DefaultMatCalendarRangeStrategy, } from '@angular/material/datepicker';
25
4
  import { WattFieldComponent } from '@energinet/watt/field';
5
+ import { WattButtonComponent } from '@energinet/watt/button';
6
+ import { dayjs, WattDatePipe } from '@energinet/watt/core/date';
26
7
  import { WattDatepickerIntlService } from '@energinet/watt/picker/datepicker';
27
8
  import { WattMenuChipComponent } from './watt-menu-chip.component';
28
9
  import * as i0 from "@angular/core";
@@ -57,26 +38,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
57
38
  }]
58
39
  }] });
59
40
  export class WattDateRangeChipComponent {
60
- disabled = false;
61
- label;
62
- value;
63
- formControl;
64
- placeholder = true;
65
- showActions = false;
66
- customSelectionStrategy;
67
- get hasPlaceholderClass() {
68
- return this.placeholder;
69
- }
70
- selectionChange = new EventEmitter();
71
- _dateAdapter = inject(DateAdapter);
72
41
  intl = inject(WattDatepickerIntlService);
42
+ dateAdapter = inject(DateAdapter);
43
+ disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
44
+ label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
45
+ value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
46
+ formControl = input.required(...(ngDevMode ? [{ debugName: "formControl" }] : []));
47
+ placeholder = input(true, ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
48
+ showActions = input(false, ...(ngDevMode ? [{ debugName: "showActions" }] : []));
49
+ customSelectionStrategy = input(...(ngDevMode ? [undefined, { debugName: "customSelectionStrategy" }] : []));
50
+ selectionChange = output();
73
51
  selectionStrategy() {
74
- const strategy = new WattDateRangeSelectionStrategy(this._dateAdapter);
75
- strategy.setCustomSelectionStrategy(this.customSelectionStrategy);
52
+ const customStrategy = this.customSelectionStrategy();
53
+ const strategy = new WattDateRangeSelectionStrategy(this.dateAdapter);
54
+ if (customStrategy)
55
+ strategy.setCustomSelectionStrategy(customStrategy);
76
56
  return strategy;
77
57
  }
78
58
  clearInput() {
79
- this.value = undefined;
59
+ this.value.set(null);
80
60
  this.selectionChange.emit(null);
81
61
  }
82
62
  onSelectionChange(value) {
@@ -84,8 +64,17 @@ export class WattDateRangeChipComponent {
84
64
  this.selectionChange.emit(value);
85
65
  }
86
66
  }
67
+ updateStartDate(startDate) {
68
+ this.value.set({ start: startDate, end: null });
69
+ }
70
+ updateEndDate(endDate) {
71
+ const dateRange = this.value();
72
+ if (dateRange) {
73
+ this.value.set({ start: dateRange.start, end: endDate });
74
+ }
75
+ }
87
76
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDateRangeChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDateRangeChipComponent, isStandalone: true, selector: "watt-date-range-chip", inputs: { disabled: "disabled", label: "label", value: "value", formControl: "formControl", placeholder: "placeholder", showActions: "showActions", customSelectionStrategy: "customSelectionStrategy" }, outputs: { selectionChange: "selectionChange" }, host: { properties: { "class.has-placeholder": "this.hasPlaceholderClass" } }, providers: [
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: WattDateRangeChipComponent, isStandalone: true, selector: "watt-date-range-chip", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: true, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showActions: { classPropertyName: "showActions", publicName: "showActions", isSignal: true, isRequired: false, transformFunction: null }, customSelectionStrategy: { classPropertyName: "customSelectionStrategy", publicName: "customSelectionStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", value: "valueChange", selectionChange: "selectionChange" }, host: { properties: { "class.has-placeholder": "placeholder()" } }, providers: [
89
78
  {
90
79
  provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
91
80
  useFactory: (comp) => comp.selectionStrategy(),
@@ -93,7 +82,7 @@ export class WattDateRangeChipComponent {
93
82
  },
94
83
  ], ngImport: i0, template: `
95
84
  <mat-date-range-picker #picker>
96
- @if (showActions) {
85
+ @if (showActions()) {
97
86
  <mat-date-range-picker-actions>
98
87
  <watt-button variant="text" (click)="clearInput()" icon="remove">{{
99
88
  intl.clear
@@ -103,11 +92,11 @@ export class WattDateRangeChipComponent {
103
92
  }
104
93
  </mat-date-range-picker>
105
94
 
106
- <watt-field [control]="formControl" [chipMode]="true">
95
+ <watt-field [control]="formControl()" [chipMode]="true">
107
96
  <watt-menu-chip
108
97
  hasPopup="dialog"
109
- [disabled]="disabled"
110
- [selected]="value?.start && value?.end ? true : false"
98
+ [disabled]="disabled()"
99
+ [selected]="value()?.start && value()?.end ? true : false"
111
100
  [opened]="picker.opened"
112
101
  (toggle)="picker.open()"
113
102
  >
@@ -122,40 +111,40 @@ export class WattDateRangeChipComponent {
122
111
  matStartDate
123
112
  tabindex="-1"
124
113
  role="none"
125
- [value]="value?.start"
126
- (dateChange)="value = input.value!"
127
- (dateChange)="showActions && onSelectionChange($event.value ? input.value! : null)"
114
+ [value]="value() ? value()?.start : null"
115
+ (dateChange)="updateStartDate($event.value!)"
116
+ (dateChange)="showActions() && onSelectionChange($event.value ? input.value! : null)"
128
117
  />
129
118
  <input
130
119
  type="text"
131
120
  matEndDate
132
121
  tabindex="-1"
133
122
  role="none"
134
- [value]="value?.end"
135
- (dateChange)="value = input.value!"
123
+ [value]="value() ? value()?.end : null"
124
+ (dateChange)="updateEndDate($event.value!)"
136
125
  (dateChange)="onSelectionChange($event.value ? input.value! : null)"
137
126
  />
138
127
  </mat-date-range-input>
139
128
  <ng-content />
140
- @if (value?.start && value?.end) {
129
+ @if (value()?.start && value()?.end) {
141
130
  <span class="value">
142
- {{ value | wattDate }}
131
+ {{ value() | wattDate }}
143
132
  </span>
144
133
  }
145
134
  </watt-menu-chip>
146
135
  <ng-content ngProjectAs="watt-field-hint" select="watt-field-hint" />
147
136
  <ng-content ngProjectAs="watt-field-error" select="watt-field-error" />
148
137
  </watt-field>
149
- `, isInline: true, styles: ["watt-date-range-chip mat-date-range-input{top:0;bottom:0;height:auto;visibility:hidden}watt-date-range-chip.has-placeholder .value:before{content:\":\"}watt-date-range-chip watt-field label .watt-field-wrapper{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i1.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i1.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "pipe", type: WattDatePipe, name: "wattDate" }], encapsulation: i0.ViewEncapsulation.None });
138
+ `, isInline: true, styles: ["watt-date-range-chip mat-date-range-input{top:0;bottom:0;height:auto;visibility:hidden}watt-date-range-chip.has-placeholder .value:before{content:\":\"}watt-date-range-chip watt-field label .watt-field-wrapper{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i1.MatDatepickerActions, selector: "mat-datepicker-actions, mat-date-range-picker-actions" }, { kind: "directive", type: i1.MatDatepickerApply, selector: "[matDatepickerApply], [matDateRangePickerApply]" }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattMenuChipComponent, selector: "watt-menu-chip", inputs: ["opened", "disabled", "name", "value", "selected", "hasPopup"], outputs: ["toggle"] }, { kind: "pipe", type: WattDatePipe, name: "wattDate" }], encapsulation: i0.ViewEncapsulation.None });
150
139
  }
151
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattDateRangeChipComponent, decorators: [{
152
141
  type: Component,
153
142
  args: [{ imports: [
154
143
  MatDatepickerModule,
155
- WattMenuChipComponent,
156
144
  WattDatePipe,
157
145
  WattFieldComponent,
158
146
  WattButtonComponent,
147
+ WattMenuChipComponent,
159
148
  ], providers: [
160
149
  {
161
150
  provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
@@ -164,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
164
153
  },
165
154
  ], selector: 'watt-date-range-chip', encapsulation: ViewEncapsulation.None, template: `
166
155
  <mat-date-range-picker #picker>
167
- @if (showActions) {
156
+ @if (showActions()) {
168
157
  <mat-date-range-picker-actions>
169
158
  <watt-button variant="text" (click)="clearInput()" icon="remove">{{
170
159
  intl.clear
@@ -174,11 +163,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
174
163
  }
175
164
  </mat-date-range-picker>
176
165
 
177
- <watt-field [control]="formControl" [chipMode]="true">
166
+ <watt-field [control]="formControl()" [chipMode]="true">
178
167
  <watt-menu-chip
179
168
  hasPopup="dialog"
180
- [disabled]="disabled"
181
- [selected]="value?.start && value?.end ? true : false"
169
+ [disabled]="disabled()"
170
+ [selected]="value()?.start && value()?.end ? true : false"
182
171
  [opened]="picker.opened"
183
172
  (toggle)="picker.open()"
184
173
  >
@@ -193,50 +182,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
193
182
  matStartDate
194
183
  tabindex="-1"
195
184
  role="none"
196
- [value]="value?.start"
197
- (dateChange)="value = input.value!"
198
- (dateChange)="showActions && onSelectionChange($event.value ? input.value! : null)"
185
+ [value]="value() ? value()?.start : null"
186
+ (dateChange)="updateStartDate($event.value!)"
187
+ (dateChange)="showActions() && onSelectionChange($event.value ? input.value! : null)"
199
188
  />
200
189
  <input
201
190
  type="text"
202
191
  matEndDate
203
192
  tabindex="-1"
204
193
  role="none"
205
- [value]="value?.end"
206
- (dateChange)="value = input.value!"
194
+ [value]="value() ? value()?.end : null"
195
+ (dateChange)="updateEndDate($event.value!)"
207
196
  (dateChange)="onSelectionChange($event.value ? input.value! : null)"
208
197
  />
209
198
  </mat-date-range-input>
210
199
  <ng-content />
211
- @if (value?.start && value?.end) {
200
+ @if (value()?.start && value()?.end) {
212
201
  <span class="value">
213
- {{ value | wattDate }}
202
+ {{ value() | wattDate }}
214
203
  </span>
215
204
  }
216
205
  </watt-menu-chip>
217
206
  <ng-content ngProjectAs="watt-field-hint" select="watt-field-hint" />
218
207
  <ng-content ngProjectAs="watt-field-error" select="watt-field-error" />
219
208
  </watt-field>
220
- `, styles: ["watt-date-range-chip mat-date-range-input{top:0;bottom:0;height:auto;visibility:hidden}watt-date-range-chip.has-placeholder .value:before{content:\":\"}watt-date-range-chip watt-field label .watt-field-wrapper{background-color:transparent}\n"] }]
221
- }], propDecorators: { disabled: [{
222
- type: Input
223
- }], label: [{
224
- type: Input
225
- }], value: [{
226
- type: Input
227
- }], formControl: [{
228
- type: Input,
229
- args: [{ required: true }]
230
- }], placeholder: [{
231
- type: Input
232
- }], showActions: [{
233
- type: Input
234
- }], customSelectionStrategy: [{
235
- type: Input
236
- }], hasPlaceholderClass: [{
237
- type: HostBinding,
238
- args: ['class.has-placeholder']
239
- }], selectionChange: [{
240
- type: Output
241
- }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRlLXJhbmdlLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvY2hpcC93YXR0LWRhdGUtcmFuZ2UtY2hpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFDTCxTQUFTLEVBQ1QsK0JBQStCLEVBQy9CLGlDQUFpQyxFQUNqQyxtQkFBbUIsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPbkUsTUFBTSxPQUFPLDhCQUErQixTQUFRLCtCQUFxQztJQUMvRSx1QkFBdUIsQ0FBMkI7SUFFMUQsMEJBQTBCLENBQUMsUUFBaUM7UUFDMUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRVEsaUJBQWlCLENBQUMsSUFBVSxFQUFFLFlBQTZC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a0JBOUZ0QyxTQUFTOzhCQUNDO3dCQUNQLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNwQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQ0FBaUM7NEJBQzFDLFVBQVUsRUFBRSxDQUFDLElBQWdDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTs0QkFDMUUsSUFBSSxFQUFFLDRCQUE0Qjt5QkFDbkM7cUJBQ0YsWUFDUyxzQkFBc0IsaUJBQ2pCLGlCQUFpQixDQUFDLElBQUksWUFxQjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURUOzhCQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDcUIsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBR0YsbUJBQW1CO3NCQUR0QixXQUFXO3VCQUFDLHVCQUF1QjtnQkFLMUIsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmltcG9ydCB7XG4gIERhdGVSYW5nZSxcbiAgRGVmYXVsdE1hdENhbGVuZGFyUmFuZ2VTdHJhdGVneSxcbiAgTUFUX0RBVEVfUkFOR0VfU0VMRUNUSU9OX1NUUkFURUdZLFxuICBNYXREYXRlcGlja2VyTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IGRheWpzLCBXYXR0RGF0ZVBpcGUsIFdhdHRSYW5nZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9jb3JlL2RhdGUnO1xuaW1wb3J0IHsgV2F0dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9idXR0b24nO1xuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ZpZWxkJztcbmltcG9ydCB7IFdhdHREYXRlcGlja2VySW50bFNlcnZpY2UgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvcGlja2VyL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBXYXR0TWVudUNoaXBDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtbWVudS1jaGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kgPSAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IERhdGVSYW5nZTxEYXRlPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHREYXRlUmFuZ2VTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIERlZmF1bHRNYXRDYWxlbmRhclJhbmdlU3RyYXRlZ3k8RGF0ZT4ge1xuICBwcml2YXRlIGN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5ITogY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3k7XG5cbiAgc2V0Q3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3koc3RyYXRlZ3k6IGN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5KSB7XG4gICAgdGhpcy5jdXN0b21TZWxlY3Rpb25TdHJhdGVneSA9IHN0cmF0ZWd5O1xuICB9XG5cbiAgb3ZlcnJpZGUgc2VsZWN0aW9uRmluaXNoZWQoZGF0ZTogRGF0ZSwgY3VycmVudFJhbmdlOiBEYXRlUmFuZ2U8RGF0ZT4pOiBEYXRlUmFuZ2U8RGF0ZT4ge1xuICAgIGxldCByYW5nZTogRGF0ZVJhbmdlPERhdGU+ID0gc3VwZXIuc2VsZWN0aW9uRmluaXNoZWQoZGF0ZSwgY3VycmVudFJhbmdlKTtcblxuICAgIGlmICh0aGlzLmN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5KSB7XG4gICAgICByYW5nZSA9IHRoaXMuY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3koZGF0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJhbmdlLmVuZCA/IG5ldyBEYXRlUmFuZ2UocmFuZ2Uuc3RhcnQsIGRheWpzKHJhbmdlLmVuZCkuZW5kT2YoJ2RheScpLnRvRGF0ZSgpKSA6IHJhbmdlO1xuICB9XG5cbiAgb3ZlcnJpZGUgY3JlYXRlUHJldmlldyhhY3RpdmVEYXRlOiBEYXRlIHwgbnVsbCwgY3VycmVudFJhbmdlOiBEYXRlUmFuZ2U8RGF0ZT4pOiBEYXRlUmFuZ2U8RGF0ZT4ge1xuICAgIGlmICghdGhpcy5jdXN0b21TZWxlY3Rpb25TdHJhdGVneSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmNyZWF0ZVByZXZpZXcoYWN0aXZlRGF0ZSwgY3VycmVudFJhbmdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3koYWN0aXZlRGF0ZSk7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBXYXR0TWVudUNoaXBDb21wb25lbnQsXG4gICAgV2F0dERhdGVQaXBlLFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0QnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ksXG4gICAgICB1c2VGYWN0b3J5OiAoY29tcDogV2F0dERhdGVSYW5nZUNoaXBDb21wb25lbnQpID0+IGNvbXAuc2VsZWN0aW9uU3RyYXRlZ3koKSxcbiAgICAgIGRlcHM6IFtXYXR0RGF0ZVJhbmdlQ2hpcENvbXBvbmVudF0sXG4gICAgfSxcbiAgXSxcbiAgc2VsZWN0b3I6ICd3YXR0LWRhdGUtcmFuZ2UtY2hpcCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHdhdHQtZGF0ZS1yYW5nZS1jaGlwIHtcbiAgICAgICAgbWF0LWRhdGUtcmFuZ2UtaW5wdXQge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGFzLXBsYWNlaG9sZGVyIC52YWx1ZTo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgIH1cblxuICAgICAgICB3YXR0LWZpZWxkIGxhYmVsIC53YXR0LWZpZWxkLXdyYXBwZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXI+XG4gICAgICBAaWYgKHNob3dBY3Rpb25zKSB7XG4gICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXItYWN0aW9ucz5cbiAgICAgICAgICA8d2F0dC1idXR0b24gdmFyaWFudD1cInRleHRcIiAoY2xpY2spPVwiY2xlYXJJbnB1dCgpXCIgaWNvbj1cInJlbW92ZVwiPnt7XG4gICAgICAgICAgICBpbnRsLmNsZWFyXG4gICAgICAgICAgfX08L3dhdHQtYnV0dG9uPlxuICAgICAgICAgIDx3YXR0LWJ1dHRvbiB2YXJpYW50PVwicHJpbWFyeVwiIG1hdERhdGVSYW5nZVBpY2tlckFwcGx5Pnt7IGludGwuc2VsZWN0IH19PC93YXR0LWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXItYWN0aW9ucz5cbiAgICAgIH1cbiAgICA8L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgIDx3YXR0LWZpZWxkIFtjb250cm9sXT1cImZvcm1Db250cm9sXCIgW2NoaXBNb2RlXT1cInRydWVcIj5cbiAgICAgIDx3YXR0LW1lbnUtY2hpcFxuICAgICAgICBoYXNQb3B1cD1cImRpYWxvZ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJ2YWx1ZT8uc3RhcnQgJiYgdmFsdWU/LmVuZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgIFtvcGVuZWRdPVwicGlja2VyLm9wZW5lZFwiXG4gICAgICAgICh0b2dnbGUpPVwicGlja2VyLm9wZW4oKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dFxuICAgICAgICAgICNpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiY2RrLXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgc2VwYXJhdG9yPVwiXCJcbiAgICAgICAgICBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgbWF0U3RhcnREYXRlXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZT8uc3RhcnRcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwidmFsdWUgPSBpbnB1dC52YWx1ZSFcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwic2hvd0FjdGlvbnMgJiYgb25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlID8gaW5wdXQudmFsdWUhIDogbnVsbClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBtYXRFbmREYXRlXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZT8uZW5kXCJcbiAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cInZhbHVlID0gaW5wdXQudmFsdWUhXCJcbiAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSA/IGlucHV0LnZhbHVlISA6IG51bGwpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICBAaWYgKHZhbHVlPy5zdGFydCAmJiB2YWx1ZT8uZW5kKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAge3sgdmFsdWUgfCB3YXR0RGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC93YXR0LW1lbnUtY2hpcD5cbiAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1lcnJvclwiIHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgIDwvd2F0dC1maWVsZD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGVSYW5nZUNoaXBDb21wb25lbnQge1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU/OiBXYXR0UmFuZ2U8RGF0ZT47XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0FjdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3khOiAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IERhdGVSYW5nZTxEYXRlPjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhcy1wbGFjZWhvbGRlcicpXG4gIGdldCBoYXNQbGFjZWhvbGRlckNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8V2F0dFJhbmdlPERhdGU+IHwgbnVsbD4oKTtcblxuICBwcml2YXRlIF9kYXRlQWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gIHByb3RlY3RlZCBpbnRsID0gaW5qZWN0KFdhdHREYXRlcGlja2VySW50bFNlcnZpY2UpO1xuXG4gIHNlbGVjdGlvblN0cmF0ZWd5KCkge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gbmV3IFdhdHREYXRlUmFuZ2VTZWxlY3Rpb25TdHJhdGVneSh0aGlzLl9kYXRlQWRhcHRlcik7XG4gICAgc3RyYXRlZ3kuc2V0Q3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kodGhpcy5jdXN0b21TZWxlY3Rpb25TdHJhdGVneSk7XG4gICAgcmV0dXJuIHN0cmF0ZWd5O1xuICB9XG5cbiAgY2xlYXJJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQobnVsbCk7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogV2F0dFJhbmdlPERhdGU+IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCAodmFsdWU/LnN0YXJ0ICYmIHZhbHVlPy5lbmQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
209
+ `, host: {
210
+ '[class.has-placeholder]': 'placeholder()',
211
+ }, styles: ["watt-date-range-chip mat-date-range-input{top:0;bottom:0;height:auto;visibility:hidden}watt-date-range-chip.has-placeholder .value:before{content:\":\"}watt-date-range-chip watt-field label .watt-field-wrapper{background-color:transparent}\n"] }]
212
+ }] });
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRlLXJhbmdlLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy93YXR0L3BhY2thZ2UvY2hpcC93YXR0LWRhdGUtcmFuZ2UtY2hpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFDTCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FDaEMsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBYSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLDhCQUErQixTQUFRLCtCQUFxQztJQUMvRSx1QkFBdUIsQ0FBMkI7SUFFMUQsMEJBQTBCLENBQUMsUUFBaUM7UUFDMUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRVEsaUJBQWlCLENBQUMsSUFBVSxFQUFFLFlBQTZCO1FBQ2xFLElBQUksS0FBSyxHQUFvQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXpFLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRyxDQUFDO0lBRVEsYUFBYSxDQUFDLFVBQXVCLEVBQUUsWUFBNkI7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQzt1R0F2QlUsOEJBQThCOzJHQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTs7MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUE0SEQsTUFBTSxPQUFPLDBCQUEwQjtJQUMzQixJQUFJLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDM0MsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixLQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO0lBQ3hCLEtBQUssR0FBRyxLQUFLLENBQXlCLElBQUksaURBQUMsQ0FBQztJQUM1QyxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsc0RBQWUsQ0FBQztJQUM1QyxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksdURBQUMsQ0FBQztJQUMxQixXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssdURBQUMsQ0FBQztJQUMzQix1QkFBdUIsR0FBRyxLQUFLLDZFQUEwQyxDQUFDO0lBRTFFLGVBQWUsR0FBRyxNQUFNLEVBQTBCLENBQUM7SUFFbkQsaUJBQWlCO1FBQ2YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxjQUFjO1lBQUUsUUFBUSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQTZCO1FBQzdDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsU0FBZTtRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFvQjtRQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7dUdBekNVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLGtyQ0F6RjFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlDQUFpQztnQkFDMUMsVUFBVSxFQUFFLENBQUMsSUFBZ0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxRSxJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUNuQztTQUNGLDBCQXVCUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVEVCwwVEExRkMsbUJBQW1CLDQxQkFFbkIsa0JBQWtCLCtJQUNsQixtQkFBbUIsc0lBQ25CLHFCQUFxQixvSkFIckIsWUFBWTs7MkZBOEZILDBCQUEwQjtrQkFqR3RDLFNBQVM7OEJBQ0M7d0JBQ1AsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7cUJBQ3RCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlDQUFpQzs0QkFDMUMsVUFBVSxFQUFFLENBQUMsSUFBZ0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFOzRCQUMxRSxJQUFJLEVBQUUsNEJBQTRCO3lCQUNuQztxQkFDRixZQUNTLHNCQUFzQixpQkFDakIsaUJBQWlCLENBQUMsSUFBSSxZQXFCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1RFQsUUFDSzt3QkFDSix5QkFBeUIsRUFBRSxlQUFlO3FCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIGluamVjdCxcbiAgQ29tcG9uZW50LFxuICBJbmplY3RhYmxlLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5pbXBvcnQge1xuICBEYXRlUmFuZ2UsXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gIE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSxcbiAgRGVmYXVsdE1hdENhbGVuZGFyUmFuZ2VTdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5cbmltcG9ydCB7IFdhdHRGaWVsZENvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9maWVsZCc7XG5pbXBvcnQgeyBXYXR0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2J1dHRvbic7XG5pbXBvcnQgeyBkYXlqcywgV2F0dERhdGVQaXBlLCBXYXR0UmFuZ2UgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY29yZS9kYXRlJztcbmltcG9ydCB7IFdhdHREYXRlcGlja2VySW50bFNlcnZpY2UgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvcGlja2VyL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBXYXR0TWVudUNoaXBDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtbWVudS1jaGlwLmNvbXBvbmVudCc7XG5cbnR5cGUgY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kgPSAoZGF0ZTogRGF0ZSB8IG51bGwpID0+IERhdGVSYW5nZTxEYXRlPjtcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5PERhdGU+IHtcbiAgcHJpdmF0ZSBjdXN0b21TZWxlY3Rpb25TdHJhdGVneSE6IGN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5O1xuXG4gIHNldEN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5KHN0cmF0ZWd5OiBjdXN0b21TZWxlY3Rpb25TdHJhdGVneSkge1xuICAgIHRoaXMuY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kgPSBzdHJhdGVneTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNlbGVjdGlvbkZpbmlzaGVkKGRhdGU6IERhdGUsIGN1cnJlbnRSYW5nZTogRGF0ZVJhbmdlPERhdGU+KTogRGF0ZVJhbmdlPERhdGU+IHtcbiAgICBsZXQgcmFuZ2U6IERhdGVSYW5nZTxEYXRlPiA9IHN1cGVyLnNlbGVjdGlvbkZpbmlzaGVkKGRhdGUsIGN1cnJlbnRSYW5nZSk7XG5cbiAgICBpZiAodGhpcy5jdXN0b21TZWxlY3Rpb25TdHJhdGVneSkge1xuICAgICAgcmFuZ2UgPSB0aGlzLmN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5KGRhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiByYW5nZS5lbmQgPyBuZXcgRGF0ZVJhbmdlKHJhbmdlLnN0YXJ0LCBkYXlqcyhyYW5nZS5lbmQpLmVuZE9mKCdkYXknKS50b0RhdGUoKSkgOiByYW5nZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNyZWF0ZVByZXZpZXcoYWN0aXZlRGF0ZTogRGF0ZSB8IG51bGwsIGN1cnJlbnRSYW5nZTogRGF0ZVJhbmdlPERhdGU+KTogRGF0ZVJhbmdlPERhdGU+IHtcbiAgICBpZiAoIXRoaXMuY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kpIHtcbiAgICAgIHJldHVybiBzdXBlci5jcmVhdGVQcmV2aWV3KGFjdGl2ZURhdGUsIGN1cnJlbnRSYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbVNlbGVjdGlvblN0cmF0ZWd5KGFjdGl2ZURhdGUpO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgV2F0dERhdGVQaXBlLFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0QnV0dG9uQ29tcG9uZW50LFxuICAgIFdhdHRNZW51Q2hpcENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfUkFOR0VfU0VMRUNUSU9OX1NUUkFURUdZLFxuICAgICAgdXNlRmFjdG9yeTogKGNvbXA6IFdhdHREYXRlUmFuZ2VDaGlwQ29tcG9uZW50KSA9PiBjb21wLnNlbGVjdGlvblN0cmF0ZWd5KCksXG4gICAgICBkZXBzOiBbV2F0dERhdGVSYW5nZUNoaXBDb21wb25lbnRdLFxuICAgIH0sXG4gIF0sXG4gIHNlbGVjdG9yOiAnd2F0dC1kYXRlLXJhbmdlLWNoaXAnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICB3YXR0LWRhdGUtcmFuZ2UtY2hpcCB7XG4gICAgICAgIG1hdC1kYXRlLXJhbmdlLWlucHV0IHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmLmhhcy1wbGFjZWhvbGRlciAudmFsdWU6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICB9XG5cbiAgICAgICAgd2F0dC1maWVsZCBsYWJlbCAud2F0dC1maWVsZC13cmFwcGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyPlxuICAgICAgQGlmIChzaG93QWN0aW9ucygpKSB7XG4gICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXItYWN0aW9ucz5cbiAgICAgICAgICA8d2F0dC1idXR0b24gdmFyaWFudD1cInRleHRcIiAoY2xpY2spPVwiY2xlYXJJbnB1dCgpXCIgaWNvbj1cInJlbW92ZVwiPnt7XG4gICAgICAgICAgICBpbnRsLmNsZWFyXG4gICAgICAgICAgfX08L3dhdHQtYnV0dG9uPlxuICAgICAgICAgIDx3YXR0LWJ1dHRvbiB2YXJpYW50PVwicHJpbWFyeVwiIG1hdERhdGVSYW5nZVBpY2tlckFwcGx5Pnt7IGludGwuc2VsZWN0IH19PC93YXR0LWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXItYWN0aW9ucz5cbiAgICAgIH1cbiAgICA8L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgIDx3YXR0LWZpZWxkIFtjb250cm9sXT1cImZvcm1Db250cm9sKClcIiBbY2hpcE1vZGVdPVwidHJ1ZVwiPlxuICAgICAgPHdhdHQtbWVudS1jaGlwXG4gICAgICAgIGhhc1BvcHVwPVwiZGlhbG9nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwidmFsdWUoKT8uc3RhcnQgJiYgdmFsdWUoKT8uZW5kID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgW29wZW5lZF09XCJwaWNrZXIub3BlbmVkXCJcbiAgICAgICAgKHRvZ2dsZSk9XCJwaWNrZXIub3BlbigpXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0XG4gICAgICAgICAgI2lucHV0XG4gICAgICAgICAgY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICBzZXBhcmF0b3I9XCJcIlxuICAgICAgICAgIFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBtYXRTdGFydERhdGVcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlKCkgPyB2YWx1ZSgpPy5zdGFydCA6IG51bGxcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwidXBkYXRlU3RhcnREYXRlKCRldmVudC52YWx1ZSEpXCJcbiAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cInNob3dBY3Rpb25zKCkgJiYgb25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlID8gaW5wdXQudmFsdWUhIDogbnVsbClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBtYXRFbmREYXRlXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpID8gdmFsdWUoKT8uZW5kIDogbnVsbFwiXG4gICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJ1cGRhdGVFbmREYXRlKCRldmVudC52YWx1ZSEpXCJcbiAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudC52YWx1ZSA/IGlucHV0LnZhbHVlISA6IG51bGwpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICBAaWYgKHZhbHVlKCk/LnN0YXJ0ICYmIHZhbHVlKCk/LmVuZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgIHt7IHZhbHVlKCkgfCB3YXR0RGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC93YXR0LW1lbnUtY2hpcD5cbiAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgICAgIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1lcnJvclwiIHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgIDwvd2F0dC1maWVsZD5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuaGFzLXBsYWNlaG9sZGVyXSc6ICdwbGFjZWhvbGRlcigpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGVSYW5nZUNoaXBDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgaW50bCA9IGluamVjdChXYXR0RGF0ZXBpY2tlckludGxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkYXRlQWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG5cbiAgZGlzYWJsZWQgPSBtb2RlbChmYWxzZSk7XG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICB2YWx1ZSA9IG1vZGVsPFdhdHRSYW5nZTxEYXRlPiB8IG51bGw+KG51bGwpO1xuICBmb3JtQ29udHJvbCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Db250cm9sPigpO1xuICBwbGFjZWhvbGRlciA9IGlucHV0KHRydWUpO1xuICBzaG93QWN0aW9ucyA9IGlucHV0KGZhbHNlKTtcbiAgY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3kgPSBpbnB1dDwoZGF0ZTogRGF0ZSB8IG51bGwpID0+IERhdGVSYW5nZTxEYXRlPj4oKTtcblxuICBzZWxlY3Rpb25DaGFuZ2UgPSBvdXRwdXQ8V2F0dFJhbmdlPERhdGU+IHwgbnVsbD4oKTtcblxuICBzZWxlY3Rpb25TdHJhdGVneSgpIHtcbiAgICBjb25zdCBjdXN0b21TdHJhdGVneSA9IHRoaXMuY3VzdG9tU2VsZWN0aW9uU3RyYXRlZ3koKTtcbiAgICBjb25zdCBzdHJhdGVneSA9IG5ldyBXYXR0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3kodGhpcy5kYXRlQWRhcHRlcik7XG4gICAgaWYgKGN1c3RvbVN0cmF0ZWd5KSBzdHJhdGVneS5zZXRDdXN0b21TZWxlY3Rpb25TdHJhdGVneShjdXN0b21TdHJhdGVneSk7XG4gICAgcmV0dXJuIHN0cmF0ZWd5O1xuICB9XG5cbiAgY2xlYXJJbnB1dCgpIHtcbiAgICB0aGlzLnZhbHVlLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG51bGwpO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2UodmFsdWU6IFdhdHRSYW5nZTxEYXRlPiB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgKHZhbHVlPy5zdGFydCAmJiB2YWx1ZT8uZW5kKSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU3RhcnREYXRlKHN0YXJ0RGF0ZTogRGF0ZSkge1xuICAgIHRoaXMudmFsdWUuc2V0KHsgc3RhcnQ6IHN0YXJ0RGF0ZSwgZW5kOiBudWxsIH0pO1xuICB9XG5cbiAgdXBkYXRlRW5kRGF0ZShlbmREYXRlOiBEYXRlIHwgbnVsbCkge1xuICAgIGNvbnN0IGRhdGVSYW5nZSA9IHRoaXMudmFsdWUoKTtcbiAgICBpZiAoZGF0ZVJhbmdlKSB7XG4gICAgICB0aGlzLnZhbHVlLnNldCh7IHN0YXJ0OiBkYXRlUmFuZ2Uuc3RhcnQsIGVuZDogZW5kRGF0ZSB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -16,7 +16,7 @@
16
16
  * limitations under the License.
17
17
  */
18
18
  //#endregion
19
- import { Component, EventEmitter, Input, Output } from '@angular/core';
19
+ import { Component, input, model, output } from '@angular/core';
20
20
  import { WattChipComponent } from './watt-chip.component';
21
21
  import * as i0 from "@angular/core";
22
22
  function isFirstRender() {
@@ -29,28 +29,28 @@ function isFirstRender() {
29
29
  };
30
30
  }
31
31
  export class WattFilterChipComponent {
32
- selected = false;
33
- disabled = false;
34
- name;
35
- value;
36
- choice;
37
- selectionChange = new EventEmitter();
32
+ selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : []));
33
+ disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
34
+ name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
35
+ value = model(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
36
+ choice = input(...(ngDevMode ? [undefined, { debugName: "choice" }] : []));
37
+ selectionChange = output();
38
38
  isFirstRender = isFirstRender();
39
39
  onChange(input) {
40
- const value = this.choice !== undefined ? input.value : input.checked;
40
+ const value = this.choice() !== undefined ? input.value : input.checked;
41
41
  this.selectionChange.emit(value);
42
42
  }
43
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: WattFilterChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: WattFilterChipComponent, isStandalone: true, selector: "watt-filter-chip", inputs: { selected: "selected", disabled: "disabled", name: "name", value: "value", choice: "choice" }, outputs: { selectionChange: "selectionChange" }, ngImport: i0, template: `
45
- <watt-chip [disabled]="disabled" [selected]="isFirstRender() ? selected : input.checked">
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: WattFilterChipComponent, isStandalone: true, selector: "watt-filter-chip", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, choice: { classPropertyName: "choice", publicName: "choice", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", value: "valueChange", selectionChange: "selectionChange" }, ngImport: i0, template: `
45
+ <watt-chip [disabled]="disabled()" [selected]="isFirstRender() ? selected() : input.checked">
46
46
  <input
47
47
  #input
48
48
  class="cdk-visually-hidden"
49
- [type]="choice === undefined ? 'checkbox' : 'radio'"
50
- [name]="name"
51
- [value]="value"
52
- [checked]="selected"
53
- [disabled]="disabled"
49
+ [type]="choice() === undefined ? 'checkbox' : 'radio'"
50
+ [name]="name()"
51
+ [value]="value()"
52
+ [checked]="selected()"
53
+ [disabled]="disabled()"
54
54
  (change)="onChange(input)"
55
55
  />
56
56
  <ng-content />
@@ -63,32 +63,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
63
63
  imports: [WattChipComponent],
64
64
  selector: 'watt-filter-chip',
65
65
  template: `
66
- <watt-chip [disabled]="disabled" [selected]="isFirstRender() ? selected : input.checked">
66
+ <watt-chip [disabled]="disabled()" [selected]="isFirstRender() ? selected() : input.checked">
67
67
  <input
68
68
  #input
69
69
  class="cdk-visually-hidden"
70
- [type]="choice === undefined ? 'checkbox' : 'radio'"
71
- [name]="name"
72
- [value]="value"
73
- [checked]="selected"
74
- [disabled]="disabled"
70
+ [type]="choice() === undefined ? 'checkbox' : 'radio'"
71
+ [name]="name()"
72
+ [value]="value()"
73
+ [checked]="selected()"
74
+ [disabled]="disabled()"
75
75
  (change)="onChange(input)"
76
76
  />
77
77
  <ng-content />
78
78
  </watt-chip>
79
79
  `,
80
80
  }]
81
- }], propDecorators: { selected: [{
82
- type: Input
83
- }], disabled: [{
84
- type: Input
85
- }], name: [{
86
- type: Input
87
- }], value: [{
88
- type: Input
89
- }], choice: [{
90
- type: Input
91
- }], selectionChange: [{
92
- type: Output
93
- }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1maWx0ZXItY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9jaGlwL3dhdHQtZmlsdGVyLWNoaXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsU0FBUyxhQUFhO0lBQ3BCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQztJQUN6QixPQUFPLEdBQUcsRUFBRTtRQUNWLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFxQkQsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsSUFBSSxDQUFVO0lBQ2QsS0FBSyxDQUFLO0lBQ1YsTUFBTSxDQUFVO0lBQ2YsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDbEQsYUFBYSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBRWhDLFFBQVEsQ0FBQyxLQUF1QjtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO3VHQVpVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHFPQWhCeEI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsNERBaEJTLGlCQUFpQjs7MkZBa0JoQix1QkFBdUI7a0JBbkJuQyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0Y7OEJBRVUsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBXYXR0Q2hpcENvbXBvbmVudCB9IGZyb20gJy4vd2F0dC1jaGlwLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGlzRmlyc3RSZW5kZXIoKSB7XG4gIGxldCBpc0ZpcnN0UmVuZGVyID0gdHJ1ZTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAoIWlzRmlyc3RSZW5kZXIpIHJldHVybiBmYWxzZTtcbiAgICBpc0ZpcnN0UmVuZGVyID0gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG59XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbV2F0dENoaXBDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3dhdHQtZmlsdGVyLWNoaXAnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWNoaXAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3NlbGVjdGVkXT1cImlzRmlyc3RSZW5kZXIoKSA/IHNlbGVjdGVkIDogaW5wdXQuY2hlY2tlZFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICBbdHlwZV09XCJjaG9pY2UgPT09IHVuZGVmaW5lZCA/ICdjaGVja2JveCcgOiAncmFkaW8nXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZShpbnB1dClcIlxuICAgICAgLz5cbiAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC93YXR0LWNoaXA+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRGaWx0ZXJDaGlwQ29tcG9uZW50PFQgPSBzdHJpbmc+IHtcbiAgQElucHV0KCkgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWU/OiBUO1xuICBASW5wdXQoKSBjaG9pY2U/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIGlzRmlyc3RSZW5kZXIgPSBpc0ZpcnN0UmVuZGVyKCk7XG5cbiAgb25DaGFuZ2UoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY2hvaWNlICE9PSB1bmRlZmluZWQgPyBpbnB1dC52YWx1ZSA6IGlucHV0LmNoZWNrZWQ7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSBhcyBUKTtcbiAgfVxufVxuIl19
81
+ }] });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1maWx0ZXItY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9jaGlwL3dhdHQtZmlsdGVyLWNoaXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxZQUFZO0FBQ1osT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQsU0FBUyxhQUFhO0lBQ3BCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQztJQUN6QixPQUFPLEdBQUcsRUFBRTtRQUNWLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUM7QUFxQkQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixJQUFJLEdBQUcsS0FBSywwREFBVSxDQUFDO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLDJEQUFLLENBQUM7SUFDbkIsTUFBTSxHQUFHLEtBQUssNERBQVUsQ0FBQztJQUN6QixlQUFlLEdBQUcsTUFBTSxFQUFLLENBQUM7SUFDOUIsYUFBYSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBRWhDLFFBQVEsQ0FBQyxLQUF1QjtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQVUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7dUdBWlUsdUJBQXVCOzJGQUF2Qix1QkFBdUIscXlCQWhCeEI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsNERBaEJTLGlCQUFpQjs7MkZBa0JoQix1QkFBdUI7a0JBbkJuQyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUM1QixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFdhdHRDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi93YXR0LWNoaXAuY29tcG9uZW50JztcblxuZnVuY3Rpb24gaXNGaXJzdFJlbmRlcigpIHtcbiAgbGV0IGlzRmlyc3RSZW5kZXIgPSB0cnVlO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmICghaXNGaXJzdFJlbmRlcikgcmV0dXJuIGZhbHNlO1xuICAgIGlzRmlyc3RSZW5kZXIgPSBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtXYXR0Q2hpcENvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAnd2F0dC1maWx0ZXItY2hpcCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHdhdHQtY2hpcCBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiIFtzZWxlY3RlZF09XCJpc0ZpcnN0UmVuZGVyKCkgPyBzZWxlY3RlZCgpIDogaW5wdXQuY2hlY2tlZFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICBbdHlwZV09XCJjaG9pY2UoKSA9PT0gdW5kZWZpbmVkID8gJ2NoZWNrYm94JyA6ICdyYWRpbydcIlxuICAgICAgICBbbmFtZV09XCJuYW1lKClcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoaW5wdXQpXCJcbiAgICAgIC8+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvd2F0dC1jaGlwPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0RmlsdGVyQ2hpcENvbXBvbmVudDxUID0gc3RyaW5nPiB7XG4gIHNlbGVjdGVkID0gaW5wdXQoZmFsc2UpO1xuICBkaXNhYmxlZCA9IG1vZGVsKGZhbHNlKTtcbiAgbmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgdmFsdWUgPSBtb2RlbDxUPigpO1xuICBjaG9pY2UgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHNlbGVjdGlvbkNoYW5nZSA9IG91dHB1dDxUPigpO1xuICBpc0ZpcnN0UmVuZGVyID0gaXNGaXJzdFJlbmRlcigpO1xuXG4gIG9uQ2hhbmdlKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNob2ljZSgpICE9PSB1bmRlZmluZWQgPyBpbnB1dC52YWx1ZSA6IGlucHV0LmNoZWNrZWQ7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh2YWx1ZSBhcyBUKTtcbiAgfVxufVxuIl19