@energycap/components 0.40.0 → 0.40.1-ECAP-26841-date-input-features.20241125-1254

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.
@@ -64,6 +64,8 @@ import { TreeComponent } from './display/tree/tree.component';
64
64
  import { ViewOverlayComponent } from './display/view-overlay/view-overlay.component';
65
65
  import { ClickAreaForDirective } from './shared/directives/click-area-for/click-area-for.directive';
66
66
  import { IfViewportWidthDirective } from './shared/directives/if-viewport-width/if-viewport-width.directive';
67
+ import { KeyboardNavContainerDirective } from './shared/directives/keyboard-nav-container/keyboard-nav-container.directive';
68
+ import { KeyboardNavTargetDirective } from './shared/directives/keyboard-nav-target/keyboard-nav-target.directive';
67
69
  import { PopupContainerDirective } from './shared/directives/popup/popup-container.directive';
68
70
  import { DateDisplayPipe } from './shared/display/pipes/date-display.pipe';
69
71
  import { HighlightTextPipe } from './shared/display/pipes/highlight-text.pipe';
@@ -163,7 +165,9 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
163
165
  TooltipDirective,
164
166
  CalendarComponent,
165
167
  CalendarItemComponent,
166
- DateInputComponent], imports: [CommonModule,
168
+ DateInputComponent,
169
+ KeyboardNavTargetDirective,
170
+ KeyboardNavContainerDirective], imports: [CommonModule,
167
171
  FormsModule,
168
172
  ReactiveFormsModule,
169
173
  RouterModule,
@@ -233,7 +237,9 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
233
237
  CopyTableButtonDirective,
234
238
  TooltipDirective,
235
239
  CalendarComponent,
236
- DateInputComponent] });
240
+ DateInputComponent,
241
+ KeyboardNavTargetDirective,
242
+ KeyboardNavContainerDirective] });
237
243
  ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ComponentsModule, providers: [
238
244
  FormGroupHelper,
239
245
  DialogService,
@@ -325,7 +331,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
325
331
  TooltipDirective,
326
332
  CalendarComponent,
327
333
  CalendarItemComponent,
328
- DateInputComponent
334
+ DateInputComponent,
335
+ KeyboardNavTargetDirective,
336
+ KeyboardNavContainerDirective
329
337
  ],
330
338
  imports: [
331
339
  CommonModule,
@@ -411,8 +419,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
411
419
  CopyTableButtonDirective,
412
420
  TooltipDirective,
413
421
  CalendarComponent,
414
- DateInputComponent
422
+ DateInputComponent,
423
+ KeyboardNavTargetDirective,
424
+ KeyboardNavContainerDirective
415
425
  ]
416
426
  }]
