@c8y/ngx-components 1021.55.1 → 1021.55.3

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.
Files changed (64) hide show
  1. package/core/common/interval-based-reload.abstract.d.ts +13 -3
  2. package/core/common/interval-based-reload.abstract.d.ts.map +1 -1
  3. package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts +3 -4
  4. package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -1
  5. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts +1 -0
  6. package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts.map +1 -1
  7. package/core/dashboard/widgets-dashboard-event.service.d.ts +7 -0
  8. package/core/dashboard/widgets-dashboard-event.service.d.ts.map +1 -1
  9. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +6 -2
  10. package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
  11. package/datapoint-explorer/view/configuration/workspace-configuration.component.d.ts.map +1 -1
  12. package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -1
  13. package/datapoints-export-selector/datapoints-export-selector.component.d.ts +3 -1
  14. package/datapoints-export-selector/datapoints-export-selector.component.d.ts.map +1 -1
  15. package/echart/charts.component.d.ts.map +1 -1
  16. package/esm2022/core/aggregation/aggregation.model.mjs +2 -2
  17. package/esm2022/core/common/interval-based-reload.abstract.mjs +13 -13
  18. package/esm2022/core/dashboard/dashboard-child.component.mjs +3 -3
  19. package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.mjs +6 -8
  20. package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.mjs +9 -1
  21. package/esm2022/core/dashboard/widgets-dashboard-event.service.mjs +19 -2
  22. package/esm2022/core/dashboard/widgets-dashboard.component.mjs +3 -3
  23. package/esm2022/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.mjs +3 -3
  24. package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +48 -23
  25. package/esm2022/datapoint-explorer/view/configuration/workspace-configuration.component.mjs +13 -8
  26. package/esm2022/datapoint-explorer/view/datapoint-explorer.component.mjs +2 -2
  27. package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.mjs +1 -3
  28. package/esm2022/datapoints-export-selector/datapoints-export-selector.component.mjs +9 -5
  29. package/esm2022/echart/charts.component.mjs +22 -84
  30. package/esm2022/widgets/definitions/datapoints-table/index.mjs +3 -2
  31. package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +3 -3
  32. package/esm2022/widgets/implementations/alarms/alarm-widget-alarms-reload.component.mjs +17 -100
  33. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +47 -34
  34. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.mjs +35 -13
  35. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.mjs +3 -3
  36. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.mjs +75 -35
  37. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-widget.model.mjs +3 -5
  38. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +13 -8
  39. package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
  40. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +7 -6
  41. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  42. package/fesm2022/c8y-ngx-components-echart.mjs +21 -83
  43. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  44. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +2 -1
  45. package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
  46. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +18 -101
  47. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  48. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +147 -76
  49. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  50. package/fesm2022/c8y-ngx-components.mjs +209 -162
  51. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  52. package/locales/locales.pot +3 -7
  53. package/package.json +1 -1
  54. package/widgets/definitions/datapoints-table/index.d.ts.map +1 -1
  55. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts +18 -63
  56. package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
  57. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts +4 -2
  58. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
  59. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts +16 -8
  60. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts.map +1 -1
  61. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts +21 -4
  62. package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -1
  63. package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts +4 -1
  64. package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts.map +1 -1
@@ -251,13 +251,13 @@ export class DashboardChildComponent {
251
251
  return false;
252
252
  }
