@c8y/ngx-components 1021.13.3 → 1021.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alarms/alarms-list.component.d.ts +2 -17
- package/alarms/alarms-list.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts +1 -0
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.model.d.ts +30 -0
- package/alarms/alarms.model.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.model.d.ts +1 -0
- package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.service.d.ts +7 -5
- package/context-dashboard/context-dashboard.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.component.d.ts +4 -7
- package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-detail.service.d.ts +4 -4
- package/context-dashboard/dashboard-detail.service.d.ts.map +1 -1
- package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts +2 -2
- package/context-dashboard/dashboard-settings/dashboard-general-settings.component.d.ts.map +1 -1
- package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts +19 -6
- package/context-dashboard/dashboard-settings/typed-dashboard-settings.component.d.ts.map +1 -1
- package/core/action-bar/action-bar-item.component.d.ts +1 -1
- package/core/action-bar/action-bar-item.component.d.ts.map +1 -1
- package/core/action-bar/action-bar.module.d.ts +6 -6
- package/core/action-bar/action-bar.module.d.ts.map +1 -1
- package/core/bootstrap/bootstrap.component.d.ts +3 -1
- package/core/bootstrap/bootstrap.component.d.ts.map +1 -1
- package/core/common/aggregation/aggregation.model.d.ts +39 -0
- package/core/common/aggregation/aggregation.model.d.ts.map +1 -0
- package/core/common/aggregation/aggregation.service.d.ts +17 -0
- package/core/common/aggregation/aggregation.service.d.ts.map +1 -0
- package/core/common/index.d.ts +4 -0
- package/core/common/index.d.ts.map +1 -1
- package/core/common/inter-app.service.d.ts +48 -0
- package/core/common/inter-app.service.d.ts.map +1 -0
- package/core/common/interval-based-reload.abstract.d.ts +120 -0
- package/core/common/interval-based-reload.abstract.d.ts.map +1 -0
- package/core/dashboard/dashboard.module.d.ts +24 -18
- package/core/dashboard/dashboard.module.d.ts.map +1 -1
- package/core/dashboard/index.d.ts +3 -0
- package/core/dashboard/index.d.ts.map +1 -1
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts +31 -0
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.d.ts +17 -0
- package/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.d.ts +4 -0
- package/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/index.d.ts +8 -0
- package/core/dashboard/widget-auto-refresh-context/index.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.d.ts +7 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts +29 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.d.ts +15 -0
- package/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.d.ts.map +1 -0
- package/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.d.ts +169 -0
- package/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.d.ts.map +1 -0
- package/core/dashboard/widgets-dashboard.component.d.ts +6 -3
- package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts +2 -2
- package/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.d.ts +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +11 -8
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +6 -12
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
- package/core/header/header.module.d.ts +18 -18
- package/core/header/header.module.d.ts.map +1 -1
- package/core/header/title/title.component.d.ts +1 -1
- package/core/header/title/title.component.d.ts.map +1 -1
- package/core/i18n/cached-locale-dictionary.service.d.ts +5 -1
- package/core/i18n/cached-locale-dictionary.service.d.ts.map +1 -1
- package/core/i18n/i18n.module.d.ts +0 -4
- package/core/i18n/i18n.module.d.ts.map +1 -1
- package/core/i18n/index.d.ts +2 -1
- package/core/i18n/index.d.ts.map +1 -1
- package/core/i18n/translation-loader.service.d.ts +50 -0
- package/core/i18n/translation-loader.service.d.ts.map +1 -0
- package/core/i18n/translation-utils.d.ts +14 -0
- package/core/i18n/translation-utils.d.ts.map +1 -0
- package/core/plugins/plugins-resolve.service.d.ts +7 -10
- package/core/plugins/plugins-resolve.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts +2 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.d.ts.map +1 -1
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +11 -2
- package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
- package/datapoint-selector/datapoint-selection.model.d.ts +6 -0
- package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
- package/datapoints-export-selector/c8y-ngx-components-datapoints-export-selector.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts +117 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.d.ts +90 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.d.ts +160 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts +89 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.d.ts +11 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.d.ts +27 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.d.ts +12 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts +22 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.d.ts +3 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.d.ts +9 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.d.ts +56 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts +21 -0
- package/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector.component.d.ts +14 -0
- package/datapoints-export-selector/datapoints-export-selector.component.d.ts.map +1 -0
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts +232 -0
- package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -0
- package/datapoints-export-selector/index.d.ts +15 -0
- package/datapoints-export-selector/index.d.ts.map +1 -0
- package/device-list/device-list.module.d.ts +4 -2
- package/device-list/device-list.module.d.ts.map +1 -1
- package/esm2022/alarms/alarms-list.component.mjs +5 -16
- package/esm2022/alarms/alarms-view.service.mjs +2 -1
- package/esm2022/alarms/alarms.model.mjs +1 -1
- package/esm2022/context-dashboard/context-dashboard.component.mjs +4 -4
- package/esm2022/context-dashboard/context-dashboard.model.mjs +1 -1
- package/esm2022/context-dashboard/context-dashboard.service.mjs +47 -21
- package/esm2022/context-dashboard/dashboard-detail.component.mjs +8 -16
- package/esm2022/context-dashboard/dashboard-detail.service.mjs +13 -6
- package/esm2022/context-dashboard/dashboard-settings/dashboard-general-settings.component.mjs +3 -3
- package/esm2022/context-dashboard/dashboard-settings/typed-dashboard-settings.component.mjs +32 -11
- package/esm2022/core/action-bar/action-bar-item.component.mjs +3 -3
- package/esm2022/core/action-bar/action-bar.module.mjs +16 -5
- package/esm2022/core/bootstrap/bootstrap.component.mjs +21 -16
- package/esm2022/core/common/aggregation/aggregation.model.mjs +46 -0
- package/esm2022/core/common/aggregation/aggregation.service.mjs +34 -0
- package/esm2022/core/common/humanize-app-name.model.mjs +2 -2
- package/esm2022/core/common/humanize-app-name.pipe.mjs +2 -2
- package/esm2022/core/common/index.mjs +5 -1
- package/esm2022/core/common/inter-app.service.mjs +76 -0
- package/esm2022/core/common/interval-based-reload.abstract.mjs +110 -0
- package/esm2022/core/countdown-interval/countdown-interval.component.mjs +3 -3
- package/esm2022/core/dashboard/dashboard-child.component.mjs +6 -5
- package/esm2022/core/dashboard/dashboard.module.mjs +18 -1
- package/esm2022/core/dashboard/index.mjs +4 -1
- package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-control.component.mjs +101 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/auto-refresh-select-control.component.mjs +50 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/global-refresh-loading.operator.mjs +7 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/index.mjs +8 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component.mjs +18 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.component.mjs +127 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/widget-auto-refresh-context.model.mjs +5 -0
- package/esm2022/core/dashboard/widget-auto-refresh-context/widget-global-auto-refresh.service.mjs +233 -0
- package/esm2022/core/dashboard/widgets-dashboard.component.mjs +35 -30
- package/esm2022/core/dashboard/wiget-time-context/aggregation-picker/aggregation-picker.component.mjs +4 -4
- package/esm2022/core/dashboard/wiget-time-context/realtime-control/realtime-control.component.mjs +2 -2
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component.mjs +5 -5
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +7 -4
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +37 -37
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +1 -28
- package/esm2022/core/date-time-picker/date-time-picker.component.mjs +3 -3
- package/esm2022/core/header/header.module.mjs +7 -5
- package/esm2022/core/header/title/title.component.mjs +3 -3
- package/esm2022/core/i18n/cached-locale-dictionary.service.mjs +1 -1
- package/esm2022/core/i18n/i18n.module.mjs +7 -14
- package/esm2022/core/i18n/index.mjs +3 -2
- package/esm2022/core/i18n/translate.parser.mjs +2 -2
- package/esm2022/core/i18n/translation-loader.service.mjs +132 -0
- package/esm2022/core/i18n/translation-utils.mjs +24 -0
- package/esm2022/core/plugins/plugins-resolve.service.mjs +12 -37
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form-validation.service.mjs +13 -6
- package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +22 -5
- package/esm2022/datapoint-selector/datapoint-selection-list/datapoint-selection-list.component.mjs +3 -3
- package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
- package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
- package/esm2022/datapoints-export-selector/c8y-ngx-components-datapoints-export-selector.mjs +5 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-fetching.service.mjs +407 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/data-processing.service.mjs +207 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.component.mjs +467 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-file-exporter.service.mjs +187 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-export-selector-preview/datapoints-export-selector-preview.component.mjs +27 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-data-scope/datapoints-exports-selector-data-scope.component.mjs +41 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-file-types/datapoints-exports-selector-file-types.component.mjs +23 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/datapoints-exports-selector-time-range/datapoints-exports-selector-time-range.component.mjs +42 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/csv-generator.mjs +120 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/generators/excel-generator.mjs +282 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-file-exporter/utils.service.mjs +76 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector-modal/datapoints-export-selector-modal.component.mjs +46 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector.component.mjs +42 -0
- package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +43 -0
- package/esm2022/datapoints-export-selector/index.mjs +15 -0
- package/esm2022/device-list/add-smart-group.component.mjs +4 -3
- package/esm2022/device-list/device-list.module.mjs +22 -4
- package/esm2022/map/cluster-map.component.mjs +41 -13
- package/esm2022/map/map-status.component.mjs +6 -5
- package/esm2022/map/map.component.mjs +9 -5
- package/esm2022/map/map.model.mjs +1 -1
- package/esm2022/translation-editor/c8y-ngx-components-translation-editor.mjs +5 -0
- package/esm2022/translation-editor/data/c8y-ngx-components-translation-editor-data.mjs +5 -0
- package/esm2022/translation-editor/data/index.mjs +2 -0
- package/esm2022/translation-editor/data/translation-store.service.mjs +175 -0
- package/esm2022/translation-editor/index.mjs +10 -0
- package/esm2022/translation-editor/lazy/add-translation-modal/add-translation-modal.component.mjs +70 -0
- package/esm2022/translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.mjs +5 -0
- package/esm2022/translation-editor/lazy/index.mjs +2 -0
- package/esm2022/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.mjs +53 -0
- package/esm2022/translation-editor/lazy/translation-editor/translation-editor.component.mjs +124 -0
- package/esm2022/translation-editor/translation-editor-naviagtor-factory.service.mjs +31 -0
- package/esm2022/widgets/cockpit/index.mjs +4 -2
- package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
- package/esm2022/widgets/definitions/alarms/alarm-list/index.mjs +6 -2
- package/esm2022/widgets/definitions/alarms/all-critical-alarms/index.mjs +6 -2
- package/esm2022/widgets/definitions/alarms/recent-alarms/index.mjs +6 -2
- package/esm2022/widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +5 -0
- package/esm2022/widgets/definitions/datapoints-table/index.mjs +34 -0
- package/esm2022/widgets/definitions/index.mjs +2 -1
- package/esm2022/widgets/definitions/map/index.mjs +4 -2
- package/esm2022/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.mjs +29 -15
- package/esm2022/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.mjs +57 -25
- package/esm2022/widgets/implementations/alarms/alarm-list-widget.model.mjs +2 -1
- package/esm2022/widgets/implementations/alarms/alarm-widget-alarms-reload.component.mjs +19 -21
- package/esm2022/widgets/implementations/datapoints-table/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +5 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +383 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.mjs +124 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.mjs +191 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.mjs +36 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.mjs +45 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.mjs +116 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.mjs +116 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.mjs +43 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.mjs +282 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.mjs +430 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.mjs +75 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table-widget.model.mjs +76 -0
- package/esm2022/widgets/implementations/datapoints-table/datapoints-table.service.mjs +52 -0
- package/esm2022/widgets/implementations/datapoints-table/date-range-picker.component.mjs +68 -0
- package/esm2022/widgets/implementations/datapoints-table/index.mjs +10 -0
- package/esm2022/widgets/implementations/map/map-widget-config.component.mjs +19 -11
- package/esm2022/widgets/implementations/map/map-widget.component.mjs +20 -2
- package/esm2022/widgets/implementations/map/map-widget.model.mjs +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +5 -15
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +135 -91
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +37 -13
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +1928 -0
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-device-list.mjs +24 -5
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-map.mjs +52 -19
- package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +181 -0
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +236 -0
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-translation-editor.mjs +46 -0
- package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +3 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +5 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs +5 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-all-critical-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs +5 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-recent-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +41 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +3 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +101 -58
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +1967 -0
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +37 -11
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +5080 -4272
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +289 -18
- package/locales/en.po +12 -0
- package/locales/en_US.po +3 -0
- package/locales/es.po +253 -18
- package/locales/fr.po +253 -18
- package/locales/ja_JP.po +282 -18
- package/locales/locales.pot +257 -18
- package/locales/nl.po +253 -18
- package/locales/pl.po +253 -18
- package/locales/pt_BR.po +253 -18
- package/map/cluster-map.component.d.ts +8 -3
- package/map/cluster-map.component.d.ts.map +1 -1
- package/map/map-status.component.d.ts +0 -3
- package/map/map-status.component.d.ts.map +1 -1
- package/map/map.component.d.ts +4 -2
- package/map/map.component.d.ts.map +1 -1
- package/map/map.model.d.ts +2 -1
- package/map/map.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/translation-editor/c8y-ngx-components-translation-editor.d.ts.map +1 -0
- package/translation-editor/data/c8y-ngx-components-translation-editor-data.d.ts.map +1 -0
- package/translation-editor/data/index.d.ts +2 -0
- package/translation-editor/data/index.d.ts.map +1 -0
- package/translation-editor/data/translation-store.service.d.ts +61 -0
- package/translation-editor/data/translation-store.service.d.ts.map +1 -0
- package/translation-editor/index.d.ts +2 -0
- package/translation-editor/index.d.ts.map +1 -0
- package/translation-editor/lazy/add-translation-modal/add-translation-modal.component.d.ts +30 -0
- package/translation-editor/lazy/add-translation-modal/add-translation-modal.component.d.ts.map +1 -0
- package/translation-editor/lazy/c8y-ngx-components-translation-editor-lazy.d.ts.map +1 -0
- package/translation-editor/lazy/index.d.ts +2 -0
- package/translation-editor/lazy/index.d.ts.map +1 -0
- package/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.d.ts +22 -0
- package/translation-editor/lazy/manage-translation-cell-renderer/manage-translation-cell-renderer.component.d.ts.map +1 -0
- package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts +34 -0
- package/translation-editor/lazy/translation-editor/translation-editor.component.d.ts.map +1 -0
- package/translation-editor/translation-editor-naviagtor-factory.service.d.ts +11 -0
- package/translation-editor/translation-editor-naviagtor-factory.service.d.ts.map +1 -0
- package/widgets/cockpit/index.d.ts +13 -0
- package/widgets/cockpit/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/alarms/alarm-list/index.d.ts +2 -0
- package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
- package/widgets/definitions/alarms/all-critical-alarms/index.d.ts +2 -0
- package/widgets/definitions/alarms/all-critical-alarms/index.d.ts.map +1 -1
- package/widgets/definitions/alarms/recent-alarms/index.d.ts +2 -0
- package/widgets/definitions/alarms/recent-alarms/index.d.ts.map +1 -1
- package/widgets/definitions/datapoints-table/c8y-ngx-components-widgets-definitions-datapoints-table.d.ts.map +1 -0
- package/widgets/definitions/datapoints-table/index.d.ts +14 -0
- package/widgets/definitions/datapoints-table/index.d.ts.map +1 -0
- package/widgets/definitions/index.d.ts +1 -0
- package/widgets/definitions/index.d.ts.map +1 -1
- package/widgets/definitions/map/index.d.ts +2 -1
- package/widgets/definitions/map/index.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts +5 -9
- package/widgets/implementations/alarms/alarm-list-widget-config/alarm-list-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts +17 -10
- package/widgets/implementations/alarms/alarm-list-widget-view/alarm-list-widget.component.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-list-widget.model.d.ts +5 -1
- package/widgets/implementations/alarms/alarm-list-widget.model.d.ts.map +1 -1
- package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts +5 -11
- package/widgets/implementations/alarms/alarm-widget-alarms-reload.component.d.ts.map +1 -1
- package/widgets/implementations/datapoints-table/c8y-ngx-components-widgets-implementations-datapoints-table.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts +129 -0
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.d.ts +56 -0
- package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.service.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.d.ts +88 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/adjust-aggregated-time-range.pipe.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.d.ts +19 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/apply-range-class.pipe.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.d.ts +26 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/column-title.pipe.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts +63 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-reload/datapoints-reload.component.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.d.ts +38 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/datapoints-table.component.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.d.ts +13 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table/dynamic-column.directive.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts +123 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.component.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.d.ts +196 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/datapoints-table-view.service.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.d.ts +41 -0
- package/widgets/implementations/datapoints-table/datapoints-table-view/virtual-scroll-listener.directive.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts +175 -0
- package/widgets/implementations/datapoints-table/datapoints-table-widget.model.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/datapoints-table.service.d.ts +12 -0
- package/widgets/implementations/datapoints-table/datapoints-table.service.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts +34 -0
- package/widgets/implementations/datapoints-table/date-range-picker.component.d.ts.map +1 -0
- package/widgets/implementations/datapoints-table/index.d.ts +10 -0
- package/widgets/implementations/datapoints-table/index.d.ts.map +1 -0
- package/widgets/implementations/map/map-widget-config.component.d.ts +4 -4
- package/widgets/implementations/map/map-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/map/map-widget.component.d.ts +8 -3
- package/widgets/implementations/map/map-widget.component.d.ts.map +1 -1
- package/widgets/implementations/map/map-widget.model.d.ts +4 -3
- package/widgets/implementations/map/map-widget.model.d.ts.map +1 -1
- package/core/i18n/translate.loader.d.ts +0 -31
- package/core/i18n/translate.loader.d.ts.map +0 -1
- package/esm2022/core/i18n/translate.loader.mjs +0 -71
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
2
|
import { AlarmService } from '@c8y/client';
|
|
3
|
-
import { AlarmRealtimeService, AlarmWithChildrenRealtimeService, AlertService, DashboardChildComponent } from '@c8y/ngx-components';
|
|
3
|
+
import { AlarmRealtimeService, AlarmWithChildrenRealtimeService, AlertService, DashboardChildComponent, DismissAlertStrategy, DynamicComponentAlert, gettext, globalAutoRefreshLoading, WidgetGlobalAutoRefreshService } from '@c8y/ngx-components';
|
|
4
4
|
import { AlarmsViewService } from '@c8y/ngx-components/alarms';
|
|
5
|
-
import { isEmpty } from 'lodash-es';
|
|
5
|
+
import { isEmpty, isEqual } from 'lodash-es';
|
|
6
6
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
7
|
-
import { takeUntil, tap } from 'rxjs/operators';
|
|
7
|
+
import { skip, takeUntil, tap } from 'rxjs/operators';
|
|
8
8
|
import { ASSET_ALARMS_WIDGET_ID, RECENT_ALARMS_WIDGET_ID } from '../alarm-list-widget.model';
|
|
9
9
|
import { AlarmWidgetService } from '../alarm-widget.service';
|
|
10
|
+
import { AlarmWidgetAlarmsReloadComponent } from '../alarm-widget-alarms-reload.component';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "../alarm-widget.service";
|
|
12
13
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -18,14 +19,15 @@ import * as i6 from "@angular/common";
|
|
|
18
19
|
* To ensure backward compatibility, legacy widgets will be converted to the new implementation.
|
|
19
20
|
*/
|
|
20
21
|
export class AlarmListWidgetComponent {
|
|
21
|
-
constructor(alarmWidgetService, alarmRealtimeService, alarmService, alarmsViewService, alarmWithChildrenRealtimeService, alertService,
|
|
22
|
+
constructor(alarmWidgetService, alarmRealtimeService, alarmService, alarmsViewService, alarmWithChildrenRealtimeService, dashboardChild, alertService, widgetGlobalAutoRefresh) {
|
|
22
23
|
this.alarmWidgetService = alarmWidgetService;
|
|
23
24
|
this.alarmRealtimeService = alarmRealtimeService;
|
|
24
25
|
this.alarmService = alarmService;
|
|
25
26
|
this.alarmsViewService = alarmsViewService;
|
|
26
27
|
this.alarmWithChildrenRealtimeService = alarmWithChildrenRealtimeService;
|
|
27
|
-
this.alertService = alertService;
|
|
28
28
|
this.dashboardChild = dashboardChild;
|
|
29
|
+
this.alertService = alertService;
|
|
30
|
+
this.widgetGlobalAutoRefresh = widgetGlobalAutoRefresh;
|
|
29
31
|
/**
|
|
30
32
|
* Represents current alarms.
|
|
31
33
|
*/
|
|
@@ -33,29 +35,35 @@ export class AlarmListWidgetComponent {
|
|
|
33
35
|
/**
|
|
34
36
|
* Current isLoading state. Based on it next countdown cycle is being started.
|
|
35
37
|
*/
|
|
36
|
-
this.isLoading = new BehaviorSubject(true);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*/
|
|
40
|
-
this.isNewAlarms = false;
|
|
38
|
+
this.isLoading$ = new BehaviorSubject(true);
|
|
39
|
+
this.TIMEOUT_ERROR_TEXT = gettext('The request is taking longer than usual. We apologize for the inconvenience.');
|
|
40
|
+
this.SERVER_ERROR_TEXT = gettext('Server error occurred.');
|
|
41
41
|
this.unsubscribe$ = new Subject();
|
|
42
|
+
this.destroy$ = new Subject();
|
|
42
43
|
this.isDisabled = false;
|
|
43
44
|
this.isIntervalRefresh = this.alarmsViewService.isIntervalRefresh();
|
|
44
45
|
}
|
|
45
46
|
async ngOnInit() {
|
|
47
|
+
this.alerts.setAlertGroupDismissStrategy('warning', DismissAlertStrategy.TEMPORARY_OR_PERMANENT);
|
|
46
48
|
if (this.alarmWidgetService.isOldAlarmConfigStructure(this.config)) {
|
|
47
49
|
const mappedConfig = this.alarmWidgetService.mapToNewConfigStructure(this.config, this.isIntervalRefresh);
|
|
48
50
|
Object.assign(this.config, mappedConfig);
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
if (this.config.widgetInstanceGlobalAutoRefreshContext && !this.config.isRealtime) {
|
|
53
|
+
this.handleGlobalRefreshLoading();
|
|
54
|
+
}
|
|
55
|
+
const _config = this.dashboardChild['data']?.config;
|
|
56
|
+
const isLegacyWidgetWithoutConfiguration = isEmpty(_config) || isEqual(_config, { displaySettings: { globalAutoRefreshContext: true } });
|
|
51
57
|
if (isLegacyWidgetWithoutConfiguration) {
|
|
52
58
|
this.setLegacyRecentOrCriticalAlarmWidgetConfig();
|
|
53
59
|
}
|
|
54
60
|
this.updateWidgetRefreshMode();
|
|
55
61
|
this.refreshInterval = !!this.config?.refreshInterval && this.config?.refreshInterval;
|
|
56
62
|
await this.fetchAlarms();
|
|
57
|
-
|
|
58
|
-
|
|
63
|
+
}
|
|
64
|
+
ngAfterViewInit() {
|
|
65
|
+
if (!this.isIntervalRefresh && this.config.refreshOption === 'interval') {
|
|
66
|
+
this.handleRealtimeAlarms(this.config, this.alarmWidgetAlarmsReloadComp.isRealtimeToggleOn);
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
69
|
ngOnDestroy() {
|
|
@@ -63,13 +71,15 @@ export class AlarmListWidgetComponent {
|
|
|
63
71
|
this.unsubscribe$.next();
|
|
64
72
|
this.unsubscribe$.complete();
|
|
65
73
|
}
|
|
74
|
+
this.destroy$.next();
|
|
75
|
+
this.destroy$.complete();
|
|
76
|
+
if (this.config.widgetInstanceGlobalAutoRefreshContext && this.isLoading$.value) {
|
|
77
|
+
this.widgetGlobalAutoRefresh.decrementLoading();
|
|
78
|
+
}
|
|
66
79
|
}
|
|
67
80
|
async fetchAlarms() {
|
|
68
81
|
this.alarms$.next(await this.getAlarms());
|
|
69
82
|
}
|
|
70
|
-
resetNewAlarmsState() {
|
|
71
|
-
this.isNewAlarms = false;
|
|
72
|
-
}
|
|
73
83
|
handleRealTimeToggleChange(isRealtimeToggleOn) {
|
|
74
84
|
if (!isRealtimeToggleOn) {
|
|
75
85
|
this.unsubscribe$.next();
|
|
@@ -93,18 +103,29 @@ export class AlarmListWidgetComponent {
|
|
|
93
103
|
if (this.config.isRealtime) {
|
|
94
104
|
// Switching widget to realtime mode
|
|
95
105
|
this.config.refreshInterval = null;
|
|
106
|
+
this.config.refreshOption = null;
|
|
107
|
+
this.config.widgetInstanceGlobalAutoRefreshContext = false;
|
|
108
|
+
this.config.isAutoRefreshEnabled = true;
|
|
96
109
|
}
|
|
97
110
|
else {
|
|
98
111
|
// Switching widget to interval mode
|
|
99
112
|
this.config.refreshInterval = this.alarmsViewService.DEFAULT_INTERVAL_VALUE;
|
|
113
|
+
this.config.refreshOption = this.alarmsViewService.DEFAULT_REFRESH_OPTION_VALUE;
|
|
114
|
+
this.config.widgetInstanceGlobalAutoRefreshContext = false;
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
117
|
async getAlarms() {
|
|
103
118
|
try {
|
|
104
|
-
this.isLoading
|
|
119
|
+
this.isLoading$.next(true);
|
|
105
120
|
return await this.alarmService.list(this.alarmWidgetService.mapConfigToQueryFilter(this.config));
|
|
106
121
|
}
|
|
107
122
|
catch (error) {
|
|
123
|
+
this.alerts.addAlerts(new DynamicComponentAlert({
|
|
124
|
+
type: 'warning',
|
|
125
|
+
text: error?.name === 'TimeoutError'
|
|
126
|
+
? this.TIMEOUT_ERROR_TEXT
|
|
127
|
+
: error?.message ?? this.SERVER_ERROR_TEXT
|
|
128
|
+
}));
|
|
108
129
|
if (error?.res?.status === 403) {
|
|
109
130
|
this.isDisabled = true;
|
|
110
131
|
return;
|
|
@@ -112,7 +133,7 @@ export class AlarmListWidgetComponent {
|
|
|
112
133
|
this.alertService.addServerFailure(error);
|
|
113
134
|
}
|
|
114
135
|
finally {
|
|
115
|
-
this.isLoading
|
|
136
|
+
this.isLoading$.next(false);
|
|
116
137
|
}
|
|
117
138
|
}
|
|
118
139
|
/**
|
|
@@ -124,15 +145,18 @@ export class AlarmListWidgetComponent {
|
|
|
124
145
|
* to indicate the presence of new alarms.
|
|
125
146
|
*
|
|
126
147
|
* @param config - The configuration settings of the alarm list widget.
|
|
148
|
+
* @param isRealtimeToggleOn - A flag indicating whether the realtime toggle is on. If true, the alarm list will be refreshed.
|
|
149
|
+
* If false, the presence of new alarms will be displayed as "New Alarms" entry on widget refresh button, but the list won't be refreshed automatically.
|
|
127
150
|
*/
|
|
128
151
|
handleRealtimeAlarms(config, isRealtimeToggleOn) {
|
|
129
152
|
const callback = (data) => {
|
|
130
153
|
if (this.alarmWidgetService.filterAlarmsByStatusSeverityAndType(data, this.alarms$.value.data, config)) {
|
|
131
154
|
if (isRealtimeToggleOn) {
|
|
132
155
|
this.fetchAlarms();
|
|
156
|
+
this.alarmWidgetAlarmsReloadComp.isNewAlarmMessageCleared = true;
|
|
133
157
|
}
|
|
134
158
|
else {
|
|
135
|
-
this.
|
|
159
|
+
this.alarmWidgetAlarmsReloadComp.isNewAlarmMessageCleared = false;
|
|
136
160
|
}
|
|
137
161
|
}
|
|
138
162
|
};
|
|
@@ -172,13 +196,21 @@ export class AlarmListWidgetComponent {
|
|
|
172
196
|
Object.assign(this.config, predefinedConfig);
|
|
173
197
|
}
|
|
174
198
|
}
|
|
175
|
-
|
|
176
|
-
|
|
199
|
+
handleGlobalRefreshLoading() {
|
|
200
|
+
this.isLoading$
|
|
201
|
+
.pipe(skip(1), globalAutoRefreshLoading(this.widgetGlobalAutoRefresh), takeUntil(this.destroy$))
|
|
202
|
+
.subscribe();
|
|
203
|
+
}
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmListWidgetComponent, deps: [{ token: i1.AlarmWidgetService }, { token: i2.AlarmRealtimeService }, { token: i3.AlarmService }, { token: i4.AlarmsViewService }, { token: i2.AlarmWithChildrenRealtimeService }, { token: i2.DashboardChildComponent }, { token: i2.AlertService }, { token: i2.WidgetGlobalAutoRefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmListWidgetComponent, selector: "c8y-alarm-list-widget", inputs: { config: "config" }, providers: [AlarmRealtimeService, AlarmWithChildrenRealtimeService], viewQueries: [{ propertyName: "alarmWidgetAlarmsReloadComp", first: true, predicate: AlarmWidgetAlarmsReloadComponent, descendants: true }], ngImport: i0, template: "<c8y-alarms-list\n #list\n [alarms]=\"alarms$ | async\"\n [navigationOptions]=\"{\n alwaysNavigateToAllAlarms: !config.device,\n allowNavigationToAlarmsView: true,\n includeClearedQueryParams: true,\n queryParamsHandling: ''\n }\"\n [isInitialLoading]=\"isLoading$ | async\"\n [hasPermissions]=\"!isDisabled\"\n>\n <c8y-alarm-widget-alarms-reload\n class=\"d-contents\"\n [isIntervalRefresh]=\"isIntervalRefresh\"\n [refreshInterval]=\"refreshInterval\"\n [config]=\"config\"\n [isLoading]=\"isLoading$\"\n [isScrolling]=\"list.isScrolling\"\n [isDisabled]=\"isDisabled\"\n (onCountdownEnded)=\"fetchAlarms()\"\n (onRealTimeToggleChanged)=\"handleRealTimeToggleChange($event)\"\n ></c8y-alarm-widget-alarms-reload>\n</c8y-alarms-list>\n", dependencies: [{ kind: "component", type: i4.AlarmsListComponent, selector: "c8y-alarms-list", inputs: ["alarms", "hasPermissions", "typeFilters", "loadMoreMode", "navigationOptions", "isInitialLoading", "splitView"], outputs: ["onSelectedAlarm", "onScrollingStateChange"] }, { kind: "component", type: i5.AlarmWidgetAlarmsReloadComponent, selector: "c8y-alarm-widget-alarms-reload", inputs: ["isIntervalRefresh", "refreshInterval", "config", "isLoading", "isScrolling", "isDisabled"], outputs: ["onCountdownEnded", "onRealTimeToggleChanged"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
|
|
177
206
|
}
|
|
178
207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmListWidgetComponent, decorators: [{
|
|
179
208
|
type: Component,
|
|
180
|
-
args: [{ selector: 'c8y-alarm-list-widget', providers: [AlarmRealtimeService, AlarmWithChildrenRealtimeService], template: "<c8y-alarms-list\n #list\n [alarms]=\"alarms$ | async\"\n [navigationOptions]=\"{\n allowNavigationToAlarmsView: true,\n
|
|
181
|
-
}], ctorParameters: () => [{ type: i1.AlarmWidgetService }, { type: i2.AlarmRealtimeService }, { type: i3.AlarmService }, { type: i4.AlarmsViewService }, { type: i2.AlarmWithChildrenRealtimeService }, { type: i2.AlertService }, { type: i2.
|
|
209
|
+
args: [{ selector: 'c8y-alarm-list-widget', providers: [AlarmRealtimeService, AlarmWithChildrenRealtimeService], template: "<c8y-alarms-list\n #list\n [alarms]=\"alarms$ | async\"\n [navigationOptions]=\"{\n alwaysNavigateToAllAlarms: !config.device,\n allowNavigationToAlarmsView: true,\n includeClearedQueryParams: true,\n queryParamsHandling: ''\n }\"\n [isInitialLoading]=\"isLoading$ | async\"\n [hasPermissions]=\"!isDisabled\"\n>\n <c8y-alarm-widget-alarms-reload\n class=\"d-contents\"\n [isIntervalRefresh]=\"isIntervalRefresh\"\n [refreshInterval]=\"refreshInterval\"\n [config]=\"config\"\n [isLoading]=\"isLoading$\"\n [isScrolling]=\"list.isScrolling\"\n [isDisabled]=\"isDisabled\"\n (onCountdownEnded)=\"fetchAlarms()\"\n (onRealTimeToggleChanged)=\"handleRealTimeToggleChange($event)\"\n ></c8y-alarm-widget-alarms-reload>\n</c8y-alarms-list>\n" }]
|
|
210
|
+
}], ctorParameters: () => [{ type: i1.AlarmWidgetService }, { type: i2.AlarmRealtimeService }, { type: i3.AlarmService }, { type: i4.AlarmsViewService }, { type: i2.AlarmWithChildrenRealtimeService }, { type: i2.DashboardChildComponent }, { type: i2.AlertService }, { type: i2.WidgetGlobalAutoRefreshService }], propDecorators: { config: [{
|
|
182
211
|
type: Input
|
|
212
|
+
}], alarmWidgetAlarmsReloadComp: [{
|
|
213
|
+
type: ViewChild,
|
|
214
|
+
args: [AlarmWidgetAlarmsReloadComponent]
|
|
183
215
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLWxpc3Qtd2lkZ2V0LXZpZXcvYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLWxpc3Qtd2lkZ2V0LXZpZXcvYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBZ0MsTUFBTSxhQUFhLENBQUM7QUFDekUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQ0FBZ0MsRUFDaEMsWUFBWSxFQUNaLHVCQUF1QixFQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLHVCQUF1QixFQUN4QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUU3RDs7R0FFRztBQU1ILE1BQU0sT0FBTyx3QkFBd0I7SUE0Qm5DLFlBQ1Usa0JBQXNDLEVBQ3RDLG9CQUEwQyxFQUMxQyxZQUEwQixFQUMxQixpQkFBb0MsRUFDcEMsZ0NBQWtFLEVBQ2xF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QjtrQkFMcEMsU0FBUzsrQkFDRSx1QkFBdUIsYUFFdEIsQ0FBQyxvQkFBb0IsRUFBRSxnQ0FBZ0MsQ0FBQztxU0FNMUQsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxhcm1TZXJ2aWNlLCBJQWxhcm0sIElSZXN1bHQsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxhcm1SZWFsdGltZVNlcnZpY2UsXG4gIEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICBBbGVydFNlcnZpY2UsXG4gIERhc2hib2FyZENoaWxkQ29tcG9uZW50XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtcyc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBBU1NFVF9BTEFSTVNfV0lER0VUX0lELFxuICBBbGFybUxpc3RXaWRnZXRDb25maWcsXG4gIFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG59IGZyb20gJy4uL2FsYXJtLWxpc3Qtd2lkZ2V0Lm1vZGVsJztcbmltcG9ydCB7IEFsYXJtV2lkZ2V0U2VydmljZSB9IGZyb20gJy4uL2FsYXJtLXdpZGdldC5zZXJ2aWNlJztcblxuLyoqXG4gKiBUbyBlbnN1cmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgbGVnYWN5IHdpZGdldHMgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtLWxpc3Qtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtLWxpc3Qtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbQWxhcm1SZWFsdGltZVNlcnZpY2UsIEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBbGFybUxpc3RXaWRnZXRDb21wb25lbnQge1xuICAvKipcbiAgICogIEFsYXJtIHdpZGdldCBjb25maWcuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc6IEFsYXJtTGlzdFdpZGdldENvbmZpZztcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgY3VycmVudCBhbGFybXMuXG4gICAqL1xuICBhbGFybXMkOiBCZWhhdmlvclN1YmplY3Q8SVJlc3VsdExpc3Q8SUFsYXJtPiB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgLyoqXG4gICAqIEN1cnJlbnQgaXNMb2FkaW5nIHN0YXRlLiBCYXNlZCBvbiBpdCBuZXh0IGNvdW50ZG93biBjeWNsZSBpcyBiZWluZyBzdGFydGVkLlxuICAgKi9cbiAgaXNMb2FkaW5nOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgbmV3IHJlYWx0aW1lIGFsYXJtIGFwcGVhcmVkLlxuICAgKi9cbiAgaXNOZXdBbGFybXMgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFN0YXRlIG9mIHRoaXMgYm9vbGVhbiBkZXBlbmRzIG9uIGFuIEFwcGxpY2F0aW9uIE9wdGlvbnMgXCJhbGFybXNSZWZyZXNoVHlwZVwiIHNldHRpbmcuXG4gICAqL1xuICBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1cnJlbnQgcmVmcmVzaCBpbnRlcnZhbCBzZXQgaW4gYSB3aWRnZXQgY29uZmlnLlxuICAgKi9cbiAgcmVmcmVzaEludGVydmFsOiBudW1iZXI7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1XaWRnZXRTZXJ2aWNlOiBBbGFybVdpZGdldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGFybVJlYWx0aW1lU2VydmljZTogQWxhcm1SZWFsdGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGFybVNlcnZpY2U6IEFsYXJtU2VydmljZSxcbiAgICBwcml2YXRlIGFsYXJtc1ZpZXdTZXJ2aWNlOiBBbGFybXNWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIGFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlOiBBbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGFzaGJvYXJkQ2hpbGQ6IERhc2hib2FyZENoaWxkQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmlzSW50ZXJ2YWxSZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hbGFybVdpZGdldFNlcnZpY2UuaXNPbGRBbGFybUNvbmZpZ1N0cnVjdHVyZSh0aGlzLmNvbmZpZykpIHtcbiAgICAgIGNvbnN0IG1hcHBlZENvbmZpZyA9IHRoaXMuYWxhcm1XaWRnZXRTZXJ2aWNlLm1hcFRvTmV3Q29uZmlnU3RydWN0dXJlKFxuICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIG1hcHBlZENvbmZpZyk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNMZWdhY3lXaWRnZXRXaXRob3V0Q29uZmlndXJhdGlvbiA9IGlzRW1wdHkodGhpcy5kYXNoYm9hcmRDaGlsZFsnZGF0YSddPy5jb25maWcpO1xuXG4gICAgaWYgKGlzTGVnYWN5V2lkZ2V0V2l0aG91dENvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuc2V0TGVnYWN5UmVjZW50T3JDcml0aWNhbEFsYXJtV2lkZ2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVXaWRnZXRSZWZyZXNoTW9kZSgpO1xuICAgIHRoaXMucmVmcmVzaEludGVydmFsID0gISF0aGlzLmNvbmZpZz8ucmVmcmVzaEludGVydmFsICYmIHRoaXMuY29uZmlnPy5yZWZyZXNoSW50ZXJ2YWw7XG4gICAgYXdhaXQgdGhpcy5mZXRjaEFsYXJtcygpO1xuXG4gICAgaWYgKCF0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoICYmIHRoaXMuY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkKSB7XG4gICAgICB0aGlzLmhhbmRsZVJlYWx0aW1lQWxhcm1zKHRoaXMuY29uZmlnLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcuaXNSZWFsdGltZSkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmZXRjaEFsYXJtcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmFsYXJtcyQubmV4dChhd2FpdCB0aGlzLmdldEFsYXJtcygpKTtcbiAgfVxuXG4gIHJlc2V0TmV3QWxhcm1zU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc05ld0FsYXJtcyA9IGZhbHNlO1xuICB9XG5cbiAgaGFuZGxlUmVhbFRpbWVUb2dnbGVDaGFuZ2UoaXNSZWFsdGltZVRvZ2dsZU9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCFpc1JlYWx0aW1lVG9nZ2xlT24pIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy51bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHRoaXMuaGFuZGxlUmVhbHRpbWVBbGFybXModGhpcy5jb25maWcsIGlzUmVhbHRpbWVUb2dnbGVPbik7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgd2lkZ2V0J3MgcmVmcmVzaCBtb2RlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gYW5kIHRoZSBpbnRlcnZhbCByZWZyZXNoIHNldHRpbmcuXG4gICAqIElmIHRoZSB3aWRnZXQncyAnaXNSZWFsdGltZScgY29uZmlndXJhdGlvbiBkaWZmZXJzIGZyb20gdGhlIGN1cnJlbnQgZ2xvYmFsIGludGVydmFsIHJlZnJlc2ggc2V0dGluZyAoYXBwbGljYXRpb24gb3B0aW9ucyBzZXR0aW5nKSxcbiAgICogdGhlIHdpZGdldCdzIG1vZGUgaXMgdXBkYXRlZCB0byBlaXRoZXIgJ3JlYWx0aW1lJyBvciAnaW50ZXJ2YWwnLiBJbiAncmVhbHRpbWUnIG1vZGUsIHRoZSByZWZyZXNoIGludGVydmFsIGlzIG51bGwsXG4gICAqIGFuZCBpbiAnaW50ZXJ2YWwnIG1vZGUsIGl0IGlzIHNldCB0byB0aGUgZGVmYXVsdCBpbnRlcnZhbCB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlV2lkZ2V0UmVmcmVzaE1vZGUoKTogdm9pZCB7XG4gICAgY29uc3QgaXNSZWZyZXNoVHlwZVN3aXRjaGVkID0gISF0aGlzLmNvbmZpZy5pc1JlYWx0aW1lICE9PSAhdGhpcy5pc0ludGVydmFsUmVmcmVzaDtcbiAgICBpZiAoIWlzUmVmcmVzaFR5cGVTd2l0Y2hlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLmlzUmVhbHRpbWUgPSAhdGhpcy5pc0ludGVydmFsUmVmcmVzaDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5pc1JlYWx0aW1lKSB7XG4gICAgICAvLyBTd2l0Y2hpbmcgd2lkZ2V0IHRvIHJlYWx0aW1lIG1vZGVcbiAgICAgIHRoaXMuY29uZmlnLnJlZnJlc2hJbnRlcnZhbCA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN3aXRjaGluZyB3aWRnZXQgdG8gaW50ZXJ2YWwgbW9kZVxuICAgICAgdGhpcy5jb25maWcucmVmcmVzaEludGVydmFsID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5ERUZBVUxUX0lOVEVSVkFMX1ZBTFVFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxhcm1zKCk6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFsYXJtPj4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5uZXh0KHRydWUpO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWxhcm1TZXJ2aWNlLmxpc3QoXG4gICAgICAgIHRoaXMuYWxhcm1XaWRnZXRTZXJ2aWNlLm1hcENvbmZpZ1RvUXVlcnlGaWx0ZXIodGhpcy5jb25maWcpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3I/LnJlcz8uc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSByZWFsdGltZSB1cGRhdGVzIG9mIGFsYXJtcyBiYXNlZCBvbiB0aGUgd2lkZ2V0IGNvbmZpZ3VyYXRpb24uXG4gICAqIElmIGEgc3BlY2lmaWMgZGV2aWNlIGlzIHByb3ZpZGVkIGluIHRoZSB3aWRnZXQgY29uZmlndXJhdGlvbiwgYWxsIGFsYXJtc1xuICAgKiBvcmlnaW5hdGluZyBmcm9tIHRoYXQgZGV2aWNlIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGZpbHRlcmVkIGJhc2VkIG9uIHN0YXR1cywgc2V2ZXJpdHksIGFuZCB0eXBlLlxuICAgKiBPdGhlcndpc2UsIGl0IHByb2Nlc3NlcyBhbGwgaW5jb21pbmcgYWxhcm1zIGFuZCBmaWx0ZXJzIHRoZW0gYWNjb3JkaW5nIHRvIHN0YXR1cywgc2V2ZXJpdHksIGFuZCB0eXBlLFxuICAgKiBhcyBzcGVjaWZpZWQgaW4gdGhlIHdpZGdldCBjb25maWd1cmF0aW9uLiBJZiBuZXcgYWxhcm1zIG1lZXQgdGhlIHNwZWNpZmllZCBjcml0ZXJpYSwgaXQgc2V0cyBhIGZsYWdcbiAgICogdG8gaW5kaWNhdGUgdGhlIHByZXNlbmNlIG9mIG5ldyBhbGFybXMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBvZiB0aGUgYWxhcm0gbGlzdCB3aWRnZXQuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVJlYWx0aW1lQWxhcm1zKGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnLCBpc1JlYWx0aW1lVG9nZ2xlT246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChkYXRhOiBudW1iZXIgfCBJQWxhcm0pID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5hbGFybVdpZGdldFNlcnZpY2UuZmlsdGVyQWxhcm1zQnlTdGF0dXNTZXZlcml0eUFuZFR5cGUoXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICB0aGlzLmFsYXJtcyQudmFsdWUuZGF0YSxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc1JlYWx0aW1lVG9nZ2xlT24pIHtcbiAgICAgICAgICB0aGlzLmZldGNoQWxhcm1zKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc05ld0FsYXJtcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRldmljZSkge1xuICAgICAgdGhpcy5oYW5kbGVSZWFsdGltZShcbiAgICAgICAgdGhpcy5hbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZS5vbkFsbCQuYmluZCh0aGlzLmFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlKSxcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFuZGxlUmVhbHRpbWUoXG4gICAgICAgIHRoaXMuYWxhcm1SZWFsdGltZVNlcnZpY2Uub25BbGwkLmJpbmQodGhpcy5hbGFybVJlYWx0aW1lU2VydmljZSksXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGEgc3Vic2NyaXB0aW9uIHRvIGEgcmVhbHRpbWUgZGF0YSBzdHJlYW0uIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBzdWJzY3JpYmVyIGZ1bmN0aW9uLFxuICAgKiB3aGljaCBpcyB1c2VkIHRvIHN1YnNjcmliZSB0byB0aGUgZGF0YSBzdHJlYW0sIGFuZCBhIGNhbGxiYWNrIGZ1bmN0aW9uLCB3aGljaCBpcyBjYWxsZWQgd2l0aCBlYWNoXG4gICAqIGRhdGEgdXBkYXRlIHJlY2VpdmVkIGZyb20gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHN1YnNjcmliZXJGbiAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgc3RyZWFtIG9mIGFsYXJtIGRhdGEuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIEEgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgd2l0aCBlYWNoIGFsYXJtIGRhdGEgdXBkYXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVSZWFsdGltZShcbiAgICBzdWJzY3JpYmVyRm46IChpZD86IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxJUmVzdWx0PElBbGFybT4+LFxuICAgIGNhbGxiYWNrOiAoZGF0YTogSUFsYXJtKSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIHN1YnNjcmliZXJGbih0aGlzLmNvbmZpZy5kZXZpY2U/LmlkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGVnYWN5UmVjZW50T3JDcml0aWNhbEFsYXJtV2lkZ2V0Q29uZmlnKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpZGdldElkID0gdGhpcy5kYXNoYm9hcmRDaGlsZFsnZGF0YSddPy5jb21wb25lbnRJZFxuICAgICAgPyB0aGlzLmRhc2hib2FyZENoaWxkWydkYXRhJ10/LmNvbXBvbmVudElkIC8vcHJvcGVydHkgaXMgdXNlZCBpbiBjb2NrcGl0IGRhc2hib2FyZHNcbiAgICAgIDogdGhpcy5kYXNoYm9hcmRDaGlsZFsnZGF0YSddPy5uYW1lOyAvL3Byb3BlcnR5IGlzIHVzZWQgaW4gZGV2aWNlIG1hbmFnZW1lbnQgZGFzaGJvYXJkc1xuXG4gICAgaWYgKHdpZGdldElkID09PSBSRUNFTlRfQUxBUk1TX1dJREdFVF9JRCkge1xuICAgICAgY29uc3QgcHJlZGVmaW5lZENvbmZpZyA9IHRoaXMuYWxhcm1XaWRnZXRTZXJ2aWNlLmdldFByZWRlZmluZWRDb25maWd1cmF0aW9uKFxuICAgICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoLFxuICAgICAgICBSRUNFTlRfQUxBUk1TX1dJREdFVF9JRFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIHByZWRlZmluZWRDb25maWcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHdpZGdldElkID09PSBBU1NFVF9BTEFSTVNfV0lER0VUX0lEKSB7XG4gICAgICBjb25zdCBwcmVkZWZpbmVkQ29uZmlnID0gdGhpcy5hbGFybVdpZGdldFNlcnZpY2UuZ2V0UHJlZGVmaW5lZENvbmZpZ3VyYXRpb24oXG4gICAgICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hcbiAgICAgICk7XG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29uZmlnLCBwcmVkZWZpbmVkQ29uZmlnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktYWxhcm1zLWxpc3RcbiAgI2xpc3RcbiAgW2FsYXJtc109XCJhbGFybXMkIHwgYXN5bmNcIlxuICBbbmF2aWdhdGlvbk9wdGlvbnNdPVwie1xuICAgIGFsbG93TmF2aWdhdGlvblRvQWxhcm1zVmlldzogdHJ1ZSxcbiAgICBhbHdheXNOYXZpZ2F0ZVRvQWxsQWxhcm1zOiAhY29uZmlnLmRldmljZSxcbiAgICBpbmNsdWRlQ2xlYXJlZFF1ZXJ5UGFyYW1zOiB0cnVlXG4gIH1cIlxuICBbaXNJbml0aWFsTG9hZGluZ109XCJpc0xvYWRpbmcgfCBhc3luY1wiXG4gIFtoYXNQZXJtaXNzaW9uc109XCIhaXNEaXNhYmxlZFwiXG4+XG4gIDxjOHktYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWRcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIFtpc05ld0FsYXJtc109XCJpc05ld0FsYXJtc1wiXG4gICAgW2lzSW50ZXJ2YWxSZWZyZXNoXT1cImlzSW50ZXJ2YWxSZWZyZXNoXCJcbiAgICBbcmVmcmVzaEludGVydmFsXT1cInJlZnJlc2hJbnRlcnZhbFwiXG4gICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICBbaXNTY3JvbGxpbmddPVwibGlzdC5pc1Njcm9sbGluZ1wiXG4gICAgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgKG9uQ291bnRkb3duRW5kZWQpPVwiZmV0Y2hBbGFybXMoKVwiXG4gICAgKG9uUmVzZXROZXdBbGFybXNTdGF0ZSk9XCJyZXNldE5ld0FsYXJtc1N0YXRlKClcIlxuICAgIChvblJlYWxUaW1lVG9nZ2xlQ2hhbmdlZCk9XCJoYW5kbGVSZWFsVGltZVRvZ2dsZUNoYW5nZSgkZXZlbnQpXCJcbiAgPjwvYzh5LWFsYXJtLXdpZGdldC1hbGFybXMtcmVsb2FkPlxuPC9jOHktYWxhcm1zLWxpc3Q+XG4iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLWxpc3Qtd2lkZ2V0LXZpZXcvYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLWxpc3Qtd2lkZ2V0LXZpZXcvYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBZ0MsTUFBTSxhQUFhLENBQUM7QUFDekUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQ0FBZ0MsRUFDaEMsWUFBWSxFQUNaLHVCQUF1QixFQUN2QixvQkFBb0IsRUFFcEIscUJBQXFCLEVBRXJCLE9BQU8sRUFDUCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQy9CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUNMLHNCQUFzQixFQUV0Qix1QkFBdUIsRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0NBQWdD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LGtCQUFrQixDQUFDLDBCQUEwQixDQUN6RSxJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLHVCQUF1QixDQUN4QixDQUFDO1lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFN0MsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDBCQUEwQixDQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7WUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsVUFBVTthQUNaLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1Asd0JBQXdCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQ3RELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs4R0F2UVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsOEVBRnhCLENBQUMsb0JBQW9CLEVBQUUsZ0NBQWdDLENBQUMsdUZBMEJ4RCxnQ0FBZ0MsZ0RDM0Q3QyxpeEJBd0JBOzsyRkRXYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCLGFBRXRCLENBQUMsb0JBQW9CLEVBQUUsZ0NBQWdDLENBQUM7a1ZBUTFELE1BQU07c0JBQWQsS0FBSztnQkFtQk4sMkJBQTJCO3NCQUQxQixTQUFTO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsYXJtU2VydmljZSwgSUFsYXJtLCBJUmVzdWx0LCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsYXJtUmVhbHRpbWVTZXJ2aWNlLFxuICBBbGFybVdpdGhDaGlsZHJlblJlYWx0aW1lU2VydmljZSxcbiAgQWxlcnRTZXJ2aWNlLFxuICBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCxcbiAgRGlzbWlzc0FsZXJ0U3RyYXRlZ3ksXG4gIER5bmFtaWNDb21wb25lbnQsXG4gIER5bmFtaWNDb21wb25lbnRBbGVydCxcbiAgRHluYW1pY0NvbXBvbmVudEFsZXJ0QWdncmVnYXRvcixcbiAgZ2V0dGV4dCxcbiAgZ2xvYmFsQXV0b1JlZnJlc2hMb2FkaW5nLFxuICBXaWRnZXRHbG9iYWxBdXRvUmVmcmVzaFNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYWxhcm1zJztcbmltcG9ydCB7IGlzRW1wdHksIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEFTU0VUX0FMQVJNU19XSURHRVRfSUQsXG4gIEFsYXJtTGlzdFdpZGdldENvbmZpZyxcbiAgUkVDRU5UX0FMQVJNU19XSURHRVRfSURcbn0gZnJvbSAnLi4vYWxhcm0tbGlzdC13aWRnZXQubW9kZWwnO1xuaW1wb3J0IHsgQWxhcm1XaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxhcm0td2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxhcm1XaWRnZXRBbGFybXNSZWxvYWRDb21wb25lbnQgfSBmcm9tICcuLi9hbGFybS13aWRnZXQtYWxhcm1zLXJlbG9hZC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRvIGVuc3VyZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBsZWdhY3kgd2lkZ2V0cyB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IGltcGxlbWVudGF0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWxhcm0tbGlzdC13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm0tbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtBbGFybVJlYWx0aW1lU2VydmljZSwgQWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtTGlzdFdpZGdldENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBEeW5hbWljQ29tcG9uZW50XG57XG4gIC8qKlxuICAgKiAgQWxhcm0gd2lkZ2V0IGNvbmZpZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnO1xuICAvKipcbiAgICogUmVwcmVzZW50cyBjdXJyZW50IGFsYXJtcy5cbiAgICovXG4gIGFsYXJtcyQ6IEJlaGF2aW9yU3ViamVjdDxJUmVzdWx0TGlzdDxJQWxhcm0+IHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAvKipcbiAgICogQ3VycmVudCBpc0xvYWRpbmcgc3RhdGUuIEJhc2VkIG9uIGl0IG5leHQgY291bnRkb3duIGN5Y2xlIGlzIGJlaW5nIHN0YXJ0ZWQuXG4gICAqL1xuICBpc0xvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICAvKipcbiAgICogU3RhdGUgb2YgdGhpcyBib29sZWFuIGRlcGVuZHMgb24gYW4gQXBwbGljYXRpb24gT3B0aW9ucyBcImFsYXJtc1JlZnJlc2hUeXBlXCIgc2V0dGluZy5cbiAgICovXG4gIGlzSW50ZXJ2YWxSZWZyZXNoOiBib29sZWFuO1xuICAvKipcbiAgICogQ3VycmVudCByZWZyZXNoIGludGVydmFsIHNldCBpbiBhIHdpZGdldCBjb25maWcuXG4gICAqL1xuICByZWZyZXNoSW50ZXJ2YWw6IG51bWJlcjtcblxuICBAVmlld0NoaWxkKEFsYXJtV2lkZ2V0QWxhcm1zUmVsb2FkQ29tcG9uZW50KVxuICBhbGFybVdpZGdldEFsYXJtc1JlbG9hZENvbXA6IEFsYXJtV2lkZ2V0QWxhcm1zUmVsb2FkQ29tcG9uZW50O1xuICBhbGVydHM6IER5bmFtaWNDb21wb25lbnRBbGVydEFnZ3JlZ2F0b3I7XG5cbiAgcHJpdmF0ZSBUSU1FT1VUX0VSUk9SX1RFWFQgPSBnZXR0ZXh0KFxuICAgICdUaGUgcmVxdWVzdCBpcyB0YWtpbmcgbG9uZ2VyIHRoYW4gdXN1YWwuIFdlIGFwb2xvZ2l6ZSBmb3IgdGhlIGluY29udmVuaWVuY2UuJ1xuICApO1xuICBwcml2YXRlIFNFUlZFUl9FUlJPUl9URVhUID0gZ2V0dGV4dCgnU2VydmVyIGVycm9yIG9jY3VycmVkLicpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGFybVdpZGdldFNlcnZpY2U6IEFsYXJtV2lkZ2V0U2VydmljZSxcbiAgICBwcml2YXRlIGFsYXJtUmVhbHRpbWVTZXJ2aWNlOiBBbGFybVJlYWx0aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGFsYXJtU2VydmljZTogQWxhcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2U6IEFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGFzaGJvYXJkQ2hpbGQ6IERhc2hib2FyZENoaWxkQ29tcG9uZW50LFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aWRnZXRHbG9iYWxBdXRvUmVmcmVzaDogV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLmlzSW50ZXJ2YWxSZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmFsZXJ0cy5zZXRBbGVydEdyb3VwRGlzbWlzc1N0cmF0ZWd5KFxuICAgICAgJ3dhcm5pbmcnLFxuICAgICAgRGlzbWlzc0FsZXJ0U3RyYXRlZ3kuVEVNUE9SQVJZX09SX1BFUk1BTkVOVFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5hbGFybVdpZGdldFNlcnZpY2UuaXNPbGRBbGFybUNvbmZpZ1N0cnVjdHVyZSh0aGlzLmNvbmZpZykpIHtcbiAgICAgIGNvbnN0IG1hcHBlZENvbmZpZyA9IHRoaXMuYWxhcm1XaWRnZXRTZXJ2aWNlLm1hcFRvTmV3Q29uZmlnU3RydWN0dXJlKFxuICAgICAgICB0aGlzLmNvbmZpZyxcbiAgICAgICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIG1hcHBlZENvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLndpZGdldEluc3RhbmNlR2xvYmFsQXV0b1JlZnJlc2hDb250ZXh0ICYmICF0aGlzLmNvbmZpZy5pc1JlYWx0aW1lKSB7XG4gICAgICB0aGlzLmhhbmRsZUdsb2JhbFJlZnJlc2hMb2FkaW5nKCk7XG4gICAgfVxuICAgIGNvbnN0IF9jb25maWcgPSB0aGlzLmRhc2hib2FyZENoaWxkWydkYXRhJ10/LmNvbmZpZztcbiAgICBjb25zdCBpc0xlZ2FjeVdpZGdldFdpdGhvdXRDb25maWd1cmF0aW9uID1cbiAgICAgIGlzRW1wdHkoX2NvbmZpZykgfHwgaXNFcXVhbChfY29uZmlnLCB7IGRpc3BsYXlTZXR0aW5nczogeyBnbG9iYWxBdXRvUmVmcmVzaENvbnRleHQ6IHRydWUgfSB9KTtcblxuICAgIGlmIChpc0xlZ2FjeVdpZGdldFdpdGhvdXRDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aGlzLnNldExlZ2FjeVJlY2VudE9yQ3JpdGljYWxBbGFybVdpZGdldENvbmZpZygpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlV2lkZ2V0UmVmcmVzaE1vZGUoKTtcbiAgICB0aGlzLnJlZnJlc2hJbnRlcnZhbCA9ICEhdGhpcy5jb25maWc/LnJlZnJlc2hJbnRlcnZhbCAmJiB0aGlzLmNvbmZpZz8ucmVmcmVzaEludGVydmFsO1xuICAgIGF3YWl0IHRoaXMuZmV0Y2hBbGFybXMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggJiYgdGhpcy5jb25maWcucmVmcmVzaE9wdGlvbiA9PT0gJ2ludGVydmFsJykge1xuICAgICAgdGhpcy5oYW5kbGVSZWFsdGltZUFsYXJtcyh0aGlzLmNvbmZpZywgdGhpcy5hbGFybVdpZGdldEFsYXJtc1JlbG9hZENvbXAuaXNSZWFsdGltZVRvZ2dsZU9uKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcuaXNSZWFsdGltZSkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQgJiYgdGhpcy5pc0xvYWRpbmckLnZhbHVlKSB7XG4gICAgICB0aGlzLndpZGdldEdsb2JhbEF1dG9SZWZyZXNoLmRlY3JlbWVudExvYWRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmZXRjaEFsYXJtcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmFsYXJtcyQubmV4dChhd2FpdCB0aGlzLmdldEFsYXJtcygpKTtcbiAgfVxuXG4gIGhhbmRsZVJlYWxUaW1lVG9nZ2xlQ2hhbmdlKGlzUmVhbHRpbWVUb2dnbGVPbjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghaXNSZWFsdGltZVRvZ2dsZU9uKSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHRoaXMudW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLmhhbmRsZVJlYWx0aW1lQWxhcm1zKHRoaXMuY29uZmlnLCBpc1JlYWx0aW1lVG9nZ2xlT24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHdpZGdldCdzIHJlZnJlc2ggbW9kZSBiYXNlZCBvbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGFuZCB0aGUgaW50ZXJ2YWwgcmVmcmVzaCBzZXR0aW5nLlxuICAgKiBJZiB0aGUgd2lkZ2V0J3MgJ2lzUmVhbHRpbWUnIGNvbmZpZ3VyYXRpb24gZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IGdsb2JhbCBpbnRlcnZhbCByZWZyZXNoIHNldHRpbmcgKGFwcGxpY2F0aW9uIG9wdGlvbnMgc2V0dGluZyksXG4gICAqIHRoZSB3aWRnZXQncyBtb2RlIGlzIHVwZGF0ZWQgdG8gZWl0aGVyICdyZWFsdGltZScgb3IgJ2ludGVydmFsJy4gSW4gJ3JlYWx0aW1lJyBtb2RlLCB0aGUgcmVmcmVzaCBpbnRlcnZhbCBpcyBudWxsLFxuICAgKiBhbmQgaW4gJ2ludGVydmFsJyBtb2RlLCBpdCBpcyBzZXQgdG8gdGhlIGRlZmF1bHQgaW50ZXJ2YWwgdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVdpZGdldFJlZnJlc2hNb2RlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzUmVmcmVzaFR5cGVTd2l0Y2hlZCA9ICEhdGhpcy5jb25maWcuaXNSZWFsdGltZSAhPT0gIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2g7XG4gICAgaWYgKCFpc1JlZnJlc2hUeXBlU3dpdGNoZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZy5pc1JlYWx0aW1lID0gIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2g7XG5cbiAgICBpZiAodGhpcy5jb25maWcuaXNSZWFsdGltZSkge1xuICAgICAgLy8gU3dpdGNoaW5nIHdpZGdldCB0byByZWFsdGltZSBtb2RlXG4gICAgICB0aGlzLmNvbmZpZy5yZWZyZXNoSW50ZXJ2YWwgPSBudWxsO1xuICAgICAgdGhpcy5jb25maWcucmVmcmVzaE9wdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dCA9IGZhbHNlO1xuICAgICAgdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTd2l0Y2hpbmcgd2lkZ2V0IHRvIGludGVydmFsIG1vZGVcbiAgICAgIHRoaXMuY29uZmlnLnJlZnJlc2hJbnRlcnZhbCA9IHRoaXMuYWxhcm1zVmlld1NlcnZpY2UuREVGQVVMVF9JTlRFUlZBTF9WQUxVRTtcbiAgICAgIHRoaXMuY29uZmlnLnJlZnJlc2hPcHRpb24gPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLkRFRkFVTFRfUkVGUkVTSF9PUFRJT05fVkFMVUU7XG4gICAgICB0aGlzLmNvbmZpZy53aWRnZXRJbnN0YW5jZUdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxhcm1zKCk6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFsYXJtPj4ge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFsYXJtU2VydmljZS5saXN0KFxuICAgICAgICB0aGlzLmFsYXJtV2lkZ2V0U2VydmljZS5tYXBDb25maWdUb1F1ZXJ5RmlsdGVyKHRoaXMuY29uZmlnKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hbGVydHMuYWRkQWxlcnRzKFxuICAgICAgICBuZXcgRHluYW1pY0NvbXBvbmVudEFsZXJ0KHtcbiAgICAgICAgICB0eXBlOiAnd2FybmluZycsXG4gICAgICAgICAgdGV4dDpcbiAgICAgICAgICAgIGVycm9yPy5uYW1lID09PSAnVGltZW91dEVycm9yJ1xuICAgICAgICAgICAgICA/IHRoaXMuVElNRU9VVF9FUlJPUl9URVhUXG4gICAgICAgICAgICAgIDogZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy5TRVJWRVJfRVJST1JfVEVYVFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGlmIChlcnJvcj8ucmVzPy5zdGF0dXMgPT09IDQwMykge1xuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSByZWFsdGltZSB1cGRhdGVzIG9mIGFsYXJtcyBiYXNlZCBvbiB0aGUgd2lkZ2V0IGNvbmZpZ3VyYXRpb24uXG4gICAqIElmIGEgc3BlY2lmaWMgZGV2aWNlIGlzIHByb3ZpZGVkIGluIHRoZSB3aWRnZXQgY29uZmlndXJhdGlvbiwgYWxsIGFsYXJtc1xuICAgKiBvcmlnaW5hdGluZyBmcm9tIHRoYXQgZGV2aWNlIGFuZCBpdHMgY2hpbGRyZW4gYXJlIGZpbHRlcmVkIGJhc2VkIG9uIHN0YXR1cywgc2V2ZXJpdHksIGFuZCB0eXBlLlxuICAgKiBPdGhlcndpc2UsIGl0IHByb2Nlc3NlcyBhbGwgaW5jb21pbmcgYWxhcm1zIGFuZCBmaWx0ZXJzIHRoZW0gYWNjb3JkaW5nIHRvIHN0YXR1cywgc2V2ZXJpdHksIGFuZCB0eXBlLFxuICAgKiBhcyBzcGVjaWZpZWQgaW4gdGhlIHdpZGdldCBjb25maWd1cmF0aW9uLiBJZiBuZXcgYWxhcm1zIG1lZXQgdGhlIHNwZWNpZmllZCBjcml0ZXJpYSwgaXQgc2V0cyBhIGZsYWdcbiAgICogdG8gaW5kaWNhdGUgdGhlIHByZXNlbmNlIG9mIG5ldyBhbGFybXMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBvZiB0aGUgYWxhcm0gbGlzdCB3aWRnZXQuXG4gICAqIEBwYXJhbSBpc1JlYWx0aW1lVG9nZ2xlT24gLSBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByZWFsdGltZSB0b2dnbGUgaXMgb24uIElmIHRydWUsIHRoZSBhbGFybSBsaXN0IHdpbGwgYmUgcmVmcmVzaGVkLlxuICAgKiBJZiBmYWxzZSwgdGhlIHByZXNlbmNlIG9mIG5ldyBhbGFybXMgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgXCJOZXcgQWxhcm1zXCIgZW50cnkgb24gd2lkZ2V0IHJlZnJlc2ggYnV0dG9uLCBidXQgdGhlIGxpc3Qgd29uJ3QgYmUgcmVmcmVzaGVkIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVJlYWx0aW1lQWxhcm1zKGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnLCBpc1JlYWx0aW1lVG9nZ2xlT246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChkYXRhOiBudW1iZXIgfCBJQWxhcm0pID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5hbGFybVdpZGdldFNlcnZpY2UuZmlsdGVyQWxhcm1zQnlTdGF0dXNTZXZlcml0eUFuZFR5cGUoXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICB0aGlzLmFsYXJtcyQudmFsdWUuZGF0YSxcbiAgICAgICAgICBjb25maWdcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChpc1JlYWx0aW1lVG9nZ2xlT24pIHtcbiAgICAgICAgICB0aGlzLmZldGNoQWxhcm1zKCk7XG4gICAgICAgICAgdGhpcy5hbGFybVdpZGdldEFsYXJtc1JlbG9hZENvbXAuaXNOZXdBbGFybU1lc3NhZ2VDbGVhcmVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFsYXJtV2lkZ2V0QWxhcm1zUmVsb2FkQ29tcC5pc05ld0FsYXJtTWVzc2FnZUNsZWFyZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jb25maWcuZGV2aWNlKSB7XG4gICAgICB0aGlzLmhhbmRsZVJlYWx0aW1lKFxuICAgICAgICB0aGlzLmFsYXJtV2l0aENoaWxkcmVuUmVhbHRpbWVTZXJ2aWNlLm9uQWxsJC5iaW5kKHRoaXMuYWxhcm1XaXRoQ2hpbGRyZW5SZWFsdGltZVNlcnZpY2UpLFxuICAgICAgICBjYWxsYmFja1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVSZWFsdGltZShcbiAgICAgICAgdGhpcy5hbGFybVJlYWx0aW1lU2VydmljZS5vbkFsbCQuYmluZCh0aGlzLmFsYXJtUmVhbHRpbWVTZXJ2aWNlKSxcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgYSBzdWJzY3JpcHRpb24gdG8gYSByZWFsdGltZSBkYXRhIHN0cmVhbS4gVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHN1YnNjcmliZXIgZnVuY3Rpb24sXG4gICAqIHdoaWNoIGlzIHVzZWQgdG8gc3Vic2NyaWJlIHRvIHRoZSBkYXRhIHN0cmVhbSwgYW5kIGEgY2FsbGJhY2sgZnVuY3Rpb24sIHdoaWNoIGlzIGNhbGxlZCB3aXRoIGVhY2hcbiAgICogZGF0YSB1cGRhdGUgcmVjZWl2ZWQgZnJvbSB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAcGFyYW0gc3Vic2NyaWJlckZuIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JzZXJ2YWJsZSBzdHJlYW0gb2YgYWxhcm0gZGF0YS5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aXRoIGVhY2ggYWxhcm0gZGF0YSB1cGRhdGUuXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVJlYWx0aW1lKFxuICAgIHN1YnNjcmliZXJGbjogKGlkPzogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPElSZXN1bHQ8SUFsYXJtPj4sXG4gICAgY2FsbGJhY2s6IChkYXRhOiBJQWxhcm0pID0+IHZvaWRcbiAgKTogdm9pZCB7XG4gICAgc3Vic2NyaWJlckZuKHRoaXMuY29uZmlnLmRldmljZT8uaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh7IGRhdGEgfSkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMZWdhY3lSZWNlbnRPckNyaXRpY2FsQWxhcm1XaWRnZXRDb25maWcoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkZ2V0SWQgPSB0aGlzLmRhc2hib2FyZENoaWxkWydkYXRhJ10/LmNvbXBvbmVudElkXG4gICAgICA/IHRoaXMuZGFzaGJvYXJkQ2hpbGRbJ2RhdGEnXT8uY29tcG9uZW50SWQgLy9wcm9wZXJ0eSBpcyB1c2VkIGluIGNvY2twaXQgZGFzaGJvYXJkc1xuICAgICAgOiB0aGlzLmRhc2hib2FyZENoaWxkWydkYXRhJ10/Lm5hbWU7IC8vcHJvcGVydHkgaXMgdXNlZCBpbiBkZXZpY2UgbWFuYWdlbWVudCBkYXNoYm9hcmRzXG5cbiAgICBpZiAod2lkZ2V0SWQgPT09IFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEKSB7XG4gICAgICBjb25zdCBwcmVkZWZpbmVkQ29uZmlnID0gdGhpcy5hbGFybVdpZGdldFNlcnZpY2UuZ2V0UHJlZGVmaW5lZENvbmZpZ3VyYXRpb24oXG4gICAgICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2gsXG4gICAgICAgIFJFQ0VOVF9BTEFSTVNfV0lER0VUX0lEXG4gICAgICApO1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgcHJlZGVmaW5lZENvbmZpZyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod2lkZ2V0SWQgPT09IEFTU0VUX0FMQVJNU19XSURHRVRfSUQpIHtcbiAgICAgIGNvbnN0IHByZWRlZmluZWRDb25maWcgPSB0aGlzLmFsYXJtV2lkZ2V0U2VydmljZS5nZXRQcmVkZWZpbmVkQ29uZmlndXJhdGlvbihcbiAgICAgICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFxuICAgICAgKTtcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5jb25maWcsIHByZWRlZmluZWRDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlR2xvYmFsUmVmcmVzaExvYWRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmckXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgZ2xvYmFsQXV0b1JlZnJlc2hMb2FkaW5nKHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2gpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGM4eS1hbGFybXMtbGlzdFxuICAjbGlzdFxuICBbYWxhcm1zXT1cImFsYXJtcyQgfCBhc3luY1wiXG4gIFtuYXZpZ2F0aW9uT3B0aW9uc109XCJ7XG4gICAgYWx3YXlzTmF2aWdhdGVUb0FsbEFsYXJtczogIWNvbmZpZy5kZXZpY2UsXG4gICAgYWxsb3dOYXZpZ2F0aW9uVG9BbGFybXNWaWV3OiB0cnVlLFxuICAgIGluY2x1ZGVDbGVhcmVkUXVlcnlQYXJhbXM6IHRydWUsXG4gICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJydcbiAgfVwiXG4gIFtpc0luaXRpYWxMb2FkaW5nXT1cImlzTG9hZGluZyQgfCBhc3luY1wiXG4gIFtoYXNQZXJtaXNzaW9uc109XCIhaXNEaXNhYmxlZFwiXG4+XG4gIDxjOHktYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWRcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICAgIFtpc0ludGVydmFsUmVmcmVzaF09XCJpc0ludGVydmFsUmVmcmVzaFwiXG4gICAgW3JlZnJlc2hJbnRlcnZhbF09XCJyZWZyZXNoSW50ZXJ2YWxcIlxuICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZyRcIlxuICAgIFtpc1Njcm9sbGluZ109XCJsaXN0LmlzU2Nyb2xsaW5nXCJcbiAgICBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAob25Db3VudGRvd25FbmRlZCk9XCJmZXRjaEFsYXJtcygpXCJcbiAgICAob25SZWFsVGltZVRvZ2dsZUNoYW5nZWQpPVwiaGFuZGxlUmVhbFRpbWVUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2M4eS1hbGFybS13aWRnZXQtYWxhcm1zLXJlbG9hZD5cbjwvYzh5LWFsYXJtcy1saXN0PlxuIl19
|
|
@@ -13,4 +13,5 @@ export const ALARM_ORDER_LABELS = {
|
|
|
13
13
|
};
|
|
14
14
|
export const ASSET_ALARMS_WIDGET_ID = 'Asset Alarms';
|
|
15
15
|
export const RECENT_ALARMS_WIDGET_ID = 'Recent Alarms';
|
|
16
|
-
|
|
16
|
+
export const GLOBAL_INTERVAL_OPTION = 'global-interval';
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tbGlzdC13aWRnZXQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9hbGFybXMvYWxhcm0tbGlzdC13aWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBaUMsTUFBTSxxQkFBcUIsQ0FBQztBQUc3RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLFdBQVcsRUFBRSxhQUFhO0NBQ2xCLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxTQUFTLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUF1QjtJQUM1RCxpQkFBaUIsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQTBCO0lBQzFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBMkI7SUFDN0UsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQWtCO0NBQzVDLENBQUM7QUFNWCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDO0FBSXZELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUEyQixpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldHRleHQsIEdsb2JhbEF1dG9SZWZyZXNoV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZXZlcml0eUZpbHRlciwgQWxhcm1TdGF0dXNTZXR0aW5ncyB9IGZyb20gJ0BjOHkvY2xpZW50JztcblxuZXhwb3J0IGNvbnN0IEFMQVJNX09SREVSX1ZBTFVFUyA9IHtcbiAgQllfQUNUSVZFOiAnQllfQUNUSVZFJyxcbiAgQllfREFURV9BU0NFTkRJTkc6ICdCWV9EQVRFX0FTQ0VORElORycsXG4gIEJZX0RBVEVfREVTQ0VORElORzogJ0JZX0RBVEVfREVTQ0VORElORycsXG4gIEJZX1NFVkVSSVRZOiAnQllfU0VWRVJJVFknXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQUxBUk1fT1JERVJfTEFCRUxTID0ge1xuICBCWV9BQ1RJVkU6IGdldHRleHQoJ0J5IGFjdGl2ZSBzdGF0dXMnKSBhcyAnQnkgYWN0aXZlIHN0YXR1cycsXG4gIEJZX0RBVEVfQVNDRU5ESU5HOiBnZXR0ZXh0KCdCeSBkYXRlIChhc2NlbmRpbmcpJykgYXMgJ0J5IGRhdGUgKGFzY2VuZGluZyknLFxuICBCWV9EQVRFX0RFU0NFTkRJTkc6IGdldHRleHQoJ0J5IGRhdGUgKGRlc2NlbmRpbmcpJykgYXMgJ0J5IGRhdGUgKGRlc2NlbmRpbmcpJyxcbiAgQllfU0VWRVJJVFk6IGdldHRleHQoJ0J5IHNldmVyaXR5JykgYXMgJ0J5IHNldmVyaXR5J1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQWxhcm1PcmRlclR5cGUgPSBrZXlvZiB0eXBlb2YgQUxBUk1fT1JERVJfVkFMVUVTO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZERldmljZSA9IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH07XG5cbmV4cG9ydCBjb25zdCBBU1NFVF9BTEFSTVNfV0lER0VUX0lEID0gJ0Fzc2V0IEFsYXJtcyc7XG5cbmV4cG9ydCBjb25zdCBSRUNFTlRfQUxBUk1TX1dJREdFVF9JRCA9ICdSZWNlbnQgQWxhcm1zJztcblxuZXhwb3J0IHR5cGUgQWxhcm1MaXN0UmVmcmVzaE9wdGlvbiA9ICdub25lJyB8ICdpbnRlcnZhbCcgfCAnZ2xvYmFsLWludGVydmFsJztcblxuZXhwb3J0IGNvbnN0IEdMT0JBTF9JTlRFUlZBTF9PUFRJT046IEFsYXJtTGlzdFJlZnJlc2hPcHRpb24gPSAnZ2xvYmFsLWludGVydmFsJztcblxuZXhwb3J0IHR5cGUgTGVnYWN5QWxhcm1MaXN0Q29uZmlnID0ge1xuICByZWFsdGltZTogYm9vbGVhbjtcbiAgb3B0aW9uczoge1xuICAgIHNldmVyaXR5OiBTZXZlcml0eUZpbHRlcjtcbiAgICB0eXBlczogc3RyaW5nW107XG4gICAgb3JkZXJNb2RlOiBzdHJpbmc7XG4gICAgZGV2aWNlOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBBbGFybVN0YXR1c1NldHRpbmdzO1xuICB9O1xuICBkZXZpY2U/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtTGlzdFdpZGdldENvbmZpZyBleHRlbmRzIEdsb2JhbEF1dG9SZWZyZXNoV2lkZ2V0Q29uZmlnIHtcbiAgb3JkZXI6IEFsYXJtT3JkZXJUeXBlO1xuICBpc1JlYWx0aW1lPzogYm9vbGVhbjtcbiAgc2hvd0FsYXJtc0ZvckNoaWxkcmVuPzogYm9vbGVhbjtcbiAgcmVmcmVzaEludGVydmFsPzogbnVtYmVyO1xuICBpc0F1dG9SZWZyZXNoRW5hYmxlZD86IGJvb2xlYW47XG4gIHJlZnJlc2hPcHRpb24/OiBBbGFybUxpc3RSZWZyZXNoT3B0aW9uO1xuICBkZXZpY2U/OiBTZWxlY3RlZERldmljZTtcbiAgc2V2ZXJpdGllczogU2V2ZXJpdHlGaWx0ZXI7XG4gIHN0YXR1czogQWxhcm1TdGF0dXNTZXR0aW5ncztcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { CountdownIntervalComponent, gettext } from '@c8y/ngx-components';
|
|
2
|
+
import { CountdownIntervalComponent, gettext, WidgetGlobalAutoRefreshService } from '@c8y/ngx-components';
|
|
3
3
|
import { AlarmsViewService } from '@c8y/ngx-components/alarms';
|
|
4
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
6
|
import { filter, tap } from 'rxjs/operators';
|
|
7
|
+
import { GLOBAL_INTERVAL_OPTION } from './alarm-list-widget.model';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@c8y/ngx-components/alarms";
|
|
9
10
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -11,20 +12,17 @@ import * as i3 from "@c8y/ngx-components";
|
|
|
11
12
|
import * as i4 from "@angular/common";
|
|
12
13
|
import * as i5 from "ngx-bootstrap/tooltip";
|
|
13
14
|
export class AlarmWidgetAlarmsReloadComponent {
|
|
14
|
-
constructor(alarmsViewService, cdRef, translateService) {
|
|
15
|
+
constructor(alarmsViewService, cdRef, translateService, widgetGlobalAutoRefreshService) {
|
|
15
16
|
this.alarmsViewService = alarmsViewService;
|
|
16
17
|
this.cdRef = cdRef;
|
|
17
18
|
this.translateService = translateService;
|
|
19
|
+
this.widgetGlobalAutoRefreshService = widgetGlobalAutoRefreshService;
|
|
18
20
|
this.REALTIME_UPDATE_ALARMS_MESSAGE = this.alarmsViewService.REALTIME_UPDATE_ALARMS_MESSAGE;
|
|
19
21
|
this.isDisabled = false;
|
|
20
22
|
/**
|
|
21
23
|
* Indicates that a countdown cycle has ended.
|
|
22
24
|
*/
|
|
23
25
|
this.onCountdownEnded = new EventEmitter();
|
|
24
|
-
/**
|
|
25
|
-
* Emitted to indicate that the new realtime alarm was handled.
|
|
26
|
-
*/
|
|
27
|
-
this.onResetNewAlarmsState = new EventEmitter();
|
|
28
26
|
/**
|
|
29
27
|
* Emitted to indicate that the widgets realtime button state has changed.
|
|
30
28
|
*/
|
|
@@ -50,20 +48,25 @@ export class AlarmWidgetAlarmsReloadComponent {
|
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
ngAfterViewInit() {
|
|
53
|
-
if (this.isIntervalRefresh &&
|
|
51
|
+
if (this.isIntervalRefresh && this.refreshInterval) {
|
|
54
52
|
this.startCountdown();
|
|
55
53
|
}
|
|
54
|
+
if (this.globalAutoRefreshEnabled) {
|
|
55
|
+
this.widgetGlobalAutoRefreshService.countdownActions.countdownEnded$
|
|
56
|
+
.pipe(tap(() => this.onCountdownEnded.emit()))
|
|
57
|
+
.subscribe();
|
|
58
|
+
}
|
|
56
59
|
}
|
|
57
60
|
ngOnChanges(changes) {
|
|
58
|
-
const { isDisabled } = changes;
|
|
61
|
+
const { isDisabled, config } = changes;
|
|
62
|
+
if (config) {
|
|
63
|
+
this.globalAutoRefreshEnabled = this.config.refreshOption === GLOBAL_INTERVAL_OPTION;
|
|
64
|
+
}
|
|
59
65
|
if (isDisabled) {
|
|
60
66
|
this.isIntervalRefreshToggleOn =
|
|
61
67
|
!this.isDisabled && (this.config.isAutoRefreshEnabled || !!this.refreshInterval);
|
|
62
68
|
this.updateCountdownButtonTooltipText(gettext('Disabled'));
|
|
63
69
|
}
|
|
64
|
-
if (this.isNewAlarms) {
|
|
65
|
-
this.isNewAlarmMessageCleared = false;
|
|
66
|
-
}
|
|
67
70
|
if (!this.isIntervalRefresh ||
|
|
68
71
|
this.manuallyDisabledCountdown ||
|
|
69
72
|
!this.config.isAutoRefreshEnabled) {
|
|
@@ -131,7 +134,6 @@ export class AlarmWidgetAlarmsReloadComponent {
|
|
|
131
134
|
this.autoRefreshList();
|
|
132
135
|
}
|
|
133
136
|
else {
|
|
134
|
-
this.onResetNewAlarmsState.emit(false);
|
|
135
137
|
this.onCountdownEnded.emit();
|
|
136
138
|
this.isNewAlarmMessageCleared = true;
|
|
137
139
|
}
|
|
@@ -238,13 +240,13 @@ export class AlarmWidgetAlarmsReloadComponent {
|
|
|
238
240
|
? this.translateService.instant(gettext('Disable auto refresh'))
|
|
239
241
|
: this.translateService.instant(gettext('Enable auto refresh'));
|
|
240
242
|
}
|
|
241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmWidgetAlarmsReloadComponent, deps: [{ token: i1.AlarmsViewService }, { token: i0.ChangeDetectorRef }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmWidgetAlarmsReloadComponent, selector: "c8y-alarm-widget-alarms-reload", inputs: { isIntervalRefresh: "isIntervalRefresh", refreshInterval: "refreshInterval", config: "config", isLoading: "isLoading",
|
|
243
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmWidgetAlarmsReloadComponent, deps: [{ token: i1.AlarmsViewService }, { token: i0.ChangeDetectorRef }, { token: i2.TranslateService }, { token: i3.WidgetGlobalAutoRefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
244
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmWidgetAlarmsReloadComponent, selector: "c8y-alarm-widget-alarms-reload", inputs: { isIntervalRefresh: "isIntervalRefresh", refreshInterval: "refreshInterval", config: "config", isLoading: "isLoading", isScrolling: "isScrolling", isDisabled: "isDisabled" }, outputs: { onCountdownEnded: "onCountdownEnded", onRealTimeToggleChanged: "onRealTimeToggleChanged" }, viewQueries: [{ propertyName: "countdownIntervalComponent", first: true, predicate: CountdownIntervalComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"m-l-auto d-flex p-t-4 p-b-4\"\n *ngIf=\"!globalAutoRefreshEnabled\"\n>\n <div class=\"m-l-auto d-flex a-i-center\">\n <label\n class=\"m-b-0 m-r-8 text-label-small text-truncate flex-no-shrink\"\n title=\" {{ 'Auto refresh' | translate }}\"\n *ngIf=\"isIntervalRefresh && refreshInterval && config.isAutoRefreshEnabled\"\n >\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"toggleCountdownButtonTooltipText\"\n [tooltip]=\"toggleCountdownButtonTooltipText\"\n placement=\"bottom\"\n *ngIf=\"isIntervalRefresh && refreshInterval && config.isAutoRefreshEnabled\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-widget--interval-toggle-button\"\n (click)=\"onToggleCountdownButtonState($event)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalRefreshToggleOn\"\n [countdownInterval]=\"refreshInterval\"\n (countdownEnded)=\"countdownEnded()\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalRefreshToggleOn\"\n ></i>\n </label>\n\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n !isNewAlarmMessageCleared\n ? (REALTIME_UPDATE_ALARMS_MESSAGE | translate)\n : ('Refresh' | translate)\n \"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (isLoading | async)\"\n (click)=\"reload()\"\n data-cy=\"c8y-alarms-widget--reload-button\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"!isNewAlarmMessageCleared\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading | async }\"\n ></i>\n </button>\n </div>\n <div\n class=\"input-group-btn input-group-btn--last\"\n *ngIf=\"!isIntervalRefresh\"\n >\n <button\n class=\"c8y-realtime btn btn-default\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n [disabled]=\"isDisabled\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: ["countdownInterval"], outputs: ["countdownEnded"] }, { kind: "directive", type: i5.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: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
243
245
|
}
|
|
244
246
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmWidgetAlarmsReloadComponent, decorators: [{
|
|
245
247
|
type: Component,
|
|
246
|
-
args: [{ selector: 'c8y-alarm-widget-alarms-reload', template: "<div
|
|
247
|
-
}], ctorParameters: () => [{ type: i1.AlarmsViewService }, { type: i0.ChangeDetectorRef }, { type: i2.TranslateService }], propDecorators: { isIntervalRefresh: [{
|
|
248
|
+
args: [{ selector: 'c8y-alarm-widget-alarms-reload', template: "<div\n class=\"m-l-auto d-flex p-t-4 p-b-4\"\n *ngIf=\"!globalAutoRefreshEnabled\"\n>\n <div class=\"m-l-auto d-flex a-i-center\">\n <label\n class=\"m-b-0 m-r-8 text-label-small text-truncate flex-no-shrink\"\n title=\" {{ 'Auto refresh' | translate }}\"\n *ngIf=\"isIntervalRefresh && refreshInterval && config.isAutoRefreshEnabled\"\n >\n {{ 'Auto refresh' | translate }}\n </label>\n <div class=\"input-group\">\n <label\n class=\"toggle-countdown\"\n [class.toggle-countdown-disabled]=\"isDisabled\"\n [attr.aria-label]=\"toggleCountdownButtonTooltipText\"\n [tooltip]=\"toggleCountdownButtonTooltipText\"\n placement=\"bottom\"\n *ngIf=\"isIntervalRefresh && refreshInterval && config.isAutoRefreshEnabled\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n >\n <input\n type=\"checkbox\"\n data-cy=\"c8y-alarms-widget--interval-toggle-button\"\n (click)=\"onToggleCountdownButtonState($event)\"\n />\n <c8y-countdown-interval\n *ngIf=\"isIntervalRefreshToggleOn\"\n [countdownInterval]=\"refreshInterval\"\n (countdownEnded)=\"countdownEnded()\"\n ></c8y-countdown-interval>\n <i\n c8yIcon=\"pause\"\n *ngIf=\"!isIntervalRefreshToggleOn\"\n ></i>\n </label>\n\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-default\"\n [attr.aria-label]=\"'Refresh' | translate\"\n [tooltip]=\"\n !isNewAlarmMessageCleared\n ? (REALTIME_UPDATE_ALARMS_MESSAGE | translate)\n : ('Refresh' | translate)\n \"\n placement=\"bottom\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [container]=\"'body'\"\n [delay]=\"500\"\n [disabled]=\"isDisabled || (isLoading | async)\"\n (click)=\"reload()\"\n data-cy=\"c8y-alarms-widget--reload-button\"\n >\n <span\n class=\"tag tag--info m-r-8\"\n *ngIf=\"!isNewAlarmMessageCleared\"\n >\n {{ 'New alarms' | translate }}\n </span>\n <i\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': isLoading | async }\"\n ></i>\n </button>\n </div>\n <div\n class=\"input-group-btn input-group-btn--last\"\n *ngIf=\"!isIntervalRefresh\"\n >\n <button\n class=\"c8y-realtime btn btn-default\"\n [attr.aria-label]=\"realtimeIconTitle\"\n [tooltip]=\"realtimeIconTitle\"\n placement=\"bottom\"\n type=\"button\"\n [container]=\"'body'\"\n (click)=\"toggleRealtimeState()\"\n [disabled]=\"isDisabled\"\n >\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{\n active: isRealtimeToggleOn,\n inactive: !isRealtimeToggleOn\n }\"\n ></span>\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
249
|
+
}], ctorParameters: () => [{ type: i1.AlarmsViewService }, { type: i0.ChangeDetectorRef }, { type: i2.TranslateService }, { type: i3.WidgetGlobalAutoRefreshService }], propDecorators: { isIntervalRefresh: [{
|
|
248
250
|
type: Input
|
|
249
251
|
}], refreshInterval: [{
|
|
250
252
|
type: Input
|
|
@@ -252,20 +254,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
252
254
|
type: Input
|
|
253
255
|
}], isLoading: [{
|
|
254
256
|
type: Input
|
|
255
|
-
}], isNewAlarms: [{
|
|
256
|
-
type: Input
|
|
257
257
|
}], isScrolling: [{
|
|
258
258
|
type: Input
|
|
259
259
|
}], isDisabled: [{
|
|
260
260
|
type: Input
|
|
261
261
|
}], onCountdownEnded: [{
|
|
262
262
|
type: Output
|
|
263
|
-
}], onResetNewAlarmsState: [{
|
|
264
|
-
type: Output
|
|
265
263
|
}], onRealTimeToggleChanged: [{
|
|
266
264
|
type: Output
|
|
267
265
|
}], countdownIntervalComponent: [{
|
|
268
266
|
type: ViewChild,
|
|
269
267
|
args: [CountdownIntervalComponent, { static: false }]
|
|
270
268
|
}] } });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLXdpZGdldC1hbGFybXMtcmVsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2FsYXJtcy9hbGFybS13aWRnZXQtYWxhcm1zLXJlbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGdDQUFnQztJQTRFM0MsWUFDVSxpQkFBb0MsRUFDcEMsS0FBd0IsRUFDeEIsZ0JBQWtDO1FBRmxDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTVFbkMsbUNBQThCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDO1FBMEJ2RixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzVCOztXQUVHO1FBQ08scUJBQWdCLEdBQUcsSUFB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dUJBQXVCO3NCQUFoQyxNQUFNO2dCQUdQLDBCQUEwQjtzQkFEekIsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50LCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybXNWaWV3U2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYWxhcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFsYXJtTGlzdFdpZGdldENvbmZpZyB9IGZyb20gJy4vYWxhcm0tbGlzdC13aWRnZXQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsYXJtV2lkZ2V0QWxhcm1zUmVsb2FkQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICByZWFkb25seSBSRUFMVElNRV9VUERBVEVfQUxBUk1TX01FU1NBR0UgPSB0aGlzLmFsYXJtc1ZpZXdTZXJ2aWNlLlJFQUxUSU1FX1VQREFURV9BTEFSTVNfTUVTU0FHRTtcblxuICAvKipcbiAgICogU3RhdGUgb2YgdGhpcyBib29sZWFuIGRlcGVuZHMgb24gYW4gQXBwbGljYXRpb24gT3B0aW9ucyBcImFsYXJtc1JlZnJlc2hUeXBlXCIgc2V0dGluZy5cbiAgICovXG4gIEBJbnB1dCgpIGlzSW50ZXJ2YWxSZWZyZXNoOiBib29sZWFuO1xuICAvKipcbiAgICogQ3VycmVudCByZWZyZXNoIGludGVydmFsIHNldCBpbiBhIHdpZGdldCBjb25maWcuXG4gICAqL1xuICBASW5wdXQoKSByZWZyZXNoSW50ZXJ2YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIEFsYXJtIHdpZGdldHMgY29uZmlnLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBBbGFybUxpc3RXaWRnZXRDb25maWc7XG4gIC8qKlxuICAgKiBDdXJyZW50IGlzTG9hZGluZyBzdGF0ZS4gQmFzZWQgb24gaXQgbmV4dCBjb3VudGRvd24gY3ljbGUgaXMgYmVpbmcgc3RhcnRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgbmV3IHJlYWx0aW1lIGFsYXJtIGFwcGVhcmVkLlxuICAgKi9cbiAgQElucHV0KCkgaXNOZXdBbGFybXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYWxhcm0gbGlzdCBpcyBiZWluZyBzY3JvbGxlZCBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKSBpc1Njcm9sbGluZzogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYSBjb3VudGRvd24gY3ljbGUgaGFzIGVuZGVkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uQ291bnRkb3duRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHRvIGluZGljYXRlIHRoYXQgdGhlIG5ldyByZWFsdGltZSBhbGFybSB3YXMgaGFuZGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBvblJlc2V0TmV3QWxhcm1zU3RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHRvIGluZGljYXRlIHRoYXQgdGhlIHdpZGdldHMgcmVhbHRpbWUgYnV0dG9uIHN0YXRlIGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIG9uUmVhbFRpbWVUb2dnbGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvdW50ZG93bkludGVydmFsQ29tcG9uZW50OiBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudDtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBjb3VudGRvd24gdGltZXIgY29tcG9uZW50IGluIHRoZSBjdXJyZW50IGNvbXBvbmVudCdzIFVJLlxuICAgKi9cbiAgaGlkZUNvdW50ZG93bjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgZm9yIGEgbmV3IHJlYWx0aW1lIGFsYXJtIGluZGljYXRvci5cbiAgICovXG4gIHJlYWx0aW1lSWNvblRpdGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY291bnRkb3duIGhhcyBiZWVuIGNsZWFyZWQgYWxyZWFkeS5cbiAgICovXG4gIGlzTmV3QWxhcm1NZXNzYWdlQ2xlYXJlZCA9IHRydWU7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gaW50ZXJ2YWwgcmVmcmVzaCB0b2dnbGUgYnV0dG9uLlxuICAgKi9cbiAgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiByZWFsdGltZSB0b2dnbGUgYnV0dG9uLlxuICAgKi9cbiAgaXNSZWFsdGltZVRvZ2dsZU9uOiBib29sZWFuO1xuICAvKipcbiAgICogSG9sZHMgdGhlIHN1YnNjcmlwdGlvbiB0byBhIGNvdW50ZG93biBvYnNlcnZhYmxlLlxuICAgKi9cbiAgY291bnRkb3duU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY291bnRkb3duIGhhcyBiZWVuIG1hbnVhbGx5IGRpc2FibGVkIGJ5IHRoZSB1c2VyLlxuICAgKi9cbiAgbWFudWFsbHlEaXNhYmxlZENvdW50ZG93biA9IGZhbHNlO1xuXG4gIHRvZ2dsZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGFybXNWaWV3U2VydmljZTogQWxhcm1zVmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2gpIHtcbiAgICAgIHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uID0gdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWQ7XG4gICAgICB0aGlzLnJlYWx0aW1lSWNvblRpdGxlID0gdGhpcy5nZXRSZWFsdGltZUljb25UaXRsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPVxuICAgICAgICAhdGhpcy5pc0Rpc2FibGVkICYmICh0aGlzLmNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZCB8fCAhIXRoaXMucmVmcmVzaEludGVydmFsKTtcbiAgICAgIHRoaXMudXBkYXRlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggJiYgISF0aGlzLnJlZnJlc2hJbnRlcnZhbCkge1xuICAgICAgdGhpcy5zdGFydENvdW50ZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQgfSA9IGNoYW5nZXM7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiA9XG4gICAgICAgICF0aGlzLmlzRGlzYWJsZWQgJiYgKHRoaXMuY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkIHx8ICEhdGhpcy5yZWZyZXNoSW50ZXJ2YWwpO1xuICAgICAgdGhpcy51cGRhdGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dChnZXR0ZXh0KCdEaXNhYmxlZCcpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc05ld0FsYXJtcykge1xuICAgICAgdGhpcy5pc05ld0FsYXJtTWVzc2FnZUNsZWFyZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc0ludGVydmFsUmVmcmVzaCB8fFxuICAgICAgdGhpcy5tYW51YWxseURpc2FibGVkQ291bnRkb3duIHx8XG4gICAgICAhdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbGluZygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGxpc3RlbnMgZm9yIGNoYW5nZXMgaW4gdGhlIGBpc0xvYWRpbmdgIG9ic2VydmFibGUsIGZpbHRlcmluZyBvdXQgYW55IHRydXRoeSB2YWx1ZXMuXG4gICAqIE9uY2UgYSBmYWxzeSB2YWx1ZSBpcyBkZXRlY3RlZCAoaW5kaWNhdGluZyB0aGF0IGxvYWRpbmcgaGFzIGZpbmlzaGVkKSwgaXQgYXR0ZW1wdHMgdG8gc3RhcnQgdGhlIGNvdW50ZG93bi5cbiAgICpcbiAgICogSU1QT1JUQU5UOiBJZiB0aGUgd2lkZ2V0J3MgY29uZmlndXJhdGlvbiAocmVmcmVzaEludGVydmFsLCBjaGVjayB0ZW1wbGF0ZSkgaXMgbm90IHNldCBwcmlvciB0byBleGVjdXRpbmcgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ/LnN0YXJ0LFxuICAgKiB0aGUgY291bnRkb3duIGludGVydmFsIHdpbGwgbm90IHN0YXJ0IVxuICAgKi9cbiAgc3RhcnRDb3VudGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGRvd25TdWJzY3JpcHRpb24gPSB0aGlzLmlzTG9hZGluZ1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc0xvYWRpbmcgPT4gIUJvb2xlYW4oaXNMb2FkaW5nKSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudD8uc3RhcnQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSB0b2dnbGUgc3RhdGUgb2YgdGhlIGNvdW50ZG93biBvbiBidXR0b24gY2xpY2suXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHRyaWdnZXJlZCBieSBhIG1vdXNlIGV2ZW50LCB0eXBpY2FsbHkgYSBjbGljayBvbiB0aGUgY291bnRkb3duIHRvZ2dsZSBidXR0b24uXG4gICAqIEl0IHRvZ2dsZXMgYGlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25gIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICpcbiAgICogLSBJZiBgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbmAgaXMgc2V0IHRvIGZhbHNlLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGNvdW50ZG93biBzaG91bGQgYmUgc3RvcHBlZCxcbiAgICogICBgZGlzYWJsZUNvdW50ZG93bmAgaXMgY2FsbGVkLCBhbmQgYG1hbnVhbGx5RGlzYWJsZWRDb3VudGRvd25gIGlzIHNldCB0byB0cnVlLlxuICAgKlxuICAgKiAtIElmIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCBpcyB0cnVlIGFuZCB0aGUgY291bnRkb3duIHN1YnNjcmlwdGlvbiBpcyBjbG9zZWQsIGluZGljYXRpbmcgdGhhdFxuICAgKiAgIHRoZSBjb3VudGRvd24gY2FuIGJlIHN0YXJ0ZWQsIGBlbmFibGVDb3VudGRvd25gIGlzIGNhbGxlZCwgYW5kIGBtYW51YWxseURpc2FibGVkQ291bnRkb3duYFxuICAgKiAgIGlzIHNldCB0byBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtICRldmVudCAtIFRoZSBNb3VzZUV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoaXMgbWV0aG9kLlxuICAgKi9cbiAgb25Ub2dnbGVDb3VudGRvd25CdXR0b25TdGF0ZSgkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPSAhdGhpcy5pc0Rpc2FibGVkICYmICF0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT247XG4gICAgdGhpcy51cGRhdGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dCgpO1xuXG4gICAgaWYgKCF0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24pIHtcbiAgICAgIHRoaXMuZGlzYWJsZUNvdW50ZG93bigpO1xuICAgICAgdGhpcy5tYW51YWxseURpc2FibGVkQ291bnRkb3duID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvblJlZnJlc2hUb2dnbGVPbiA9IHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiAmJiB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbi5jbG9zZWQ7XG5cbiAgICBpZiAob25SZWZyZXNoVG9nZ2xlT24pIHtcbiAgICAgIHRoaXMuZW5hYmxlQ291bnRkb3duKCk7XG4gICAgICB0aGlzLm1hbnVhbGx5RGlzYWJsZWRDb3VudGRvd24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciBtZXRob2Qgd2hlcmUgaXQncyBuYW1lIGJldHRlciBkZXNjcmliZXMgYSBjb250ZXh0IHdoZXJlIGl0IHdhcyBjYWxsZWQuXG4gICAqL1xuICBjb3VudGRvd25FbmRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9SZWZyZXNoTGlzdCgpO1xuICB9XG5cbiAgcmVsb2FkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoKSB7XG4gICAgICB0aGlzLmF1dG9SZWZyZXNoTGlzdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uUmVzZXROZXdBbGFybXNTdGF0ZS5lbWl0KGZhbHNlKTtcbiAgICAgIHRoaXMub25Db3VudGRvd25FbmRlZC5lbWl0KCk7XG4gICAgICB0aGlzLmlzTmV3QWxhcm1NZXNzYWdlQ2xlYXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHJlYWwtdGltZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBzd2l0Y2hlcyB0aGUgYGlzUmVhbHRpbWVUb2dnbGVPbmAgc3RhdGUgYmV0d2VlbiB0cnVlIGFuZCBmYWxzZS5cbiAgICogV2hlbiB0aGUgc3RhdGUgaXMgdG9nZ2xlZCwgaXQgZW1pdHMgdGhlIGN1cnJlbnQgc3RhdGUgdGhyb3VnaCBgb25SZWFsVGltZVRvZ2dsZUNoYW5nZWRgIGV2ZW50LlxuICAgKiBJdCBhbHNvIHVwZGF0ZXMgdGhlIGByZWFsdGltZUljb25UaXRsZWAgYmFzZWQgb24gdGhlIG5ldyBzdGF0ZS5cbiAgICovXG4gIHRvZ2dsZVJlYWx0aW1lU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT24gPSAhdGhpcy5pc1JlYWx0aW1lVG9nZ2xlT247XG4gICAgdGhpcy5vblJlYWxUaW1lVG9nZ2xlQ2hhbmdlZC5lbWl0KHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uKTtcbiAgICB0aGlzLnJlYWx0aW1lSWNvblRpdGxlID0gdGhpcy5nZXRSZWFsdGltZUljb25UaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIHRoZSBjb3VudGRvd24gYW5kIHRyaWdnZXJzIGEgcmVmcmVzaCBhY3Rpb24uXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGhhbHRpbmcgdGhlIGNvdW50ZG93biBpbnRlcnZhbCBjb21wb25lbnQncyBvcGVyYXRpb24uXG4gICAqIEFmdGVyIHN0b3BwaW5nIHRoZSBjb3VudGRvd24sIGl0IGVtaXRzIGFuIGBvbkNvdW50ZG93bkVuZGVkYCBldmVudC5cbiAgICogVGhpcyBldmVudCBpcyB1c2VkIHRvIGluZm9ybSBleHRlcm5hbCBjb21wb25lbnRzIHRoYXQgdGhlIGNvdW50ZG93biBoYXMgZW5kZWQsXG4gICAqIHR5cGljYWxseSBwcm9tcHRpbmcgdGhlbSB0byByZWxvYWQgb3IgcmVmcmVzaCB0aGVpciBkYXRhLlxuICAgKi9cbiAgYXV0b1JlZnJlc2hMaXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gJiYgdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQuc3RvcCgpO1xuICAgIH1cbiAgICB0aGlzLm9uQ291bnRkb3duRW5kZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRvb2x0aXAgbWVzc2FnZSBmb3IgYSBuZXcgcmVhbHRpbWUgYWxhcm0gaW5kaWNhdG9yLlxuICAgKiBAcmV0dXJucyBUb29sdGlwIG1lc3NhZ2UuXG4gICAqL1xuICBnZXRSZWFsdGltZUljb25UaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUmVhbHRpbWVUb2dnbGVPblxuICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZWFsdGltZSBhY3RpdmUnKSlcbiAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnUmVhbHRpbWUgaW5hY3RpdmUnKSk7XG4gIH1cblxuICAvKipcbiAgICogTWFuYWdlcyB0aGUgY291bnRkb3duIHRpbWVyJ3MgdmlzaWJpbGl0eSBhbmQgc3RhdGUgaW4gcmVzcG9uc2UgdG8gdXNlciBzY3JvbGxpbmcuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHRvZ2dsZXMgdGhlIGNvdW50ZG93biB0aW1lciBiYXNlZCBvbiB0aGUgdXNlcidzIHNjcm9sbGluZyBiZWhhdmlvci4gSXQgdXNlc1xuICAgKiB0aGUgYGRpc2FibGVDb3VudGRvd25gIGFuZCBgZW5hYmxlQ291bnRkb3duYCBtZXRob2RzIGZvciBoYW5kbGluZyB0aGUgY291bnRkb3duIHN0YXRlLlxuICAgKlxuICAgKiAtIElmIHRoZSB1c2VyIGlzIHNjcm9sbGluZyBkb3duIHdoaWxlIHRoZSBjb3VudGRvd24gaXMgdmlzaWJsZSAoYGlzU2Nyb2xsaW5nYCBpcyB0cnVlIGFuZFxuICAgKiAgIGBoaWRlQ291bnRkb3duYCBpcyBmYWxzZSksIGBkaXNhYmxlQ291bnRkb3duYCBpcyBjYWxsZWQgdG8gc3RvcCBhbmQgaGlkZSB0aGUgY291bnRkb3duLFxuICAgKiAgIGFuZCBgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbmAgaXMgc2V0IHRvIGZhbHNlLlxuICAgKlxuICAgKiAtIElmIHRoZSB1c2VyIGhhcyBzdG9wcGVkIHNjcm9sbGluZywgdGhlIGNvdW50ZG93biBzdWJzY3JpcHRpb24gaXMgY2xvc2VkLCBhbmQgdGhlIGNvdW50ZG93blxuICAgKiAgIGlzIGhpZGRlbiAoYCFpc1Njcm9sbGluZ2AsIGBjb3VudGRvd25TdWJzY3JpcHRpb24/LmNsb3NlZGAsIGBoaWRlQ291bnRkb3duYCksIGBlbmFibGVDb3VudGRvd25gXG4gICAqICAgaXMgY2FsbGVkIHRvIHNob3cgYW5kIHJlc3RhcnQgdGhlIGNvdW50ZG93biwgYW5kIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICovXG4gIGhhbmRsZVNjcm9sbGluZygpOiB2b2lkIHtcbiAgICAvLyBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHNjcm9sbGVkIGRvd24gd2hpbGUgdGhlIGNvdW50ZG93biBpcyB2aXNpYmxlXG4gICAgY29uc3Qgb25Vc2VyU2Nyb2xsRG93bkhpZGUgPSB0aGlzLmlzU2Nyb2xsaW5nICYmICF0aGlzLmhpZGVDb3VudGRvd247XG5cbiAgICBpZiAob25Vc2VyU2Nyb2xsRG93bkhpZGUpIHtcbiAgICAgIHRoaXMuZGlzYWJsZUNvdW50ZG93bigpO1xuICAgICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBzdG9wcGVkIHNjcm9sbGluZyBhbmQgdGhlIGNvdW50ZG93biBpcyBjdXJyZW50bHkgaGlkZGVuXG4gICAgY29uc3Qgb25Vc2VyU2Nyb2xsVG9wU2hvdyA9XG4gICAgICAhdGhpcy5pc1Njcm9sbGluZyAmJiB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbj8uY2xvc2VkICYmIHRoaXMuaGlkZUNvdW50ZG93bjtcblxuICAgIGlmIChvblVzZXJTY3JvbGxUb3BTaG93KSB7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPSB0cnVlO1xuICAgICAgdGhpcy5lbmFibGVDb3VudGRvd24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBhbmQgc3RhcnRzIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG1ha2VzIHRoZSBjb3VudGRvd24gdmlzaWJsZSAoYGhpZGVDb3VudGRvd25gIGlzIHNldCB0byBmYWxzZSkgYW5kIHRoZW5cbiAgICogc3RhcnRzIHRoZSBjb3VudGRvd24gcHJvY2Vzcy4gSXQgZW5zdXJlcyB0aGUgY291bnRkb3duIHRpbWVyIGlzIHVwZGF0ZWQgaW1tZWRpYXRlbHlcbiAgICogYnkgdHJpZ2dlcmluZyBjaGFuZ2UgZGV0ZWN0aW9uIHdpdGggYGNkUmVmLmRldGVjdENoYW5nZXMoKWAgYmVmb3JlIHN0YXJ0aW5nIHRoZSBjb3VudGRvd24uXG4gICAqIFRoaXMgbWV0aG9kIGVuY2Fwc3VsYXRlcyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaW5pdGlhdGUgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICovXG4gIGVuYWJsZUNvdW50ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVDb3VudGRvd24gPSBmYWxzZTtcbiAgICAvLyBQcmV2ZW50cyB0aGUgY291bnRkb3duIGZyb20gZ2V0dGluZyBzdHVjayBvbiBhbiBpbml0aWFsIHZhbHVlLlxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc3RhcnRDb3VudGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbmQgaGlkZXMgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgc3RvcHMgdGhlIG9uZ29pbmcgY291bnRkb3duIHByb2Nlc3MgYnkgdW5zdWJzY3JpYmluZyBmcm9tIGBjb3VudGRvd25TdWJzY3JpcHRpb25gXG4gICAqIGFuZCBzdG9wcGluZyB0aGUgYGNvdW50ZG93bkludGVydmFsQ29tcG9uZW50YCBpZiBpdCBleGlzdHMuIEl0IHRoZW4gaGlkZXMgdGhlIGNvdW50ZG93biB0aW1lclxuICAgKiBieSBzZXR0aW5nIGBoaWRlQ291bnRkb3duYCB0byB0cnVlLiBUaGlzIG1ldGhvZCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbHQgYW5kXG4gICAqIGNvbmNlYWwgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICovXG4gIGRpc2FibGVDb3VudGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5jb3VudGRvd25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKCk7XG4gICAgdGhpcy5oaWRlQ291bnRkb3duID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb3VudGRvd24gYnV0dG9uIHRvb2x0aXAgdGV4dCBiYXNlZCBvbiB0aGUgc3RhdGUgb2YgdGhlIGludGVydmFsIHJlZnJlc2ggdG9nZ2xlIHN0YXRlLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dChjdXN0b21UZXh0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGN1c3RvbVRleHQpIHtcbiAgICAgIHRoaXMudG9nZ2xlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQgPSBjdXN0b21UZXh0O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0ID0gdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uXG4gICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0Rpc2FibGUgYXV0byByZWZyZXNoJykpXG4gICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ0VuYWJsZSBhdXRvIHJlZnJlc2gnKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtLWwtYXV0byBkLWZsZXggcC10LTQgcC1iLTRcIj5cbiAgPGRpdiBjbGFzcz1cIm0tbC1hdXRvIGQtZmxleCBhLWktY2VudGVyXCI+XG4gICAgPGxhYmVsXG4gICAgICBjbGFzcz1cIm0tYi0wIG0tci04IHRleHQtbGFiZWwtc21hbGwgdGV4dC10cnVuY2F0ZSBmbGV4LW5vLXNocmlua1wiXG4gICAgICB0aXRsZT1cIiB7eyAnQXV0byByZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAqbmdJZj1cImlzSW50ZXJ2YWxSZWZyZXNoICYmIHJlZnJlc2hJbnRlcnZhbCAmJiBjb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWRcIlxuICAgID5cbiAgICAgIHt7ICdBdXRvIHJlZnJlc2gnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInRvZ2dsZS1jb3VudGRvd25cIlxuICAgICAgICBbY2xhc3MudG9nZ2xlLWNvdW50ZG93bi1kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b2dnbGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dFwiXG4gICAgICAgIFt0b29sdGlwXT1cInRvZ2dsZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0XCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgKm5nSWY9XCJpc0ludGVydmFsUmVmcmVzaCAmJiByZWZyZXNoSW50ZXJ2YWwgJiYgY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkXCJcbiAgICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgICBbY29udGFpbmVyXT1cIidib2R5J1wiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLXdpZGdldC0taW50ZXJ2YWwtdG9nZ2xlLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlQ291bnRkb3duQnV0dG9uU3RhdGUoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxjOHktY291bnRkb3duLWludGVydmFsXG4gICAgICAgICAgKm5nSWY9XCJpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uXCJcbiAgICAgICAgICBbY291bnRkb3duSW50ZXJ2YWxdPVwicmVmcmVzaEludGVydmFsXCJcbiAgICAgICAgICAoY291bnRkb3duRW5kZWQpPVwiY291bnRkb3duRW5kZWQoKVwiXG4gICAgICAgID48L2M4eS1jb3VudGRvd24taW50ZXJ2YWw+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cInBhdXNlXCJcbiAgICAgICAgICAqbmdJZj1cIiFpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uXCJcbiAgICAgICAgPjwvaT5cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiXG4gICAgICAgICAgICAhaXNOZXdBbGFybU1lc3NhZ2VDbGVhcmVkXG4gICAgICAgICAgICAgID8gKFJFQUxUSU1FX1VQREFURV9BTEFSTVNfTUVTU0FHRSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgOiAoJ1JlZnJlc2gnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYWRhcHRpdmVQb3NpdGlvbl09XCJmYWxzZVwiXG4gICAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IChpc0xvYWRpbmcgfCBhc3luYylcIlxuICAgICAgICAgIChjbGljayk9XCJyZWxvYWQoKVwiXG4gICAgICAgICAgZGF0YS1jeT1cImM4eS1hbGFybXMtd2lkZ2V0LS1yZWxvYWQtYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gbS1yLThcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNOZXdBbGFybU1lc3NhZ2VDbGVhcmVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnTmV3IGFsYXJtcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGM4eUljb249XCJyZWZyZXNoXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IGlzTG9hZGluZyB8IGFzeW5jIH1cIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuIGlucHV0LWdyb3VwLWJ0bi0tbGFzdFwiXG4gICAgICAgICpuZ0lmPVwiIWlzSW50ZXJ2YWxSZWZyZXNoXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYzh5LXJlYWx0aW1lIGJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZWFsdGltZUljb25UaXRsZVwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwicmVhbHRpbWVJY29uVGl0bGVcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZWFsdGltZVN0YXRlKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImM4eS1wdWxzZSBtLTBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICBhY3RpdmU6IGlzUmVhbHRpbWVUb2dnbGVPbixcbiAgICAgICAgICAgICAgaW5hY3RpdmU6ICFpc1JlYWx0aW1lVG9nZ2xlT25cbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0td2lkZ2V0LWFsYXJtcy1yZWxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vd2lkZ2V0cy9pbXBsZW1lbnRhdGlvbnMvYWxhcm1zL2FsYXJtLXdpZGdldC1hbGFybXMtcmVsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3dpZGdldHMvaW1wbGVtZW50YXRpb25zL2FsYXJtcy9hbGFybS13aWRnZXQtYWxhcm1zLXJlbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixPQUFPLEVBQ1AsOEJBQThCLEVBQy9CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQXlCLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFNMUYsTUFBTSxPQUFPLGdDQUFnQztJQXFFM0MsWUFDVSxpQkFBb0MsRUFDcEMsS0FBd0IsRUFDeEIsZ0JBQWtDLEVBQ2xDLDhCQUE4RDtRQUg5RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQXRFL0Qs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QWdDO2tNQVdqQyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUcsZUFBZTtzQkFBdkIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUlHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFHUCwwQkFBMEI7c0JBRHpCLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQWxhcm1zVmlld1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbGFybUxpc3RXaWRnZXRDb25maWcsIEdMT0JBTF9JTlRFUlZBTF9PUFRJT04gfSBmcm9tICcuL2FsYXJtLWxpc3Qtd2lkZ2V0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFsYXJtLXdpZGdldC1hbGFybXMtcmVsb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsYXJtLXdpZGdldC1hbGFybXMtcmVsb2FkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybVdpZGdldEFsYXJtc1JlbG9hZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcmVhZG9ubHkgUkVBTFRJTUVfVVBEQVRFX0FMQVJNU19NRVNTQUdFID0gdGhpcy5hbGFybXNWaWV3U2VydmljZS5SRUFMVElNRV9VUERBVEVfQUxBUk1TX01FU1NBR0U7XG5cbiAgLyoqXG4gICAqIFN0YXRlIG9mIHRoaXMgYm9vbGVhbiBkZXBlbmRzIG9uIGFuIEFwcGxpY2F0aW9uIE9wdGlvbnMgXCJhbGFybXNSZWZyZXNoVHlwZVwiIHNldHRpbmcuXG4gICAqL1xuICBASW5wdXQoKSBpc0ludGVydmFsUmVmcmVzaDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1cnJlbnQgcmVmcmVzaCBpbnRlcnZhbCBzZXQgaW4gYSB3aWRnZXQgY29uZmlnLlxuICAgKi9cbiAgQElucHV0KCkgcmVmcmVzaEludGVydmFsOiBudW1iZXI7XG4gIC8qKlxuICAgKiBBbGFybSB3aWRnZXRzIGNvbmZpZy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZzogQWxhcm1MaXN0V2lkZ2V0Q29uZmlnO1xuICAvKipcbiAgICogQ3VycmVudCBpc0xvYWRpbmcgc3RhdGUuIEJhc2VkIG9uIGl0IG5leHQgY291bnRkb3duIGN5Y2xlIGlzIGJlaW5nIHN0YXJ0ZWQuXG4gICAqL1xuICBASW5wdXQoKSBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBhbGFybSBsaXN0IGlzIGJlaW5nIHNjcm9sbGVkIG9yIG5vdC5cbiAgICovXG4gIEBJbnB1dCgpIGlzU2Nyb2xsaW5nOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBhIGNvdW50ZG93biBjeWNsZSBoYXMgZW5kZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgb25Db3VudGRvd25FbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgd2lkZ2V0cyByZWFsdGltZSBidXR0b24gc3RhdGUgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgb25SZWFsVGltZVRvZ2dsZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKENvdW50ZG93bkludGVydmFsQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ6IENvdW50ZG93bkludGVydmFsQ29tcG9uZW50O1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNvdW50ZG93biB0aW1lciBjb21wb25lbnQgaW4gdGhlIGN1cnJlbnQgY29tcG9uZW50J3MgVUkuXG4gICAqL1xuICBoaWRlQ291bnRkb3duOiBib29sZWFuO1xuICAvKipcbiAgICogVG9vbHRpcCBmb3IgYSBuZXcgcmVhbHRpbWUgYWxhcm0gaW5kaWNhdG9yLlxuICAgKi9cbiAgcmVhbHRpbWVJY29uVGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb3VudGRvd24gaGFzIGJlZW4gY2xlYXJlZCBhbHJlYWR5LlxuICAgKi9cbiAgaXNOZXdBbGFybU1lc3NhZ2VDbGVhcmVkID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBpbnRlcnZhbCByZWZyZXNoIHRvZ2dsZSBidXR0b24uXG4gICAqL1xuICBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uOiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIHJlYWx0aW1lIHRvZ2dsZSBidXR0b24uXG4gICAqL1xuICBpc1JlYWx0aW1lVG9nZ2xlT246IGJvb2xlYW47XG4gIC8qKlxuICAgKiBIb2xkcyB0aGUgc3Vic2NyaXB0aW9uIHRvIGEgY291bnRkb3duIG9ic2VydmFibGUuXG4gICAqL1xuICBjb3VudGRvd25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb3VudGRvd24gaGFzIGJlZW4gbWFudWFsbHkgZGlzYWJsZWQgYnkgdGhlIHVzZXIuXG4gICAqL1xuICBtYW51YWxseURpc2FibGVkQ291bnRkb3duID0gZmFsc2U7XG5cbiAgdG9nZ2xlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQ6IHN0cmluZztcbiAgZ2xvYmFsQXV0b1JlZnJlc2hFbmFibGVkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1zVmlld1NlcnZpY2U6IEFsYXJtc1ZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHdpZGdldEdsb2JhbEF1dG9SZWZyZXNoU2VydmljZTogV2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2gpIHtcbiAgICAgIHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uID0gdGhpcy5jb25maWcuaXNBdXRvUmVmcmVzaEVuYWJsZWQ7XG4gICAgICB0aGlzLnJlYWx0aW1lSWNvblRpdGxlID0gdGhpcy5nZXRSZWFsdGltZUljb25UaXRsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPVxuICAgICAgICAhdGhpcy5pc0Rpc2FibGVkICYmICh0aGlzLmNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZCB8fCAhIXRoaXMucmVmcmVzaEludGVydmFsKTtcbiAgICAgIHRoaXMudXBkYXRlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggJiYgdGhpcy5yZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMuc3RhcnRDb3VudGRvd24oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nbG9iYWxBdXRvUmVmcmVzaEVuYWJsZWQpIHtcbiAgICAgIHRoaXMud2lkZ2V0R2xvYmFsQXV0b1JlZnJlc2hTZXJ2aWNlLmNvdW50ZG93bkFjdGlvbnMuY291bnRkb3duRW5kZWQkXG4gICAgICAgIC5waXBlKHRhcCgoKSA9PiB0aGlzLm9uQ291bnRkb3duRW5kZWQuZW1pdCgpKSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlzRGlzYWJsZWQsIGNvbmZpZyB9ID0gY2hhbmdlcztcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmdsb2JhbEF1dG9SZWZyZXNoRW5hYmxlZCA9IHRoaXMuY29uZmlnLnJlZnJlc2hPcHRpb24gPT09IEdMT0JBTF9JTlRFUlZBTF9PUFRJT047XG4gICAgfVxuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPVxuICAgICAgICAhdGhpcy5pc0Rpc2FibGVkICYmICh0aGlzLmNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZCB8fCAhIXRoaXMucmVmcmVzaEludGVydmFsKTtcbiAgICAgIHRoaXMudXBkYXRlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQoZ2V0dGV4dCgnRGlzYWJsZWQnKSk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2ggfHxcbiAgICAgIHRoaXMubWFudWFsbHlEaXNhYmxlZENvdW50ZG93biB8fFxuICAgICAgIXRoaXMuY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVTY3JvbGxpbmcoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jb3VudGRvd25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBsaXN0ZW5zIGZvciBjaGFuZ2VzIGluIHRoZSBgaXNMb2FkaW5nYCBvYnNlcnZhYmxlLCBmaWx0ZXJpbmcgb3V0IGFueSB0cnV0aHkgdmFsdWVzLlxuICAgKiBPbmNlIGEgZmFsc3kgdmFsdWUgaXMgZGV0ZWN0ZWQgKGluZGljYXRpbmcgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCksIGl0IGF0dGVtcHRzIHRvIHN0YXJ0IHRoZSBjb3VudGRvd24uXG4gICAqXG4gICAqIElNUE9SVEFOVDogSWYgdGhlIHdpZGdldCdzIGNvbmZpZ3VyYXRpb24gKHJlZnJlc2hJbnRlcnZhbCwgY2hlY2sgdGVtcGxhdGUpIGlzIG5vdCBzZXQgcHJpb3IgdG8gZXhlY3V0aW5nIGNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdGFydCxcbiAgICogdGhlIGNvdW50ZG93biBpbnRlcnZhbCB3aWxsIG5vdCBzdGFydCFcbiAgICovXG4gIHN0YXJ0Q291bnRkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uID0gdGhpcy5pc0xvYWRpbmdcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoaXNMb2FkaW5nID0+ICFCb29sZWFuKGlzTG9hZGluZykpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ/LnN0YXJ0KCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgdG9nZ2xlIHN0YXRlIG9mIHRoZSBjb3VudGRvd24gb24gYnV0dG9uIGNsaWNrLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0cmlnZ2VyZWQgYnkgYSBtb3VzZSBldmVudCwgdHlwaWNhbGx5IGEgY2xpY2sgb24gdGhlIGNvdW50ZG93biB0b2dnbGUgYnV0dG9uLlxuICAgKiBJdCB0b2dnbGVzIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCB0byByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqXG4gICAqIC0gSWYgYGlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25gIGlzIHNldCB0byBmYWxzZSwgaW5kaWNhdGluZyB0aGF0IHRoZSBjb3VudGRvd24gc2hvdWxkIGJlIHN0b3BwZWQsXG4gICAqICAgYGRpc2FibGVDb3VudGRvd25gIGlzIGNhbGxlZCwgYW5kIGBtYW51YWxseURpc2FibGVkQ291bnRkb3duYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICpcbiAgICogLSBJZiBgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbmAgaXMgdHJ1ZSBhbmQgdGhlIGNvdW50ZG93biBzdWJzY3JpcHRpb24gaXMgY2xvc2VkLCBpbmRpY2F0aW5nIHRoYXRcbiAgICogICB0aGUgY291bnRkb3duIGNhbiBiZSBzdGFydGVkLCBgZW5hYmxlQ291bnRkb3duYCBpcyBjYWxsZWQsIGFuZCBgbWFudWFsbHlEaXNhYmxlZENvdW50ZG93bmBcbiAgICogICBpcyBzZXQgdG8gZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSAkZXZlbnQgLSBUaGUgTW91c2VFdmVudCB0aGF0IHRyaWdnZXJlZCB0aGlzIG1ldGhvZC5cbiAgICovXG4gIG9uVG9nZ2xlQ291bnRkb3duQnV0dG9uU3RhdGUoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uID0gIXRoaXMuaXNEaXNhYmxlZCAmJiAhdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uO1xuICAgIHRoaXMudXBkYXRlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQoKTtcblxuICAgIGlmICghdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uKSB7XG4gICAgICB0aGlzLmRpc2FibGVDb3VudGRvd24oKTtcbiAgICAgIHRoaXMubWFudWFsbHlEaXNhYmxlZENvdW50ZG93biA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb25SZWZyZXNoVG9nZ2xlT24gPSB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gJiYgdGhpcy5jb3VudGRvd25TdWJzY3JpcHRpb24uY2xvc2VkO1xuXG4gICAgaWYgKG9uUmVmcmVzaFRvZ2dsZU9uKSB7XG4gICAgICB0aGlzLmVuYWJsZUNvdW50ZG93bigpO1xuICAgICAgdGhpcy5tYW51YWxseURpc2FibGVkQ291bnRkb3duID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgbWV0aG9kIHdoZXJlIGl0J3MgbmFtZSBiZXR0ZXIgZGVzY3JpYmVzIGEgY29udGV4dCB3aGVyZSBpdCB3YXMgY2FsbGVkLlxuICAgKi9cbiAgY291bnRkb3duRW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvUmVmcmVzaExpc3QoKTtcbiAgfVxuXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0ludGVydmFsUmVmcmVzaCkge1xuICAgICAgdGhpcy5hdXRvUmVmcmVzaExpc3QoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNvdW50ZG93bkVuZGVkLmVtaXQoKTtcbiAgICAgIHRoaXMuaXNOZXdBbGFybU1lc3NhZ2VDbGVhcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgcmVhbC10aW1lIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHN3aXRjaGVzIHRoZSBgaXNSZWFsdGltZVRvZ2dsZU9uYCBzdGF0ZSBiZXR3ZWVuIHRydWUgYW5kIGZhbHNlLlxuICAgKiBXaGVuIHRoZSBzdGF0ZSBpcyB0b2dnbGVkLCBpdCBlbWl0cyB0aGUgY3VycmVudCBzdGF0ZSB0aHJvdWdoIGBvblJlYWxUaW1lVG9nZ2xlQ2hhbmdlZGAgZXZlbnQuXG4gICAqIEl0IGFsc28gdXBkYXRlcyB0aGUgYHJlYWx0aW1lSWNvblRpdGxlYCBiYXNlZCBvbiB0aGUgbmV3IHN0YXRlLlxuICAgKi9cbiAgdG9nZ2xlUmVhbHRpbWVTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzUmVhbHRpbWVUb2dnbGVPbiA9ICF0aGlzLmlzUmVhbHRpbWVUb2dnbGVPbjtcbiAgICB0aGlzLm9uUmVhbFRpbWVUb2dnbGVDaGFuZ2VkLmVtaXQodGhpcy5pc1JlYWx0aW1lVG9nZ2xlT24pO1xuICAgIHRoaXMucmVhbHRpbWVJY29uVGl0bGUgPSB0aGlzLmdldFJlYWx0aW1lSWNvblRpdGxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcHMgdGhlIGNvdW50ZG93biBhbmQgdHJpZ2dlcnMgYSByZWZyZXNoIGFjdGlvbi5cbiAgICogVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgaGFsdGluZyB0aGUgY291bnRkb3duIGludGVydmFsIGNvbXBvbmVudCdzIG9wZXJhdGlvbi5cbiAgICogQWZ0ZXIgc3RvcHBpbmcgdGhlIGNvdW50ZG93biwgaXQgZW1pdHMgYW4gYG9uQ291bnRkb3duRW5kZWRgIGV2ZW50LlxuICAgKiBUaGlzIGV2ZW50IGlzIHVzZWQgdG8gaW5mb3JtIGV4dGVybmFsIGNvbXBvbmVudHMgdGhhdCB0aGUgY291bnRkb3duIGhhcyBlbmRlZCxcbiAgICogdHlwaWNhbGx5IHByb21wdGluZyB0aGVtIHRvIHJlbG9hZCBvciByZWZyZXNoIHRoZWlyIGRhdGEuXG4gICAqL1xuICBhdXRvUmVmcmVzaExpc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiAmJiB0aGlzLmNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZCkge1xuICAgICAgdGhpcy5jb3VudGRvd25JbnRlcnZhbENvbXBvbmVudC5zdG9wKCk7XG4gICAgfVxuICAgIHRoaXMub25Db3VudGRvd25FbmRlZC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG9vbHRpcCBtZXNzYWdlIGZvciBhIG5ldyByZWFsdGltZSBhbGFybSBpbmRpY2F0b3IuXG4gICAqIEByZXR1cm5zIFRvb2x0aXAgbWVzc2FnZS5cbiAgICovXG4gIGdldFJlYWx0aW1lSWNvblRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNSZWFsdGltZVRvZ2dsZU9uXG4gICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGdldHRleHQoJ1JlYWx0aW1lIGFjdGl2ZScpKVxuICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChnZXR0ZXh0KCdSZWFsdGltZSBpbmFjdGl2ZScpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIHRoZSBjb3VudGRvd24gdGltZXIncyB2aXNpYmlsaXR5IGFuZCBzdGF0ZSBpbiByZXNwb25zZSB0byB1c2VyIHNjcm9sbGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgdG9nZ2xlcyB0aGUgY291bnRkb3duIHRpbWVyIGJhc2VkIG9uIHRoZSB1c2VyJ3Mgc2Nyb2xsaW5nIGJlaGF2aW9yLiBJdCB1c2VzXG4gICAqIHRoZSBgZGlzYWJsZUNvdW50ZG93bmAgYW5kIGBlbmFibGVDb3VudGRvd25gIG1ldGhvZHMgZm9yIGhhbmRsaW5nIHRoZSBjb3VudGRvd24gc3RhdGUuXG4gICAqXG4gICAqIC0gSWYgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIGRvd24gd2hpbGUgdGhlIGNvdW50ZG93biBpcyB2aXNpYmxlIChgaXNTY3JvbGxpbmdgIGlzIHRydWUgYW5kXG4gICAqICAgYGhpZGVDb3VudGRvd25gIGlzIGZhbHNlKSwgYGRpc2FibGVDb3VudGRvd25gIGlzIGNhbGxlZCB0byBzdG9wIGFuZCBoaWRlIHRoZSBjb3VudGRvd24sXG4gICAqICAgYW5kIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCBpcyBzZXQgdG8gZmFsc2UuXG4gICAqXG4gICAqIC0gSWYgdGhlIHVzZXIgaGFzIHN0b3BwZWQgc2Nyb2xsaW5nLCB0aGUgY291bnRkb3duIHN1YnNjcmlwdGlvbiBpcyBjbG9zZWQsIGFuZCB0aGUgY291bnRkb3duXG4gICAqICAgaXMgaGlkZGVuIChgIWlzU2Nyb2xsaW5nYCwgYGNvdW50ZG93blN1YnNjcmlwdGlvbj8uY2xvc2VkYCwgYGhpZGVDb3VudGRvd25gKSwgYGVuYWJsZUNvdW50ZG93bmBcbiAgICogICBpcyBjYWxsZWQgdG8gc2hvdyBhbmQgcmVzdGFydCB0aGUgY291bnRkb3duLCBhbmQgYGlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25gIGlzIHNldCB0byB0cnVlLlxuICAgKi9cbiAgaGFuZGxlU2Nyb2xsaW5nKCk6IHZvaWQge1xuICAgIC8vIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgZG93biB3aGlsZSB0aGUgY291bnRkb3duIGlzIHZpc2libGVcbiAgICBjb25zdCBvblVzZXJTY3JvbGxEb3duSGlkZSA9IHRoaXMuaXNTY3JvbGxpbmcgJiYgIXRoaXMuaGlkZUNvdW50ZG93bjtcblxuICAgIGlmIChvblVzZXJTY3JvbGxEb3duSGlkZSkge1xuICAgICAgdGhpcy5kaXNhYmxlQ291bnRkb3duKCk7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHN0b3BwZWQgc2Nyb2xsaW5nIGFuZCB0aGUgY291bnRkb3duIGlzIGN1cnJlbnRseSBoaWRkZW5cbiAgICBjb25zdCBvblVzZXJTY3JvbGxUb3BTaG93ID1cbiAgICAgICF0aGlzLmlzU2Nyb2xsaW5nICYmIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uPy5jbG9zZWQgJiYgdGhpcy5oaWRlQ291bnRkb3duO1xuXG4gICAgaWYgKG9uVXNlclNjcm9sbFRvcFNob3cpIHtcbiAgICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiA9IHRydWU7XG4gICAgICB0aGlzLmVuYWJsZUNvdW50ZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIGFuZCBzdGFydHMgdGhlIGNvdW50ZG93biB0aW1lci5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgbWFrZXMgdGhlIGNvdW50ZG93biB2aXNpYmxlIChgaGlkZUNvdW50ZG93bmAgaXMgc2V0IHRvIGZhbHNlKSBhbmQgdGhlblxuICAgKiBzdGFydHMgdGhlIGNvdW50ZG93biBwcm9jZXNzLiBJdCBlbnN1cmVzIHRoZSBjb3VudGRvd24gdGltZXIgaXMgdXBkYXRlZCBpbW1lZGlhdGVseVxuICAgKiBieSB0cmlnZ2VyaW5nIGNoYW5nZSBkZXRlY3Rpb24gd2l0aCBgY2RSZWYuZGV0ZWN0Q2hhbmdlcygpYCBiZWZvcmUgc3RhcnRpbmcgdGhlIGNvdW50ZG93bi5cbiAgICogVGhpcyBtZXRob2QgZW5jYXBzdWxhdGVzIHRoZSBsb2dpYyByZXF1aXJlZCB0byBpbml0aWF0ZSB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKi9cbiAgZW5hYmxlQ291bnRkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZUNvdW50ZG93biA9IGZhbHNlO1xuICAgIC8vIFByZXZlbnRzIHRoZSBjb3VudGRvd24gZnJvbSBnZXR0aW5nIHN0dWNrIG9uIGFuIGluaXRpYWwgdmFsdWUuXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zdGFydENvdW50ZG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIGFuZCBoaWRlcyB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBzdG9wcyB0aGUgb25nb2luZyBjb3VudGRvd24gcHJvY2VzcyBieSB1bnN1YnNjcmliaW5nIGZyb20gYGNvdW50ZG93blN1YnNjcmlwdGlvbmBcbiAgICogYW5kIHN0b3BwaW5nIHRoZSBgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnRgIGlmIGl0IGV4aXN0cy4gSXQgdGhlbiBoaWRlcyB0aGUgY291bnRkb3duIHRpbWVyXG4gICAqIGJ5IHNldHRpbmcgYGhpZGVDb3VudGRvd25gIHRvIHRydWUuIFRoaXMgbWV0aG9kIGVuY2Fwc3VsYXRlcyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFsdCBhbmRcbiAgICogY29uY2VhbCB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKi9cbiAgZGlzYWJsZUNvdW50ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ/LnN0b3AoKTtcbiAgICB0aGlzLmhpZGVDb3VudGRvd24gPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGNvdW50ZG93biBidXR0b24gdG9vbHRpcCB0ZXh0IGJhc2VkIG9uIHRoZSBzdGF0ZSBvZiB0aGUgaW50ZXJ2YWwgcmVmcmVzaCB0b2dnbGUgc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0KGN1c3RvbVRleHQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoY3VzdG9tVGV4dCkge1xuICAgICAgdGhpcy50b2dnbGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dCA9IGN1c3RvbVRleHQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHQgPSB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25cbiAgICAgID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRGlzYWJsZSBhdXRvIHJlZnJlc2gnKSlcbiAgICAgIDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRW5hYmxlIGF1dG8gcmVmcmVzaCcpKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm0tbC1hdXRvIGQtZmxleCBwLXQtNCBwLWItNFwiXG4gICpuZ0lmPVwiIWdsb2JhbEF1dG9SZWZyZXNoRW5hYmxlZFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJtLWwtYXV0byBkLWZsZXggYS1pLWNlbnRlclwiPlxuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJtLWItMCBtLXItOCB0ZXh0LWxhYmVsLXNtYWxsIHRleHQtdHJ1bmNhdGUgZmxleC1uby1zaHJpbmtcIlxuICAgICAgdGl0bGU9XCIge3sgJ0F1dG8gcmVmcmVzaCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgKm5nSWY9XCJpc0ludGVydmFsUmVmcmVzaCAmJiByZWZyZXNoSW50ZXJ2YWwgJiYgY29uZmlnLmlzQXV0b1JlZnJlc2hFbmFibGVkXCJcbiAgICA+XG4gICAgICB7eyAnQXV0byByZWZyZXNoJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJ0b2dnbGUtY291bnRkb3duXCJcbiAgICAgICAgW2NsYXNzLnRvZ2dsZS1jb3VudGRvd24tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9nZ2xlQ291bnRkb3duQnV0dG9uVG9vbHRpcFRleHRcIlxuICAgICAgICBbdG9vbHRpcF09XCJ0b2dnbGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dFwiXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICpuZ0lmPVwiaXNJbnRlcnZhbFJlZnJlc2ggJiYgcmVmcmVzaEludGVydmFsICYmIGNvbmZpZy5pc0F1dG9SZWZyZXNoRW5hYmxlZFwiXG4gICAgICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBkYXRhLWN5PVwiYzh5LWFsYXJtcy13aWRnZXQtLWludGVydmFsLXRvZ2dsZS1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZUNvdW50ZG93bkJ1dHRvblN0YXRlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8Yzh5LWNvdW50ZG93bi1pbnRlcnZhbFxuICAgICAgICAgICpuZ0lmPVwiaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPblwiXG4gICAgICAgICAgW2NvdW50ZG93bkludGVydmFsXT1cInJlZnJlc2hJbnRlcnZhbFwiXG4gICAgICAgICAgKGNvdW50ZG93bkVuZGVkKT1cImNvdW50ZG93bkVuZGVkKClcIlxuICAgICAgICA+PC9jOHktY291bnRkb3duLWludGVydmFsPlxuICAgICAgICA8aVxuICAgICAgICAgIGM4eUljb249XCJwYXVzZVwiXG4gICAgICAgICAgKm5nSWY9XCIhaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPblwiXG4gICAgICAgID48L2k+XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICAgICAgIWlzTmV3QWxhcm1NZXNzYWdlQ2xlYXJlZFxuICAgICAgICAgICAgICA/IChSRUFMVElNRV9VUERBVEVfQUxBUk1TX01FU1NBR0UgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgIDogKCdSZWZyZXNoJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2FkYXB0aXZlUG9zaXRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCAoaXNMb2FkaW5nIHwgYXN5bmMpXCJcbiAgICAgICAgICAoY2xpY2spPVwicmVsb2FkKClcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm1zLXdpZGdldC0tcmVsb2FkLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ0YWcgdGFnLS1pbmZvIG0tci04XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzTmV3QWxhcm1NZXNzYWdlQ2xlYXJlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ05ldyBhbGFybXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjOHlJY29uPVwicmVmcmVzaFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpY29uLXNwaW4nOiBpc0xvYWRpbmcgfCBhc3luYyB9XCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBpbnB1dC1ncm91cC1idG4tLWxhc3RcIlxuICAgICAgICAqbmdJZj1cIiFpc0ludGVydmFsUmVmcmVzaFwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImM4eS1yZWFsdGltZSBidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVhbHRpbWVJY29uVGl0bGVcIlxuICAgICAgICAgIFt0b29sdGlwXT1cInJlYWx0aW1lSWNvblRpdGxlXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVhbHRpbWVTdGF0ZSgpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJjOHktcHVsc2UgbS0wXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgYWN0aXZlOiBpc1JlYWx0aW1lVG9nZ2xlT24sXG4gICAgICAgICAgICAgIGluYWN0aXZlOiAhaXNSZWFsdGltZVRvZ2dsZU9uXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzh5LW5neC1jb21wb25lbnRzLXdpZGdldHMtaW1wbGVtZW50YXRpb25zLWRhdGFwb2ludHMtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi93aWRnZXRzL2ltcGxlbWVudGF0aW9ucy9kYXRhcG9pbnRzLXRhYmxlL2M4eS1uZ3gtY29tcG9uZW50cy13aWRnZXRzLWltcGxlbWVudGF0aW9ucy1kYXRhcG9pbnRzLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|