417
427
  }] });
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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ZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcHlCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9jb3B5LWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL2J1dHRvbi9jb3B5LXRhYmxlLWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29sbGFwc2libGUtdG9nZ2xlL2NvbGxhcHNpYmxlLXRvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Zvcm0tY29udHJvbC1sYWJlbC9mb3JtLWNvbnRyb2wtbGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGVscFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2hlbHAtcG9wb3Zlci9oZWxwLXBvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSXRlbVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvaXRlbS1waWNrZXIvaXRlbS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGlua0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbGluay1idXR0b24vbGluay1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvbWVudS9tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRyb2xzL25hdmlnYXRpb24vbmF2LWl0ZW0tYWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE51bWVyaWNib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL251bWVyaWNib3gvbnVtZXJpY2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL3RhYnMvdGFicy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2FwcC1iYXIvYXBwLWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dHcm91cENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLWdyb3VwL2RpYWxvZy1ncm91cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpZXJhcmNoeVRyZWVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEl0ZW1EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2l0ZW0tZGlzcGxheS9pdGVtLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSnNvbkRpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvanNvbi1kaXNwbGF5L2pzb24tZGlzcGxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvcmVzaXphYmxlL3Jlc2l6YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXNpemFibGVUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9yZXNpemFibGUtdGFibGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3NlYXJjaGFibGUtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVEZXRhaWxSb3dDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUxvY2tlZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1sb2NrZWQtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLW1hc3Rlci1oZWFkZXItcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlTWFzdGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLW1hc3Rlci1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLXNlbGVjdGFibGUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvYXN0L3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdG9vbHRpcC1kaXJlY3RpdmUvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb3VyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvdXIvdG91ci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3T3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaWNrQXJlYUZvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcy9pZi12aWV3cG9ydC13aWR0aC9pZi12aWV3cG9ydC13aWR0aC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvcG9wdXAvcG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5pbXBvcnQgeyBIaWdobGlnaHRUZXh0UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvaGlnaGxpZ2h0LXRleHQucGlwZSc7XHJcbmltcG9ydCB7IFJlbGF0aXZlRGF0ZVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3JlbGF0aXZlLWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IFJvd0NvdW50UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcm93LWNvdW50LnBpcGUnO1xyXG5pbXBvcnQgeyBUaW1lRGlzcGxheVBpcGUgfSBmcm9tICcuL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3RpbWUtZGlzcGxheS5waXBlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi9zaGFyZWQvZm9ybS1ncm91cC5oZWxwZXInO1xyXG5pbXBvcnQgeyBQYWdlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wYWdlL3BhZ2UtdGl0bGUvcGFnZS10aXRsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3BhZ2UvcGFnZS12aWV3L3BhZ2Utdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2NrRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvdGVzdGluZy9wdWJsaWMtbW9ja3Muc3BlYyc7XHJcbmltcG9ydCB7IFdpemFyZEJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLWJ1dHRvbnMvd2l6YXJkLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2l6YXJkUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC93aXphcmQvd2l6YXJkLXByb2dyZXNzL3dpemFyZC1wcm9ncmVzcy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c01vZHVsZUNvbmZpZyA9IHtcclxuICB0cmFja2VyOiBQcm92aWRlclxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFRhYnNDb21wb25lbnQsXHJcbiAgICBUZXh0Ym94Q29tcG9uZW50LFxyXG4gICAgTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSxcclxuICAgIFNwaW5uZXJDb21wb25lbnQsXHJcbiAgICBWaWV3T3ZlcmxheUNvbXBvbmVudCxcclxuICAgIEJhbm5lckNvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZVRhYmxlRGlyZWN0aXZlLFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoYWJsZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICBNZW51Q29tcG9uZW50LFxyXG4gICAgUG9wdXBDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcclxuICAgIENvbmZpcm1Db21wb25lbnQsXHJcbiAgICBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUmFkaW9CdXR0b25Db21wb25lbnQsXHJcbiAgICBDaGVja2JveENvbXBvbmVudCxcclxuICAgIE51bWVyaWNib3hDb21wb25lbnQsXHJcbiAgICBBdmF0YXJDb21wb25lbnQsXHJcbiAgICBBcHBCYXJDb21wb25lbnQsXHJcbiAgICBTcGxhc2hDb21wb25lbnQsXHJcbiAgICBJZlZpZXdwb3J0V2lkdGhEaXJlY3RpdmUsXHJcbiAgICBDbGlja0FyZWFGb3JEaXJlY3RpdmUsXHJcbiAgICBDb2xsYXBzaWJsZVRvZ2dsZUNvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJIZWFkZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZURldGFpbFJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTG9ja2VkQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJvd0NvdW50UGlwZSxcclxuICAgIENvcHlCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUYWJsZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUYWdzQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgICBJdGVtRGlzcGxheUNvbXBvbmVudCxcclxuICAgIFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFJlc2l6YWJsZUNvbHVtbkNvbXBvbmVudCxcclxuICAgIERpYWxvZ0dyb3VwQ29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIEZvcm1Hcm91cENvbXBvbmVudCxcclxuICAgIEpzb25EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVG9hc3RDb21wb25lbnQsXHJcbiAgICBUb2FzdGVyQ29tcG9uZW50LFxyXG4gICAgUGFnZVZpZXdDb21wb25lbnQsXHJcbiAgICBQYWdlVGl0bGVDb21wb25lbnQsXHJcbiAgICBXaXphcmRQcm9ncmVzc0NvbXBvbmVudCxcclxuICAgIFdpemFyZEJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICBIaWVyYXJjaHlUcmVlQ29tcG9uZW50LFxyXG4gICAgVHJlZUNvbXBvbmVudCxcclxuICAgIFJlbGF0aXZlRGF0ZVBpcGUsXHJcbiAgICBSZXNpemFibGVDb21wb25lbnQsXHJcbiAgICBIaWdobGlnaHRUZXh0UGlwZSxcclxuICAgIEZvcm1Db250cm9sTGFiZWxDb21wb25lbnQsXHJcbiAgICBJdGVtUGlja2VyQ29tcG9uZW50LFxyXG4gICAgSGVscFBvcG92ZXJDb21wb25lbnQsXHJcbiAgICBMaW5rQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcENvbXBvbmVudCxcclxuICAgIFRvdXJDb21wb25lbnQsXHJcbiAgICBDb3B5VGFibGVCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBDYWxlbmRhckl0ZW1Db21wb25lbnQsXHJcbiAgICBEYXRlSW5wdXRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1Hcm91cEhlbHBlcixcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUm93Q291bnRQaXBlLFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERhdGVEaXNwbGF5UGlwZSxcclxuICAgIFRpbWVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxyXG4gICAgQ29weUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFRhZ3NDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIEl0ZW1EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nR3JvdXBDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgSnNvbkRpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUb2FzdENvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVmlld0NvbXBvbmVudCxcclxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcclxuICAgIFdpemFyZFByb2dyZXNzQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIEhpZXJhcmNoeVRyZWVDb21wb25lbnQsXHJcbiAgICBUcmVlQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIFJlc2l6YWJsZUNvbXBvbmVudCxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlLFxyXG4gICAgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCxcclxuICAgIEl0ZW1QaWNrZXJDb21wb25lbnQsXHJcbiAgICBIZWxwUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIExpbmtCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgVG91ckNvbXBvbmVudCxcclxuICAgIENvcHlUYWJsZUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIERhdGVJbnB1dENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUge1xyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGluZyBzZXJ2aWNlcyB0aHJvdWdoIHRoZSBmb3JSb290IHBhdHRlcm4gaGVyZSBlbnN1cmVzIHRoYXQgdGhlIGNvbXBvbmVudHMgbW9kdWxlIGFuZCB0aGUgaW1wb3J0aW5nXHJcbiAgICogbW9kdWxlIHVzZSB0aGUgc2FtZSBzaW5nbGV0b24gc2VydmljZSBpbnN0YW5jZS5cclxuICAgKiBGb3IgbW9yZSBpbmZvOiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvc2luZ2xldG9uLXNlcnZpY2VzI3RoZS1mb3Jyb290LXBhdHRlcm5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlnOiBDb21wb25lbnRzTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxDb21wb25lbnRzTW9kdWxlPntcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBDb21wb25lbnRzTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBjb25maWcudHJhY2tlclxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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Z3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9iYW5uZXIvYmFubmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3B5QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9scy9idXR0b24vY29weS1idXR0b24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29weVRhYmxlQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9scy9idXR0b24vY29weS10YWJsZS1idXR0b24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NvbGxhcHNpYmxlLXRvZ2dsZS9jb2xsYXBzaWJsZS10b2dnbGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlbHBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEl0ZW1QaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2l0ZW0tcGlja2VyL2l0ZW0tcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpbmtCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL2xpbmstYnV0dG9uL2xpbmstYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtLWFjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOdW1lcmljYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9udW1lcmljYm94L251bWVyaWNib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb250cm9scy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEJhckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy1ncm91cC9kaWFsb2ctZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlzcGxheS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJdGVtRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9pdGVtLWRpc3BsYXkvaXRlbS1kaXNwbGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEpzb25EaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3Jlc2l6YWJsZS9yZXNpemFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3BsYXNoQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3Jlc2l6YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvcmVzaXphYmxlLXRhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNlYXJjaGFibGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS9zZWFyY2hhYmxlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlRGV0YWlsUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhYmxlL3RhYmxlLWRldGFpbC1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdGFibGUvdGFibGUtbG9ja2VkLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItaGVhZGVyLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlU2VsZWN0YWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS1zZWxlY3RhYmxlLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWdzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RhZ3MvdGFncy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b2FzdC90b2FzdC90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5L3RvYXN0L3RvYXN0ZXIvdG9hc3Rlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXNwbGF5L3Rvb2x0aXAtZGlyZWN0aXZlL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG91ckNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld092ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXkvdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGlja0FyZWFGb3JEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMvaWYtdmlld3BvcnQtd2lkdGgvaWYtdmlld3BvcnQtd2lkdGguZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgS2V5Ym9hcmROYXZDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3RpdmVzL2tleWJvYXJkLW5hdi1jb250YWluZXIva2V5Ym9hcmQtbmF2LWNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBLZXlib2FyZE5hdlRhcmdldERpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGl2ZXMva2V5Ym9hcmQtbmF2LXRhcmdldC9rZXlib2FyZC1uYXYtdGFyZ2V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aXZlcy9wb3B1cC9wb3B1cC1jb250YWluZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlzcGxheS9waXBlcy9kYXRlLWRpc3BsYXkucGlwZSc7XHJcbmltcG9ydCB7IEhpZ2hsaWdodFRleHRQaXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlzcGxheS9waXBlcy9oaWdobGlnaHQtdGV4dC5waXBlJztcclxuaW1wb3J0IHsgUmVsYXRpdmVEYXRlUGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcmVsYXRpdmUtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgUm93Q291bnRQaXBlIH0gZnJvbSAnLi9zaGFyZWQvZGlzcGxheS9waXBlcy9yb3ctY291bnQucGlwZSc7XHJcbmltcG9ydCB7IFRpbWVEaXNwbGF5UGlwZSB9IGZyb20gJy4vc2hhcmVkL2Rpc3BsYXkvcGlwZXMvdGltZS1kaXNwbGF5LnBpcGUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBIZWxwZXIgfSBmcm9tICcuL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IFBhZ2VUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3BhZ2UvcGFnZS10aXRsZS9wYWdlLXRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvcGFnZS9wYWdlLXZpZXcvcGFnZS12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vY2tEYXRlRGlzcGxheVBpcGUgfSBmcm9tICcuL3NoYXJlZC90ZXN0aW5nL3B1YmxpYy1tb2Nrcy5zcGVjJztcclxuaW1wb3J0IHsgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3dpemFyZC93aXphcmQtYnV0dG9ucy93aXphcmQtYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXaXphcmRQcm9ncmVzc0NvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3dpemFyZC93aXphcmQtcHJvZ3Jlc3Mvd2l6YXJkLXByb2dyZXNzLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBDb21wb25lbnRzTW9kdWxlQ29uZmlnID0ge1xyXG4gIHRyYWNrZXI6IFByb3ZpZGVyXHJcbn07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVGFic0NvbXBvbmVudCxcclxuICAgIFRleHRib3hDb21wb25lbnQsXHJcbiAgICBOYXZJdGVtQWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIFZpZXdPdmVybGF5Q29tcG9uZW50LFxyXG4gICAgQmFubmVyQ29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlVGFibGVEaXJlY3RpdmUsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERhdGVEaXNwbGF5UGlwZSxcclxuICAgIFRpbWVEaXNwbGF5UGlwZSxcclxuICAgIE1vY2tEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgTnVtZXJpY2JveENvbXBvbmVudCxcclxuICAgIEF2YXRhckNvbXBvbmVudCxcclxuICAgIEFwcEJhckNvbXBvbmVudCxcclxuICAgIFNwbGFzaENvbXBvbmVudCxcclxuICAgIElmVmlld3BvcnRXaWR0aERpcmVjdGl2ZSxcclxuICAgIENsaWNrQXJlYUZvckRpcmVjdGl2ZSxcclxuICAgIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50LFxyXG4gICAgVGFibGVNYXN0ZXJSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlckhlYWRlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlRGV0YWlsUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxyXG4gICAgVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgUm93Q291bnRQaXBlLFxyXG4gICAgQ29weUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFRhZ3NDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIEl0ZW1EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgVGFibGVTZWxlY3RhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nR3JvdXBDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgSnNvbkRpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUb2FzdENvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVmlld0NvbXBvbmVudCxcclxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcclxuICAgIFdpemFyZFByb2dyZXNzQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIEhpZXJhcmNoeVRyZWVDb21wb25lbnQsXHJcbiAgICBUcmVlQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIFJlc2l6YWJsZUNvbXBvbmVudCxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlLFxyXG4gICAgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCxcclxuICAgIEl0ZW1QaWNrZXJDb21wb25lbnQsXHJcbiAgICBIZWxwUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIExpbmtCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgVG91ckNvbXBvbmVudCxcclxuICAgIENvcHlUYWJsZUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFySXRlbUNvbXBvbmVudCxcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEtleWJvYXJkTmF2VGFyZ2V0RGlyZWN0aXZlLFxyXG4gICAgS2V5Ym9hcmROYXZDb250YWluZXJEaXJlY3RpdmVcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgU2Nyb2xsaW5nTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1Hcm91cEhlbHBlcixcclxuICAgIERpYWxvZ1NlcnZpY2UsXHJcbiAgICBEYXRlRGlzcGxheVBpcGUsXHJcbiAgICBUaW1lRGlzcGxheVBpcGUsXHJcbiAgICBNb2NrRGF0ZURpc3BsYXlQaXBlLFxyXG4gICAgUm93Q291bnRQaXBlLFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBCdXR0b25Db21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIE5hdkl0ZW1BY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgVmlld092ZXJsYXlDb21wb25lbnQsXHJcbiAgICBCYW5uZXJDb21wb25lbnQsXHJcbiAgICBUYWJzQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBTZWFyY2hhYmxlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb21ib2JveENvbXBvbmVudCxcclxuICAgIE1lbnVDb21wb25lbnQsXHJcbiAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERyb3Bkb3duQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybUNvbXBvbmVudCxcclxuICAgIERpYWxvZ0NvbXBvbmVudCxcclxuICAgIERhdGVEaXNwbGF5UGlwZSxcclxuICAgIFRpbWVEaXNwbGF5UGlwZSxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBOdW1lcmljYm94Q29tcG9uZW50LFxyXG4gICAgQXZhdGFyQ29tcG9uZW50LFxyXG4gICAgQXBwQmFyQ29tcG9uZW50LFxyXG4gICAgU3BsYXNoQ29tcG9uZW50LFxyXG4gICAgSWZWaWV3cG9ydFdpZHRoRGlyZWN0aXZlLFxyXG4gICAgQ2xpY2tBcmVhRm9yRGlyZWN0aXZlLFxyXG4gICAgQ29sbGFwc2libGVUb2dnbGVDb21wb25lbnQsXHJcbiAgICBUYWJsZU1hc3RlclJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlTWFzdGVySGVhZGVyUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQsXHJcbiAgICBUYWJsZVNlbGVjdGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBQb3BvdmVyQ29tcG9uZW50LFxyXG4gICAgQ29weUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFRhZ3NDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICAgIEl0ZW1EaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgUmVzaXphYmxlQ29sdW1uQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nR3JvdXBDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgRm9ybUdyb3VwQ29tcG9uZW50LFxyXG4gICAgSnNvbkRpc3BsYXlDb21wb25lbnQsXHJcbiAgICBUb2FzdENvbXBvbmVudCxcclxuICAgIFRvYXN0ZXJDb21wb25lbnQsXHJcbiAgICBQYWdlVmlld0NvbXBvbmVudCxcclxuICAgIFBhZ2VUaXRsZUNvbXBvbmVudCxcclxuICAgIFdpemFyZFByb2dyZXNzQ29tcG9uZW50LFxyXG4gICAgV2l6YXJkQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIEhpZXJhcmNoeVRyZWVDb21wb25lbnQsXHJcbiAgICBUcmVlQ29tcG9uZW50LFxyXG4gICAgUmVsYXRpdmVEYXRlUGlwZSxcclxuICAgIFJlc2l6YWJsZUNvbXBvbmVudCxcclxuICAgIEhpZ2hsaWdodFRleHRQaXBlLFxyXG4gICAgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCxcclxuICAgIEl0ZW1QaWNrZXJDb21wb25lbnQsXHJcbiAgICBIZWxwUG9wb3ZlckNvbXBvbmVudCxcclxuICAgIExpbmtCdXR0b25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwQ29tcG9uZW50LFxyXG4gICAgVG91ckNvbXBvbmVudCxcclxuICAgIENvcHlUYWJsZUJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEtleWJvYXJkTmF2VGFyZ2V0RGlyZWN0aXZlLFxyXG4gICAgS2V5Ym9hcmROYXZDb250YWluZXJEaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRzTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBQcm92aWRpbmcgc2VydmljZXMgdGhyb3VnaCB0aGUgZm9yUm9vdCBwYXR0ZXJuIGhlcmUgZW5zdXJlcyB0aGF0IHRoZSBjb21wb25lbnRzIG1vZHVsZSBhbmQgdGhlIGltcG9ydGluZ1xyXG4gICAqIG1vZHVsZSB1c2UgdGhlIHNhbWUgc2luZ2xldG9uIHNlcnZpY2UgaW5zdGFuY2UuXHJcbiAgICogRm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3NpbmdsZXRvbi1zZXJ2aWNlcyN0aGUtZm9ycm9vdC1wYXR0ZXJuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQ29tcG9uZW50c01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q29tcG9uZW50c01vZHVsZT57XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQ29tcG9uZW50c01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgY29uZmlnLnRyYWNrZXJcclxuICAgICAgXVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -34,10 +34,10 @@ export class CalendarItemComponent {
34
34
  }