253
253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardChildComponent, deps: [{ token: i1.DashboardComponent }, { token: i2.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i8.WidgetAutoRefreshContextIconBarComponent, selector: "c8y-widget-auto-refresh-context-icon-bar" }, { kind: "component", type: i9.WidgetTimeContextIconBar, selector: "c8y-widget-time-context-icon-bar", inputs: ["config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"\n data?.config?.displaySettings &&\n (data?.config?.widgetInstanceGlobalTimeContext ||\n data?.config?.widgetInstanceGlobalAutoRefreshContext)\n \"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n [delay]=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right: -1px\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i8.WidgetAutoRefreshContextIconBarComponent, selector: "c8y-widget-auto-refresh-context-icon-bar" }, { kind: "component", type: i9.WidgetTimeContextIconBar, selector: "c8y-widget-time-context-icon-bar", inputs: ["config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
255
255
  }
256
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DashboardChildComponent, decorators: [{
257
257
  type: Component,
258
258
  args: [{ selector: 'c8y-dashboard-child', host: {
259
259
  class: 'dashboard-grid-child'
260
- }, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n" }]
260
+ }, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"\n data?.config?.displaySettings &&\n (data?.config?.widgetInstanceGlobalTimeContext ||\n data?.config?.widgetInstanceGlobalAutoRefreshContext)\n \"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n [delay]=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click &quot;Edit widgets&quot; to unlock' | translate\"\n tooltip=\"{{ 'Click &quot;Edit widgets&quot; to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right: -1px\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n" }]
261
261
  }], ctorParameters: () => [{ type: i1.DashboardComponent }, { type: i2.DomSanitizer }, { type: i0.ElementRef }], propDecorators: { templateActions: [{
262
262
  type: ContentChildren,
263
263
  args: [DashboardChildActionComponent]
@@ -296,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
296
296
  type: HostBinding,
297
297
  args: ['attr.style']
298
298
  }] } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9ELGVBQWUsQ0FDakUsT0FBd0M7UUFFeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQWdERDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFnQ0Q7O09BRUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFL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ZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBBIGRhc2hib2FyZCBjaGlsZCBhbGxvd3MgdG8gcG9zaXRpb24gZWxlbWVudHNcbiAqIGNvcnJlY3RseSBvbiBhIGdyaWQuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgIDxjOHktZGFzaGJvYXJkLWNoaWxkXG4gKiAgICAgI2NwV2lkZ2V0M1xuICogICAgIFt4XT1cIjBcIlxuICogICAgIFt5XT1cIjNcIlxuICogICAgIFt3aWR0aF09XCI0XCJcbiAqICAgICBbaGVpZ2h0XT1cIjRcIlxuICogICAgIFtjbGFzc109XCInY2FyZC1kYXNoYm9hcmQgcGFuZWwtY29udGVudC10cmFuc3BhcmVudCdcIlxuICogICA+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGUgKm5nSWY9XCJzaG93VGl0bGVcIj5cbiAqICAgICAgIDxzcGFuPlRyYW5zcGFyZW50ITwvc3Bhbj5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJzaG93VGl0bGUgPSAhc2hvd1RpdGxlOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cIidoZWFkaW5nJ1wiPjwvaT4gSGlkZS9zaG93IHRpdGxlXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXSA9IFtdO1xuICBAQ29udGVudENoaWxkcmVuKERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50KSBzZXQgdGVtcGxhdGVBY3Rpb25zKFxuICAgIGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W11cbiAgKSB7XG4gICAgdGhpcy5hZGRBY3Rpb25zKGFjdGlvbnMsIHRydWUpO1xuICB9XG4gIGRyYWdTb3VyY2U6IENka0RyYWc7XG4gIGlzUmVzaXplID0gZmFsc2U7XG4gIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAga2xhc3NlcyA9IHt9O1xuXG4gIF9weFdpZHRoID0gJzEwMCUnO1xuICBfcHhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsc2NyZWVuJylcbiAgZnVsbHNjcmVlbiA9IGZhbHNlO1xuICByZWFkb25seSBNRF9CT09UU1RSQVBfQlJFQUtQT0lOVF9SRUFET05MWV9DTEFTU19QUk9QRVJUWSA9IDc2ODtcblxuICAvKipcbiAgICogVGhlIHggcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeDtcblxuICAvKipcbiAgICogVGhlIHkgcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeTtcblxuICAvKipcbiAgICogVGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1jb2x1bW5zLlxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1yb3dzLlxuICAgKi9cbiAgQElucHV0KCkgaGVpZ2h0ID0gMTtcblxuICAvKipcbiAgICogVGhlIGRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGEgZGF0YVRyYW5zZmVyIG9iamVjdCBmb3IgZXZlbnRzIG9mIHRoZSBjaGlsZC5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGE6IFdpZGdldCB8IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hcmdpbiBvZiB0aGUgY2hpbGQgaW4gcGl4ZWwuXG4gICAqL1xuICBASW5wdXQoKSBtYXJnaW4gPSAxMjtcblxuICAvKipcbiAgICogVGhlIGNoaWxkIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIGFzIHNvb24gaXQgaXMgc2Nyb2xsZWQgaW50byB2aWV3cG9ydFxuICAgKi9cbiAgQElucHV0KCkgdXNlSW50ZXJzZWN0aW9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGlzIGZyb3plbiwgYWxsIGNoaWxkcmVuIGNhbm5vdCBiZSBtb3ZlZFxuICAgKiBvciByZXNpemVkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZWRpdE1vZGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaXNGcm96ZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRNb2RlID0gIXZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgY2FuVG9nZ2xlRnVsbHNjcmVlbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGVkaXRpbmcgaXMgZGlzYWJsZWQgbm8gd2lkZ2V0cyBjYW4gYmUgbW92ZWQsIGVkaXRlZCwgcmVtb3ZlZFxuICAgKiBvciBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIHN0YXJ0ZWQgKGRyYWdnaW5nIG9yIHJlc2l6aW5nKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgZW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiB0aGUgZnVsbHNjcmVlbiB0b2dnbGUgYnV0dG9uIHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUZ1bGxzY3JlZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEFsbCBjbGFzc2VzIGFkZGVkIHRvIHRoaXMgY2hpbGRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBpeGVsIHdpZHRoIG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhXaWR0aCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4V2lkdGggPSBgJHt2YWx1ZX1weGA7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgaGVpZ2h0IG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9weEhlaWdodCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBvbiBldmVyeSByZXNpemUgYW5kIHJldHVybnMgdHJ1ZSBpZiBpbiBvbmUgY29sdW1uIHZpZXcgKG1vYmlsZSB2aWV3KVxuICAgKi9cbiAgaXNPbmVDb2x1bW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgIG1hcChfID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgICApO1xuICAgIH0pLFxuICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgIHN0YXJ0V2l0aChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBBbiBpbmRpY2F0b3IgaWYgdGhlIGNoaWxkIGlzIGludGVyc2VjdGVkICh0aGF0IG1lYW4gdmlzaWJsZSBmb3IgdGhlIHVzZXIpXG4gICAqL1xuICBpbnRlcnNlY3RlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUZWxscyBpZiB0aGUgbGFzdCBjaGFuZ2Ugd2FzIGEgZHJhZ2dpbmcgb3IgcmVzaXppbmcgZXZlbnQ7XG4gICAqL1xuICBsYXN0Q2hhbmdlOiAnZHJhZycgfCAncmVzaXplJyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICAnb24tcmVzaXplJzogdGhpcy5pc1Jlc2l6ZSxcbiAgICAgIC4uLnRoaXMuY2xhc3NcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMueCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMueSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0RHluYW1pY0RpbWVuc2lvbigpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlSW50ZXJzZWN0aW9uICYmICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgZXZlbnRzID0+ICh0aGlzLmludGVyc2VjdGVkID0gdGhpcy5jaGlsZEluVmlldyhldmVudHMsIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5sYXN0Q2hhbmdlID0gdGhpcy5pc1Jlc2l6ZSA/ICdyZXNpemUnIDogJ2RyYWcnO1xuICAgIHRoaXMuaXNSZXNpemUgPSBmYWxzZTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9weFdpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc291cmNlLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gICAgICB0aGlzLmNoYW5nZUVuZC5lbWl0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpO1xuICB9XG5cbiAgYWRkQWN0aW9ucyhhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdLCBwcmVwZW5kID0gZmFsc2UpIHtcbiAgICBpZiAocHJlcGVuZCkge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnMsIC4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnMsIC4uLmFjdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZkZyb21EYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLmluZGV4T2YodGhpcyk7XG5cbiAgICBpZiAoaSA+PSAwKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlcigpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZCgodGhpcy55ICsgKHRoaXMueCArIDEpIC8gMTAwKSAqIDEwMCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgY2hpbGRJblZpZXcoZXZlbnRzLCBvYnNlcnZlcikge1xuICAgIGNvbnN0IGludGVyc2VjdGluZ0V2ZW50ID0gZXZlbnRzLmZpbmQoZXZlbnQgPT4gZXZlbnQuaXNJbnRlcnNlY3RpbmcpO1xuICAgIGlmIChpbnRlcnNlY3RpbmdFdmVudCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdGluZ0V2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImlzUmVzaXplXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogX3B4V2lkdGgsIGhlaWdodDogX3B4SGVpZ2h0IH1cIlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIihpc09uZUNvbHVtblZpZXckIHwgYXN5bmMpIHx8ICFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9ucyBjYXJkLWhlYWRlci1ncmlkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RyYWctaGFuZGxlJzogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW4sXG4gICAgICAgIGRyYWdnYWJsZUN1cnNvcjogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW5cbiAgICAgIH1cIlxuICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnMgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhclxuICAgICAgICAgICpuZ0lmPVwiZGF0YT8uY29uZmlnPy5kaXNwbGF5U2V0dGluZ3MgJiYgZGF0YT8uY29uZmlnPy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0XCJcbiAgICAgICAgICBbY29uZmlnXT1cImRhdGEuY29uZmlnXCJcbiAgICAgICAgPjwvYzh5LXdpZGdldC10aW1lLWNvbnRleHQtaWNvbi1iYXI+XG4gICAgICAgIDxjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8ud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQgJiZcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8uZGlzcGxheVNldHRpbmdzLmdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dFxuICAgICAgICAgIFwiXG4gICAgICAgID48L2M4eS13aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQtaWNvbi1iYXI+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGdWxsIHNjcmVlbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImZ1bGxzY3JlZW4gPyAoJ0V4aXQgZnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKSA6ICgnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgZGVsYXk9XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0TW9kZSB8fCAhY2FuVG9nZ2xlRnVsbHNjcmVlblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4ubmV4dCgpXCJcbiAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtZnVsbHNjcmVlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJmdWxsc2NyZWVuID8gJ2NvbXByZXNzJyA6ICdleHBhbmQnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uIGM4eS1kcm9wZG93blwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTZXR0aW5ncycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInY29nJ1wiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDbGljayAmcXVvdDtFZGl0IHdpZGdldHMmcXVvdDsgdG8gdW5sb2NrJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0b29sdGlwPVwie3sgJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhZWRpdE1vZGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLXNldHRpbmdzLWxvY2tlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2xvY2snXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLWFjdGlvbnMtZHJvcGRvd25cIlxuICAgICAgICAgICAgc3R5bGU9XCJyaWdodDogLTFweFwiXG4gICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbi50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbm5lci1zY3JvbGxcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUgaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdE1vZGUgfHwgZnVsbHNjcmVlblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWljb24gaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgID48L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiXG4gICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9ELGVBQWUsQ0FDakUsT0FBd0M7UUFFeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQWdERDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFnQ0Q7O09BRUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFL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ZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBBIGRhc2hib2FyZCBjaGlsZCBhbGxvd3MgdG8gcG9zaXRpb24gZWxlbWVudHNcbiAqIGNvcnJlY3RseSBvbiBhIGdyaWQuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgIDxjOHktZGFzaGJvYXJkLWNoaWxkXG4gKiAgICAgI2NwV2lkZ2V0M1xuICogICAgIFt4XT1cIjBcIlxuICogICAgIFt5XT1cIjNcIlxuICogICAgIFt3aWR0aF09XCI0XCJcbiAqICAgICBbaGVpZ2h0XT1cIjRcIlxuICogICAgIFtjbGFzc109XCInY2FyZC1kYXNoYm9hcmQgcGFuZWwtY29udGVudC10cmFuc3BhcmVudCdcIlxuICogICA+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGUgKm5nSWY9XCJzaG93VGl0bGVcIj5cbiAqICAgICAgIDxzcGFuPlRyYW5zcGFyZW50ITwvc3Bhbj5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJzaG93VGl0bGUgPSAhc2hvd1RpdGxlOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cIidoZWFkaW5nJ1wiPjwvaT4gSGlkZS9zaG93IHRpdGxlXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXSA9IFtdO1xuICBAQ29udGVudENoaWxkcmVuKERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50KSBzZXQgdGVtcGxhdGVBY3Rpb25zKFxuICAgIGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W11cbiAgKSB7XG4gICAgdGhpcy5hZGRBY3Rpb25zKGFjdGlvbnMsIHRydWUpO1xuICB9XG4gIGRyYWdTb3VyY2U6IENka0RyYWc7XG4gIGlzUmVzaXplID0gZmFsc2U7XG4gIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAga2xhc3NlcyA9IHt9O1xuXG4gIF9weFdpZHRoID0gJzEwMCUnO1xuICBfcHhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsc2NyZWVuJylcbiAgZnVsbHNjcmVlbiA9IGZhbHNlO1xuICByZWFkb25seSBNRF9CT09UU1RSQVBfQlJFQUtQT0lOVF9SRUFET05MWV9DTEFTU19QUk9QRVJUWSA9IDc2ODtcblxuICAvKipcbiAgICogVGhlIHggcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeDtcblxuICAvKipcbiAgICogVGhlIHkgcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeTtcblxuICAvKipcbiAgICogVGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1jb2x1bW5zLlxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1yb3dzLlxuICAgKi9cbiAgQElucHV0KCkgaGVpZ2h0ID0gMTtcblxuICAvKipcbiAgICogVGhlIGRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGEgZGF0YVRyYW5zZmVyIG9iamVjdCBmb3IgZXZlbnRzIG9mIHRoZSBjaGlsZC5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGE6IFdpZGdldCB8IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hcmdpbiBvZiB0aGUgY2hpbGQgaW4gcGl4ZWwuXG4gICAqL1xuICBASW5wdXQoKSBtYXJnaW4gPSAxMjtcblxuICAvKipcbiAgICogVGhlIGNoaWxkIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIGFzIHNvb24gaXQgaXMgc2Nyb2xsZWQgaW50byB2aWV3cG9ydFxuICAgKi9cbiAgQElucHV0KCkgdXNlSW50ZXJzZWN0aW9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGlzIGZyb3plbiwgYWxsIGNoaWxkcmVuIGNhbm5vdCBiZSBtb3ZlZFxuICAgKiBvciByZXNpemVkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZWRpdE1vZGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaXNGcm96ZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRNb2RlID0gIXZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgY2FuVG9nZ2xlRnVsbHNjcmVlbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGVkaXRpbmcgaXMgZGlzYWJsZWQgbm8gd2lkZ2V0cyBjYW4gYmUgbW92ZWQsIGVkaXRlZCwgcmVtb3ZlZFxuICAgKiBvciBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIHN0YXJ0ZWQgKGRyYWdnaW5nIG9yIHJlc2l6aW5nKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgZW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiB0aGUgZnVsbHNjcmVlbiB0b2dnbGUgYnV0dG9uIHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUZ1bGxzY3JlZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEFsbCBjbGFzc2VzIGFkZGVkIHRvIHRoaXMgY2hpbGRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBpeGVsIHdpZHRoIG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhXaWR0aCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4V2lkdGggPSBgJHt2YWx1ZX1weGA7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgaGVpZ2h0IG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9weEhlaWdodCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBvbiBldmVyeSByZXNpemUgYW5kIHJldHVybnMgdHJ1ZSBpZiBpbiBvbmUgY29sdW1uIHZpZXcgKG1vYmlsZSB2aWV3KVxuICAgKi9cbiAgaXNPbmVDb2x1bW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgIG1hcChfID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgICApO1xuICAgIH0pLFxuICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgIHN0YXJ0V2l0aChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBBbiBpbmRpY2F0b3IgaWYgdGhlIGNoaWxkIGlzIGludGVyc2VjdGVkICh0aGF0IG1lYW4gdmlzaWJsZSBmb3IgdGhlIHVzZXIpXG4gICAqL1xuICBpbnRlcnNlY3RlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUZWxscyBpZiB0aGUgbGFzdCBjaGFuZ2Ugd2FzIGEgZHJhZ2dpbmcgb3IgcmVzaXppbmcgZXZlbnQ7XG4gICAqL1xuICBsYXN0Q2hhbmdlOiAnZHJhZycgfCAncmVzaXplJyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICAnb24tcmVzaXplJzogdGhpcy5pc1Jlc2l6ZSxcbiAgICAgIC4uLnRoaXMuY2xhc3NcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMueCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMueSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0RHluYW1pY0RpbWVuc2lvbigpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlSW50ZXJzZWN0aW9uICYmICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgZXZlbnRzID0+ICh0aGlzLmludGVyc2VjdGVkID0gdGhpcy5jaGlsZEluVmlldyhldmVudHMsIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5sYXN0Q2hhbmdlID0gdGhpcy5pc1Jlc2l6ZSA/ICdyZXNpemUnIDogJ2RyYWcnO1xuICAgIHRoaXMuaXNSZXNpemUgPSBmYWxzZTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9weFdpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc291cmNlLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gICAgICB0aGlzLmNoYW5nZUVuZC5lbWl0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpO1xuICB9XG5cbiAgYWRkQWN0aW9ucyhhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdLCBwcmVwZW5kID0gZmFsc2UpIHtcbiAgICBpZiAocHJlcGVuZCkge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnMsIC4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnMsIC4uLmFjdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZkZyb21EYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLmluZGV4T2YodGhpcyk7XG5cbiAgICBpZiAoaSA+PSAwKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlcigpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZCgodGhpcy55ICsgKHRoaXMueCArIDEpIC8gMTAwKSAqIDEwMCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgY2hpbGRJblZpZXcoZXZlbnRzLCBvYnNlcnZlcikge1xuICAgIGNvbnN0IGludGVyc2VjdGluZ0V2ZW50ID0gZXZlbnRzLmZpbmQoZXZlbnQgPT4gZXZlbnQuaXNJbnRlcnNlY3RpbmcpO1xuICAgIGlmIChpbnRlcnNlY3RpbmdFdmVudCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdGluZ0V2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImlzUmVzaXplXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogX3B4V2lkdGgsIGhlaWdodDogX3B4SGVpZ2h0IH1cIlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIihpc09uZUNvbHVtblZpZXckIHwgYXN5bmMpIHx8ICFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9ucyBjYXJkLWhlYWRlci1ncmlkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RyYWctaGFuZGxlJzogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW4sXG4gICAgICAgIGRyYWdnYWJsZUN1cnNvcjogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW5cbiAgICAgIH1cIlxuICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnMgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBkYXRhPy5jb25maWc/LmRpc3BsYXlTZXR0aW5ncyAmJlxuICAgICAgICAgICAgKGRhdGE/LmNvbmZpZz8ud2lkZ2V0SW5zdGFuY2VHbG9iYWxUaW1lQ29udGV4dCB8fFxuICAgICAgICAgICAgICBkYXRhPy5jb25maWc/LndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0KVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NvbmZpZ109XCJkYXRhLmNvbmZpZ1wiXG4gICAgICAgID48L2M4eS13aWRnZXQtdGltZS1jb250ZXh0LWljb24tYmFyPlxuICAgICAgICA8Yzh5LXdpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC1pY29uLWJhclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBkYXRhPy5jb25maWc/LndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0ICYmXG4gICAgICAgICAgICBkYXRhPy5jb25maWc/LmRpc3BsYXlTZXR0aW5ncy5nbG9iYWxBdXRvUmVmcmVzaENvbnRleHRcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9jOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJmdWxsc2NyZWVuID8gKCdFeGl0IGZ1bGwgc2NyZWVuJyB8IHRyYW5zbGF0ZSkgOiAoJ0Z1bGwgc2NyZWVuJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0TW9kZSB8fCAhY2FuVG9nZ2xlRnVsbHNjcmVlblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4ubmV4dCgpXCJcbiAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtZnVsbHNjcmVlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJmdWxsc2NyZWVuID8gJ2NvbXByZXNzJyA6ICdleHBhbmQnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uIGM4eS1kcm9wZG93blwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTZXR0aW5ncycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInY29nJ1wiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDbGljayAmcXVvdDtFZGl0IHdpZGdldHMmcXVvdDsgdG8gdW5sb2NrJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0b29sdGlwPVwie3sgJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhZWRpdE1vZGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLXNldHRpbmdzLWxvY2tlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2xvY2snXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgICAgICAgICAgc3R5bGU9XCJyaWdodDogLTFweFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tYWN0aW9ucy1kcm9wZG93blwiXG4gICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbi50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbm5lci1zY3JvbGxcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUgaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdE1vZGUgfHwgZnVsbHNjcmVlblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWljb24gaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgID48L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiXG4gICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,11 +1,11 @@
1
1
  import { Component, EventEmitter, forwardRef, inject, Output, ViewChild } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { gettext } from '../../i18n';
5
- import { CountdownIntervalComponent } from '../../countdown-interval';
6
- import { WidgetGlobalAutoRefreshService } from './widget-global-auto-refresh.service';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
7
4
  import { filter, takeUntil, tap } from 'rxjs/operators';
5
+ import { CountdownIntervalComponent } from '../../countdown-interval';
6
+ import { gettext } from '../../i18n';
8
7
  import { DEFAULT_INTERVAL_VALUE } from './widget-auto-refresh-context.model';
8
+ import { WidgetGlobalAutoRefreshService } from './widget-global-auto-refresh.service';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../../common/icon.directive";
11
11
  import * as i2 from "@angular/common";
@@ -19,13 +19,11 @@ export class AutoRefreshControlComponent {
19
19
  this.DEFAULT_INTERVAL_VALUE = DEFAULT_INTERVAL_VALUE;
20
20
  this.loading = new EventEmitter();
21
21
  this.widgetGlobalAutoRefresh = inject(WidgetGlobalAutoRefreshService);
22
+ this.showIntervalRefresh$ = new BehaviorSubject(this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$.getValue());
22
23
  this.destroy$ = new Subject();
23
24
  // eslint-disable-next-line @typescript-eslint/no-empty-function
24
25
  this.onTouched = () => { };
25
26
  }
26
- ngOnInit() {
27
- this.showIntervalRefresh$ = this.widgetGlobalAutoRefresh.autoRefreshSettings.isEnabled$;
28
- }
29
27
  ngAfterViewInit() {
30
28
  this.subscribeOnCountdownChangeState();
31
29
  this.setUpOnCountdownEndedListener();
@@ -98,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
98
96
  }], loading: [{
99
97
  type: Output
100
98
  }] } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZWZyZXNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L2F1dG8tcmVmcmVzaC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC9hdXRvLXJlZnJlc2gtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7QUFhN0UsTUFBTSxPQUFPLDJCQUEyQjtJQVh4QztRQWNXLHlCQUFvQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3ZELHdCQUFtQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBTXpELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVyxD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QVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7K0dBaEdVLDJCQUEyQjttR0FBM0IsMkJBQTJCLG9GQVQzQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixzRkFVVSwwQkFBMEIsZ0RDckN2Qyw0eEJBMEJBOzs0RkRJYSwyQkFBMkI7a0JBWHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGFBQ3pCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFXRCwwQkFBMEI7c0JBRHpCLFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlyQyxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY291bnRkb3duLWludGVydmFsJztcbmltcG9ydCB7IFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0LWdsb2JhbC1hdXRvLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSB9IGZyb20gJy4vd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWF1dG8tcmVmcmVzaC1jb250cm9sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvUmVmcmVzaENvbnRyb2xDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvLXJlZnJlc2gtY29udHJvbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXV0b1JlZnJlc2hDb250cm9sQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHJlYWRvbmx5IERJU0FCTEVfQVVUT19SRUZSRVNIID0gZ2V0dGV4dCgnRGlzYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgRU5BQkxFX0FVVE9fUkVGUkVTSCA9IGdldHRleHQoJ0VuYWJsZSBhdXRvIHJlZnJlc2gnKTtcbiAgcmVhZG9ubHkgREVGQVVMVF9JTlRFUlZBTF9WQUxVRSA9IERFRkFVTFRfSU5URVJWQUxfVkFMVUU7XG5cbiAgQFZpZXdDaGlsZChDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudClcbiAgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ6IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50O1xuXG4gIEBPdXRwdXQoKVxuICBsb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNob3dJbnRlcnZhbFJlZnJlc2gkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIGF1dG9SZWZyZXNoU2Vjb25kcyQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldEdsb2JhbEF1dG9SZWZyZXNoID0gaW5qZWN0KFdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVPbkNvdW50ZG93bkNoYW5nZVN0YXRlKCk7XG5cbiAgICB0aGlzLnNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCk7XG4gICAgdGhpcy5hdXRvUmVmcmVzaFNlY29uZHMkID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLnJlZnJlc2hJbnRlcnZhbCQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICB0b2dnbGVJbnRlcnZhbFJlZnJlc2goKSB7XG4gICAgdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5uZXh0KCF0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLmdldFZhbHVlKCkpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKTtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MudXNlckRpc2FibGVkTWFudWFsbHkkLm5leHQoXG4gICAgICAhdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoc2hvd0ludGVydmFsUmVmcmVzaDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLm5leHQoc2hvd0ludGVydmFsUmVmcmVzaCk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25Db3VudGRvd25DaGFuZ2VTdGF0ZSgpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMucmVzZXQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8ucmVzZXQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5jb3VudGRvd25BY3Rpb25zLnN0b3AkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCkge1xuICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQuY291bnRkb3duRW5kZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGFuZGxlQ291bnRkb3duRW5kZWQoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb3VudGRvd25FbmRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMuY291bnRkb3duRW5kZWQkLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cInRvZ2dsZS1jb3VudGRvd25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgW3Rvb2x0aXBdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlSW50ZXJ2YWxSZWZyZXNoKClcIlxuICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICBtb2RlXG4gICAgW2RlbGF5XT1cIjUwMFwiXG4gID5cbiAgICA8Yzh5LWNvdW50ZG93bi1pbnRlcnZhbFxuICAgICAgW2hpZGRlbl09XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICAgIFtjb3VudGRvd25JbnRlcnZhbF09XCIoYXV0b1JlZnJlc2hTZWNvbmRzJCB8IGFzeW5jKSA/PyBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFXCJcbiAgICA+PC9jOHktY291bnRkb3duLWludGVydmFsPlxuICAgIDxpXG4gICAgICBjOHlJY29uPVwicGF1c2VcIlxuICAgICAgKm5nSWY9XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICA+PC9pPlxuICA8L2J1dHRvbj5cbiAgPHNwYW4+PC9zcGFuPlxuPC9kaXY+XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1yZWZyZXNoLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L2F1dG8tcmVmcmVzaC1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC9hdXRvLXJlZnJlc2gtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFhdEYsTUFBTSxPQUFPLDJCQUEyQjtJQVh4QztRQVlXLHlCQUFvQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3ZELHdCQUFtQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELDJCQUFzQixHQUFHLHNCQUFzQixDQUFDO1FBTXpELFlBQU8sR0FBRyxJQUFJLFlB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QUUsQ0FBQyxFQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDOytHQTdGVSwyQkFBMkI7bUdBQTNCLDJCQUEyQixvRkFUM0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUMxRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysc0ZBUVUsMEJBQTBCLGdEQ2xDdkMsNHhCQTBCQTs7NEZER2EsMkJBQTJCO2tCQVh2QyxTQUFTOytCQUNFLDBCQUEwQixhQUN6Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBU0QsMEJBQTBCO3NCQUR6QixTQUFTO3VCQUFDLDBCQUEwQjtnQkFJckMsT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY291bnRkb3duLWludGVydmFsJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IERFRkFVTFRfSU5URVJWQUxfVkFMVUUgfSBmcm9tICcuL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1nbG9iYWwtYXV0by1yZWZyZXNoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXV0by1yZWZyZXNoLWNvbnRyb2wnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9SZWZyZXNoQ29udHJvbENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG8tcmVmcmVzaC1jb250cm9sLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvUmVmcmVzaENvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcmVhZG9ubHkgRElTQUJMRV9BVVRPX1JFRlJFU0ggPSBnZXR0ZXh0KCdEaXNhYmxlIGF1dG8gcmVmcmVzaCcpO1xuICByZWFkb25seSBFTkFCTEVfQVVUT19SRUZSRVNIID0gZ2V0dGV4dCgnRW5hYmxlIGF1dG8gcmVmcmVzaCcpO1xuICByZWFkb25seSBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFID0gREVGQVVMVF9JTlRFUlZBTF9WQUxVRTtcblxuICBAVmlld0NoaWxkKENvdW50ZG93bkludGVydmFsQ29tcG9uZW50KVxuICBjb3VudGRvd25JbnRlcnZhbENvbXBvbmVudDogQ291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ7XG5cbiAgQE91dHB1dCgpXG4gIGxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRHbG9iYWxBdXRvUmVmcmVzaCA9IGluamVjdChXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2UpO1xuXG4gIHNob3dJbnRlcnZhbFJlZnJlc2gkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KFxuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLmdldFZhbHVlKClcbiAgKTtcbiAgYXV0b1JlZnJlc2hTZWNvbmRzJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmVPbkNvdW50ZG93bkNoYW5nZVN0YXRlKCk7XG5cbiAgICB0aGlzLnNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCk7XG4gICAgdGhpcy5hdXRvUmVmcmVzaFNlY29uZHMkID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLnJlZnJlc2hJbnRlcnZhbCQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICB0b2dnbGVJbnRlcnZhbFJlZnJlc2goKSB7XG4gICAgdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5uZXh0KCF0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLmdldFZhbHVlKCkpO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKTtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MudXNlckRpc2FibGVkTWFudWFsbHkkLm5leHQoXG4gICAgICAhdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoc2hvd0ludGVydmFsUmVmcmVzaDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNob3dJbnRlcnZhbFJlZnJlc2gkLm5leHQoc2hvd0ludGVydmFsUmVmcmVzaCk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25Db3VudGRvd25DaGFuZ2VTdGF0ZSgpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMucmVzZXQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8ucmVzZXQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5jb3VudGRvd25BY3Rpb25zLnN0b3AkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuZW1pdCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFVwT25Db3VudGRvd25FbmRlZExpc3RlbmVyKCkge1xuICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQuY291bnRkb3duRW5kZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zaG93SW50ZXJ2YWxSZWZyZXNoJC5nZXRWYWx1ZSgpKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGFuZGxlQ291bnRkb3duRW5kZWQoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb3VudGRvd25FbmRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmNvdW50ZG93bkFjdGlvbnMuY291bnRkb3duRW5kZWQkLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cInRvZ2dsZS1jb3VudGRvd25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgW3Rvb2x0aXBdPVwiXG4gICAgICAoKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpID8gRElTQUJMRV9BVVRPX1JFRlJFU0ggOiBFTkFCTEVfQVVUT19SRUZSRVNIKSB8IHRyYW5zbGF0ZVxuICAgIFwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlSW50ZXJ2YWxSZWZyZXNoKClcIlxuICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICBtb2RlXG4gICAgW2RlbGF5XT1cIjUwMFwiXG4gID5cbiAgICA8Yzh5LWNvdW50ZG93bi1pbnRlcnZhbFxuICAgICAgW2hpZGRlbl09XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICAgIFtjb3VudGRvd25JbnRlcnZhbF09XCIoYXV0b1JlZnJlc2hTZWNvbmRzJCB8IGFzeW5jKSA/PyBERUZBVUxUX0lOVEVSVkFMX1ZBTFVFXCJcbiAgICA+PC9jOHktY291bnRkb3duLWludGVydmFsPlxuICAgIDxpXG4gICAgICBjOHlJY29uPVwicGF1c2VcIlxuICAgICAgKm5nSWY9XCIhKHNob3dJbnRlcnZhbFJlZnJlc2gkIHwgYXN5bmMpXCJcbiAgICA+PC9pPlxuICA8L2J1dHRvbj5cbiAgPHNwYW4+PC9zcGFuPlxuPC9kaXY+XG4iXX0=
