@energycap/components 0.39.35 → 0.39.36-ECAP-26840-date-input.20241118-1204
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components.module.mjs +33 -16
- package/esm2020/lib/controls/calendar/calendar-item.component.mjs +61 -0
- package/esm2020/lib/controls/calendar/calendar.component.mjs +202 -0
- package/esm2020/lib/controls/calendar/calendar.types.mjs +4 -0
- package/esm2020/lib/controls/date-input/date-input.component.mjs +253 -0
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +1 -1
- package/esm2020/lib/controls/form-control/form-control.component.mjs +29 -11
- package/esm2020/lib/core/date-time-helper.mjs +62 -1
- package/esm2020/lib/display/table/table-detail-row.component.mjs +5 -4
- package/esm2020/lib/display/table/table.component.mjs +5 -4
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +9 -8
- package/esm2020/public-api.mjs +4 -1
- package/fesm2015/energycap-components.mjs +5730 -5140
- package/fesm2015/energycap-components.mjs.map +1 -1
- package/fesm2020/energycap-components.mjs +5749 -5166
- package/fesm2020/energycap-components.mjs.map +1 -1
- package/lib/components.module.d.ts +11 -7
- package/lib/controls/calendar/calendar-item.component.d.ts +17 -0
- package/lib/controls/calendar/calendar.component.d.ts +54 -0
- package/lib/controls/calendar/calendar.types.d.ts +7 -0
- package/lib/controls/date-input/date-input.component.d.ts +79 -0
- package/lib/controls/form-control/form-control.component.d.ts +10 -5
- package/lib/core/date-time-helper.d.ts +26 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
import { A11yModule } from '@angular/cdk/a11y';
|
2
2
|
import { OverlayModule } from '@angular/cdk/overlay';
|
3
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
3
4
|
import { CommonModule } from '@angular/common';
|
4
5
|
import { NgModule } from '@angular/core';
|
5
6
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
@@ -8,13 +9,21 @@ import { TranslateModule } from '@ngx-translate/core';
|
|
8
9
|
import { BannerComponent } from './controls/banner/banner.component';
|
9
10
|
import { ButtonComponent } from './controls/button/button.component';
|
10
11
|
import { CopyButtonDirective } from './controls/button/copy-button.directive';
|
12
|
+
import { CopyTableButtonDirective } from './controls/button/copy-table-button.directive';
|
13
|
+
import { CalendarItemComponent } from './controls/calendar/calendar-item.component';
|
14
|
+
import { CalendarComponent } from './controls/calendar/calendar.component';
|
11
15
|
import { CheckboxComponent } from './controls/checkbox/checkbox.component';
|
12
16
|
import { CollapsibleToggleComponent } from './controls/collapsible-toggle/collapsible-toggle.component';
|
13
17
|
import { ComboboxComponent } from './controls/combobox/combobox.component';
|
18
|
+
import { DateInputComponent } from './controls/date-input/date-input.component';
|
14
19
|
import { DropdownComponent } from './controls/dropdown/dropdown.component';
|
15
20
|
import { FileUploadComponent } from './controls/file-upload/file-upload.component';
|
21
|
+
import { FormControlLabelComponent } from './controls/form-control-label/form-control-label.component';
|
16
22
|
import { FormControlComponent } from './controls/form-control/form-control.component';
|
17
23
|
import { FormGroupComponent } from './controls/form-group/form-group.component';
|
24
|
+
import { HelpPopoverComponent } from './controls/help-popover/help-popover.component';
|
25
|
+
import { ItemPickerComponent } from './controls/item-picker/item-picker.component';
|
26
|
+
import { LinkButtonComponent } from './controls/link-button/link-button.component';
|
18
27
|
import { MenuComponent } from './controls/menu/menu.component';
|
19
28
|
import { NavItemActiveDirective } from './controls/navigation/nav-item-active.directive';
|
20
29
|
import { NumericboxComponent } from './controls/numericbox/numericbox.component';
|
@@ -48,6 +57,9 @@ import { TableComponent } from './display/table/table.component';
|
|
48
57
|
import { TagsComponent } from './display/tags/tags.component';
|
49
58
|
import { ToastComponent } from './display/toast/toast/toast.component';
|
50
59
|
import { ToasterComponent } from './display/toast/toaster/toaster.component';
|
60
|
+
import { TooltipDirective } from './display/tooltip-directive/tooltip.directive';
|
61
|
+
import { TooltipComponent } from './display/tooltip/tooltip.component';
|
62
|
+
import { TourComponent } from './display/tour/tour.component';
|
51
63
|
import { TreeComponent } from './display/tree/tree.component';
|
52
64
|
import { ViewOverlayComponent } from './display/view-overlay/view-overlay.component';
|
53
65
|
import { ClickAreaForDirective } from './shared/directives/click-area-for/click-area-for.directive';
|
@@ -64,14 +76,6 @@ import { PageViewComponent } from './shared/page/page-view/page-view.component';
|
|
64
76
|
import { MockDateDisplayPipe } from './shared/testing/public-mocks.spec';
|
65
77
|
import { WizardButtonsComponent } from './shared/wizard/wizard-buttons/wizard-buttons.component';
|
66
78
|
import { WizardProgressComponent } from './shared/wizard/wizard-progress/wizard-progress.component';
|
67
|
-
import { FormControlLabelComponent } from './controls/form-control-label/form-control-label.component';
|
68
|
-
import { ItemPickerComponent } from './controls/item-picker/item-picker.component';
|
69
|
-
import { HelpPopoverComponent } from './controls/help-popover/help-popover.component';
|
70
|
-
import { LinkButtonComponent } from './controls/link-button/link-button.component';
|
71
|
-
import { TooltipComponent } from './display/tooltip/tooltip.component';
|
72
|
-
import { TourComponent } from './display/tour/tour.component';
|
73
|
-
import { CopyTableButtonDirective } from './controls/button/copy-table-button.directive';
|
74
|
-
import { TooltipDirective } from './display/tooltip-directive/tooltip.directive';
|
75
79
|
import * as i0 from "@angular/core";
|
76
80
|
export class ComponentsModule {
|
77
81
|
/**
|
@@ -156,13 +160,17 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
156
160
|
TooltipComponent,
|
157
161
|
TourComponent,
|
158
162
|
CopyTableButtonDirective,
|
159
|
-
TooltipDirective
|
163
|
+
TooltipDirective,
|
164
|
+
CalendarComponent,
|
165
|
+
CalendarItemComponent,
|
166
|
+
DateInputComponent], imports: [CommonModule,
|
160
167
|
FormsModule,
|
161
168
|
ReactiveFormsModule,
|
162
169
|
RouterModule,
|
163
170
|
TranslateModule,
|
164
171
|
A11yModule,
|
165
|
-
OverlayModule
|
172
|
+
OverlayModule,
|
173
|
+
ScrollingModule], exports: [ButtonComponent,
|
166
174
|
TabsComponent,
|
167
175
|
TextboxComponent,
|
168
176
|
NavItemActiveDirective,
|
@@ -223,7 +231,9 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
223
231
|
TooltipComponent,
|
224
232
|
TourComponent,
|
225
233
|
CopyTableButtonDirective,
|
226
|
-
TooltipDirective
|
234
|
+
TooltipDirective,
|
235
|
+
CalendarComponent,
|
236
|
+
DateInputComponent] });
|
227
237
|
ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, providers: [
|
228
238
|
FormGroupHelper,
|
229
239
|
DialogService,
|
@@ -239,7 +249,8 @@ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
|
|
239
249
|
RouterModule,
|
240
250
|
TranslateModule,
|
241
251
|
A11yModule,
|
242
|
-
OverlayModule
|
252
|
+
OverlayModule,
|
253
|
+
ScrollingModule] });
|
243
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
|
244
255
|
type: NgModule,
|
245
256
|
args: [{
|
@@ -311,7 +322,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
311
322
|
TooltipComponent,
|
312
323
|
TourComponent,
|
313
324
|
CopyTableButtonDirective,
|
314
|
-
TooltipDirective
|
325
|
+
TooltipDirective,
|
326
|
+
CalendarComponent,
|
327
|
+
CalendarItemComponent,
|
328
|
+
DateInputComponent
|
315
329
|
],
|
316
330
|
imports: [
|
317
331
|
CommonModule,
|
@@ -320,7 +334,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
320
334
|
RouterModule,
|
321
335
|
TranslateModule,
|
322
336
|
A11yModule,
|
323
|
-
OverlayModule
|
337
|
+
OverlayModule,
|
338
|
+
ScrollingModule
|
324
339
|
],
|
325
340
|
providers: [
|
326
341
|
FormGroupHelper,
|
@@ -394,8 +409,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
394
409
|
TooltipComponent,
|
395
410
|
TourComponent,
|
396
411
|
CopyTableButtonDirective,
|
397
|
-
TooltipDirective
|
412
|
+
TooltipDirective,
|
413
|
+
CalendarComponent,
|
414
|
+
DateInputComponent
|
398
415
|
]
|
399
416
|
}]
|
400
417
|
}] });
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFB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bUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29weUJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvYnV0dG9uL2NvcHktYnV0dG9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29sbGFwc2libGUtdG9nZ2xlL2NvbGxhcHNpYmxlLXRvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtLWFjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOdW1lcmljYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9udW1lcmljYm94L251bWVyaWNib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEJhckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy1ncm91cC9kaWFsb2ctZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJdGVtRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9pdGVtLWRpc3BsYXkvaXRlbS1kaXNwbGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEpzb25EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BsYXNoQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9zZWFyY2hhYmxlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlRGV0YWlsUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLWRldGFpbC1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtbG9ja2VkLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItaGVhZGVyLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1zZWxlY3RhYmxlLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhZ3MvdGFncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b2FzdC90b2FzdC90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvYXN0L3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrQXJlYUZvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcy9pZi12aWV3cG9ydC13aWR0aC9pZi12aWV3cG9ydC13aWR0aC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRUZXh0UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvaGlnaGxpZ2h0LXRleHQucGlwZSc7XHJcbmltcG9ydCB7IFJlbGF0aXZlRGF0ZVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3JlbGF0aXZlLWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IFJvd0NvdW50UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcm93LWNvdW50LnBpcGUnO1xyXG5pbXBvcnQgeyBUaW1lRGlzcGxheVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3RpbWUtZGlzcGxheS5waXBlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi9zaGFyZWQvZm9ybS1ncm91cC5oZWxwZXInO1xyXG5pbXBvcnQgeyBQYWdlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wYWdlL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3BhZ2UvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2NrRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvdGVzdGluZy9wdWJsaWMtbW9ja3Muc3BlYyc7XHJcbmltcG9ydCB7IFdpemFyZEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLWJ1dHRvbnMvd2l6YXJkLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2l6YXJkUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLXByb2dyZXNzL3dpemFyZC1wcm9ncmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEl0ZW1QaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2l0ZW0tcGlja2VyL2l0ZW0tcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlbHBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpbmtCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xpbmstYnV0dG9uL2xpbmstYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvdXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcHlUYWJsZUJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vY29udHJvbHMvYnV0dG9uL2NvcHktdGFibGUtYnV0dG9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdG9vbHRpcC1kaXJlY3RpdmUvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c01vZHVsZUNvbmZpZyA9IHtcclxuICB0cmFja2VyOiBQcm92aWRlclxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSxcclxuICAgIFNwaW5uZXJDb21wb25lbnQsXHJcbiAgICBWaWV3T3ZlcmxheUNvbXBvbmVudCxcclxuICAgIEJhbm5lckNvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZVRhYmxlRGlyZWN0aXZlLFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENvbmZpcm1Db21wb25lbnQsXHJcbiAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUmFkaW9CdXR0b25Db21wb25lbnQsXHJcbiAgICBDaGVja2JveENvbXBvbmVudCxcclxuICAgIE51bWVyaWNib3hDb21wb25lbnQsXHJcbiAgICBBdmF0YXJDb21wb25lbnQsXHJcbiAgICBBcHBCYXJDb21wb25lbnQsXHJcbiAgICBTcGxhc2hDb21wb25lbnQsXHJcbiAgICBJZlZpZXdwb3J0V2lkdGhEaXJlY3RpdmUsXHJcbiAgICBDbGlja0FyZWFGb3JEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJIZWFkZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZURldGFpbFJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJvd0NvdW50UGlwZSxcclxuICAgIENvcHlCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUYWdzQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJdGVtRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIERpYWxvZ0dyb3VwQ29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIEpzb25EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVG9hc3RDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgUGFnZVZpZXdDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnQsXHJcbiAgICBXaXphcmRQcm9ncmVzc0NvbXBvbmVudCxcclxuICAgIFdpemFyZEJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBIaWVyYXJjaHlUcmVlQ29tcG9uZW50LFxyXG4gICAgVHJlZUNvbXBvbmVudCxcclxuICAgIFJlbGF0aXZlRGF0ZVBpcGUsXHJcbiAgICBSZXNpemFibGVDb21wb25lbnQsXHJcbiAgICBIaWdobGlnaHRUZXh0UGlwZSxcclxuICAgIEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQsXHJcbiAgICBJdGVtUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSGVscFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBMaW5rQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIFRvdXJDb21wb25lbnQsXHJcbiAgICBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBBMTF5TW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtR3JvdXBIZWxwZXIsXHJcbiAgICBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgVGltZURpc3BsYXlQaXBlLFxyXG4gICAgTW9ja0RhdGVEaXNwbGF5UGlwZSxcclxuICAgIFJvd0NvdW50UGlwZSxcclxuICAgIFJlbGF0aXZlRGF0ZVBpcGUsXHJcbiAgICBIaWdobGlnaHRUZXh0UGlwZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRleHRib3hDb21wb25lbnQsXHJcbiAgICBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIFZpZXdPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgQmFubmVyQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENvbmZpcm1Db21wb25lbnQsXHJcbiAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgTnVtZXJpY2JveENvbXBvbmVudCxcclxuICAgIEF2YXRhckNvbXBvbmVudCxcclxuICAgIEFwcEJhckNvbXBvbmVudCxcclxuICAgIFNwbGFzaENvbXBvbmVudCxcclxuICAgIElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSxcclxuICAgIENsaWNrQXJlYUZvckRpcmVjdGl2ZSxcclxuICAgIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIENvcHlCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUYWdzQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJdGVtRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIERpYWxvZ0dyb3VwQ29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIEpzb25EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVG9hc3RDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgUGFnZVZpZXdDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnQsXHJcbiAgICBXaXphcmRQcm9ncmVzc0NvbXBvbmVudCxcclxuICAgIFdpemFyZEJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBIaWVyYXJjaHlUcmVlQ29tcG9uZW50LFxyXG4gICAgVHJlZUNvbXBvbmVudCxcclxuICAgIFJlbGF0aXZlRGF0ZVBpcGUsXHJcbiAgICBSZXNpemFibGVDb21wb25lbnQsXHJcbiAgICBIaWdobGlnaHRUZXh0UGlwZSxcclxuICAgIEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQsXHJcbiAgICBJdGVtUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSGVscFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBMaW5rQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIFRvdXJDb21wb25lbnQsXHJcbiAgICBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50c01vZHVsZSB7XHJcbiAgLyoqXHJcbiAgICogUHJvdmlkaW5nIHNlcnZpY2VzIHRocm91Z2ggdGhlIGZvclJvb3QgcGF0dGVybiBoZXJlIGVuc3VyZXMgdGhhdCB0aGUgY29tcG9uZW50cyBtb2R1bGUgYW5kIHRoZSBpbXBvcnRpbmdcclxuICAgKiBtb2R1bGUgdXNlIHRoZSBzYW1lIHNpbmdsZXRvbiBzZXJ2aWNlIGluc3RhbmNlLlxyXG4gICAqIEZvciBtb3JlIGluZm86IGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zaW5nbGV0b24tc2VydmljZXMjdGhlLWZvcnJvb3QtcGF0dGVyblxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IENvbXBvbmVudHNNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENvbXBvbmVudHNNb2R1bGU+e1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IENvbXBvbmVudHNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIGNvbmZpZy50cmFja2VyXHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUF1S3BHLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEI7UUFDbEQsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULE1BQU0sQ0FBQyxPQUFPO2FBQ2Y7U0FDRixDQUFBO0lBQ0gsQ0FBQzs7NkdBYlUsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBL0p6QixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsdUJBQXVCO1FBQ3ZCLGFBQWE7UUFDYixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZixlQUFlO1FBQ2YsZUFBZTtRQUNmLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2Qiw2QkFBNkI7UUFDN0IsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQiwyQkFBMkI7UUFDM0IsZ0JBQWdCO1FBQ2hCLHdCQUF3QjtRQUN4QixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLHdCQUF3QjtRQUN4QixhQUFhO1FBQ2Isb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsMkJBQTJCO1FBQzNCLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQix5QkFBeUI7UUFDekIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYix3QkFBd0I7UUFDeEIsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixXQUFXO1FBQ2IsbUJBQW1CO1FBQ2pCLFlBQVk7UUFDWixlQUFlO1FBQ2YsVUFBVTtRQUNWLGFBQWE7UUFDYixlQUFlLGFBYWYsZUFBZTtRQUNmLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLGdCQUFnQjtRQUNoQixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLGVBQWU7UUFDZixlQUFlO1FBQ2Ysd0JBQXdCO1FBQ3hCLHFCQUFxQjtRQUNyQiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLDZCQUE2QjtRQUM3QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsd0JBQXdCO1FBQ3hCLGFBQWE7UUFDYixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIseUJBQXlCO1FBQ3pCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2Isd0JBQXdCO1FBQ3hCLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIsa0JBQWtCOzhHQUdULGdCQUFnQixhQTdFaEI7UUFDVCxlQUFlO1FBQ2YsYUFBYTtRQUNiLGVBQWU7UUFDZixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsaUJBQWlCO0tBQ2xCLFlBbEJDLFlBQVk7UUFDWixXQUFXO1FBQ2IsbUJBQW1CO1FBQ2pCLFlBQVk7UUFDWixlQUFlO1FBQ2YsVUFBVTtRQUNWLGFBQWE7UUFDYixlQUFlOzJGQStFTixnQkFBZ0I7a0JBaks1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3dCQUN4QixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDYixtQkFBbUI7d0JBQ2pCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcHlCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9jb3B5LWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9jb3B5LXRhYmxlLWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29sbGFwc2libGUtdG9nZ2xlL2NvbGxhcHNpYmxlLXRvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Zvcm0tY29udHJvbC1sYWJlbC9mb3JtLWNvbnRyb2wtbGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGVscFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2hlbHAtcG9wb3Zlci9oZWxwLXBvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSXRlbVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvaXRlbS1waWNrZXIvaXRlbS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlua0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGluay1idXR0b24vbGluay1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbWVudS9tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL25hdmlnYXRpb24vbmF2LWl0ZW0tYWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE51bWVyaWNib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL251bWVyaWNib3gvbnVtZXJpY2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RhYnMvdGFicy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2FwcC1iYXIvYXBwLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dHcm91cENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLWdyb3VwL2RpYWxvZy1ncm91cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpZXJhcmNoeVRyZWVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEl0ZW1EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2l0ZW0tZGlzcGxheS9pdGVtLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSnNvbkRpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvanNvbi1kaXNwbGF5L2pzb24tZGlzcGxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9yZXNpemFibGUtdGFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3NlYXJjaGFibGUtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVEZXRhaWxSb3dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUxvY2tlZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1sb2NrZWQtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLW1hc3Rlci1oZWFkZXItcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlTWFzdGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLW1hc3Rlci1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLXNlbGVjdGFibGUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvYXN0L3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdG9vbHRpcC1kaXJlY3RpdmUvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb3VyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvdXIvdG91ci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrQXJlYUZvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcy9pZi12aWV3cG9ydC13aWR0aC9pZi12aWV3cG9ydC13aWR0aC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRUZXh0UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvaGlnaGxpZ2h0LXRleHQucGlwZSc7XHJcbmltcG9ydCB7IFJlbGF0aXZlRGF0ZVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3JlbGF0aXZlLWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IFJvd0NvdW50UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcm93LWNvdW50LnBpcGUnO1xyXG5pbXBvcnQgeyBUaW1lRGlzcGxheVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3RpbWUtZGlzcGxheS5waXBlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi9zaGFyZWQvZm9ybS1ncm91cC5oZWxwZXInO1xyXG5pbXBvcnQgeyBQYWdlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wYWdlL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3BhZ2UvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2NrRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvdGVzdGluZy9wdWJsaWMtbW9ja3Muc3BlYyc7XHJcbmltcG9ydCB7IFdpemFyZEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLWJ1dHRvbnMvd2l6YXJkLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2l6YXJkUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLXByb2dyZXNzL3dpemFyZC1wcm9ncmVzcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c01vZHVsZUNvbmZpZyA9IHtcclxuICB0cmFja2VyOiBQcm92aWRlclxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSxcclxuICAgIFNwaW5uZXJDb21wb25lbnQsXHJcbiAgICBWaWV3T3ZlcmxheUNvbXBvbmVudCxcclxuICAgIEJhbm5lckNvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZVRhYmxlRGlyZWN0aXZlLFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENvbmZpcm1Db21wb25lbnQsXHJcbiAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUmFkaW9CdXR0b25Db21wb25lbnQsXHJcbiAgICBDaGVja2JveENvbXBvbmVudCxcclxuICAgIE51bWVyaWNib3hDb21wb25lbnQsXHJcbiAgICBBdmF0YXJDb21wb25lbnQsXHJcbiAgICBBcHBCYXJDb21wb25lbnQsXHJcbiAgICBTcGxhc2hDb21wb25lbnQsXHJcbiAgICBJZlZpZXdwb3J0V2lkdGhEaXJlY3RpdmUsXHJcbiAgICBDbGlja0FyZWFGb3JEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJIZWFkZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZURldGFpbFJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJvd0NvdW50UGlwZSxcclxuICAgIENvcHlCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUYWdzQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJdGVtRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIERpYWxvZ0dyb3VwQ29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIEpzb25EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVG9hc3RDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgUGFnZVZpZXdDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnQsXHJcbiAgICBXaXphcmRQcm9ncmVzc0NvbXBvbmVudCxcclxuICAgIFdpemFyZEJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBIaWVyYXJjaHlUcmVlQ29tcG9uZW50LFxyXG4gICAgVHJlZUNvbXBvbmVudCxcclxuICAgIFJlbGF0aXZlRGF0ZVBpcGUsXHJcbiAgICBSZXNpemFibGVDb21wb25lbnQsXHJcbiAgICBIaWdobGlnaHRUZXh0UGlwZSxcclxuICAgIEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQsXHJcbiAgICBJdGVtUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSGVscFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBMaW5rQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIFRvdXJDb21wb25lbnQsXHJcbiAgICBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBDYWxlbmRhckl0ZW1Db21wb25lbnQsXHJcbiAgICBEYXRlSW5wdXRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1Hcm91cEhlbHBlcixcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUm93Q291bnRQaXBlLFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERhdGVEaXNwbGF5UGlwZSxcclxuICAgIFRpbWVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxyXG4gICAgQ29weUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFRhZ3NDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIEl0ZW1EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nR3JvdXBDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgSnNvbkRpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUb2FzdENvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVmlld0NvbXBvbmVudCxcclxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcclxuICAgIFdpemFyZFByb2dyZXNzQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIEhpZXJhcmNoeVRyZWVDb21wb25lbnQsXHJcbiAgICBUcmVlQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIFJlc2l6YWJsZUNvbXBvbmVudCxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlLFxyXG4gICAgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCxcclxuICAgIEl0ZW1QaWNrZXJDb21wb25lbnQsXHJcbiAgICBIZWxwUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIExpbmtCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgVG91ckNvbXBvbmVudCxcclxuICAgIENvcHlUYWJsZUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIERhdGVJbnB1dENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUge1xyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGluZyBzZXJ2aWNlcyB0aHJvdWdoIHRoZSBmb3JSb290IHBhdHRlcm4gaGVyZSBlbnN1cmVzIHRoYXQgdGhlIGNvbXBvbmVudHMgbW9kdWxlIGFuZCB0aGUgaW1wb3J0aW5nXHJcbiAgICogbW9kdWxlIHVzZSB0aGUgc2FtZSBzaW5nbGV0b24gc2VydmljZSBpbnN0YW5jZS5cclxuICAgKiBGb3IgbW9yZSBpbmZvOiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvc2luZ2xldG9uLXNlcnZpY2VzI3RoZS1mb3Jyb290LXBhdHRlcm5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlnOiBDb21wb25lbnRzTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxDb21wb25lbnRzTW9kdWxlPntcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBDb21wb25lbnRzTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBjb25maWcudHJhY2tlclxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
2
|
+
import moment from 'moment';
|
3
|
+
import { isCalendarSelectionSingleDate } from './calendar.types';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class CalendarItemComponent {
|
6
|
+
constructor() {
|
7
|
+
this.view = 'day';
|
8
|
+
this.today = false;
|
9
|
+
this.selected = false;
|
10
|
+
this.outsideActiveMonth = false;
|
11
|
+
}
|
12
|
+
ngOnChanges(changes) {
|
13
|
+
if (changes.item || changes.activeDate || changes.selection || changes.view) {
|
14
|
+
if (this.view !== 'day') {
|
15
|
+
this.today = false;
|
16
|
+
this.outsideActiveMonth = false;
|
17
|
+
}
|
18
|
+
else {
|
19
|
+
this.today = moment(this.item?.date).isSame(moment(), 'day');
|
20
|
+
this.outsideActiveMonth = !moment(this.item?.date).isSame(this.activeDate, 'month');
|
21
|
+
}
|
22
|
+
this.selected = this.isSelected(this.item?.date, this.selection, this.view);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
isSelected(date, selection, view) {
|
26
|
+
if (!date || !selection) {
|
27
|
+
return false;
|
28
|
+
}
|
29
|
+
if (isCalendarSelectionSingleDate(this.selection)) {
|
30
|
+
return moment(this.item?.date).isSame(this.selection, view);
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
// TODO ECAP-26841: determine if the item is within the range selection
|
34
|
+
return false;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
CalendarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
39
|
+
CalendarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarItemComponent, selector: "button[ec-calendar-item]", inputs: { item: "item", activeDate: "activeDate", selection: "selection", view: "view" }, host: { properties: { "class.is-today": "this.today", "class.is-selected": "this.selected", "class.is-outside-active-month": "this.outsideActiveMonth" } }, usesOnChanges: true, ngImport: i0, template: '{{item?.label}}', isInline: true, styles: [":host{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent;line-height:1.125rem}:host .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}:host .ec-icon{flex:none}:host .ec-icon+.label{flex:none;margin-left:.25rem}:host.has-badge{padding-right:.0625rem}:host:focus{outline:none;position:relative;z-index:1}:host:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}:host:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}:host:hover:not(:disabled){background-color:var(--ec-background-color-hover)}:host:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}:host:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}:host.is-selected,:host.is-selected:disabled{background-color:var(--ec-background-color-selected);font-weight:700}:host.is-today{text-decoration:underline}:host.is-outside-active-month{color:var(--ec-color-hint-dark)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarItemComponent, decorators: [{
|
41
|
+
type: Component,
|
42
|
+
args: [{ selector: 'button[ec-calendar-item]', template: '{{item?.label}}', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent;line-height:1.125rem}:host .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}:host .ec-icon{flex:none}:host .ec-icon+.label{flex:none;margin-left:.25rem}:host.has-badge{padding-right:.0625rem}:host:focus{outline:none;position:relative;z-index:1}:host:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}:host:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}:host:hover:not(:disabled){background-color:var(--ec-background-color-hover)}:host:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}:host:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}:host.is-selected,:host.is-selected:disabled{background-color:var(--ec-background-color-selected);font-weight:700}:host.is-today{text-decoration:underline}:host.is-outside-active-month{color:var(--ec-color-hint-dark)}\n"] }]
|
43
|
+
}], ctorParameters: function () { return []; }, propDecorators: { item: [{
|
44
|
+
type: Input
|
45
|
+
}], activeDate: [{
|
46
|
+
type: Input
|
47
|
+
}], selection: [{
|
48
|
+
type: Input
|
49
|
+
}], view: [{
|
50
|
+
type: Input
|
51
|
+
}], today: [{
|
52
|
+
type: HostBinding,
|
53
|
+
args: ['class.is-today']
|
54
|
+
}], selected: [{
|
55
|
+
type: HostBinding,
|
56
|
+
args: ['class.is-selected']
|
57
|
+
}], outsideActiveMonth: [{
|
58
|
+
type: HostBinding,
|
59
|
+
args: ['class.is-outside-active-month']
|
60
|
+
}] } });
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY2FsZW5kYXIvY2FsZW5kYXItaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFpRCw2QkFBNkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVFoSCxNQUFNLE9BQU8scUJBQXFCO0lBV2hDO1FBTmdCLFNBQUksR0FBaUIsS0FBSyxDQUFDO1FBRUwsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUNwQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ2QsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBRXpFLENBQUM7SUFFakIsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUMzRSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDckY7WUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVcsRUFBRSxTQUE2QixFQUFFLElBQW1CO1FBQ2hGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2pELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDN0Q7YUFBTTtZQUNMLHVFQUF1RTtZQUN2RSxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7a0hBdENVLHFCQUFxQjtzR0FBckIscUJBQXFCLDJVQUp0QixpQkFBaUI7MkZBSWhCLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSwwQkFBMEIsWUFDMUIsaUJBQWlCLG1CQUVWLHVCQUF1QixDQUFDLE1BQU07MEVBSS9CLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRWdDLEtBQUs7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNZLFFBQVE7c0JBQWhELFdBQVc7dUJBQUMsbUJBQW1CO2dCQUNxQixrQkFBa0I7c0JBQXRFLFdBQVc7dUJBQUMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckl0ZW0sIENhbGVuZGFyU2VsZWN0aW9uLCBDYWxlbmRhclZpZXcsIGlzQ2FsZW5kYXJTZWxlY3Rpb25TaW5nbGVEYXRlIH0gZnJvbSAnLi9jYWxlbmRhci50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2J1dHRvbltlYy1jYWxlbmRhci1pdGVtXScsXHJcbiAgdGVtcGxhdGU6ICd7e2l0ZW0/LmxhYmVsfX0nLFxyXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtPzogQ2FsZW5kYXJJdGVtO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmVEYXRlPzogRGF0ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uPzogQ2FsZW5kYXJTZWxlY3Rpb247XHJcbiAgQElucHV0KCkgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRvZGF5JykgcHVibGljIHRvZGF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpIHB1YmxpYyBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3V0c2lkZS1hY3RpdmUtbW9udGgnKSBwdWJsaWMgb3V0c2lkZUFjdGl2ZU1vbnRoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLml0ZW0gfHwgY2hhbmdlcy5hY3RpdmVEYXRlIHx8IGNoYW5nZXMuc2VsZWN0aW9uIHx8IGNoYW5nZXMudmlldykge1xyXG4gICAgICBpZiAodGhpcy52aWV3ICE9PSAnZGF5Jykge1xyXG4gICAgICAgIHRoaXMudG9kYXkgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm91dHNpZGVBY3RpdmVNb250aCA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9kYXkgPSBtb21lbnQodGhpcy5pdGVtPy5kYXRlKS5pc1NhbWUobW9tZW50KCksICdkYXknKTtcclxuICAgICAgICB0aGlzLm91dHNpZGVBY3RpdmVNb250aCA9ICFtb21lbnQodGhpcy5pdGVtPy5kYXRlKS5pc1NhbWUodGhpcy5hY3RpdmVEYXRlLCAnbW9udGgnKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZCh0aGlzLml0ZW0/LmRhdGUsIHRoaXMuc2VsZWN0aW9uLCB0aGlzLnZpZXcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1NlbGVjdGVkKGRhdGU/OiBEYXRlLCBzZWxlY3Rpb24/OiBDYWxlbmRhclNlbGVjdGlvbiwgdmlldz86IENhbGVuZGFyVmlldyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFkYXRlIHx8ICFzZWxlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZSh0aGlzLnNlbGVjdGlvbikpIHtcclxuICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLml0ZW0/LmRhdGUpLmlzU2FtZSh0aGlzLnNlbGVjdGlvbiwgdmlldyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBUT0RPIEVDQVAtMjY4NDE6IGRldGVybWluZSBpZiB0aGUgaXRlbSBpcyB3aXRoaW4gdGhlIHJhbmdlIHNlbGVjdGlvblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,202 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
2
|
+
import { range } from 'lodash';
|
3
|
+
import moment from 'moment';
|
4
|
+
import { DateTimeHelper } from '../../core/date-time-helper';
|
5
|
+
import { isCalendarSelectionSingleDate } from './calendar.types';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@angular/common";
|
8
|
+
import * as i2 from "./calendar-item.component";
|
9
|
+
export class CalendarComponent {
|
10
|
+
constructor() {
|
11
|
+
this.id = 'calendar';
|
12
|
+
this.selection = null;
|
13
|
+
this.selectionChange = new EventEmitter();
|
14
|
+
this.minDate = DateTimeHelper.minDatePickerDate;
|
15
|
+
this.maxDate = DateTimeHelper.maxDatePickerDate;
|
16
|
+
this.focusOutStart = new EventEmitter();
|
17
|
+
this.focusOutEnd = new EventEmitter();
|
18
|
+
/** Array of calendar items to display in the calendar grid. */
|
19
|
+
this.calendarItems = [];
|
20
|
+
/** Determines the current view mode of the calendar. */
|
21
|
+
this.view = 'day';
|
22
|
+
/** TrackBy function for the calendar items. This avoids re-drawing calendar items if a date is shared between view updates */
|
23
|
+
this.calendarItemTrackByDate = (index, item) => item.date.toISOString();
|
24
|
+
this.disablePreviousButton = false;
|
25
|
+
this.disableNextButton = false;
|
26
|
+
// By default, the active date is today.
|
27
|
+
// This is replaced with the date of the selection if one is provided on init.
|
28
|
+
this.activeDate = new Date();
|
29
|
+
// Using moment here to get the weekday labels so they are localized.
|
30
|
+
this.weekDays = moment.weekdaysShort().map(d => d.slice(0, 1));
|
31
|
+
}
|
32
|
+
ngOnChanges(changes) {
|
33
|
+
if (changes.selection && this.selection) {
|
34
|
+
// Only need to update the view if the selection is out of view.
|
35
|
+
if (isCalendarSelectionSingleDate(this.selection) &&
|
36
|
+
!this.isDateInView(this.selection) &&
|
37
|
+
moment(this.selection).isBetween(this.minDate, this.maxDate, 'day', '[]')) {
|
38
|
+
this.drawCalendar('day', this.selection);
|
39
|
+
}
|
40
|
+
else {
|
41
|
+
// TODO ECAP-26841: determine the active date for a range selection and draw the calendar
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
ngOnInit() {
|
46
|
+
if (!this.calendarItems.length) {
|
47
|
+
this.drawCalendar('day');
|
48
|
+
}
|
49
|
+
}
|
50
|
+
onItemSelected(item) {
|
51
|
+
if (this.view === 'day') {
|
52
|
+
this.selection = item.date;
|
53
|
+
this.selectionChange.emit(this.selection);
|
54
|
+
}
|
55
|
+
if (this.view === 'month') {
|
56
|
+
this.drawCalendar('day', item.date);
|
57
|
+
}
|
58
|
+
if (this.view === 'year') {
|
59
|
+
this.drawCalendar('month', item.date);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
onNextClick() {
|
63
|
+
// If we're in day view, we're incrementing by month
|
64
|
+
// In both month and year views we're incrementing by year
|
65
|
+
// In year view, we're moving by 16 years at a time
|
66
|
+
const unit = this.view === 'day' ? 'month' : 'year';
|
67
|
+
// In year view, we're moving by 16 years at a time. Otherwise we're just moving by 1 month/year.
|
68
|
+
const count = this.view === 'year' ? 16 : 1;
|
69
|
+
const goToDate = moment(this.activeDate).add(count, unit).toDate();
|
70
|
+
this.drawCalendar(this.view, goToDate);
|
71
|
+
}
|
72
|
+
onPreviousClick() {
|
73
|
+
// If we're in day view, we're incrementing by month
|
74
|
+
// In both month and year views we're incrementing years
|
75
|
+
const unit = this.view === 'day' ? 'month' : 'year';
|
76
|
+
// In year view, we're moving by 16 years at a time. Otherwise we're just moving by 1 month/year.
|
77
|
+
const count = this.view === 'year' ? 16 : 1;
|
78
|
+
const goToDate = moment(this.activeDate).subtract(count, unit).toDate();
|
79
|
+
this.drawCalendar(this.view, goToDate);
|
80
|
+
}
|
81
|
+
/** Switches the calendar to month view. */
|
82
|
+
onMonthClick() {
|
83
|
+
this.drawCalendar('month');
|
84
|
+
}
|
85
|
+
/** Switches the calendar to year view. */
|
86
|
+
onYearClick() {
|
87
|
+
this.drawCalendar('year');
|
88
|
+
}
|
89
|
+
onFirstItemKeydown(event) {
|
90
|
+
// If the user is tabbing backwards from the first item, emit the focusOutStart event.
|
91
|
+
if (event.key === 'Tab' && event.shiftKey) {
|
92
|
+
event.preventDefault();
|
93
|
+
this.focusOutStart.emit();
|
94
|
+
}
|
95
|
+
}
|
96
|
+
onLastItemKeydown(event) {
|
97
|
+
// If the user is tabbing forwards from the last item, emit the focusOutEnd event.
|
98
|
+
if (event.key === 'Tab' && !event.shiftKey) {
|
99
|
+
event.preventDefault();
|
100
|
+
this.focusOutEnd.emit();
|
101
|
+
}
|
102
|
+
}
|
103
|
+
drawCalendar(view, goTo) {
|
104
|
+
// If a goTo date is provided, update the active date so we know what to increment on next/previous clicks.
|
105
|
+
if (goTo) {
|
106
|
+
this.activeDate = goTo;
|
107
|
+
}
|
108
|
+
this.month = moment(this.activeDate).format('MMM');
|
109
|
+
this.year = moment(this.activeDate).format('YYYY');
|
110
|
+
this.view = view;
|
111
|
+
this.calendarItems = this.getCalendarItems(view, this.activeDate);
|
112
|
+
const startYear = this.calendarItems[0].date < this.minDate ? this.minDate : this.calendarItems[0].date;
|
113
|
+
const endYear = this.calendarItems[this.calendarItems.length - 1].date > this.maxDate ? this.maxDate : this.calendarItems[this.calendarItems.length - 1].date;
|
114
|
+
this.yearRange = `${moment(startYear).format('YYYY')}–${moment(endYear).format('YYYY')}`;
|
115
|
+
// If the active date is less than the min date or the min date is in view, disable the previous button.
|
116
|
+
if (this.activeDate < this.minDate || this.isDateInView(this.minDate)) {
|
117
|
+
this.disablePreviousButton = true;
|
118
|
+
}
|
119
|
+
else {
|
120
|
+
this.disablePreviousButton = false;
|
121
|
+
}
|
122
|
+
// If the active date is greater than the max date or the max date is in view, disable the next button.
|
123
|
+
if (this.activeDate > this.maxDate || this.isDateInView(this.maxDate)) {
|
124
|
+
this.disableNextButton = true;
|
125
|
+
}
|
126
|
+
else {
|
127
|
+
this.disableNextButton = false;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
getCalendarItems(view, activeDate) {
|
131
|
+
switch (view) {
|
132
|
+
case 'day': return this.getDayViewItems(activeDate);
|
133
|
+
case 'month': return this.getMonthViewItems(activeDate);
|
134
|
+
case 'year': return this.getYearViewItems(activeDate);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
getDayViewItems(activeDate) {
|
138
|
+
// 6 rows of 7 days = 42 days
|
139
|
+
return range(0, 42).map(i => {
|
140
|
+
// Use the start of the week of the first day of the month.
|
141
|
+
// This pads out the first week with any days from the previous month.
|
142
|
+
const date = moment(activeDate).startOf('month').startOf('week').add(i, 'day');
|
143
|
+
return {
|
144
|
+
date: date.toDate(),
|
145
|
+
label: date.format('D')
|
146
|
+
};
|
147
|
+
});
|
148
|
+
}
|
149
|
+
getMonthViewItems(activeDate) {
|
150
|
+
return range(0, 12).map(i => {
|
151
|
+
const date = moment(activeDate).startOf('year').add(i, 'month');
|
152
|
+
return {
|
153
|
+
date: date.toDate(),
|
154
|
+
label: date.format('MMM')
|
155
|
+
};
|
156
|
+
});
|
157
|
+
}
|
158
|
+
getYearViewItems(activeDate) {
|
159
|
+
// 4x4 grid of years = 16 years
|
160
|
+
return range(0, 16).map(i => {
|
161
|
+
// Put the current active year at the beginning of the 3rd row.
|
162
|
+
const date = moment(activeDate).startOf('year').subtract(8, 'year').add(i, 'year');
|
163
|
+
return {
|
164
|
+
date: date.toDate(),
|
165
|
+
label: date.format('YYYY')
|
166
|
+
};
|
167
|
+
});
|
168
|
+
}
|
169
|
+
/** Returns true if the date is within the current calendar view */
|
170
|
+
isDateInView(date) {
|
171
|
+
if (!this.calendarItems.length) {
|
172
|
+
return false;
|
173
|
+
}
|
174
|
+
const viewStart = this.calendarItems[0].date;
|
175
|
+
const viewEnd = this.calendarItems[this.calendarItems.length - 1].date;
|
176
|
+
return date >= viewStart && date <= viewEnd;
|
177
|
+
}
|
178
|
+
}
|
179
|
+
CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
180
|
+
CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarComponent, selector: "ec-calendar", inputs: { id: "id", selection: "selection", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectionChange: "selectionChange", focusOutStart: "focusOutStart", focusOutEnd: "focusOutEnd" }, host: { properties: { "attr.id": "this.id" } }, usesOnChanges: true, ngImport: i0, template: "<header class=\"d-flex align-items-center mb-2\">\r\n <button id=\"{{id}}_prev_button\"\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\r\n (keydown)=\"onFirstItemKeydown($event)\"\r\n [disabled]=\"disablePreviousButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-90\"></i>\r\n </button>\r\n\r\n <button *ngIf=\"view === 'day'\"\r\n id=\"{{id}}_month_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onMonthClick()\">\r\n {{month}}\r\n </button>\r\n\r\n <button *ngIf=\"view !== 'year'\"\r\n id=\"{{id}}_year_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\">\r\n {{year}}\r\n </button>\r\n\r\n <div *ngIf=\"view === 'year'\"\r\n class=\"text-body-1 font-weight-bold\"\r\n [innerHTML]=\"yearRange\">\r\n </div>\r\n\r\n <button id=\"{{id}}_next_button\"\r\n class=\"ml-auto\"\r\n (click)=\"onNextClick()\"\r\n [disabled]=\"disableNextButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-270\"></i>\r\n </button>\r\n</header>\r\n\r\n<ul class=\"px-1 {{view}}-view\">\r\n <ng-container *ngIf=\"view === 'day'\">\r\n <li *ngFor=\"let day of weekDays\"\r\n class=\"d-flex align-items-center justify-content-center text-heading-3\">\r\n {{day}}\r\n </li>\r\n </ng-container>\r\n\r\n <li *ngFor=\"let item of calendarItems; last as isLast; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'shortDate'}}\"\r\n ec-calendar-item\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n (keydown)=\"isLast ? onLastItemKeydown($event) : undefined\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n</ul>", styles: [":host{display:inline-block}button{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent}button .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}button .ec-icon{flex:none}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}button:focus{outline:none;position:relative;z-index:1}button:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}button:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}button:hover:not(:disabled){background-color:var(--ec-background-color-hover)}button:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}button:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ul{list-style:none;padding:0;margin:0;display:grid;align-items:stretch;justify-items:stretch}button[ec-calendar-item]{height:100%;width:100%}ul.day-view{grid-template-columns:repeat(7,2rem);grid-auto-rows:1.75rem;row-gap:.25rem}ul.month-view{grid-template-columns:repeat(3,4.67rem);grid-auto-rows:3.25rem;row-gap:.25rem}ul.year-view{grid-template-columns:repeat(4,3.5rem);grid-auto-rows:3.25rem;row-gap:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CalendarItemComponent, selector: "button[ec-calendar-item]", inputs: ["item", "activeDate", "selection", "view"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, decorators: [{
|
182
|
+
type: Component,
|
183
|
+
args: [{ selector: 'ec-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"d-flex align-items-center mb-2\">\r\n <button id=\"{{id}}_prev_button\"\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\r\n (keydown)=\"onFirstItemKeydown($event)\"\r\n [disabled]=\"disablePreviousButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-90\"></i>\r\n </button>\r\n\r\n <button *ngIf=\"view === 'day'\"\r\n id=\"{{id}}_month_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onMonthClick()\">\r\n {{month}}\r\n </button>\r\n\r\n <button *ngIf=\"view !== 'year'\"\r\n id=\"{{id}}_year_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\">\r\n {{year}}\r\n </button>\r\n\r\n <div *ngIf=\"view === 'year'\"\r\n class=\"text-body-1 font-weight-bold\"\r\n [innerHTML]=\"yearRange\">\r\n </div>\r\n\r\n <button id=\"{{id}}_next_button\"\r\n class=\"ml-auto\"\r\n (click)=\"onNextClick()\"\r\n [disabled]=\"disableNextButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-270\"></i>\r\n </button>\r\n</header>\r\n\r\n<ul class=\"px-1 {{view}}-view\">\r\n <ng-container *ngIf=\"view === 'day'\">\r\n <li *ngFor=\"let day of weekDays\"\r\n class=\"d-flex align-items-center justify-content-center text-heading-3\">\r\n {{day}}\r\n </li>\r\n </ng-container>\r\n\r\n <li *ngFor=\"let item of calendarItems; last as isLast; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'shortDate'}}\"\r\n ec-calendar-item\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n (keydown)=\"isLast ? onLastItemKeydown($event) : undefined\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n</ul>", styles: [":host{display:inline-block}button{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent}button .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}button .ec-icon{flex:none}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}button:focus{outline:none;position:relative;z-index:1}button:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}button:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}button:hover:not(:disabled){background-color:var(--ec-background-color-hover)}button:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}button:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ul{list-style:none;padding:0;margin:0;display:grid;align-items:stretch;justify-items:stretch}button[ec-calendar-item]{height:100%;width:100%}ul.day-view{grid-template-columns:repeat(7,2rem);grid-auto-rows:1.75rem;row-gap:.25rem}ul.month-view{grid-template-columns:repeat(3,4.67rem);grid-auto-rows:3.25rem;row-gap:.25rem}ul.year-view{grid-template-columns:repeat(4,3.5rem);grid-auto-rows:3.25rem;row-gap:.25rem}\n"] }]
|
184
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
185
|
+
type: HostBinding,
|
186
|
+
args: ['attr.id']
|
187
|
+
}, {
|
188
|
+
type: Input
|
189
|
+
}], selection: [{
|
190
|
+
type: Input
|
191
|
+
}], selectionChange: [{
|
192
|
+
type: Output
|
193
|
+
}], minDate: [{
|
194
|
+
type: Input
|
195
|
+
}], maxDate: [{
|
196
|
+
type: Input
|
197
|
+
}], focusOutStart: [{
|
198
|
+
type: Output
|
199
|
+
}], focusOutEnd: [{
|
200
|
+
type: Output
|
201
|
+
}] } });
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQWlELDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFRaEgsTUFBTSxPQUFPLGlCQUFpQjtJQTRDNUI7UUF6Q2dCLE9BQUUsR0FBVyxVQUFVLENBQUM7UUFFL0IsY0FBUyxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUVoRSxZQUFPLEdBQVMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELFlBQU8sR0FBUyxjQUFjLENBQUMsaUJBQWlCLENBQUM7UUFFaEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVdqRCwrREFBK0Q7UUFDeEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBSzFDLHdEQUF3RDtRQUNqRCxTQUFJLEdBQWlCLEtBQUssQ0FBQztRQVFsQyw4SEFBOEg7UUFD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QzNELFlBQVksQ0FBQyxJQUFVO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkUsT0FBTyxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUM7SUFDOUMsQ0FBQzs7OEdBek5VLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJUQ1o5QixrOERBd0RLOzJGRDVDUSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzBFQUsvQixFQUFFO3NCQURqQixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZS10aW1lLWhlbHBlcic7XHJcbmltcG9ydCB7IENhbGVuZGFySXRlbSwgQ2FsZW5kYXJTZWxlY3Rpb24sIENhbGVuZGFyVmlldywgaXNDYWxlbmRhclNlbGVjdGlvblNpbmdsZURhdGUgfSBmcm9tICcuL2NhbGVuZGFyLnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtY2FsZW5kYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJ2NhbGVuZGFyJztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyU2VsZWN0aW9uIHwgbnVsbD4oKTtcclxuXHJcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSA9IERhdGVUaW1lSGVscGVyLm1pbkRhdGVQaWNrZXJEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgPSBEYXRlVGltZUhlbHBlci5tYXhEYXRlUGlja2VyRGF0ZTtcclxuXHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0U3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0RW5kID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKiogTW9udGggb2YgdGhlIGFjdGl2ZSBkYXRlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIGJ1dHRvbnMuICovXHJcbiAgcHVibGljIG1vbnRoPzogc3RyaW5nO1xyXG5cclxuICAvKiogWWVhciBvZiB0aGUgYWN0aXZlIGRhdGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgYnV0dG9ucy4gKi9cclxuICBwdWJsaWMgeWVhcj86IHN0cmluZztcclxuXHJcbiAgLyoqIFJhbmdlIG9mIHllYXJzIHRvIGRpc3BsYXkgaW4gdGhlIHllYXIgdmlldy4gKi9cclxuICBwdWJsaWMgeWVhclJhbmdlPzogc3RyaW5nO1xyXG5cclxuICAvKiogQXJyYXkgb2YgY2FsZW5kYXIgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgY2FsZW5kYXIgZ3JpZC4gKi9cclxuICBwdWJsaWMgY2FsZW5kYXJJdGVtczogQ2FsZW5kYXJJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqIFdlZWtkYXkgbGFiZWxzIHRvIHNob3cgYXQgdGhlIHRvcCBvZiB0aGUgY2FsZW5kYXIgaW4gZGF5IHZpZXcuICovXHJcbiAgcHVibGljIHdlZWtEYXlzOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqIERldGVybWluZXMgdGhlIGN1cnJlbnQgdmlldyBtb2RlIG9mIHRoZSBjYWxlbmRhci4gKi9cclxuICBwdWJsaWMgdmlldzogQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XHJcblxyXG4gIC8qKiBcclxuICAgKiBUcmFja3MgdGhlIG1vbnRoIGFuZCB5ZWFyIGJlaW5nIHZpZXdlZCBpbiB0aGUgY2FsZW5kYXIuXHJcbiAgICogVGhpcyBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBzZWxlY3Rpb24sIHdoaWNoIG1heSBiZSBvdXQgb2Ygdmlldy5cclxuICAgKi9cclxuICBwdWJsaWMgYWN0aXZlRGF0ZTogRGF0ZTtcclxuXHJcbiAgLyoqIFRyYWNrQnkgZnVuY3Rpb24gZm9yIHRoZSBjYWxlbmRhciBpdGVtcy4gVGhpcyBhdm9pZHMgcmUtZHJhd2luZyBjYWxlbmRhciBpdGVtcyBpZiBhIGRhdGUgaXMgc2hhcmVkIGJldHdlZW4gdmlldyB1cGRhdGVzICovXHJcbiAgY2FsZW5kYXJJdGVtVHJhY2tCeURhdGUgPSAoaW5kZXg6IG51bWJlciwgaXRlbTogQ2FsZW5kYXJJdGVtKSA9PiBpdGVtLmRhdGUudG9JU09TdHJpbmcoKTtcclxuXHJcbiAgcHVibGljIGRpc2FibGVQcmV2aW91c0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkaXNhYmxlTmV4dEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIEJ5IGRlZmF1bHQsIHRoZSBhY3RpdmUgZGF0ZSBpcyB0b2RheS5cclxuICAgIC8vIFRoaXMgaXMgcmVwbGFjZWQgd2l0aCB0aGUgZGF0ZSBvZiB0aGUgc2VsZWN0aW9uIGlmIG9uZSBpcyBwcm92aWRlZCBvbiBpbml0LlxyXG4gICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIC8vIFVzaW5nIG1vbWVudCBoZXJlIHRvIGdldCB0aGUgd2Vla2RheSBsYWJlbHMgc28gdGhleSBhcmUgbG9jYWxpemVkLlxyXG4gICAgdGhpcy53ZWVrRGF5cyA9IG1vbWVudC53ZWVrZGF5c1Nob3J0KCkubWFwKGQgPT4gZC5zbGljZSgwLCAxKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24pIHtcclxuICAgICAgLy8gT25seSBuZWVkIHRvIHVwZGF0ZSB0aGUgdmlldyBpZiB0aGUgc2VsZWN0aW9uIGlzIG91dCBvZiB2aWV3LlxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXNDYWxlbmRhclNlbGVjdGlvblNpbmdsZURhdGUodGhpcy5zZWxlY3Rpb24pICYmXHJcbiAgICAgICAgIXRoaXMuaXNEYXRlSW5WaWV3KHRoaXMuc2VsZWN0aW9uKSAmJlxyXG4gICAgICAgIG1vbWVudCh0aGlzLnNlbGVjdGlvbikuaXNCZXR3ZWVuKHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCAnZGF5JywgJ1tdJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ2RheScsIHRoaXMuc2VsZWN0aW9uKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBUT0RPIEVDQVAtMjY4NDE6IGRldGVybWluZSB0aGUgYWN0aXZlIGRhdGUgZm9yIGEgcmFuZ2Ugc2VsZWN0aW9uIGFuZCBkcmF3IHRoZSBjYWxlbmRhclxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jYWxlbmRhckl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignZGF5Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogQ2FsZW5kYXJJdGVtKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGl0ZW0uZGF0ZTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignZGF5JywgaXRlbS5kYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ21vbnRoJywgaXRlbS5kYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgIC8vIElmIHdlJ3JlIGluIGRheSB2aWV3LCB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgbW9udGhcclxuICAgIC8vIEluIGJvdGggbW9udGggYW5kIHllYXIgdmlld3Mgd2UncmUgaW5jcmVtZW50aW5nIGJ5IHllYXJcclxuICAgIC8vIEluIHllYXIgdmlldywgd2UncmUgbW92aW5nIGJ5IDE2IHllYXJzIGF0IGEgdGltZVxyXG4gICAgY29uc3QgdW5pdCA9IHRoaXMudmlldyA9PT0gJ2RheScgPyAnbW9udGgnIDogJ3llYXInO1xyXG4gICAgLy8gSW4geWVhciB2aWV3LCB3ZSdyZSBtb3ZpbmcgYnkgMTYgeWVhcnMgYXQgYSB0aW1lLiBPdGhlcndpc2Ugd2UncmUganVzdCBtb3ZpbmcgYnkgMSBtb250aC95ZWFyLlxyXG4gICAgY29uc3QgY291bnQgPSB0aGlzLnZpZXcgPT09ICd5ZWFyJyA/IDE2IDogMTtcclxuICAgIGNvbnN0IGdvVG9EYXRlID0gbW9tZW50KHRoaXMuYWN0aXZlRGF0ZSkuYWRkKGNvdW50LCB1bml0KS50b0RhdGUoKTtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKHRoaXMudmlldywgZ29Ub0RhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUHJldmlvdXNDbGljaygpOiB2b2lkIHtcclxuICAgIC8vIElmIHdlJ3JlIGluIGRheSB2aWV3LCB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgbW9udGhcclxuICAgIC8vIEluIGJvdGggbW9udGggYW5kIHllYXIgdmlld3Mgd2UncmUgaW5jcmVtZW50aW5nIHllYXJzXHJcbiAgICBjb25zdCB1bml0ID0gdGhpcy52aWV3ID09PSAnZGF5JyA/ICdtb250aCcgOiAneWVhcic7XHJcbiAgICAvLyBJbiB5ZWFyIHZpZXcsIHdlJ3JlIG1vdmluZyBieSAxNiB5ZWFycyBhdCBhIHRpbWUuIE90aGVyd2lzZSB3ZSdyZSBqdXN0IG1vdmluZyBieSAxIG1vbnRoL3llYXIuXHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudmlldyA9PT0gJ3llYXInID8gMTYgOiAxO1xyXG4gICAgY29uc3QgZ29Ub0RhdGUgPSBtb21lbnQodGhpcy5hY3RpdmVEYXRlKS5zdWJ0cmFjdChjb3VudCwgdW5pdCkudG9EYXRlKCk7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcih0aGlzLnZpZXcsIGdvVG9EYXRlKTtcclxuICB9XHJcblxyXG4gIC8qKiBTd2l0Y2hlcyB0aGUgY2FsZW5kYXIgdG8gbW9udGggdmlldy4gKi9cclxuICBwdWJsaWMgb25Nb250aENsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ21vbnRoJyk7XHJcbiAgfVxyXG5cclxuICAvKiogU3dpdGNoZXMgdGhlIGNhbGVuZGFyIHRvIHllYXIgdmlldy4gKi9cclxuICBwdWJsaWMgb25ZZWFyQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcigneWVhcicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlyc3RJdGVtS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gSWYgdGhlIHVzZXIgaXMgdGFiYmluZyBiYWNrd2FyZHMgZnJvbSB0aGUgZmlyc3QgaXRlbSwgZW1pdCB0aGUgZm9jdXNPdXRTdGFydCBldmVudC5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInICYmIGV2ZW50LnNoaWZ0S2V5KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuZm9jdXNPdXRTdGFydC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25MYXN0SXRlbUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIElmIHRoZSB1c2VyIGlzIHRhYmJpbmcgZm9yd2FyZHMgZnJvbSB0aGUgbGFzdCBpdGVtLCBlbWl0IHRoZSBmb2N1c091dEVuZCBldmVudC5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInICYmICFldmVudC5zaGlmdEtleSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmZvY3VzT3V0RW5kLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0NhbGVuZGFyKHZpZXc6IENhbGVuZGFyVmlldywgZ29Ubz86IERhdGUpOiB2b2lkIHtcclxuICAgIC8vIElmIGEgZ29UbyBkYXRlIGlzIHByb3ZpZGVkLCB1cGRhdGUgdGhlIGFjdGl2ZSBkYXRlIHNvIHdlIGtub3cgd2hhdCB0byBpbmNyZW1lbnQgb24gbmV4dC9wcmV2aW91cyBjbGlja3MuXHJcbiAgICBpZiAoZ29Ubykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBnb1RvO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KHRoaXMuYWN0aXZlRGF0ZSkuZm9ybWF0KCdNTU0nKTtcclxuICAgIHRoaXMueWVhciA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLmZvcm1hdCgnWVlZWScpO1xyXG4gICAgdGhpcy52aWV3ID0gdmlldztcclxuICAgIHRoaXMuY2FsZW5kYXJJdGVtcyA9IHRoaXMuZ2V0Q2FsZW5kYXJJdGVtcyh2aWV3LCB0aGlzLmFjdGl2ZURhdGUpO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0WWVhciA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlIDwgdGhpcy5taW5EYXRlID8gdGhpcy5taW5EYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zWzBdLmRhdGU7XHJcbiAgICBjb25zdCBlbmRZZWFyID0gdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlID4gdGhpcy5tYXhEYXRlID8gdGhpcy5tYXhEYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xyXG4gICAgdGhpcy55ZWFyUmFuZ2UgPSBgJHttb21lbnQoc3RhcnRZZWFyKS5mb3JtYXQoJ1lZWVknKX0mbmRhc2g7JHttb21lbnQoZW5kWWVhcikuZm9ybWF0KCdZWVlZJyl9YDtcclxuXHJcbiAgICAvLyBJZiB0aGUgYWN0aXZlIGRhdGUgaXMgbGVzcyB0aGFuIHRoZSBtaW4gZGF0ZSBvciB0aGUgbWluIGRhdGUgaXMgaW4gdmlldywgZGlzYWJsZSB0aGUgcHJldmlvdXMgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA8IHRoaXMubWluRGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1pbkRhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIGFjdGl2ZSBkYXRlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4IGRhdGUgb3IgdGhlIG1heCBkYXRlIGlzIGluIHZpZXcsIGRpc2FibGUgdGhlIG5leHQgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA+IHRoaXMubWF4RGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1heERhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZU5leHRCdXR0b24gPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNhYmxlTmV4dEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckl0ZW1zKHZpZXc6IENhbGVuZGFyVmlldywgYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICdkYXknOiByZXR1cm4gdGhpcy5nZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzogcmV0dXJuIHRoaXMuZ2V0TW9udGhWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ3llYXInOiByZXR1cm4gdGhpcy5nZXRZZWFyVmlld0l0ZW1zKGFjdGl2ZURhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDYgcm93cyBvZiA3IGRheXMgPSA0MiBkYXlzXHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgNDIpLm1hcChpID0+IHtcclxuICAgICAgLy8gVXNlIHRoZSBzdGFydCBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC5cclxuICAgICAgLy8gVGhpcyBwYWRzIG91dCB0aGUgZmlyc3Qgd2VlayB3aXRoIGFueSBkYXlzIGZyb20gdGhlIHByZXZpb3VzIG1vbnRoLlxyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KGFjdGl2ZURhdGUpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpLmFkZChpLCAnZGF5Jyk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0ZTogZGF0ZS50b0RhdGUoKSxcclxuICAgICAgICBsYWJlbDogZGF0ZS5mb3JtYXQoJ0QnKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vbnRoVmlld0l0ZW1zKGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgMTIpLm1hcChpID0+IHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuYWRkKGksICdtb250aCcpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGU6IGRhdGUudG9EYXRlKCksXHJcbiAgICAgICAgbGFiZWw6IGRhdGUuZm9ybWF0KCdNTU0nKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFllYXJWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDR4NCBncmlkIG9mIHllYXJzID0gMTYgeWVhcnNcclxuICAgIHJldHVybiByYW5nZSgwLCAxNikubWFwKGkgPT4ge1xyXG4gICAgICAvLyBQdXQgdGhlIGN1cnJlbnQgYWN0aXZlIHllYXIgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgM3JkIHJvdy5cclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoOCwgJ3llYXInKS5hZGQoaSwgJ3llYXInKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRlOiBkYXRlLnRvRGF0ZSgpLFxyXG4gICAgICAgIGxhYmVsOiBkYXRlLmZvcm1hdCgnWVlZWScpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRhdGUgaXMgd2l0aGluIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcgKi9cclxuICBwcml2YXRlIGlzRGF0ZUluVmlldyhkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpZXdTdGFydCA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlO1xyXG4gICAgY29uc3Qgdmlld0VuZCA9IHRoaXMuY2FsZW5kYXJJdGVtc1t0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcclxuICAgIHJldHVybiBkYXRlID49IHZpZXdTdGFydCAmJiBkYXRlIDw9IHZpZXdFbmQ7XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICA8YnV0dG9uIGlkPVwie3tpZH19X3ByZXZfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwibXItYXV0b1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgKGtleWRvd24pPVwib25GaXJzdEl0ZW1LZXlkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVQcmV2aW91c0J1dHRvblwiPlxyXG4gICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tYW5nbGUtZG93biByb3RhdGUtOTBcIj48L2k+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b24gKm5nSWY9XCJ2aWV3ID09PSAnZGF5J1wiXHJcbiAgICAgICAgICBpZD1cInt7aWR9fV9tb250aF9idXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktMSBmb250LXdlaWdodC1ib2xkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbk1vbnRoQ2xpY2soKVwiPlxyXG4gICAge3ttb250aH19XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b24gKm5nSWY9XCJ2aWV3ICE9PSAneWVhcidcIlxyXG4gICAgICAgICAgaWQ9XCJ7e2lkfX1feWVhcl9idXR0b25cIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktMSBmb250LXdlaWdodC1ib2xkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvblllYXJDbGljaygpXCI+XHJcbiAgICB7e3llYXJ9fVxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwidmlldyA9PT0gJ3llYXInXCJcclxuICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LTEgZm9udC13ZWlnaHQtYm9sZFwiXHJcbiAgICAgICBbaW5uZXJIVE1MXT1cInllYXJSYW5nZVwiPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YnV0dG9uIGlkPVwie3tpZH19X25leHRfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25OZXh0Q2xpY2soKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZU5leHRCdXR0b25cIj5cclxuICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWFuZ2xlLWRvd24gcm90YXRlLTI3MFwiPjwvaT5cclxuICA8L2J1dHRvbj5cclxuPC9oZWFkZXI+XHJcblxyXG48dWwgY2xhc3M9XCJweC0xIHt7dmlld319LXZpZXdcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldyA9PT0gJ2RheSdcIj5cclxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtEYXlzXCJcclxuICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB0ZXh0LWhlYWRpbmctM1wiPlxyXG4gICAgICB7e2RheX19XHJcbiAgICA8L2xpPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FsZW5kYXJJdGVtczsgbGFzdCBhcyBpc0xhc3Q7IHRyYWNrQnk6IGNhbGVuZGFySXRlbVRyYWNrQnlEYXRlO1wiPlxyXG4gICAgPGJ1dHRvbiBpZD1cInt7aWR9fV9pdGVtX3t7aXRlbS5kYXRlIHwgZGF0ZTonc2hvcnREYXRlJ319XCJcclxuICAgICAgICAgICAgZWMtY2FsZW5kYXItaXRlbVxyXG4gICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgW3ZpZXddPVwidmlld1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImlzTGFzdCA/IG9uTGFzdEl0ZW1LZXlkb3duKCRldmVudCkgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uZGF0ZSA8IG1pbkRhdGUgfHwgaXRlbS5kYXRlID4gbWF4RGF0ZVwiPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9saT5cclxuPC91bD4iXX0=
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export function isCalendarSelectionSingleDate(selection) {
|
2
|
+
return selection instanceof Date;
|
3
|
+
}
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY2FsZW5kYXIvY2FsZW5kYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFNBQW9DO0lBQ2hGLE9BQU8sU0FBUyxZQUFZLElBQUksQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FsZW5kYXJJdGVtID0ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgZGF0ZTogRGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyU2VsZWN0aW9uID0gRGF0ZSB8IFtEYXRlLCBEYXRlXTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyVmlldyA9ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24/OiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwpOiBzZWxlY3Rpb24gaXMgRGF0ZSB7XHJcbiAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIERhdGU7XHJcbn1cclxuIl19
|