35
35
  }
36
36
  CalendarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- 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 });
37
+ 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{background-color:var(--ec-background-color-selected);font-weight:700}: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 });
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarItemComponent, decorators: [{
39
39
  type: Component,
40
- 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"] }]
40
+ 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{background-color:var(--ec-background-color-selected);font-weight:700}: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"] }]
41
41
  }], ctorParameters: function () { return []; }, propDecorators: { item: [{
42
42
  type: Input
43
43
  }], activeDate: [{
@@ -4,11 +4,16 @@ import moment from 'moment';
4
4
  import { DateTimeHelper } from '../../core/date-time-helper';
5
5
  import { isCalendarSelectionSingleDate } from './calendar.types';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "./calendar-item.component";
7
+ import * as i1 from "@ngx-translate/core";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "./calendar-item.component";
10
+ import * as i4 from "../../shared/directives/keyboard-nav-target/keyboard-nav-target.directive";
11
+ import * as i5 from "../../shared/directives/keyboard-nav-container/keyboard-nav-container.directive";
9
12
  export class CalendarComponent {
10
- constructor() {
13
+ constructor(translateService) {
14
+ this.translateService = translateService;
11
15
  this.id = 'calendar';
16
+ this.selectionModes = ['day'];
12
17
  this.selection = null;
13
18
  this.selectionChange = new EventEmitter();
14
19
  this.minDate = DateTimeHelper.minDatePickerDate;
@@ -23,6 +28,10 @@ export class CalendarComponent {
23
28
  this.calendarItemTrackByDate = (index, item) => item.date.toISOString();
24
29
  this.disablePreviousButton = false;
25
30
  this.disableNextButton = false;
31
+ this.selectionModeOptions = [
32
+ { label: this.translateService.instant('CalendarSelectionMode_day'), value: 'day' }
33
+ ];
34
+ this.currentSelectionMode = 'day';
26
35
  // By default, the active date is today.
27
36
  // This is replaced with the date of the selection if one is provided on init.
28
37
  this.activeDate = new Date();
@@ -41,6 +50,9 @@ export class CalendarComponent {
41
50
  // TODO ECAP-26841: determine the active date for a range selection and draw the calendar
42
51
  }
43
52
  }
53
+ if (changes.selectionModes) {
54
+ this.updateSelectionModes();
55
+ }
44
56
  }
45
57
  ngOnInit() {
46
58
  if (!this.calendarItems.length) {
@@ -86,16 +98,18 @@ export class CalendarComponent {
86
98
  onYearClick() {
87
99
  this.drawCalendar('year');
88
100
  }
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
- this.focusOutStart.emit(event);
101
+ updateSelectionModes() {
102
+ // Fall back to day selection mode if none are provided
103
+ if (!this.selectionModes.length) {
104
+ this.selectionModes = ['day'];
93
105
  }
94
- }
95
- onLastItemKeydown(event) {
96
- // If the user is tabbing forwards from the last item, emit the focusOutEnd event.
97
- if (event.key === 'Tab' && !event.shiftKey) {
98
- this.focusOutEnd.emit(event);
106
+ // Update the selection mode options for the calendar menu
107
+ this.selectionModeOptions = this.selectionModes.map(mode => ({
108
+ label: this.translateService.instant('CalendarSelectionMode_' + mode),
109
+ value: mode
110
+ }));
111
+ if (!this.selectionModes.includes(this.currentSelectionMode)) {
112
+ this.currentSelectionMode = this.selectionModes[0];
99
113
  }
100
114
  }
101
115
  drawCalendar(view, goTo) {
@@ -174,16 +188,18 @@ export class CalendarComponent {
174
188
  return date >= viewStart && date <= viewEnd;
175
189
  }
176
190
  }
177
- CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
178
- 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)=\"!disablePreviousButton ? onFirstItemKeydown($event) : undefined\"\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 (keydown)=\"disablePreviousButton ? onFirstItemKeydown($event) : undefined\">\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 (keydown)=\"disablePreviousButton && view !== 'day' ? onFirstItemKeydown($event) : undefined\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *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 (keydown)=\"disablePreviousButton && view === 'year' ? onFirstItemKeydown($event) : undefined\">\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:'MM_dd_yyyy'}}\"\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 });
191
+ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
192
+ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CalendarComponent, selector: "ec-calendar", inputs: { id: "id", selectionModes: "selectionModes", selection: "selection", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectionChange: "selectionChange", focusOutStart: "focusOutStart", focusOutEnd: "focusOutEnd" }, host: { properties: { "attr.id": "this.id" } }, usesOnChanges: true, ngImport: i0, template: "<article ecKeyboardNavContainer\r\n (focusOutStart)=\"focusOutStart.emit($event)\"\r\n (focusOutEnd)=\"focusOutEnd.emit($event)\">\r\n <ul *ngIf=\"selectionModeOptions.length > 1\"\r\n class=\"selection-mode-menu border-right p-1\">\r\n <li *ngFor=\"let modeOption of selectionModeOptions\">\r\n <button id=\"{{id}}_selectionMode_{{modeOption.value}}\"\r\n ecKeyboardNavTarget\r\n class=\"text-body-1\"\r\n [class.is-selected]=\"modeOption.value === currentSelectionMode\"\r\n (click)=\"currentSelectionMode = modeOption.value\">\r\n {{modeOption.label}}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <header class=\"d-flex align-items-center mt-1 px-1\">\r\n <button id=\"{{id}}_prev_button\"\r\n ecKeyboardNavTarget\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\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 ecKeyboardNavTarget\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 ecKeyboardNavTarget\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *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 ecKeyboardNavTarget\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=\"p-2 {{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; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'MM_dd_yyyy'}}\"\r\n ec-calendar-item\r\n ecKeyboardNavTarget\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n </ul>\r\n</article>\r\n", styles: [":host{display:inline-block}article{display:grid;grid-template-areas:\"menu header\" \"menu body\"}header{grid-area:header}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))}button.is-selected{background-color:var(--ec-background-color-selected);font-weight:700}ul{grid-area:body;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}ul.selection-mode-menu{grid-area:menu;grid-template-columns:minmax(7rem,auto);grid-auto-rows:1.75rem}ul.selection-mode-menu button{justify-content:start;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CalendarItemComponent, selector: "button[ec-calendar-item]", inputs: ["item", "activeDate", "selection", "view"] }, { kind: "directive", type: i4.KeyboardNavTargetDirective, selector: "[ecKeyboardNavTarget]", outputs: ["focusOutNext", "focusOutPrevious"] }, { kind: "directive", type: i5.KeyboardNavContainerDirective, selector: "[ecKeyboardNavContainer]", outputs: ["focusOutStart", "focusOutEnd"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, decorators: [{
180
194
  type: Component,
181
- 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)=\"!disablePreviousButton ? onFirstItemKeydown($event) : undefined\"\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 (keydown)=\"disablePreviousButton ? onFirstItemKeydown($event) : undefined\">\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 (keydown)=\"disablePreviousButton && view !== 'day' ? onFirstItemKeydown($event) : undefined\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *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 (keydown)=\"disablePreviousButton && view === 'year' ? onFirstItemKeydown($event) : undefined\">\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:'MM_dd_yyyy'}}\"\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"] }]
182
- }], ctorParameters: function () { return []; }, propDecorators: { id: [{
195
+ args: [{ selector: 'ec-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<article ecKeyboardNavContainer\r\n (focusOutStart)=\"focusOutStart.emit($event)\"\r\n (focusOutEnd)=\"focusOutEnd.emit($event)\">\r\n <ul *ngIf=\"selectionModeOptions.length > 1\"\r\n class=\"selection-mode-menu border-right p-1\">\r\n <li *ngFor=\"let modeOption of selectionModeOptions\">\r\n <button id=\"{{id}}_selectionMode_{{modeOption.value}}\"\r\n ecKeyboardNavTarget\r\n class=\"text-body-1\"\r\n [class.is-selected]=\"modeOption.value === currentSelectionMode\"\r\n (click)=\"currentSelectionMode = modeOption.value\">\r\n {{modeOption.label}}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <header class=\"d-flex align-items-center mt-1 px-1\">\r\n <button id=\"{{id}}_prev_button\"\r\n ecKeyboardNavTarget\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\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 ecKeyboardNavTarget\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 ecKeyboardNavTarget\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *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 ecKeyboardNavTarget\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=\"p-2 {{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; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'MM_dd_yyyy'}}\"\r\n ec-calendar-item\r\n ecKeyboardNavTarget\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n </ul>\r\n</article>\r\n", styles: [":host{display:inline-block}article{display:grid;grid-template-areas:\"menu header\" \"menu body\"}header{grid-area:header}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))}button.is-selected{background-color:var(--ec-background-color-selected);font-weight:700}ul{grid-area:body;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}ul.selection-mode-menu{grid-area:menu;grid-template-columns:minmax(7rem,auto);grid-auto-rows:1.75rem}ul.selection-mode-menu button{justify-content:start;height:100%;width:100%}\n"] }]
196
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { id: [{
183
197
  type: HostBinding,
184
198
  args: ['attr.id']
185
199
  }, {
186
200
  type: Input
201
+ }], selectionModes: [{
202
+ type: Input
187
203
  }], selection: [{
188
204
  type: Input
189
205
  }], selectionChange: [{
@@ -197,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
197
213
  }], focusOutEnd: [{
198
214
  type: Output
199
215
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQWlELDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFRaEgsTUFBTSxPQUFPLGlCQUFpQjtJQTRDNUI7UUF6Q2dCLE9BQUUsR0FBVyxVQUFVLENBQUM7UUFFL0IsY0FBUyxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUVoRSxZQUFPLEdBQVMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELFlBQU8sR0FBUyxjQUFjLENBQUMsaUJBQWlCLENBQUM7UUFFaEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBVzFELCtEQUErRDtRQUN4RCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFLMUMsd0RBQXdEO1FBQ2pELFNBQUksR0FBaUIsS0FBSyxDQUFDO1FBUWxDLDhIQUE4SDtR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Q0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RSxPQUFPLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQztJQUM5QyxDQUFDOzs4R0F2TlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMlRDWjlCLDh6RUE0REs7MkZEaERRLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07MEVBSy9CLEVBQUU7c0JBRGpCLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmFuZ2UgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IERhdGVUaW1lSGVscGVyIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRlLXRpbWUtaGVscGVyJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJJdGVtLCBDYWxlbmRhclNlbGVjdGlvbiwgQ2FsZW5kYXJWaWV3LCBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZSB9IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnY2FsZW5kYXInO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3Rpb246IENhbGVuZGFyU2VsZWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJTZWxlY3Rpb24gfCBudWxsPigpO1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlID0gRGF0ZVRpbWVIZWxwZXIubWluRGF0ZVBpY2tlckRhdGU7XHJcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZSA9IERhdGVUaW1lSGVscGVyLm1heERhdGVQaWNrZXJEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZm9jdXNPdXRTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9jdXNPdXRFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBNb250aCBvZiB0aGUgYWN0aXZlIGRhdGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgYnV0dG9ucy4gKi9cclxuICBwdWJsaWMgbW9udGg/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBZZWFyIG9mIHRoZSBhY3RpdmUgZGF0ZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBidXR0b25zLiAqL1xyXG4gIHB1YmxpYyB5ZWFyPzogc3RyaW5nO1xyXG5cclxuICAvKiogUmFuZ2Ugb2YgeWVhcnMgdG8gZGlzcGxheSBpbiB0aGUgeWVhciB2aWV3LiAqL1xyXG4gIHB1YmxpYyB5ZWFyUmFuZ2U/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBBcnJheSBvZiBjYWxlbmRhciBpdGVtcyB0byBkaXNwbGF5IGluIHRoZSBjYWxlbmRhciBncmlkLiAqL1xyXG4gIHB1YmxpYyBjYWxlbmRhckl0ZW1zOiBDYWxlbmRhckl0ZW1bXSA9IFtdO1xyXG5cclxuICAvKiogV2Vla2RheSBsYWJlbHMgdG8gc2hvdyBhdCB0aGUgdG9wIG9mIHRoZSBjYWxlbmRhciBpbiBkYXkgdmlldy4gKi9cclxuICBwdWJsaWMgd2Vla0RheXM6IHN0cmluZ1tdO1xyXG5cclxuICAvKiogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCB2aWV3IG1vZGUgb2YgdGhlIGNhbGVuZGFyLiAqL1xyXG4gIHB1YmxpYyB2aWV3OiBDYWxlbmRhclZpZXcgPSAnZGF5JztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFRyYWNrcyB0aGUgbW9udGggYW5kIHllYXIgYmVpbmcgdmlld2VkIGluIHRoZSBjYWxlbmRhci5cclxuICAgKiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gdGhlIHNlbGVjdGlvbiwgd2hpY2ggbWF5IGJlIG91dCBvZiB2aWV3LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhY3RpdmVEYXRlOiBEYXRlO1xyXG5cclxuICAvKiogVHJhY2tCeSBmdW5jdGlvbiBmb3IgdGhlIGNhbGVuZGFyIGl0ZW1zLiBUaGlzIGF2b2lkcyByZS1kcmF3aW5nIGNhbGVuZGFyIGl0ZW1zIGlmIGEgZGF0ZSBpcyBzaGFyZWQgYmV0d2VlbiB2aWV3IHVwZGF0ZXMgKi9cclxuICBjYWxlbmRhckl0ZW1UcmFja0J5RGF0ZSA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBDYWxlbmRhckl0ZW0pID0+IGl0ZW0uZGF0ZS50b0lTT1N0cmluZygpO1xyXG5cclxuICBwdWJsaWMgZGlzYWJsZVByZXZpb3VzQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc2FibGVOZXh0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgLy8gQnkgZGVmYXVsdCwgdGhlIGFjdGl2ZSBkYXRlIGlzIHRvZGF5LlxyXG4gICAgLy8gVGhpcyBpcyByZXBsYWNlZCB3aXRoIHRoZSBkYXRlIG9mIHRoZSBzZWxlY3Rpb24gaWYgb25lIGlzIHByb3ZpZGVkIG9uIGluaXQuXHJcbiAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgLy8gVXNpbmcgbW9tZW50IGhlcmUgdG8gZ2V0IHRoZSB3ZWVrZGF5IGxhYmVscyBzbyB0aGV5IGFyZSBsb2NhbGl6ZWQuXHJcbiAgICB0aGlzLndlZWtEYXlzID0gbW9tZW50LndlZWtkYXlzU2hvcnQoKS5tYXAoZCA9PiBkLnNsaWNlKDAsIDEpKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbikge1xyXG4gICAgICAvLyBPbmx5IG5lZWQgdG8gdXBkYXRlIHRoZSB2aWV3IGlmIHRoZSBzZWxlY3Rpb24gaXMgb3V0IG9mIHZpZXcuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZSh0aGlzLnNlbGVjdGlvbikgJiZcclxuICAgICAgICAhdGhpcy5pc0RhdGVJblZpZXcodGhpcy5zZWxlY3Rpb24pICYmXHJcbiAgICAgICAgbW9tZW50KHRoaXMuc2VsZWN0aW9uKS5pc0JldHdlZW4odGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsICdkYXknLCAnW10nKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmRyYXdDYWxlbmRhcignZGF5JywgdGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFRPRE8gRUNBUC0yNjg0MTogZGV0ZXJtaW5lIHRoZSBhY3RpdmUgZGF0ZSBmb3IgYSByYW5nZSBzZWxlY3Rpb24gYW5kIGRyYXcgdGhlIGNhbGVuZGFyXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZHJhd0NhbGVuZGFyKCdkYXknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkl0ZW1TZWxlY3RlZChpdGVtOiBDYWxlbmRhckl0ZW0pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gaXRlbS5kYXRlO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZHJhd0NhbGVuZGFyKCdkYXknLCBpdGVtLmRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignbW9udGgnLCBpdGVtLmRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTmV4dENsaWNrKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgd2UncmUgaW4gZGF5IHZpZXcsIHdlJ3JlIGluY3JlbWVudGluZyBieSBtb250aFxyXG4gICAgLy8gSW4gYm90aCBtb250aCBhbmQgeWVhciB2aWV3cyB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgeWVhclxyXG4gICAgLy8gSW4geWVhciB2aWV3LCB3ZSdyZSBtb3ZpbmcgYnkgMTYgeWVhcnMgYXQgYSB0aW1lXHJcbiAgICBjb25zdCB1bml0ID0gdGhpcy52aWV3ID09PSAnZGF5JyA/ICdtb250aCcgOiAneWVhcic7XHJcbiAgICAvLyBJbiB5ZWFyIHZpZXcsIHdlJ3JlIG1vdmluZyBieSAxNiB5ZWFycyBhdCBhIHRpbWUuIE90aGVyd2lzZSB3ZSdyZSBqdXN0IG1vdmluZyBieSAxIG1vbnRoL3llYXIuXHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudmlldyA9PT0gJ3llYXInID8gMTYgOiAxO1xyXG4gICAgY29uc3QgZ29Ub0RhdGUgPSBtb21lbnQodGhpcy5hY3RpdmVEYXRlKS5hZGQoY291bnQsIHVuaXQpLnRvRGF0ZSgpO1xyXG4gICAgdGhpcy5kcmF3Q2FsZW5kYXIodGhpcy52aWV3LCBnb1RvRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmV2aW91c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgd2UncmUgaW4gZGF5IHZpZXcsIHdlJ3JlIGluY3JlbWVudGluZyBieSBtb250aFxyXG4gICAgLy8gSW4gYm90aCBtb250aCBhbmQgeWVhciB2aWV3cyB3ZSdyZSBpbmNyZW1lbnRpbmcgeWVhcnNcclxuICAgIGNvbnN0IHVuaXQgPSB0aGlzLnZpZXcgPT09ICdkYXknID8gJ21vbnRoJyA6ICd5ZWFyJztcclxuICAgIC8vIEluIHllYXIgdmlldywgd2UncmUgbW92aW5nIGJ5IDE2IHllYXJzIGF0IGEgdGltZS4gT3RoZXJ3aXNlIHdlJ3JlIGp1c3QgbW92aW5nIGJ5IDEgbW9udGgveWVhci5cclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy52aWV3ID09PSAneWVhcicgPyAxNiA6IDE7XHJcbiAgICBjb25zdCBnb1RvRGF0ZSA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLnN1YnRyYWN0KGNvdW50LCB1bml0KS50b0RhdGUoKTtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKHRoaXMudmlldywgZ29Ub0RhdGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFN3aXRjaGVzIHRoZSBjYWxlbmRhciB0byBtb250aCB2aWV3LiAqL1xyXG4gIHB1YmxpYyBvbk1vbnRoQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcignbW9udGgnKTtcclxuICB9XHJcblxyXG4gIC8qKiBTd2l0Y2hlcyB0aGUgY2FsZW5kYXIgdG8geWVhciB2aWV3LiAqL1xyXG4gIHB1YmxpYyBvblllYXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKCd5ZWFyJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25GaXJzdEl0ZW1LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBJZiB0aGUgdXNlciBpcyB0YWJiaW5nIGJhY2t3YXJkcyBmcm9tIHRoZSBmaXJzdCBpdGVtLCBlbWl0IHRoZSBmb2N1c091dFN0YXJ0IGV2ZW50LlxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHtcclxuICAgICAgdGhpcy5mb2N1c091dFN0YXJ0LmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTGFzdEl0ZW1LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBJZiB0aGUgdXNlciBpcyB0YWJiaW5nIGZvcndhcmRzIGZyb20gdGhlIGxhc3QgaXRlbSwgZW1pdCB0aGUgZm9jdXNPdXRFbmQgZXZlbnQuXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnVGFiJyAmJiAhZXZlbnQuc2hpZnRLZXkpIHtcclxuICAgICAgdGhpcy5mb2N1c091dEVuZC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0NhbGVuZGFyKHZpZXc6IENhbGVuZGFyVmlldywgZ29Ubz86IERhdGUpOiB2b2lkIHtcclxuICAgIC8vIElmIGEgZ29UbyBkYXRlIGlzIHByb3ZpZGVkLCB1cGRhdGUgdGhlIGFjdGl2ZSBkYXRlIHNvIHdlIGtub3cgd2hhdCB0byBpbmNyZW1lbnQgb24gbmV4dC9wcmV2aW91cyBjbGlja3MuXHJcbiAgICBpZiAoZ29Ubykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBnb1RvO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KHRoaXMuYWN0aXZlRGF0ZSkuZm9ybWF0KCdNTU0nKTtcclxuICAgIHRoaXMueWVhciA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLmZvcm1hdCgnWVlZWScpO1xyXG4gICAgdGhpcy52aWV3ID0gdmlldztcclxuICAgIHRoaXMuY2FsZW5kYXJJdGVtcyA9IHRoaXMuZ2V0Q2FsZW5kYXJJdGVtcyh2aWV3LCB0aGlzLmFjdGl2ZURhdGUpO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0WWVhciA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlIDwgdGhpcy5taW5EYXRlID8gdGhpcy5taW5EYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zWzBdLmRhdGU7XHJcbiAgICBjb25zdCBlbmRZZWFyID0gdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlID4gdGhpcy5tYXhEYXRlID8gdGhpcy5tYXhEYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xyXG4gICAgdGhpcy55ZWFyUmFuZ2UgPSBgJHttb21lbnQoc3RhcnRZZWFyKS5mb3JtYXQoJ1lZWVknKX0mbmRhc2g7JHttb21lbnQoZW5kWWVhcikuZm9ybWF0KCdZWVlZJyl9YDtcclxuXHJcbiAgICAvLyBJZiB0aGUgYWN0aXZlIGRhdGUgaXMgbGVzcyB0aGFuIHRoZSBtaW4gZGF0ZSBvciB0aGUgbWluIGRhdGUgaXMgaW4gdmlldywgZGlzYWJsZSB0aGUgcHJldmlvdXMgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA8IHRoaXMubWluRGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1pbkRhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIGFjdGl2ZSBkYXRlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4IGRhdGUgb3IgdGhlIG1heCBkYXRlIGlzIGluIHZpZXcsIGRpc2FibGUgdGhlIG5leHQgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA+IHRoaXMubWF4RGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1heERhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZU5leHRCdXR0b24gPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNhYmxlTmV4dEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckl0ZW1zKHZpZXc6IENhbGVuZGFyVmlldywgYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICdkYXknOiByZXR1cm4gdGhpcy5nZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzogcmV0dXJuIHRoaXMuZ2V0TW9udGhWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ3llYXInOiByZXR1cm4gdGhpcy5nZXRZZWFyVmlld0l0ZW1zKGFjdGl2ZURhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDYgcm93cyBvZiA3IGRheXMgPSA0MiBkYXlzXHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgNDIpLm1hcChpID0+IHtcclxuICAgICAgLy8gVXNlIHRoZSBzdGFydCBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC5cclxuICAgICAgLy8gVGhpcyBwYWRzIG91dCB0aGUgZmlyc3Qgd2VlayB3aXRoIGFueSBkYXlzIGZyb20gdGhlIHByZXZpb3VzIG1vbnRoLlxyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KGFjdGl2ZURhdGUpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpLmFkZChpLCAnZGF5Jyk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0ZTogZGF0ZS50b0RhdGUoKSxcclxuICAgICAgICBsYWJlbDogZGF0ZS5mb3JtYXQoJ0QnKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vbnRoVmlld0l0ZW1zKGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgMTIpLm1hcChpID0+IHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuYWRkKGksICdtb250aCcpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGU6IGRhdGUudG9EYXRlKCksXHJcbiAgICAgICAgbGFiZWw6IGRhdGUuZm9ybWF0KCdNTU0nKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFllYXJWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDR4NCBncmlkIG9mIHllYXJzID0gMTYgeWVhcnNcclxuICAgIHJldHVybiByYW5nZSgwLCAxNikubWFwKGkgPT4ge1xyXG4gICAgICAvLyBQdXQgdGhlIGN1cnJlbnQgYWN0aXZlIHllYXIgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgM3JkIHJvdy5cclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoOCwgJ3llYXInKS5hZGQoaSwgJ3llYXInKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRlOiBkYXRlLnRvRGF0ZSgpLFxyXG4gICAgICAgIGxhYmVsOiBkYXRlLmZvcm1hdCgnWVlZWScpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRhdGUgaXMgd2l0aGluIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcgKi9cclxuICBwcml2YXRlIGlzRGF0ZUluVmlldyhkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpZXdTdGFydCA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlO1xyXG4gICAgY29uc3Qgdmlld0VuZCA9IHRoaXMuY2FsZW5kYXJJdGVtc1t0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcclxuICAgIHJldHVybiBkYXRlID49IHZpZXdTdGFydCAmJiBkYXRlIDw9IHZpZXdFbmQ7XHJcbiAgfVxyXG59XHJcbiIsIjxoZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICA8YnV0dG9uIGlkPVwie3tpZH19X3ByZXZfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwibXItYXV0b1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgKGtleWRvd24pPVwiIWRpc2FibGVQcmV2aW91c0J1dHRvbiA/IG9uRmlyc3RJdGVtS2V5ZG93bigkZXZlbnQpIDogdW5kZWZpbmVkXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlUHJldmlvdXNCdXR0b25cIj5cclxuICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWFuZ2xlLWRvd24gcm90YXRlLTkwXCI+PC9pPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8YnV0dG9uICpuZ0lmPVwidmlldyA9PT0gJ2RheSdcIlxyXG4gICAgICAgICAgaWQ9XCJ7e2lkfX1fbW9udGhfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LTEgZm9udC13ZWlnaHQtYm9sZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25Nb250aENsaWNrKClcIlxyXG4gICAgICAgICAgKGtleWRvd24pPVwiZGlzYWJsZVByZXZpb3VzQnV0dG9uID8gb25GaXJzdEl0ZW1LZXlkb3duKCRldmVudCkgOiB1bmRlZmluZWRcIj5cclxuICAgIHt7bW9udGh9fVxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8YnV0dG9uICpuZ0lmPVwidmlldyAhPT0gJ3llYXInXCJcclxuICAgICAgICAgIGlkPVwie3tpZH19X3llYXJfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LTEgZm9udC13ZWlnaHQtYm9sZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25ZZWFyQ2xpY2soKVwiXHJcbiAgICAgICAgICAoa2V5ZG93bik9XCJkaXNhYmxlUHJldmlvdXNCdXR0b24gJiYgdmlldyAhPT0gJ2RheScgPyBvbkZpcnN0SXRlbUtleWRvd24oJGV2ZW50KSA6IHVuZGVmaW5lZFwiPlxyXG4gICAge3t5ZWFyfX1cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGRpdiBpZD1cInt7aWR9fV95ZWFyX3JhbmdlXCJcclxuICAgICAgICpuZ0lmPVwidmlldyA9PT0gJ3llYXInXCJcclxuICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LTEgZm9udC13ZWlnaHQtYm9sZFwiXHJcbiAgICAgICBbaW5uZXJIVE1MXT1cInllYXJSYW5nZVwiPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8YnV0dG9uIGlkPVwie3tpZH19X25leHRfYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25OZXh0Q2xpY2soKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZU5leHRCdXR0b25cIlxyXG4gICAgICAgICAgKGtleWRvd24pPVwiZGlzYWJsZVByZXZpb3VzQnV0dG9uICYmIHZpZXcgPT09ICd5ZWFyJyA/IG9uRmlyc3RJdGVtS2V5ZG93bigkZXZlbnQpIDogdW5kZWZpbmVkXCI+XHJcbiAgICA8aSBjbGFzcz1cImVjLWljb24gaWNvbi1hbmdsZS1kb3duIHJvdGF0ZS0yNzBcIj48L2k+XHJcbiAgPC9idXR0b24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPHVsIGNsYXNzPVwicHgtMSB7e3ZpZXd9fS12aWV3XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXcgPT09ICdkYXknXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrRGF5c1wiXHJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1oZWFkaW5nLTNcIj5cclxuICAgICAge3tkYXl9fVxyXG4gICAgPC9saT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNhbGVuZGFySXRlbXM7IGxhc3QgYXMgaXNMYXN0OyB0cmFja0J5OiBjYWxlbmRhckl0ZW1UcmFja0J5RGF0ZTtcIj5cclxuICAgIDxidXR0b24gaWQ9XCJ7e2lkfX1faXRlbV97e2l0ZW0uZGF0ZSB8IGRhdGU6J01NX2RkX3l5eXknfX1cIlxyXG4gICAgICAgICAgICBlYy1jYWxlbmRhci1pdGVtXHJcbiAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcclxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgICBbdmlld109XCJ2aWV3XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbVNlbGVjdGVkKGl0ZW0pXCJcclxuICAgICAgICAgICAgKGtleWRvd24pPVwiaXNMYXN0ID8gb25MYXN0SXRlbUtleWRvd24oJGV2ZW50KSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgIFtoaWRkZW5dPVwiaXRlbS5kYXRlIDwgbWluRGF0ZSB8fCBpdGVtLmRhdGUgPiBtYXhEYXRlXCI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2xpPlxyXG48L3VsPiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRS9JLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxPQUFPLEVBQXdFLDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFRdkksTUFBTSxPQUFPLGlCQUFpQjtJQW1ENUIsWUFDVSxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWpENUIsT0FBRSxHQUFXLFVBQVUsQ0FBQztRQUUvQixtQkFBYyxHQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxELGNBQVMsR0FBNkIsSUFBSSxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFaEUsWUFBTyxHQUFTLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRCxZQUFPLEdBQVMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBRWhELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDbEQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQVcxRCwrREFB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QkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUUsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZS10aW1lLWhlbHBlcic7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAnLi4vbWVudS9tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFySXRlbSwgQ2FsZW5kYXJTZWxlY3Rpb24sIENhbGVuZGFyU2VsZWN0aW9uTW9kZSwgQ2FsZW5kYXJWaWV3LCBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZSB9IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXHJcbiAgQElucHV0KCkgcHVibGljIGlkOiBzdHJpbmcgPSAnY2FsZW5kYXInO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlczogQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlW10gPSBbJ2RheSddO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3Rpb246IENhbGVuZGFyU2VsZWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJTZWxlY3Rpb24gfCBudWxsPigpO1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlID0gRGF0ZVRpbWVIZWxwZXIubWluRGF0ZVBpY2tlckRhdGU7XHJcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZSA9IERhdGVUaW1lSGVscGVyLm1heERhdGVQaWNrZXJEYXRlO1xyXG5cclxuICBAT3V0cHV0KCkgZm9jdXNPdXRTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZm9jdXNPdXRFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBNb250aCBvZiB0aGUgYWN0aXZlIGRhdGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgYnV0dG9ucy4gKi9cclxuICBwdWJsaWMgbW9udGg/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBZZWFyIG9mIHRoZSBhY3RpdmUgZGF0ZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBidXR0b25zLiAqL1xyXG4gIHB1YmxpYyB5ZWFyPzogc3RyaW5nO1xyXG5cclxuICAvKiogUmFuZ2Ugb2YgeWVhcnMgdG8gZGlzcGxheSBpbiB0aGUgeWVhciB2aWV3LiAqL1xyXG4gIHB1YmxpYyB5ZWFyUmFuZ2U/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBBcnJheSBvZiBjYWxlbmRhciBpdGVtcyB0byBkaXNwbGF5IGluIHRoZSBjYWxlbmRhciBncmlkLiAqL1xyXG4gIHB1YmxpYyBjYWxlbmRhckl0ZW1zOiBDYWxlbmRhckl0ZW1bXSA9IFtdO1xyXG5cclxuICAvKiogV2Vla2RheSBsYWJlbHMgdG8gc2hvdyBhdCB0aGUgdG9wIG9mIHRoZSBjYWxlbmRhciBpbiBkYXkgdmlldy4gKi9cclxuICBwdWJsaWMgd2Vla0RheXM6IHN0cmluZ1tdO1xyXG5cclxuICAvKiogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCB2aWV3IG1vZGUgb2YgdGhlIGNhbGVuZGFyLiAqL1xyXG4gIHB1YmxpYyB2aWV3OiBDYWxlbmRhclZpZXcgPSAnZGF5JztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFRyYWNrcyB0aGUgbW9udGggYW5kIHllYXIgYmVpbmcgdmlld2VkIGluIHRoZSBjYWxlbmRhci5cclxuICAgKiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gdGhlIHNlbGVjdGlvbiwgd2hpY2ggbWF5IGJlIG91dCBvZiB2aWV3LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhY3RpdmVEYXRlOiBEYXRlO1xyXG5cclxuICAvKiogVHJhY2tCeSBmdW5jdGlvbiBmb3IgdGhlIGNhbGVuZGFyIGl0ZW1zLiBUaGlzIGF2b2lkcyByZS1kcmF3aW5nIGNhbGVuZGFyIGl0ZW1zIGlmIGEgZGF0ZSBpcyBzaGFyZWQgYmV0d2VlbiB2aWV3IHVwZGF0ZXMgKi9cclxuICBjYWxlbmRhckl0ZW1UcmFja0J5RGF0ZSA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBDYWxlbmRhckl0ZW0pID0+IGl0ZW0uZGF0ZS50b0lTT1N0cmluZygpO1xyXG5cclxuICBwdWJsaWMgZGlzYWJsZVByZXZpb3VzQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc2FibGVOZXh0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3Rpb25Nb2RlT3B0aW9uczogTWVudUl0ZW08Q2FsZW5kYXJTZWxlY3Rpb25Nb2RlPltdID0gW1xyXG4gICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NhbGVuZGFyU2VsZWN0aW9uTW9kZV9kYXknKSwgdmFsdWU6ICdkYXknIH1cclxuICBdO1xyXG4gIHB1YmxpYyBjdXJyZW50U2VsZWN0aW9uTW9kZTogQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlID0gJ2RheSc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyBCeSBkZWZhdWx0LCB0aGUgYWN0aXZlIGRhdGUgaXMgdG9kYXkuXHJcbiAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIHdpdGggdGhlIGRhdGUgb2YgdGhlIHNlbGVjdGlvbiBpZiBvbmUgaXMgcHJvdmlkZWQgb24gaW5pdC5cclxuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAvLyBVc2luZyBtb21lbnQgaGVyZSB0byBnZXQgdGhlIHdlZWtkYXkgbGFiZWxzIHNvIHRoZXkgYXJlIGxvY2FsaXplZC5cclxuICAgIHRoaXMud2Vla0RheXMgPSBtb21lbnQud2Vla2RheXNTaG9ydCgpLm1hcChkID0+IGQuc2xpY2UoMCwgMSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uKSB7XHJcbiAgICAgIC8vIE9ubHkgbmVlZCB0byB1cGRhdGUgdGhlIHZpZXcgaWYgdGhlIHNlbGVjdGlvbiBpcyBvdXQgb2Ygdmlldy5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIGlzQ2FsZW5kYXJTZWxlY3Rpb25TaW5nbGVEYXRlKHRoaXMuc2VsZWN0aW9uKSAmJlxyXG4gICAgICAgICF0aGlzLmlzRGF0ZUluVmlldyh0aGlzLnNlbGVjdGlvbikgJiZcclxuICAgICAgICBtb21lbnQodGhpcy5zZWxlY3Rpb24pLmlzQmV0d2Vlbih0aGlzLm1pbkRhdGUsIHRoaXMubWF4RGF0ZSwgJ2RheScsICdbXScpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZHJhd0NhbGVuZGFyKCdkYXknLCB0aGlzLnNlbGVjdGlvbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVE9ETyBFQ0FQLTI2ODQxOiBkZXRlcm1pbmUgdGhlIGFjdGl2ZSBkYXRlIGZvciBhIHJhbmdlIHNlbGVjdGlvbiBhbmQgZHJhdyB0aGUgY2FsZW5kYXJcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGlvbk1vZGVzKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uTW9kZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZHJhd0NhbGVuZGFyKCdkYXknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkl0ZW1TZWxlY3RlZChpdGVtOiBDYWxlbmRhckl0ZW0pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gaXRlbS5kYXRlO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZHJhd0NhbGVuZGFyKCdkYXknLCBpdGVtLmRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignbW9udGgnLCBpdGVtLmRhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTmV4dENsaWNrKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgd2UncmUgaW4gZGF5IHZpZXcsIHdlJ3JlIGluY3JlbWVudGluZyBieSBtb250aFxyXG4gICAgLy8gSW4gYm90aCBtb250aCBhbmQgeWVhciB2aWV3cyB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgeWVhclxyXG4gICAgLy8gSW4geWVhciB2aWV3LCB3ZSdyZSBtb3ZpbmcgYnkgMTYgeWVhcnMgYXQgYSB0aW1lXHJcbiAgICBjb25zdCB1bml0ID0gdGhpcy52aWV3ID09PSAnZGF5JyA/ICdtb250aCcgOiAneWVhcic7XHJcbiAgICAvLyBJbiB5ZWFyIHZpZXcsIHdlJ3JlIG1vdmluZyBieSAxNiB5ZWFycyBhdCBhIHRpbWUuIE90aGVyd2lzZSB3ZSdyZSBqdXN0IG1vdmluZyBieSAxIG1vbnRoL3llYXIuXHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudmlldyA9PT0gJ3llYXInID8gMTYgOiAxO1xyXG4gICAgY29uc3QgZ29Ub0RhdGUgPSBtb21lbnQodGhpcy5hY3RpdmVEYXRlKS5hZGQoY291bnQsIHVuaXQpLnRvRGF0ZSgpO1xyXG4gICAgdGhpcy5kcmF3Q2FsZW5kYXIodGhpcy52aWV3LCBnb1RvRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmV2aW91c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgLy8gSWYgd2UncmUgaW4gZGF5IHZpZXcsIHdlJ3JlIGluY3JlbWVudGluZyBieSBtb250aFxyXG4gICAgLy8gSW4gYm90aCBtb250aCBhbmQgeWVhciB2aWV3cyB3ZSdyZSBpbmNyZW1lbnRpbmcgeWVhcnNcclxuICAgIGNvbnN0IHVuaXQgPSB0aGlzLnZpZXcgPT09ICdkYXknID8gJ21vbnRoJyA6ICd5ZWFyJztcclxuICAgIC8vIEluIHllYXIgdmlldywgd2UncmUgbW92aW5nIGJ5IDE2IHllYXJzIGF0IGEgdGltZS4gT3RoZXJ3aXNlIHdlJ3JlIGp1c3QgbW92aW5nIGJ5IDEgbW9udGgveWVhci5cclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy52aWV3ID09PSAneWVhcicgPyAxNiA6IDE7XHJcbiAgICBjb25zdCBnb1RvRGF0ZSA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLnN1YnRyYWN0KGNvdW50LCB1bml0KS50b0RhdGUoKTtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKHRoaXMudmlldywgZ29Ub0RhdGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFN3aXRjaGVzIHRoZSBjYWxlbmRhciB0byBtb250aCB2aWV3LiAqL1xyXG4gIHB1YmxpYyBvbk1vbnRoQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcignbW9udGgnKTtcclxuICB9XHJcblxyXG4gIC8qKiBTd2l0Y2hlcyB0aGUgY2FsZW5kYXIgdG8geWVhciB2aWV3LiAqL1xyXG4gIHB1YmxpYyBvblllYXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKCd5ZWFyJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGlvbk1vZGVzKCkge1xyXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRheSBzZWxlY3Rpb24gbW9kZSBpZiBub25lIGFyZSBwcm92aWRlZFxyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGlvbk1vZGVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbk1vZGVzID0gWydkYXknXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIHNlbGVjdGlvbiBtb2RlIG9wdGlvbnMgZm9yIHRoZSBjYWxlbmRhciBtZW51XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVPcHRpb25zID0gdGhpcy5zZWxlY3Rpb25Nb2Rlcy5tYXAobW9kZSA9PiA8TWVudUl0ZW08Q2FsZW5kYXJTZWxlY3Rpb25Nb2RlPj57XHJcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlXycgKyBtb2RlKSxcclxuICAgICAgdmFsdWU6IG1vZGVcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy5zZWxlY3Rpb25Nb2Rlcy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRTZWxlY3Rpb25Nb2RlKSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb25Nb2RlID0gdGhpcy5zZWxlY3Rpb25Nb2Rlc1swXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZHJhd0NhbGVuZGFyKHZpZXc6IENhbGVuZGFyVmlldywgZ29Ubz86IERhdGUpOiB2b2lkIHtcclxuICAgIC8vIElmIGEgZ29UbyBkYXRlIGlzIHByb3ZpZGVkLCB1cGRhdGUgdGhlIGFjdGl2ZSBkYXRlIHNvIHdlIGtub3cgd2hhdCB0byBpbmNyZW1lbnQgb24gbmV4dC9wcmV2aW91cyBjbGlja3MuXHJcbiAgICBpZiAoZ29Ubykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBnb1RvO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLm1vbnRoID0gbW9tZW50KHRoaXMuYWN0aXZlRGF0ZSkuZm9ybWF0KCdNTU0nKTtcclxuICAgIHRoaXMueWVhciA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLmZvcm1hdCgnWVlZWScpO1xyXG4gICAgdGhpcy52aWV3ID0gdmlldztcclxuICAgIHRoaXMuY2FsZW5kYXJJdGVtcyA9IHRoaXMuZ2V0Q2FsZW5kYXJJdGVtcyh2aWV3LCB0aGlzLmFjdGl2ZURhdGUpO1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0WWVhciA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlIDwgdGhpcy5taW5EYXRlID8gdGhpcy5taW5EYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zWzBdLmRhdGU7XHJcbiAgICBjb25zdCBlbmRZZWFyID0gdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlID4gdGhpcy5tYXhEYXRlID8gdGhpcy5tYXhEYXRlIDogdGhpcy5jYWxlbmRhckl0ZW1zW3RoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xyXG4gICAgdGhpcy55ZWFyUmFuZ2UgPSBgJHttb21lbnQoc3RhcnRZZWFyKS5mb3JtYXQoJ1lZWVknKX0mbmRhc2g7JHttb21lbnQoZW5kWWVhcikuZm9ybWF0KCdZWVlZJyl9YDtcclxuXHJcbiAgICAvLyBJZiB0aGUgYWN0aXZlIGRhdGUgaXMgbGVzcyB0aGFuIHRoZSBtaW4gZGF0ZSBvciB0aGUgbWluIGRhdGUgaXMgaW4gdmlldywgZGlzYWJsZSB0aGUgcHJldmlvdXMgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA8IHRoaXMubWluRGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1pbkRhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgdGhlIGFjdGl2ZSBkYXRlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4IGRhdGUgb3IgdGhlIG1heCBkYXRlIGlzIGluIHZpZXcsIGRpc2FibGUgdGhlIG5leHQgYnV0dG9uLlxyXG4gICAgaWYgKHRoaXMuYWN0aXZlRGF0ZSA+IHRoaXMubWF4RGF0ZSB8fCB0aGlzLmlzRGF0ZUluVmlldyh0aGlzLm1heERhdGUpKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZU5leHRCdXR0b24gPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNhYmxlTmV4dEJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDYWxlbmRhckl0ZW1zKHZpZXc6IENhbGVuZGFyVmlldywgYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICdkYXknOiByZXR1cm4gdGhpcy5nZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzogcmV0dXJuIHRoaXMuZ2V0TW9udGhWaWV3SXRlbXMoYWN0aXZlRGF0ZSk7XHJcbiAgICAgIGNhc2UgJ3llYXInOiByZXR1cm4gdGhpcy5nZXRZZWFyVmlld0l0ZW1zKGFjdGl2ZURhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXREYXlWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDYgcm93cyBvZiA3IGRheXMgPSA0MiBkYXlzXHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgNDIpLm1hcChpID0+IHtcclxuICAgICAgLy8gVXNlIHRoZSBzdGFydCBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC5cclxuICAgICAgLy8gVGhpcyBwYWRzIG91dCB0aGUgZmlyc3Qgd2VlayB3aXRoIGFueSBkYXlzIGZyb20gdGhlIHByZXZpb3VzIG1vbnRoLlxyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KGFjdGl2ZURhdGUpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignd2VlaycpLmFkZChpLCAnZGF5Jyk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0ZTogZGF0ZS50b0RhdGUoKSxcclxuICAgICAgICBsYWJlbDogZGF0ZS5mb3JtYXQoJ0QnKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1vbnRoVmlld0l0ZW1zKGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgMTIpLm1hcChpID0+IHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuYWRkKGksICdtb250aCcpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGU6IGRhdGUudG9EYXRlKCksXHJcbiAgICAgICAgbGFiZWw6IGRhdGUuZm9ybWF0KCdNTU0nKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFllYXJWaWV3SXRlbXMoYWN0aXZlRGF0ZTogRGF0ZSk6IENhbGVuZGFySXRlbVtdIHtcclxuICAgIC8vIDR4NCBncmlkIG9mIHllYXJzID0gMTYgeWVhcnNcclxuICAgIHJldHVybiByYW5nZSgwLCAxNikubWFwKGkgPT4ge1xyXG4gICAgICAvLyBQdXQgdGhlIGN1cnJlbnQgYWN0aXZlIHllYXIgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgM3JkIHJvdy5cclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCd5ZWFyJykuc3VidHJhY3QoOCwgJ3llYXInKS5hZGQoaSwgJ3llYXInKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRlOiBkYXRlLnRvRGF0ZSgpLFxyXG4gICAgICAgIGxhYmVsOiBkYXRlLmZvcm1hdCgnWVlZWScpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGRhdGUgaXMgd2l0aGluIHRoZSBjdXJyZW50IGNhbGVuZGFyIHZpZXcgKi9cclxuICBwcml2YXRlIGlzRGF0ZUluVmlldyhkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY2FsZW5kYXJJdGVtcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpZXdTdGFydCA9IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlO1xyXG4gICAgY29uc3Qgdmlld0VuZCA9IHRoaXMuY2FsZW5kYXJJdGVtc1t0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcclxuICAgIHJldHVybiBkYXRlID49IHZpZXdTdGFydCAmJiBkYXRlIDw9IHZpZXdFbmQ7XHJcbiAgfVxyXG59XHJcbiIsIjxhcnRpY2xlIGVjS2V5Ym9hcmROYXZDb250YWluZXJcclxuICAgICAgICAgKGZvY3VzT3V0U3RhcnQpPVwiZm9jdXNPdXRTdGFydC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAoZm9jdXNPdXRFbmQpPVwiZm9jdXNPdXRFbmQuZW1pdCgkZXZlbnQpXCI+XHJcbiAgPHVsICpuZ0lmPVwic2VsZWN0aW9uTW9kZU9wdGlvbnMubGVuZ3RoID4gMVwiXHJcbiAgICAgIGNsYXNzPVwic2VsZWN0aW9uLW1vZGUtbWVudSBib3JkZXItcmlnaHQgcC0xXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IG1vZGVPcHRpb24gb2Ygc2VsZWN0aW9uTW9kZU9wdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiBpZD1cInt7aWR9fV9zZWxlY3Rpb25Nb2RlX3t7bW9kZU9wdGlvbi52YWx1ZX19XCJcclxuICAgICAgICAgICAgICBlY0tleWJvYXJkTmF2VGFyZ2V0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktMVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cIm1vZGVPcHRpb24udmFsdWUgPT09IGN1cnJlbnRTZWxlY3Rpb25Nb2RlXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY3VycmVudFNlbGVjdGlvbk1vZGUgPSBtb2RlT3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAge3ttb2RlT3B0aW9uLmxhYmVsfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcblxyXG4gIDxoZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTEgcHgtMVwiPlxyXG4gICAgPGJ1dHRvbiBpZD1cInt7aWR9fV9wcmV2X2J1dHRvblwiXHJcbiAgICAgICAgICAgIGVjS2V5Ym9hcmROYXZUYXJnZXRcclxuICAgICAgICAgICAgY2xhc3M9XCJtci1hdXRvXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXNDbGljaygpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVQcmV2aW91c0J1dHRvblwiPlxyXG4gICAgICA8aSBjbGFzcz1cImVjLWljb24gaWNvbi1hbmdsZS1kb3duIHJvdGF0ZS05MFwiPjwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gKm5nSWY9XCJ2aWV3ID09PSAnZGF5J1wiXHJcbiAgICAgICAgICAgIGVjS2V5Ym9hcmROYXZUYXJnZXRcclxuICAgICAgICAgICAgaWQ9XCJ7e2lkfX1fbW9udGhfYnV0dG9uXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHktMSBmb250LXdlaWdodC1ib2xkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTW9udGhDbGljaygpXCI+XHJcbiAgICAgIHt7bW9udGh9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cInZpZXcgIT09ICd5ZWFyJ1wiXHJcbiAgICAgICAgICAgIGlkPVwie3tpZH19X3llYXJfYnV0dG9uXCJcclxuICAgICAgICAgICAgZWNLZXlib2FyZE5hdlRhcmdldFxyXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0xIGZvbnQtd2VpZ2h0LWJvbGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25ZZWFyQ2xpY2soKVwiPlxyXG4gICAgICB7e3llYXJ9fVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGRpdiBpZD1cInt7aWR9fV95ZWFyX3JhbmdlXCJcclxuICAgICAgICAgKm5nSWY9XCJ2aWV3ID09PSAneWVhcidcIlxyXG4gICAgICAgICBjbGFzcz1cInRleHQtYm9keS0xIGZvbnQtd2VpZ2h0LWJvbGRcIlxyXG4gICAgICAgICBbaW5uZXJIVE1MXT1cInllYXJSYW5nZVwiPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGJ1dHRvbiBpZD1cInt7aWR9fV9uZXh0X2J1dHRvblwiXHJcbiAgICAgICAgICAgIGVjS2V5Ym9hcmROYXZUYXJnZXRcclxuICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZU5leHRCdXR0b25cIj5cclxuICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tYW5nbGUtZG93biByb3RhdGUtMjcwXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDx1bCBjbGFzcz1cInAtMiB7e3ZpZXd9fS12aWV3XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldyA9PT0gJ2RheSdcIj5cclxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla0RheXNcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1oZWFkaW5nLTNcIj5cclxuICAgICAgICB7e2RheX19XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2FsZW5kYXJJdGVtczsgdHJhY2tCeTogY2FsZW5kYXJJdGVtVHJhY2tCeURhdGU7XCI+XHJcbiAgICAgIDxidXR0b24gaWQ9XCJ7e2lkfX1faXRlbV97e2l0ZW0uZGF0ZSB8IGRhdGU6J01NX2RkX3l5eXknfX1cIlxyXG4gICAgICAgICAgICAgIGVjLWNhbGVuZGFyLWl0ZW1cclxuICAgICAgICAgICAgICBlY0tleWJvYXJkTmF2VGFyZ2V0XHJcbiAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFt2aWV3XT1cInZpZXdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCJpdGVtLmRhdGUgPCBtaW5EYXRlIHx8IGl0ZW0uZGF0ZSA+IG1heERhdGVcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbjwvYXJ0aWNsZT5cclxuIl19
@@ -1,4 +1,4 @@
1
1
  export function isCalendarSelectionSingleDate(selection) {
2
2
  return selection instanceof Date;
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY2FsZW5kYXIvY2FsZW5kYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFNBQW9DO0lBQ2hGLE9BQU8sU0FBUyxZQUFZLElBQUksQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FsZW5kYXJJdGVtID0ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgZGF0ZTogRGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyU2VsZWN0aW9uID0gRGF0ZSB8IFtEYXRlLCBEYXRlXTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyVmlldyA9ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24/OiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwpOiBzZWxlY3Rpb24gaXMgRGF0ZSB7XHJcbiAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIERhdGU7XHJcbn1cclxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY2FsZW5kYXIvY2FsZW5kYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFNBQW9DO0lBQ2hGLE9BQU8sU0FBUyxZQUFZLElBQUksQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FsZW5kYXJJdGVtID0ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgZGF0ZTogRGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyU2VsZWN0aW9uID0gRGF0ZSB8IFtEYXRlLCBEYXRlXTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyU2VsZWN0aW9uTW9kZSA9ICdkYXknIHwgJ2xhc3Q3ZGF5cycgfCAnbGFzdDI4ZGF5cycgfCAnbW9udGgnIHwgJ3F1YXJ0ZXInIHwgJ3llYXInIHwgJ3JhbmdlJztcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyVmlldyA9ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24/OiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwpOiBzZWxlY3Rpb24gaXMgRGF0ZSB7XHJcbiAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIERhdGU7XHJcbn1cclxuIl19