@@ -4,6 +4,7 @@ import { filter, takeUntil, tap } from 'rxjs/operators';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
5
5
  import { GLOBAL_CONTEXT_AUTO_REFRESH } from './widget-auto-refresh-context.model';
6
6
  import { WidgetGlobalAutoRefreshService } from './widget-global-auto-refresh.service';
7
+ import { WidgetsDashboardEventService } from '../widgets-dashboard-event.service';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "../../common/icon.directive";
9
10
  import * as i2 from "@angular/common";
@@ -21,6 +22,7 @@ export class WidgetAutoRefreshContextComponent {
21
22
  this.destroy$ = new Subject();
22
23
  this.fb = inject(FormBuilder);
23
24
  this.widgetGlobalAutoRefresh = inject(WidgetGlobalAutoRefreshService);
25
+ this.widgetEventService = inject(WidgetsDashboardEventService);
24
26
  }
25
27
  ngOnInit() {
26
28
  this.widgetGlobalAutoRefresh.globalRefreshWidgetsCount.update(count => count + 1);
@@ -28,6 +30,11 @@ export class WidgetAutoRefreshContextComponent {
28
30
  this.subscribeOnAutoRefreshSecondsChange();
29
31
  this.subscribeOnAutoRefreshChange();
30
32
  this.subscribeOnRouterEvents();
33
+ this.form.controls.autoRefresh.valueChanges
34
+ .pipe(takeUntil(this.destroy$))
35
+ .subscribe(autorefresh => {
36
+ this.widgetEventService.emitAutoRefresh(autorefresh);
37
+ });
31
38
  }
32
39
  ngAfterViewInit() {
33
40
  this.initializeWidgetSubscriptions();
@@ -41,6 +48,7 @@ export class WidgetAutoRefreshContextComponent {
41
48
  .pipe(takeUntil(this.destroy$))
42
49
  .subscribe();
43
50
  this.listenOnDashboardSaveOperation();
51
+ this.widgetEventService.emitAutoRefresh(this.form.controls.autoRefresh.value);
44
52
  }
45
53
  ngOnDestroy() {
46
54
  this.onContextDestroy();
@@ -124,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
124
132
  }], propDecorators: { editMode$: [{
125
133
  type: Input
126
134
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUNMLDJCQUEyQixFQUU1QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7O0FBTXRGLE1BQU0sT0FBTyxpQ0FBaUM7SUFKOUM7UUFVRSwrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsc0JBQXNCLENBQUM7UUFDN0Msd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLGFBQVEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQixPQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBMEluRjtJQXhJQyxRQUFRO1FBQ04sSUFB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bXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgR0xPQkFMX0NPTlRFWFRfQVVUT19SRUZSRVNILFxuICBHbG9iYWxBdXRvUmVmcmVzaFF1ZXJ5UGFyYW1cbn0gZnJvbSAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHsgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlIH0gZnJvbSAnLi93aWRnZXQtZ2xvYmFsLWF1dG8tcmVmcmVzaC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXdpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEF1dG9SZWZyZXNoQ29udGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgZm9ybTogUmV0dXJuVHlwZTxXaWRnZXRBdXRvUmVmcmVzaENvbnRleHRDb21wb25lbnRbJ2NyZWF0ZUZvcm0nXT47XG5cbiAgQElucHV0KClcbiAgZWRpdE1vZGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmcgPSB0cnVlO1xuICByZWFkb25seSBBQ1RJT05fQkFSX0dST1VQX0lEID0gJ2dsb2JhbHJlZnJlc2hjb250ZXh0JztcbiAgcmVhZG9ubHkgQUNUSU9OX0JBUl9QUklPUklUWSA9IDU7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2ggPSBpbmplY3QoV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmdsb2JhbFJlZnJlc2hXaWRnZXRzQ291bnQudXBkYXRlKGNvdW50ID0+IGNvdW50ICsgMSk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmNyZWF0ZUZvcm0oKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlT25BdXRvUmVmcmVzaFNlY29uZHNDaGFuZ2UoKTtcbiAgICB0aGlzLnN1YnNjcmliZU9uQXV0b1JlZnJlc2hDaGFuZ2UoKTtcbiAgICB0aGlzLnN1YnNjcmliZU9uUm91dGVyRXZlbnRzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0U3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuc3Vic2NyaWJlT25RdWVyeVBhcmFtQ2hhbmdlKCk7XG5cbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJFxuICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFxuICAgICAgLmluaXRpYWxpemVBdXRvUmVmcmVzaENvdW50ZG93bkxvYWRpbmckKHRoaXMuZWRpdE1vZGUkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5saXN0ZW5PbkRhc2hib2FyZFNhdmVPcGVyYXRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub25Db250ZXh0RGVzdHJveSgpO1xuICB9XG5cbiAgb25SZWZyZXNoKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guY291bnRkb3duQWN0aW9ucy5jb3VudGRvd25FbmRlZCQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGF1dG9SZWZyZXNoOiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJC5nZXRWYWx1ZSgpLFxuICAgICAgYXV0b1JlZnJlc2hTZWNvbmRzOlxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MucmVmcmVzaEludGVydmFsJC5nZXRWYWx1ZSgpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uQXV0b1JlZnJlc2hTZWNvbmRzQ2hhbmdlKCkge1xuICAgIGNvbnN0IGF1dG9SZWZyZXNoU2Vjb25kc0NoYW5nZXMkID0gdGhpcy5mb3JtLmNvbnRyb2xzLmF1dG9SZWZyZXNoU2Vjb25kcy52YWx1ZUNoYW5nZXM7XG5cbiAgICBhdXRvUmVmcmVzaFNlY29uZHNDaGFuZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MucmVmcmVzaEludGVydmFsJC5uZXh0KHZhbHVlKSksXG4gICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRDb3VudGRvd25PbkxvYWRpbmdDb21wbGV0ZSQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uQXV0b1JlZnJlc2hDaGFuZ2UoKSB7XG4gICAgY29uc3QgYXV0b1JlZnJlc2hDaGFuZ2VzJCA9IHRoaXMuZm9ybS5jb250cm9scy5hdXRvUmVmcmVzaC52YWx1ZUNoYW5nZXM7XG5cbiAgICBhdXRvUmVmcmVzaENoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHZhbHVlID0+IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLm5leHQodmFsdWUpKSxcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duT25Mb2FkaW5nQ29tcGxldGUkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplV2lkZ2V0U3Vic2NyaXB0aW9ucygpIHtcbiAgICB0aGlzLmVkaXRNb2RlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShlZGl0TW9kZSA9PiB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLm9uRWRpdE1vZGVDaGFuZ2UoZWRpdE1vZGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmdsb2JhbFJlZnJlc2hXaWRnZXRzQ291bnQoKSA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBxdWVyeVBhcmFtOiBHbG9iYWxBdXRvUmVmcmVzaFF1ZXJ5UGFyYW0gPSB7XG4gICAgICAgIFtHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0hdOlxuICAgICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLmdldFZhbHVlKClcbiAgICAgIH07XG4gICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnNldEF1dG9SZWZyZXNoUXVlcnlQYXJhbShxdWVyeVBhcmFtKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25RdWVyeVBhcmFtQ2hhbmdlKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hcbiAgICAgIC5nZXRRdWVyeVBhcmFtQ2hhbmdlVmFsdWUkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAocGFyYW1WYWx1ZSA9PiBwYXJhbVZhbHVlID09PSBudWxsICYmIHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgcGFyYW1WYWx1ZSA9PlxuICAgICAgICAgICAgcGFyYW1WYWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQuZ2V0VmFsdWUoKSAhPT0gcGFyYW1WYWx1ZVxuICAgICAgICApLFxuICAgICAgICB0YXAocGFyYW1WYWx1ZSA9PiB7XG4gICAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQubmV4dChwYXJhbVZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNldEF1dG9SZWZyZXNoUXVlcnlQYXJhbSgpO1xuICAgICAgICAgIGlmIChwYXJhbVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uUm91dGVyRXZlbnRzKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hcbiAgICAgIC5oYW5kbGVOYXZpZ2F0aW9uSW5Qcm9ncmVzcyQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNvbnRleHREZXN0cm95KCkge1xuICAgIGNvbnN0IHdpZGdldHNDb3VudCA9IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guZ2xvYmFsUmVmcmVzaFdpZGdldHNDb3VudDtcbiAgICB3aWRnZXRzQ291bnQudXBkYXRlKGNvdW50ID0+IGNvdW50IC0gMSk7XG5cbiAgICBpZiAod2lkZ2V0c0NvdW50KCkgPT09IDApIHtcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0U2VydmljZVRvRGVmYXVsdHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk9uRGFzaGJvYXJkU2F2ZU9wZXJhdGlvbigpIHtcbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLm9uRGFzaGJvYXJkU2F2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLnJlc2V0Q291bnRkb3duT25Mb2FkaW5nQ29tcGxldGUkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8Yzh5LWFjdGlvbi1iYXItaXRlbVxuICBbZ3JvdXBJZF09XCJBQ1RJT05fQkFSX0dST1VQX0lEXCJcbiAgW3ByaW9yaXR5XT1cIkFDVElPTl9CQVJfUFJJT1JJVFlcIlxuICBbcGxhY2VtZW50XT1cIidsZWZ0J1wiXG4+XG4gIDxmb3JtXG4gICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gID5cbiAgICA8Yzh5LWF1dG8tcmVmcmVzaC1jb250cm9sXG4gICAgICBbaGlkZGVuXT1cImVkaXRNb2RlJCB8IGFzeW5jXCJcbiAgICAgIChsb2FkaW5nKT1cImdsb2JhbFJlZnJlc2hXaWRnZXRMb2FkaW5nID0gJGV2ZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImF1dG9SZWZyZXNoXCJcbiAgICA+PC9jOHktYXV0by1yZWZyZXNoLWNvbnRyb2w+XG5cbiAgICA8Yzh5LWF1dG8tcmVmcmVzaC1zZWxlY3QtY29udHJvbFxuICAgICAgW2hpZGRlbl09XCJlZGl0TW9kZSQgfCBhc3luY1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdXRvUmVmcmVzaFNlY29uZHNcIlxuICAgID48L2M4eS1hdXRvLXJlZnJlc2gtc2VsZWN0LWNvbnRyb2w+XG4gIDwvZm9ybT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIHN0eWxlPVwiYm9yZGVyLWxlZnQ6IDBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgW3Rvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICpuZ0lmPVwiIShlZGl0TW9kZSQgfCBhc3luYylcIlxuICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmdcIlxuICAgICAgKGNsaWNrKT1cIm9uUmVmcmVzaCgpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGdsb2JhbFJlZnJlc2hXaWRnZXRMb2FkaW5nIH1cIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC93aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vY29yZS9kYXNoYm9hcmQvd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0L3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUNMLDJCQUEyQixFQUU1QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7O0FBTWxGLE1BQU0sT0FBTyxpQ0FBaUM7SUFKOUM7UUFVRSwrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsc0JBQXNCLENBQUM7UUFDN0Msd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLGFBQVEsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUvQixPQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLDRCQUF1QixHQUFHLE1BQU0sQ0FB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O1lBRXpCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0I7YUFDMUMsSUFBSSxDQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7K0dBaEtVLGlDQUFpQzttR0FBakMsaUNBQWlDLDJHQ2Y5Qyx1cENBeUNBOzs0RkQxQmEsaUNBQWlDO2tCQUo3QyxTQUFTOytCQUNFLGlDQUFpQzs4QkFPM0MsU0FBUztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBHTE9CQUxfQ09OVEVYVF9BVVRPX1JFRlJFU0gsXG4gIEdsb2JhbEF1dG9SZWZyZXNoUXVlcnlQYXJhbVxufSBmcm9tICcuL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1nbG9iYWwtYXV0by1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0c0Rhc2hib2FyZEV2ZW50U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMtZGFzaGJvYXJkLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1hdXRvLXJlZnJlc2gtY29udGV4dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0QXV0b1JlZnJlc2hDb250ZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICBmb3JtOiBSZXR1cm5UeXBlPFdpZGdldEF1dG9SZWZyZXNoQ29udGV4dENvbXBvbmVudFsnY3JlYXRlRm9ybSddPjtcblxuICBASW5wdXQoKVxuICBlZGl0TW9kZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBnbG9iYWxSZWZyZXNoV2lkZ2V0TG9hZGluZyA9IHRydWU7XG4gIHJlYWRvbmx5IEFDVElPTl9CQVJfR1JPVVBfSUQgPSAnZ2xvYmFscmVmcmVzaGNvbnRleHQnO1xuICByZWFkb25seSBBQ1RJT05fQkFSX1BSSU9SSVRZID0gNTtcblxuICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRHbG9iYWxBdXRvUmVmcmVzaCA9IGluamVjdChXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgd2lkZ2V0RXZlbnRTZXJ2aWNlID0gaW5qZWN0KFdpZGdldHNEYXNoYm9hcmRFdmVudFNlcnZpY2UpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guZ2xvYmFsUmVmcmVzaFdpZGdldHNDb3VudC51cGRhdGUoY291bnQgPT4gY291bnQgKyAxKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRm9ybSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVPbkF1dG9SZWZyZXNoU2Vjb25kc0NoYW5nZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlT25BdXRvUmVmcmVzaENoYW5nZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlT25Sb3V0ZXJFdmVudHMoKTtcblxuICAgIHRoaXMuZm9ybS5jb250cm9scy5hdXRvUmVmcmVzaC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoYXV0b3JlZnJlc2ggPT4ge1xuICAgICAgICB0aGlzLndpZGdldEV2ZW50U2VydmljZS5lbWl0QXV0b1JlZnJlc2goYXV0b3JlZnJlc2gpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0U3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuc3Vic2NyaWJlT25RdWVyeVBhcmFtQ2hhbmdlKCk7XG5cbiAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJFxuICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCkpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFxuICAgICAgLmluaXRpYWxpemVBdXRvUmVmcmVzaENvdW50ZG93bkxvYWRpbmckKHRoaXMuZWRpdE1vZGUkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5saXN0ZW5PbkRhc2hib2FyZFNhdmVPcGVyYXRpb24oKTtcblxuICAgIHRoaXMud2lkZ2V0RXZlbnRTZXJ2aWNlLmVtaXRBdXRvUmVmcmVzaCh0aGlzLmZvcm0uY29udHJvbHMuYXV0b1JlZnJlc2gudmFsdWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5vbkNvbnRleHREZXN0cm95KCk7XG4gIH1cblxuICBvblJlZnJlc2goKSB7XG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5jb3VudGRvd25BY3Rpb25zLmNvdW50ZG93bkVuZGVkJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgYXV0b1JlZnJlc2g6IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5pc0VuYWJsZWQkLmdldFZhbHVlKCksXG4gICAgICBhdXRvUmVmcmVzaFNlY29uZHM6XG4gICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5yZWZyZXNoSW50ZXJ2YWwkLmdldFZhbHVlKClcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25BdXRvUmVmcmVzaFNlY29uZHNDaGFuZ2UoKSB7XG4gICAgY29uc3QgYXV0b1JlZnJlc2hTZWNvbmRzQ2hhbmdlcyQgPSB0aGlzLmZvcm0uY29udHJvbHMuYXV0b1JlZnJlc2hTZWNvbmRzLnZhbHVlQ2hhbmdlcztcblxuICAgIGF1dG9SZWZyZXNoU2Vjb25kc0NoYW5nZXMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHZhbHVlID0+IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guYXV0b1JlZnJlc2hTZXR0aW5ncy5yZWZyZXNoSW50ZXJ2YWwkLm5leHQodmFsdWUpKSxcbiAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5yZXNldENvdW50ZG93bk9uTG9hZGluZ0NvbXBsZXRlJCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25BdXRvUmVmcmVzaENoYW5nZSgpIHtcbiAgICBjb25zdCBhdXRvUmVmcmVzaENoYW5nZXMkID0gdGhpcy5mb3JtLmNvbnRyb2xzLmF1dG9SZWZyZXNoLnZhbHVlQ2hhbmdlcztcblxuICAgIGF1dG9SZWZyZXNoQ2hhbmdlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodmFsdWUgPT4gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQubmV4dCh2YWx1ZSkpLFxuICAgICAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRDb3VudGRvd25PbkxvYWRpbmdDb21wbGV0ZSQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVXaWRnZXRTdWJzY3JpcHRpb25zKCkge1xuICAgIHRoaXMuZWRpdE1vZGUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGVkaXRNb2RlID0+IHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gub25FZGl0TW9kZUNoYW5nZShlZGl0TW9kZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBdXRvUmVmcmVzaFF1ZXJ5UGFyYW0oKSB7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgaWYgKHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guZ2xvYmFsUmVmcmVzaFdpZGdldHNDb3VudCgpID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW06IEdsb2JhbEF1dG9SZWZyZXNoUXVlcnlQYXJhbSA9IHtcbiAgICAgICAgW0dMT0JBTF9DT05URVhUX0FVVE9fUkVGUkVTSF06XG4gICAgICAgICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5hdXRvUmVmcmVzaFNldHRpbmdzLmlzRW5hYmxlZCQuZ2V0VmFsdWUoKVxuICAgICAgfTtcbiAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2guc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKHF1ZXJ5UGFyYW0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblF1ZXJ5UGFyYW1DaGFuZ2UoKSB7XG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFxuICAgICAgLmdldFF1ZXJ5UGFyYW1DaGFuZ2VWYWx1ZSQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChwYXJhbVZhbHVlID0+IHBhcmFtVmFsdWUgPT09IG51bGwgJiYgdGhpcy5zZXRBdXRvUmVmcmVzaFF1ZXJ5UGFyYW0oKSksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICBwYXJhbVZhbHVlID0+XG4gICAgICAgICAgICBwYXJhbVZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJC5nZXRWYWx1ZSgpICE9PSBwYXJhbVZhbHVlXG4gICAgICAgICksXG4gICAgICAgIHRhcChwYXJhbVZhbHVlID0+IHtcbiAgICAgICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmF1dG9SZWZyZXNoU2V0dGluZ3MuaXNFbmFibGVkJC5uZXh0KHBhcmFtVmFsdWUpO1xuICAgICAgICAgIHRoaXMuc2V0QXV0b1JlZnJlc2hRdWVyeVBhcmFtKCk7XG4gICAgICAgICAgaWYgKHBhcmFtVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRDb3VudGRvd24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25Sb3V0ZXJFdmVudHMoKSB7XG4gICAgdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaFxuICAgICAgLmhhbmRsZU5hdmlnYXRpb25JblByb2dyZXNzJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG9uQ29udGV4dERlc3Ryb3koKSB7XG4gICAgY29uc3Qgd2lkZ2V0c0NvdW50ID0gdGhpcy53aWRnZXRHbG9iYWxBdXRvUmVmcmVzaC5nbG9iYWxSZWZyZXNoV2lkZ2V0c0NvdW50O1xuICAgIHdpZGdldHNDb3VudC51cGRhdGUoY291bnQgPT4gY291bnQgLSAxKTtcblxuICAgIGlmICh3aWRnZXRzQ291bnQoKSA9PT0gMCkge1xuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRTZXJ2aWNlVG9EZWZhdWx0cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuT25EYXNoYm9hcmRTYXZlT3BlcmF0aW9uKCkge1xuICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gub25EYXNoYm9hcmRTYXZlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gucmVzZXRDb3VudGRvd25PbkxvYWRpbmdDb21wbGV0ZSQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxjOHktYWN0aW9uLWJhci1pdGVtXG4gIFtncm91cElkXT1cIkFDVElPTl9CQVJfR1JPVVBfSURcIlxuICBbcHJpb3JpdHldPVwiQUNUSU9OX0JBUl9QUklPUklUWVwiXG4gIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCJcbj5cbiAgPGZvcm1cbiAgICBjbGFzcz1cImQtZmxleFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgPlxuICAgIDxjOHktYXV0by1yZWZyZXNoLWNvbnRyb2xcbiAgICAgIFtoaWRkZW5dPVwiZWRpdE1vZGUkIHwgYXN5bmNcIlxuICAgICAgKGxvYWRpbmcpPVwiZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmcgPSAkZXZlbnRcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXV0b1JlZnJlc2hcIlxuICAgID48L2M4eS1hdXRvLXJlZnJlc2gtY29udHJvbD5cblxuICAgIDxjOHktYXV0by1yZWZyZXNoLXNlbGVjdC1jb250cm9sXG4gICAgICBbaGlkZGVuXT1cImVkaXRNb2RlJCB8IGFzeW5jXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImF1dG9SZWZyZXNoU2Vjb25kc1wiXG4gICAgPjwvYzh5LWF1dG8tcmVmcmVzaC1zZWxlY3QtY29udHJvbD5cbiAgPC9mb3JtPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgc3R5bGU9XCJib3JkZXItbGVmdDogMFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbdG9vbHRpcF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCIhKGVkaXRNb2RlJCB8IGFzeW5jKVwiXG4gICAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgIFtkaXNhYmxlZF09XCJnbG9iYWxSZWZyZXNoV2lkZ2V0TG9hZGluZ1wiXG4gICAgICAoY2xpY2spPVwib25SZWZyZXNoKClcIlxuICAgID5cbiAgICAgIDxpXG4gICAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogZ2xvYmFsUmVmcmVzaFdpZGdldExvYWRpbmcgfVwiXG4gICAgICA+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
2
+ import { ReplaySubject, Subject } from 'rxjs';
3
3
  import { filter, map } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
@@ -14,6 +14,8 @@ export class WidgetsDashboardEventService {
14
14
  */
15
15
  this.events$ = new Subject();
16
16
  this.lastValueByEvent = {};
17
+ this.autoRefresh$ = new ReplaySubject(1);
18
+ this.onAutoRefresh$ = this.autoRefresh$.asObservable();
17
19
  }
18
20
  /**
19
21
  * Returns a subscribable event observable of specific event type if eventType is passed, or observable of
@@ -40,6 +42,21 @@ export class WidgetsDashboardEventService {
40
42
  this.lastValueByEvent[event.type] = event.data;
41
43
  this.events$.next(event);
42
44
  }
45
+ /**
46
+ * @ignore
47
+ */
48
+ emitAutoRefresh(value) {
49
+ this.autoRefresh$.next(value);
50
+ }
51
+ // When a dashboard has a multiple tabs, and not all of them has a realtime global context control
52
+ // we need to set the realtime to false when switching between tabs to make aggregation selector not to be always disabled
53
+ // while global auto-refresh context control is available.
54
+ setRealtimeTimeContextSetting(value = false) {
55
+ this.lastValueByEvent.TIME_CONTEXT = {
56
+ ...this.lastValueByEvent.TIME_CONTEXT,
57
+ realtime: value
58
+ };
59
+ }
43
60
  /**
44
61
  * @ignore
45
62
  */
@@ -52,4 +69,4 @@ export class WidgetsDashboardEventService {
52
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetsDashboardEventService, decorators: [{
53
70
  type: Injectable
54
71
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQtZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldHMtZGFzaGJvYXJkLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzdDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBRHpDO1FBRUU7O1dBRUc7UUFDSyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFDM0MscUJBQWdCLEdBQXNFLEVBQUUsQ0FBQztLQXlDbEc7SUF2Q0M7Ozs7O09BS0c7SUFDSCxhQUFhLENBQ1gsU0FBaUM7UUFFakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQWlCLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFNBQWdDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsS0FBd0I7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBN0NVLDRCQUE0QjttSEFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBXaWRnZXRDaGFuZ2VFdmVudCwgV2lkZ2V0Q2hhbmdlRXZlbnRUeXBlIH0gZnJvbSAnLi93aWRnZXQtY2hhbmdlLWV2ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBBIHNlcnZpY2Ugd2hpY2ggY2FuIGJlIHVzZWQsIHRvIGVtaXQgZGF0YSBvbiBhIGRhc2hib2FyZCBsZXZlbC5cbiAqIEVhY2ggV2lkZ2V0IERhc2hib2FyZCBnZXRzIGFuIG93biBpbnN0YW5jZSBvZiB0aGlzIHNlcnZpY2UgcHJvdmlkZWRcbiAqIGFuZCB5b3UgY2FuIHRoZW4gdXBkYXRlIGFsbCBvciBvbmx5IG9uZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpZGdldHNEYXNoYm9hcmRFdmVudFNlcnZpY2Uge1xuICAvKipcbiAgICogQWxsIGV2ZW50cyBzZW50IG9uIHRoZSBjdXJyZW50IGRhc2hib2FyZC5cbiAgICovXG4gIHByaXZhdGUgZXZlbnRzJCA9IG5ldyBTdWJqZWN0PFdpZGdldENoYW5nZUV2ZW50PigpO1xuICBwcml2YXRlIGxhc3RWYWx1ZUJ5RXZlbnQ6IFBhcnRpYWw8UmVjb3JkPFdpZGdldENoYW5nZUV2ZW50VHlwZSwgV2lkZ2V0Q2hhbmdlRXZlbnRbJ2RhdGEnXT4+ID0ge307XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdWJzY3JpYmFibGUgZXZlbnQgb2JzZXJ2YWJsZSBvZiBzcGVjaWZpYyBldmVudCB0eXBlIGlmIGV2ZW50VHlwZSBpcyBwYXNzZWQsIG9yIG9ic2VydmFibGUgb2ZcbiAgICogYWxsIHRoZSBldmVudHMgaWYgbm8gcGFyYW0gaXMgcGFzc2VkIHRvIG1ldGhvZC5cbiAgICogQHBhcmFtIGV2ZW50VHlwZSBUaGUgZXZlbnQgeW91IHdhbnQgYW4gb2JzZXJ2YWJsZSBmb3IuXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgZXZlbnQuXG4gICAqL1xuICBnZXRPYnNlcnZhYmxlPFQgZXh0ZW5kcyBXaWRnZXRDaGFuZ2VFdmVudD4oXG4gICAgZXZlbnRUeXBlPzogV2lkZ2V0Q2hhbmdlRXZlbnRUeXBlXG4gICk6IE9ic2VydmFibGU8VFsnZGF0YSddPiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzJC5waXBlKFxuICAgICAgZmlsdGVyKCh7IHR5cGUgfSkgPT4gKGV2ZW50VHlwZSA/IHR5cGUgPT09IGV2ZW50VHlwZSA6IHRydWUpKSxcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEgYXMgVFsnZGF0YSddKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCB2YWx1ZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudFR5cGUgVGhlIGNoYW5nZSBldmVudCB0eXBlIHlvdSB3YW50IHRoZSBsYXN0IHZhbHVlIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBsYXN0IHZhbHVlIHVzZWQgYnkgdGhpcyBldmVudCwgdW5kZWZpbmVkIGlmIG5vbiB3YXMgc2VudCBzbyBmYXIuXG4gICAqL1xuICBnZXRMYXN0VmFsdWUoZXZlbnRUeXBlOiBXaWRnZXRDaGFuZ2VFdmVudFR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWVCeUV2ZW50W2V2ZW50VHlwZV07XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBuZXcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgV2lkZ2V0Q2hhbmdlRXZlbnQgdG8gZW1pdC5cbiAgICovXG4gIGVtaXQoZXZlbnQ6IFdpZGdldENoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5sYXN0VmFsdWVCeUV2ZW50W2V2ZW50LnR5cGVdID0gZXZlbnQuZGF0YTtcbiAgICB0aGlzLmV2ZW50cyQubmV4dChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudHMkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQtZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL3dpZGdldHMtZGFzaGJvYXJkLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUc3Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUR6QztRQUVFOztXQUVHO1FBQ0ssWUFBTyxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO1FBQzNDLHFCQUFnQixHQUFzRSxFQUFFLENBQUM7UUFFekYsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUNyRCxtQkFBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7S0EwRG5EO0lBeERDOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUNYLFNBQWlDO1FBRWpDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM3RCxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFpQixDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxTQUFnQztRQUMzQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEtBQXdCO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0dBQWtHO0lBQ2xHLDBIQUEwSDtJQUMxSCwwREFBMEQ7SUFDMUQsNkJBQTZCLENBQUMsS0FBSyxHQUFHLEtBQUs7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRztZQUNuQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO1lBQ3JDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQWpFVSw0QkFBNEI7bUhBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV2lkZ2V0Q2hhbmdlRXZlbnQsIFdpZGdldENoYW5nZUV2ZW50VHlwZSB9IGZyb20gJy4vd2lkZ2V0LWNoYW5nZS1ldmVudC5tb2RlbCc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIHdoaWNoIGNhbiBiZSB1c2VkLCB0byBlbWl0IGRhdGEgb24gYSBkYXNoYm9hcmQgbGV2ZWwuXG4gKiBFYWNoIFdpZGdldCBEYXNoYm9hcmQgZ2V0cyBhbiBvd24gaW5zdGFuY2Ugb2YgdGhpcyBzZXJ2aWNlIHByb3ZpZGVkXG4gKiBhbmQgeW91IGNhbiB0aGVuIHVwZGF0ZSBhbGwgb3Igb25seSBvbmUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXaWRnZXRzRGFzaGJvYXJkRXZlbnRTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEFsbCBldmVudHMgc2VudCBvbiB0aGUgY3VycmVudCBkYXNoYm9hcmQuXG4gICAqL1xuICBwcml2YXRlIGV2ZW50cyQgPSBuZXcgU3ViamVjdDxXaWRnZXRDaGFuZ2VFdmVudD4oKTtcbiAgcHJpdmF0ZSBsYXN0VmFsdWVCeUV2ZW50OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRDaGFuZ2VFdmVudFR5cGUsIFdpZGdldENoYW5nZUV2ZW50WydkYXRhJ10+PiA9IHt9O1xuXG4gIHByaXZhdGUgYXV0b1JlZnJlc2gkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gIG9uQXV0b1JlZnJlc2gkID0gdGhpcy5hdXRvUmVmcmVzaCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdWJzY3JpYmFibGUgZXZlbnQgb2JzZXJ2YWJsZSBvZiBzcGVjaWZpYyBldmVudCB0eXBlIGlmIGV2ZW50VHlwZSBpcyBwYXNzZWQsIG9yIG9ic2VydmFibGUgb2ZcbiAgICogYWxsIHRoZSBldmVudHMgaWYgbm8gcGFyYW0gaXMgcGFzc2VkIHRvIG1ldGhvZC5cbiAgICogQHBhcmFtIGV2ZW50VHlwZSBUaGUgZXZlbnQgeW91IHdhbnQgYW4gb2JzZXJ2YWJsZSBmb3IuXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgZXZlbnQuXG4gICAqL1xuICBnZXRPYnNlcnZhYmxlPFQgZXh0ZW5kcyBXaWRnZXRDaGFuZ2VFdmVudD4oXG4gICAgZXZlbnRUeXBlPzogV2lkZ2V0Q2hhbmdlRXZlbnRUeXBlXG4gICk6IE9ic2VydmFibGU8VFsnZGF0YSddPiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRzJC5waXBlKFxuICAgICAgZmlsdGVyKCh7IHR5cGUgfSkgPT4gKGV2ZW50VHlwZSA/IHR5cGUgPT09IGV2ZW50VHlwZSA6IHRydWUpKSxcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEgYXMgVFsnZGF0YSddKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbGFzdCB2YWx1ZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudFR5cGUgVGhlIGNoYW5nZSBldmVudCB0eXBlIHlvdSB3YW50IHRoZSBsYXN0IHZhbHVlIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBsYXN0IHZhbHVlIHVzZWQgYnkgdGhpcyBldmVudCwgdW5kZWZpbmVkIGlmIG5vbiB3YXMgc2VudCBzbyBmYXIuXG4gICAqL1xuICBnZXRMYXN0VmFsdWUoZXZlbnRUeXBlOiBXaWRnZXRDaGFuZ2VFdmVudFR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWVCeUV2ZW50W2V2ZW50VHlwZV07XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBuZXcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgV2lkZ2V0Q2hhbmdlRXZlbnQgdG8gZW1pdC5cbiAgICovXG4gIGVtaXQoZXZlbnQ6IFdpZGdldENoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5sYXN0VmFsdWVCeUV2ZW50W2V2ZW50LnR5cGVdID0gZXZlbnQuZGF0YTtcbiAgICB0aGlzLmV2ZW50cyQubmV4dChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZW1pdEF1dG9SZWZyZXNoKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvUmVmcmVzaCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICAvLyBXaGVuIGEgZGFzaGJvYXJkIGhhcyBhIG11bHRpcGxlIHRhYnMsIGFuZCBub3QgYWxsIG9mIHRoZW0gaGFzIGEgcmVhbHRpbWUgZ2xvYmFsIGNvbnRleHQgY29udHJvbFxuICAvLyB3ZSBuZWVkIHRvIHNldCB0aGUgcmVhbHRpbWUgdG8gZmFsc2Ugd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiB0YWJzIHRvIG1ha2UgYWdncmVnYXRpb24gc2VsZWN0b3Igbm90IHRvIGJlIGFsd2F5cyBkaXNhYmxlZFxuICAvLyB3aGlsZSBnbG9iYWwgYXV0by1yZWZyZXNoIGNvbnRleHQgY29udHJvbCBpcyBhdmFpbGFibGUuXG4gIHNldFJlYWx0aW1lVGltZUNvbnRleHRTZXR0aW5nKHZhbHVlID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmxhc3RWYWx1ZUJ5RXZlbnQuVElNRV9DT05URVhUID0ge1xuICAgICAgLi4udGhpcy5sYXN0VmFsdWVCeUV2ZW50LlRJTUVfQ09OVEVYVCxcbiAgICAgIHJlYWx0aW1lOiB2YWx1ZVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudHMkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==