@c8y/ngx-components 1021.13.3 → 1021.22.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/alarm-details.component.d.ts +1 -3
- package/alarms/alarm-details.component.d.ts.map +1 -1
- package/alarms/alarm-info.component.d.ts +9 -14
- package/alarms/alarm-info.component.d.ts.map +1 -1
- 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.component.d.ts.map +1 -1
- package/alarms/alarms.helper.d.ts +5 -0
- package/alarms/alarms.helper.d.ts.map +1 -0
- package/alarms/alarms.model.d.ts +30 -0
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/alarms.module.d.ts.map +1 -1
- package/alarms/cockpit/index.d.ts.map +1 -1
- package/alarms/devicemanagement/index.d.ts.map +1 -1
- package/alarms/index.d.ts +5 -4
- package/alarms/index.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/core/router/context-route.component.d.ts +8 -3
- package/core/router/context-route.component.d.ts.map +1 -1
- package/core/router/context-route.service.d.ts +29 -3
- package/core/router/context-route.service.d.ts.map +1 -1
- package/core/router/router-tabs.resolver.d.ts +4 -1
- package/core/router/router-tabs.resolver.d.ts.map +1 -1
- package/core/router/router.model.d.ts +40 -3
- package/core/router/router.model.d.ts.map +1 -1
- package/core/router/router.module.d.ts +2 -1
- package/core/router/router.module.d.ts.map +1 -1
- package/core/router/router.service.d.ts +5 -4
- package/core/router/router.service.d.ts.map +1 -1
- package/core/router/scoped-context-route.service.d.ts +57 -0
- package/core/router/scoped-context-route.service.d.ts.map +1 -0
- package/core/router/view-context.service.d.ts +8 -18
- package/core/router/view-context.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/alarm-details.component.mjs +7 -9
- package/esm2022/alarms/alarm-info.component.mjs +23 -33
- package/esm2022/alarms/alarms-list.component.mjs +5 -16
- package/esm2022/alarms/alarms-view.service.mjs +3 -2
- package/esm2022/alarms/alarms.component.mjs +10 -3
- package/esm2022/alarms/alarms.helper.mjs +32 -0
- package/esm2022/alarms/alarms.model.mjs +1 -1
- package/esm2022/alarms/alarms.module.mjs +5 -5
- package/esm2022/alarms/cockpit/index.mjs +13 -17
- package/esm2022/alarms/devicemanagement/index.mjs +15 -18
- package/esm2022/alarms/index.mjs +6 -5
- 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/core/router/context-route.component.mjs +23 -13
- package/esm2022/core/router/context-route.service.mjs +37 -5
- package/esm2022/core/router/router-tabs.resolver.mjs +46 -15
- package/esm2022/core/router/router.model.mjs +6 -1
- package/esm2022/core/router/router.module.mjs +20 -13
- package/esm2022/core/router/router.service.mjs +24 -10
- package/esm2022/core/router/scoped-context-route.service.mjs +152 -0
- package/esm2022/core/router/view-context.service.mjs +59 -16
- 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-cockpit.mjs +12 -16
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs +14 -17
- package/fesm2022/c8y-ngx-components-alarms-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +203 -185
- 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 +5476 -4396
- 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
|
@@ -2,7 +2,7 @@ import { Pipe } from '@angular/core';
|
|
|
2
2
|
import { TranslateService } from '@ngx-translate/core';
|
|
3
3
|
import { find, get, isUndefined, negate } from 'lodash-es';
|
|
4
4
|
import { of } from 'rxjs';
|
|
5
|
-
import { gettext } from '
|
|
5
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
6
6
|
import { internalApps } from './humanize-app-name.model';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@ngx-translate/core";
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
57
57
|
type: Pipe,
|
|
58
58
|
args: [{ name: 'humanizeAppName', standalone: true }]
|
|
59
59
|
}], ctorParameters: () => [{ type: i1.TranslateService }] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW5pemUtYXBwLW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2h1bWFuaXplLWFwcC1uYW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUV6RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsU0FBUyxDQUFDLFlBQW9DO1FBQzVDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksR0FBRyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxVQUFVLENBQUMsWUFBb0M7UUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztZQUN6QixHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztZQUNoQyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMzRCxPQUFPLENBQUMsV0FBVyxDQUFDO1NBQ3JCLENBQUMsQ0FBQztRQUNILE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFNO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sV0FBVyxDQUFDLFlBQW1DO1FBQ3JELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLE9BQU8sR0FBRzthQUNQLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQzs4R0ExQ1UsbUJBQW1COzRHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGZpbmQsIGdldCwgaXNVbmRlZmluZWQsIG5lZ2F0ZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZ2V0dGV4dCc7XG5pbXBvcnQgeyBpbnRlcm5hbEFwcHMgfSBmcm9tICcuL2h1bWFuaXplLWFwcC1uYW1lLm1vZGVsJztcblxuLypcbiAqIEh1bWFuaXplIGFuIGFwcGxpY2F0aW9uIG5hbWUgYW5kIHRyYW5zbGF0ZXMgaXQuXG4gKiBVc2FnZTpcbiAqICAgYXBwTmFtZU9yQXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmNcbiAqL1xuQFBpcGUoeyBuYW1lOiAnaHVtYW5pemVBcHBOYW1lJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEh1bWFuaXplQXBwTmFtZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHRyYW5zZm9ybShhcHBOYW1lT3JBcHA/OiBJQXBwbGljYXRpb24gfCBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICghYXBwTmFtZU9yQXBwKSB7XG4gICAgICByZXR1cm4gb2YoJycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcE5hbWUgPSB0aGlzLmdldEFwcE5hbWUoYXBwTmFtZU9yQXBwKTtcblxuICAgIGxldCB0ZXh0O1xuICAgIGlmICh0aGlzLmlzUHVibGljQXBwKGFwcE5hbWVPckFwcCkpIHtcbiAgICAgIHRleHQgPSBnZXR0ZXh0KCd7eyBhcHBOYW1lIHwgdHJhbnNsYXRlIH19IChwdWJsaWMpJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHQgPSBhcHBOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0ZXh0LCB7IGFwcE5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFwcE5hbWUoYXBwTmFtZU9yQXBwPzogSUFwcGxpY2F0aW9uIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhcHBOYW1lID0gdGhpcy5nZXRGaXJzdERlZmluZWQoW1xuICAgICAgZ2V0KGFwcE5hbWVPckFwcCwgJ25hbWUnKSxcbiAgICAgIGdldChhcHBOYW1lT3JBcHAsICdjb250ZXh0UGF0aCcpLFxuICAgICAgdHlwZW9mIGFwcE5hbWVPckFwcCA9PT0gJ3N0cmluZycgPyBhcHBOYW1lT3JBcHAgOiB1bmRlZmluZWQsXG4gICAgICBnZXR0ZXh0KCc8bm8gbmFtZT4nKVxuICAgIF0pO1xuICAgIHJldHVybiBpbnRlcm5hbEFwcHNbYXBwTmFtZV0gfHwgdGhpcy5odW1hbml6ZShhcHBOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rmlyc3REZWZpbmVkKHZhbHVlcykge1xuICAgIHJldHVybiBmaW5kKHZhbHVlcywgbmVnYXRlKGlzVW5kZWZpbmVkKSk7XG4gIH1cblxuICBwcml2YXRlIGlzUHVibGljQXBwKGFwcE5hbWVPckFwcDogSUFwcGxpY2F0aW9uIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZ2V0KGFwcE5hbWVPckFwcCwgJ3B1YmxpYycpKTtcbiAgfVxuXG4gIHByaXZhdGUgaHVtYW5pemUoc3RyID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHJcbiAgICAgIC5zcGxpdCgnXycpXG4gICAgICAubWFwKHdvcmQgPT4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpXG4gICAgICAuam9pbignICcpO1xuICB9XG59XG4iXX0=
|
|
@@ -64,4 +64,8 @@ export * from './virtual-scroll/virtual-scroll-window-strategy';
|
|
|
64
64
|
export * from './virtual-scroll/virtual-scroll-window.directive';
|
|
65
65
|
export * from './virtual-scroll/virtual-scroller-wrapper.component';
|
|
66
66
|
export * from './zip.service';
|
|
67
|
-
|
|
67
|
+
export * from './aggregation/aggregation.service';
|
|
68
|
+
export * from './aggregation/aggregation.model';
|
|
69
|
+
export * from './inter-app.service';
|
|
70
|
+
export * from './interval-based-reload.abstract';
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgQXBwbGljYXRpb25PcHRpb25zIH0gZnJvbSAnQGM4eS9vcHRpb25zJztcbmV4cG9ydCB7IFBsdWdpbnNFeHBvcnRTY29wZXMgfSBmcm9tICcuL0FwcGxpY2F0aW9uT3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2Fzc2V0LWxpbmsucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2J5dGVzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLmNvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQtb3V0bGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RldmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24tZGlyZWN0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLWNvbnRleHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXh0ZW5zaW9uLWhvb2tzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvck9mLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvck9mLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJpYy1maWxlLWljb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2dlby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWdyb3VwLWljb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC1jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLWZyYWdtZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2h1bWFuaXplLWFwcC1uYW1lLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vaHVtYW5pemUtYXBwLW5hbWUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2h1bWFuaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pY29uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2lmLWFsbG93ZWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZC1tb3JlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWQtbW9yZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFuYWdlZC1vYmplY3QtdHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcC1mdW5jdGlvbi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFya2Rvd24tdG8taHRtbC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbWVtb2l6ZS5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tby1uYW1lLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9udW1iZXIucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL29wZXJhdGlvbi1yZXN1bHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3V0bGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVsYXRpdmUtdGltZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcmV0cnktd2l0aC1kZWxheS5vcGVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcmVnaXN0cnkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaG9ydGVuLXVzZXItbmFtZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2hvdWxkLXNob3ctbW8ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nob3ctaWYtZmlsdGVyLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9za2lwLWxpbmsuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGUtc2VydmljZS5hYnN0cmFjdCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmluZ2lmeS1vYmplY3QucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhYnNldC1hcmlhLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3RlbmFudC11aS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dGFyZWEtYXV0b3Jlc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90aHJvdHRsZS5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi91aS1zdGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1uYW1lLWluaXRpYWxzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXByZWZlcmVuY2VzL3VzZXItcHJlZmVyZW5jZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItcHJlZmVyZW5jZXMvdXNlci1wcmVmZXJlbmNlcy1zdG9yYWdlLWxvY2FsJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1wcmVmZXJlbmNlcy91c2VyLXByZWZlcmVuY2VzLXN0b3JlLWludmVudG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItcHJlZmVyZW5jZXMvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwtd2luZG93LXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwtd2luZG93LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpcnR1YWwtc2Nyb2xsL3ZpcnR1YWwtc2Nyb2xsZXItd3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi96aXAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0aW9uL2FnZ3JlZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGlvbi9hZ2dyZWdhdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyLWFwcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJ2YWwtYmFzZWQtcmVsb2FkLmFic3RyYWN0JztcbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { combineLatest, firstValueFrom, map } from 'rxjs';
|
|
3
|
+
import { AppStateService } from './ui-state.service';
|
|
4
|
+
import { gettext } from '@c8y/ngx-components/gettext';
|
|
5
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
+
import { AlertService } from '../alert/alert.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export const SupportedApps = {
|
|
9
|
+
devicemanagement: 'devicemanagement-application-key',
|
|
10
|
+
cockpit: 'cockpit-application-key',
|
|
11
|
+
administration: 'administration-application-key'
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Service that provides methods to interact with other applications.
|
|
15
|
+
* It allows retrieving a specific app by key, checking its availability, verifying if it is not the current application,
|
|
16
|
+
* determining if a link to another app should be shown, and navigating to it.
|
|
17
|
+
*/
|
|
18
|
+
export class InterAppService {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.stateService = inject(AppStateService);
|
|
21
|
+
this.alertService = inject(AlertService);
|
|
22
|
+
this.translateService = inject(TranslateService);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieve application by its key as observable.
|
|
26
|
+
* @param key {SupportedAppKey} - Application key.
|
|
27
|
+
* @returns Observable of Application
|
|
28
|
+
*/
|
|
29
|
+
getApp$(key) {
|
|
30
|
+
return this.stateService.currentAppsOfUser.pipe(map(apps => apps.find(app => app.key === key)));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Checks if current application is the same as the one that key is provided
|
|
34
|
+
* @param key {SupportedAppKey} - Application key.
|
|
35
|
+
* @returns Observable of boolean; true if current app matches provided key.
|
|
36
|
+
*/
|
|
37
|
+
isCurrentApp$(key) {
|
|
38
|
+
return this.stateService.currentApplication.pipe(map(app => app?.key === key));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Checks if other (other than current) application link should be displayed. It consists of two conditions:
|
|
42
|
+
* - app that link leads to exists and is available for current user
|
|
43
|
+
* - app link leads to app that is not current app
|
|
44
|
+
* @param appKey {SupportedAppKey} - Application key that link leads to.
|
|
45
|
+
* @returns Observable of boolean; only true when app that link leads to is available and app link leads to app that is not current app
|
|
46
|
+
*/
|
|
47
|
+
shouldShowAppLink$(appKey) {
|
|
48
|
+
return combineLatest([
|
|
49
|
+
this.getApp$(appKey).pipe(map(Boolean)),
|
|
50
|
+
this.isCurrentApp$(appKey).pipe(map(val => !val))
|
|
51
|
+
]).pipe(map(([linkedAppIsAvailable, linkLeadsToOtherAppThanCurrent]) => linkedAppIsAvailable && linkLeadsToOtherAppThanCurrent));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Navigates to app by provided app key
|
|
55
|
+
* @param appKey {SupportedAppKey} - Application key that links leads to.
|
|
56
|
+
* @param path {string} - Additional path in target application.
|
|
57
|
+
*/
|
|
58
|
+
async navigateToApp(appKey, path) {
|
|
59
|
+
const contextPath = await firstValueFrom(this.getApp$(appKey).pipe(map(app => app?.contextPath)));
|
|
60
|
+
if (!contextPath) {
|
|
61
|
+
const msg = this.translateService.instant(gettext('Application with key "{{appKey}}" not found.'), { appKey });
|
|
62
|
+
this.alertService.danger(msg);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const baseUrl = `/apps/${contextPath}`;
|
|
66
|
+
const url = path ? `${baseUrl}/${path}` : baseUrl;
|
|
67
|
+
window.open(url, '_blank', 'noopener,noreferrer');
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InterAppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InterAppService, providedIn: 'root' }); }
|
|
71
|
+
}
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: InterAppService, decorators: [{
|
|
73
|
+
type: Injectable,
|
|
74
|
+
args: [{ providedIn: 'root' }]
|
|
75
|
+
}] });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXItYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2NvbW1vbi9pbnRlci1hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXRELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixnQkFBZ0IsRUFBRSxrQ0FBa0M7SUFDcEQsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxjQUFjLEVBQUUsZ0NBQWdDO0NBQ3hDLENBQUM7QUFHWDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQTZEckQ7SUEzREM7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFNO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsR0FBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsa0JBQWtCLENBQUMsTUFBUztRQUMxQixPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsb0JBQW9CLEVBQUUsOEJBQThCLENBQUMsRUFBRSxFQUFFLENBQ3pELG9CQUFvQixJQUFJLDhCQUE4QixDQUN6RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBUyxFQUFFLElBQWE7UUFDMUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLE9BQU8sQ0FBQyw4Q0FBOEMsQ0FBQyxFQUN2RCxFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLFNBQVMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWxELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBL0RVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2dldHRleHQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBTdXBwb3J0ZWRBcHBzID0ge1xuICBkZXZpY2VtYW5hZ2VtZW50OiAnZGV2aWNlbWFuYWdlbWVudC1hcHBsaWNhdGlvbi1rZXknLFxuICBjb2NrcGl0OiAnY29ja3BpdC1hcHBsaWNhdGlvbi1rZXknLFxuICBhZG1pbmlzdHJhdGlvbjogJ2FkbWluaXN0cmF0aW9uLWFwcGxpY2F0aW9uLWtleSdcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdXBwb3J0ZWRBcHBLZXkgPSAodHlwZW9mIFN1cHBvcnRlZEFwcHMpW2tleW9mIHR5cGVvZiBTdXBwb3J0ZWRBcHBzXTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgcHJvdmlkZXMgbWV0aG9kcyB0byBpbnRlcmFjdCB3aXRoIG90aGVyIGFwcGxpY2F0aW9ucy5cbiAqIEl0IGFsbG93cyByZXRyaWV2aW5nIGEgc3BlY2lmaWMgYXBwIGJ5IGtleSwgY2hlY2tpbmcgaXRzIGF2YWlsYWJpbGl0eSwgdmVyaWZ5aW5nIGlmIGl0IGlzIG5vdCB0aGUgY3VycmVudCBhcHBsaWNhdGlvbixcbiAqIGRldGVybWluaW5nIGlmIGEgbGluayB0byBhbm90aGVyIGFwcCBzaG91bGQgYmUgc2hvd24sIGFuZCBuYXZpZ2F0aW5nIHRvIGl0LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEludGVyQXBwU2VydmljZTxUIGV4dGVuZHMgc3RyaW5nID0gU3VwcG9ydGVkQXBwS2V5PiB7XG4gIHByaXZhdGUgc3RhdGVTZXJ2aWNlID0gaW5qZWN0KEFwcFN0YXRlU2VydmljZSk7XG4gIHByaXZhdGUgYWxlcnRTZXJ2aWNlID0gaW5qZWN0KEFsZXJ0U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICAvKipcbiAgICogUmV0cmlldmUgYXBwbGljYXRpb24gYnkgaXRzIGtleSBhcyBvYnNlcnZhYmxlLlxuICAgKiBAcGFyYW0ga2V5IHtTdXBwb3J0ZWRBcHBLZXl9IC0gQXBwbGljYXRpb24ga2V5LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIEFwcGxpY2F0aW9uXG4gICAqL1xuICBnZXRBcHAkKGtleTogVCk6IE9ic2VydmFibGU8SUFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTZXJ2aWNlLmN1cnJlbnRBcHBzT2ZVc2VyLnBpcGUobWFwKGFwcHMgPT4gYXBwcy5maW5kKGFwcCA9PiBhcHAua2V5ID09PSBrZXkpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGN1cnJlbnQgYXBwbGljYXRpb24gaXMgdGhlIHNhbWUgYXMgdGhlIG9uZSB0aGF0IGtleSBpcyBwcm92aWRlZFxuICAgKiBAcGFyYW0ga2V5IHtTdXBwb3J0ZWRBcHBLZXl9IC0gQXBwbGljYXRpb24ga2V5LlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGJvb2xlYW47IHRydWUgaWYgY3VycmVudCBhcHAgbWF0Y2hlcyBwcm92aWRlZCBrZXkuXG4gICAqL1xuICBpc0N1cnJlbnRBcHAkKGtleTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlU2VydmljZS5jdXJyZW50QXBwbGljYXRpb24ucGlwZShtYXAoYXBwID0+IGFwcD8ua2V5ID09PSBrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgb3RoZXIgKG90aGVyIHRoYW4gY3VycmVudCkgYXBwbGljYXRpb24gbGluayBzaG91bGQgYmUgZGlzcGxheWVkLiBJdCBjb25zaXN0cyBvZiB0d28gY29uZGl0aW9uczpcbiAgICogLSBhcHAgdGhhdCBsaW5rIGxlYWRzIHRvIGV4aXN0cyBhbmQgaXMgYXZhaWxhYmxlIGZvciBjdXJyZW50IHVzZXJcbiAgICogLSBhcHAgbGluayBsZWFkcyB0byBhcHAgdGhhdCBpcyBub3QgY3VycmVudCBhcHBcbiAgICogQHBhcmFtIGFwcEtleSB7U3VwcG9ydGVkQXBwS2V5fSAtIEFwcGxpY2F0aW9uIGtleSB0aGF0IGxpbmsgbGVhZHMgdG8uXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYm9vbGVhbjsgb25seSB0cnVlIHdoZW4gYXBwIHRoYXQgbGluayBsZWFkcyB0byBpcyBhdmFpbGFibGUgYW5kIGFwcCBsaW5rIGxlYWRzIHRvIGFwcCB0aGF0IGlzIG5vdCBjdXJyZW50IGFwcFxuICAgKi9cbiAgc2hvdWxkU2hvd0FwcExpbmskKGFwcEtleTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZ2V0QXBwJChhcHBLZXkpLnBpcGUobWFwKEJvb2xlYW4pKSxcbiAgICAgIHRoaXMuaXNDdXJyZW50QXBwJChhcHBLZXkpLnBpcGUobWFwKHZhbCA9PiAhdmFsKSlcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW2xpbmtlZEFwcElzQXZhaWxhYmxlLCBsaW5rTGVhZHNUb090aGVyQXBwVGhhbkN1cnJlbnRdKSA9PlxuICAgICAgICAgIGxpbmtlZEFwcElzQXZhaWxhYmxlICYmIGxpbmtMZWFkc1RvT3RoZXJBcHBUaGFuQ3VycmVudFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIGFwcCBieSBwcm92aWRlZCBhcHAga2V5XG4gICAqIEBwYXJhbSBhcHBLZXkge1N1cHBvcnRlZEFwcEtleX0gLSBBcHBsaWNhdGlvbiBrZXkgdGhhdCBsaW5rcyBsZWFkcyB0by5cbiAgICogQHBhcmFtIHBhdGgge3N0cmluZ30gLSBBZGRpdGlvbmFsIHBhdGggaW4gdGFyZ2V0IGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgYXN5bmMgbmF2aWdhdGVUb0FwcChhcHBLZXk6IFQsIHBhdGg/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0UGF0aCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5nZXRBcHAkKGFwcEtleSkucGlwZShtYXAoYXBwID0+IGFwcD8uY29udGV4dFBhdGgpKVxuICAgICk7XG4gICAgaWYgKCFjb250ZXh0UGF0aCkge1xuICAgICAgY29uc3QgbXNnID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoJ0FwcGxpY2F0aW9uIHdpdGgga2V5IFwie3thcHBLZXl9fVwiIG5vdCBmb3VuZC4nKSxcbiAgICAgICAgeyBhcHBLZXkgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmRhbmdlcihtc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBiYXNlVXJsID0gYC9hcHBzLyR7Y29udGV4dFBhdGh9YDtcbiAgICBjb25zdCB1cmwgPSBwYXRoID8gYCR7YmFzZVVybH0vJHtwYXRofWAgOiBiYXNlVXJsO1xuXG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { effect, runInInjectionContext } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract class representing an interval reload functionality.
|
|
4
|
+
* This class provides methods and properties for managing an interval-based reload mechanism.
|
|
5
|
+
*/
|
|
6
|
+
export class IntervalBasedReload {
|
|
7
|
+
/**
|
|
8
|
+
* Stops the countdown and triggers a refresh action.
|
|
9
|
+
* This function is responsible for halting the countdown interval component's operation.
|
|
10
|
+
* After stopping the countdown, it emits an `onCountdownEnded` event.
|
|
11
|
+
* This event is used to inform external components that the countdown has ended,
|
|
12
|
+
* typically prompting them to reload or refresh their data.
|
|
13
|
+
*/
|
|
14
|
+
autoRefreshList() {
|
|
15
|
+
if (this.isIntervalRefreshToggleOn && this.isAutoRefreshEnabled) {
|
|
16
|
+
this.countdownIntervalComponent.stop();
|
|
17
|
+
}
|
|
18
|
+
this.onCountdownEnded.emit();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Manages the countdown timer's visibility and state in response to user scrolling.
|
|
22
|
+
*
|
|
23
|
+
* This method toggles the countdown timer based on the user's scrolling behavior. It uses
|
|
24
|
+
* the `disableCountdown` and `enableCountdown` methods for handling the countdown state.
|
|
25
|
+
*
|
|
26
|
+
* - If the user is scrolling down while the countdown is visible (`isScrolling` is true and
|
|
27
|
+
* `hideCountdown` is false), `disableCountdown` is called to stop and hide the countdown,
|
|
28
|
+
* and `isIntervalRefreshToggleOn` is set to false.
|
|
29
|
+
*
|
|
30
|
+
* - If the user has stopped scrolling, the countdown subscription is closed, and the countdown
|
|
31
|
+
* is hidden (`!isScrolling`, `countdownSubscription?.closed`, `hideCountdown`), `enableCountdown`
|
|
32
|
+
* is called to show and restart the countdown, and `isIntervalRefreshToggleOn` is set to true.
|
|
33
|
+
*/
|
|
34
|
+
handleScrolling() {
|
|
35
|
+
// Checks if the user has scrolled down while the countdown is visible
|
|
36
|
+
const onUserScrollDownHide = this.isScrolling && !this.hideCountdown;
|
|
37
|
+
if (onUserScrollDownHide) {
|
|
38
|
+
this.disableCountdown();
|
|
39
|
+
this.isIntervalRefreshToggleOn = false;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Checks if the user has stopped scrolling and the countdown is currently hidden
|
|
43
|
+
const onUserScrollTopShow = !this.isScrolling && this.hideCountdown;
|
|
44
|
+
if (onUserScrollTopShow) {
|
|
45
|
+
this.isIntervalRefreshToggleOn = true;
|
|
46
|
+
this.enableCountdown();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handles the toggle state of the countdown on button click.
|
|
51
|
+
*
|
|
52
|
+
* This method is triggered by a mouse event, typically a click on the countdown toggle button.
|
|
53
|
+
* It toggles `isIntervalRefreshToggleOn` to reflect the current state of the countdown timer.
|
|
54
|
+
*
|
|
55
|
+
* - If `isIntervalRefreshToggleOn` is set to false, indicating that the countdown should be stopped,
|
|
56
|
+
* `disableCountdown` is called, and `manuallyDisabledCountdown` is set to true.
|
|
57
|
+
*
|
|
58
|
+
* - If `isIntervalRefreshToggleOn` is true and the countdown subscription is closed, indicating that
|
|
59
|
+
* the countdown can be started, `enableCountdown` is called, and `manuallyDisabledCountdown`
|
|
60
|
+
* is set to false.
|
|
61
|
+
*
|
|
62
|
+
* @param $event - The MouseEvent that triggered this method.
|
|
63
|
+
*/
|
|
64
|
+
onToggleCountdownButtonState($event) {
|
|
65
|
+
$event.preventDefault();
|
|
66
|
+
this.isIntervalRefreshToggleOn = !this.isIntervalRefreshToggleOn;
|
|
67
|
+
this.updateCountdownButtonTooltipText();
|
|
68
|
+
if (!this.isIntervalRefreshToggleOn) {
|
|
69
|
+
this.disableCountdown();
|
|
70
|
+
this.manuallyDisabledCountdown = true;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (this.isIntervalRefreshToggleOn) {
|
|
74
|
+
this.enableCountdown();
|
|
75
|
+
this.manuallyDisabledCountdown = false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* This function listens for changes in the `isLoading` observable, filtering out any truthy values.
|
|
80
|
+
* Once a falsy value is detected (indicating that loading has finished), it attempts to start the countdown.
|
|
81
|
+
*
|
|
82
|
+
* IMPORTANT: If the widget's configuration (refreshInterval, check template) is not set prior to executing countdownIntervalComponent?.start,
|
|
83
|
+
* the countdown interval will not start!
|
|
84
|
+
*
|
|
85
|
+
* @param injector - The injector used to provide necessary dependencies
|
|
86
|
+
* within the `runInInjectionContext`.
|
|
87
|
+
*/
|
|
88
|
+
startCountdown(injector) {
|
|
89
|
+
runInInjectionContext(injector, () => {
|
|
90
|
+
effect(() => {
|
|
91
|
+
if (!this.isLoading()) {
|
|
92
|
+
this.countdownIntervalComponent?.start();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Disables and hides the countdown timer.
|
|
99
|
+
*
|
|
100
|
+
* This method stops the ongoing countdown process by
|
|
101
|
+
* stopping the `countdownIntervalComponent` if it exists. It then hides the countdown timer
|
|
102
|
+
* by setting `hideCountdown` to true. This method encapsulates the logic required to halt and
|
|
103
|
+
* conceal the countdown timer.
|
|
104
|
+
*/
|
|
105
|
+
disableCountdown() {
|
|
106
|
+
this.countdownIntervalComponent?.stop();
|
|
107
|
+
this.hideCountdown = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtYmFzZWQtcmVsb2FkLmFic3RyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vaW50ZXJ2YWwtYmFzZWQtcmVsb2FkLmFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlGOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsbUJBQW1CO0lBcUN2Qzs7Ozs7O09BTUc7SUFDSCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxlQUFlO1FBQ2Isc0VBQXNFO1FBQ3RFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFckUsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFFRCxpRkFBaUY7UUFDakYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVwRSxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFPRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILDRCQUE0QixDQUFDLE1BQWtCO1FBQzdDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDakUsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsY0FBYyxDQUFDLFFBQWtCO1FBQy9CLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7b0JBQ3RCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBWUQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQjtRQUNkLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0NBTUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBTaWduYWwsIGVmZmVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvdW50ZG93bi1pbnRlcnZhbCc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIGFuIGludGVydmFsIHJlbG9hZCBmdW5jdGlvbmFsaXR5LlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIGZvciBtYW5hZ2luZyBhbiBpbnRlcnZhbC1iYXNlZCByZWxvYWQgbWVjaGFuaXNtLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZXJ2YWxCYXNlZFJlbG9hZCB7XG4gIGFic3RyYWN0IGNvdW50ZG93bkludGVydmFsQ29tcG9uZW50OiBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudDtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGF1dG8tcmVmcmVzaCBpcyBlbmFibGVkIGZvciB0aGUgZGF0YXBvaW50cyByZWxvYWQgY29tcG9uZW50IHRoYXQgaXMgc2V0IGluIHdpZGdldCBjb25maWcuXG4gICAqL1xuICBpc0F1dG9SZWZyZXNoRW5hYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1cnJlbnQgaXNMb2FkaW5nIHN0YXRlLiBCYXNlZCBvbiBpdCBuZXh0IGNvdW50ZG93biBjeWNsZSBpcyBiZWluZyBzdGFydGVkLlxuICAgKi9cbiAgYWJzdHJhY3QgaXNMb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYWxhcm0gbGlzdCBpcyBiZWluZyBzY3JvbGxlZCBvciBub3QuXG4gICAqL1xuICBhYnN0cmFjdCBpc1Njcm9sbGluZzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1cnJlbnQgcmVmcmVzaCBpbnRlcnZhbCBzZXQgaW4gYSB3aWRnZXQgY29uZmlnLlxuICAgKi9cbiAgYWJzdHJhY3QgcmVmcmVzaEludGVydmFsOiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBhIGNvdW50ZG93biBjeWNsZSBoYXMgZW5kZWQuXG4gICAqL1xuICBhYnN0cmFjdCBvbkNvdW50ZG93bkVuZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gaW50ZXJ2YWwgcmVmcmVzaCB0b2dnbGUgYnV0dG9uLlxuICAgKi9cbiAgYWJzdHJhY3QgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbjogYm9vbGVhbjtcblxuICBhYnN0cmFjdCB0b2dnbGVDb3VudGRvd25CdXR0b25Ub29sdGlwVGV4dDogc3RyaW5nO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvdW50ZG93biBoYXMgYmVlbiBtYW51YWxseSBkaXNhYmxlZCBieSB0aGUgdXNlci5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBtYW51YWxseURpc2FibGVkQ291bnRkb3duOiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGNvdW50ZG93biB0aW1lciBjb21wb25lbnQgaW4gdGhlIGN1cnJlbnQgY29tcG9uZW50J3MgVUkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGlkZUNvdW50ZG93bjogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3RvcHMgdGhlIGNvdW50ZG93biBhbmQgdHJpZ2dlcnMgYSByZWZyZXNoIGFjdGlvbi5cbiAgICogVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgaGFsdGluZyB0aGUgY291bnRkb3duIGludGVydmFsIGNvbXBvbmVudCdzIG9wZXJhdGlvbi5cbiAgICogQWZ0ZXIgc3RvcHBpbmcgdGhlIGNvdW50ZG93biwgaXQgZW1pdHMgYW4gYG9uQ291bnRkb3duRW5kZWRgIGV2ZW50LlxuICAgKiBUaGlzIGV2ZW50IGlzIHVzZWQgdG8gaW5mb3JtIGV4dGVybmFsIGNvbXBvbmVudHMgdGhhdCB0aGUgY291bnRkb3duIGhhcyBlbmRlZCxcbiAgICogdHlwaWNhbGx5IHByb21wdGluZyB0aGVtIHRvIHJlbG9hZCBvciByZWZyZXNoIHRoZWlyIGRhdGEuXG4gICAqL1xuICBhdXRvUmVmcmVzaExpc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiAmJiB0aGlzLmlzQXV0b1JlZnJlc2hFbmFibGVkKSB7XG4gICAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50LnN0b3AoKTtcbiAgICB9XG4gICAgdGhpcy5vbkNvdW50ZG93bkVuZGVkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIHRoZSBjb3VudGRvd24gdGltZXIncyB2aXNpYmlsaXR5IGFuZCBzdGF0ZSBpbiByZXNwb25zZSB0byB1c2VyIHNjcm9sbGluZy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgdG9nZ2xlcyB0aGUgY291bnRkb3duIHRpbWVyIGJhc2VkIG9uIHRoZSB1c2VyJ3Mgc2Nyb2xsaW5nIGJlaGF2aW9yLiBJdCB1c2VzXG4gICAqIHRoZSBgZGlzYWJsZUNvdW50ZG93bmAgYW5kIGBlbmFibGVDb3VudGRvd25gIG1ldGhvZHMgZm9yIGhhbmRsaW5nIHRoZSBjb3VudGRvd24gc3RhdGUuXG4gICAqXG4gICAqIC0gSWYgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIGRvd24gd2hpbGUgdGhlIGNvdW50ZG93biBpcyB2aXNpYmxlIChgaXNTY3JvbGxpbmdgIGlzIHRydWUgYW5kXG4gICAqICAgYGhpZGVDb3VudGRvd25gIGlzIGZhbHNlKSwgYGRpc2FibGVDb3VudGRvd25gIGlzIGNhbGxlZCB0byBzdG9wIGFuZCBoaWRlIHRoZSBjb3VudGRvd24sXG4gICAqICAgYW5kIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCBpcyBzZXQgdG8gZmFsc2UuXG4gICAqXG4gICAqIC0gSWYgdGhlIHVzZXIgaGFzIHN0b3BwZWQgc2Nyb2xsaW5nLCB0aGUgY291bnRkb3duIHN1YnNjcmlwdGlvbiBpcyBjbG9zZWQsIGFuZCB0aGUgY291bnRkb3duXG4gICAqICAgaXMgaGlkZGVuIChgIWlzU2Nyb2xsaW5nYCwgYGNvdW50ZG93blN1YnNjcmlwdGlvbj8uY2xvc2VkYCwgYGhpZGVDb3VudGRvd25gKSwgYGVuYWJsZUNvdW50ZG93bmBcbiAgICogICBpcyBjYWxsZWQgdG8gc2hvdyBhbmQgcmVzdGFydCB0aGUgY291bnRkb3duLCBhbmQgYGlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25gIGlzIHNldCB0byB0cnVlLlxuICAgKi9cbiAgaGFuZGxlU2Nyb2xsaW5nKCk6IHZvaWQge1xuICAgIC8vIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgZG93biB3aGlsZSB0aGUgY291bnRkb3duIGlzIHZpc2libGVcbiAgICBjb25zdCBvblVzZXJTY3JvbGxEb3duSGlkZSA9IHRoaXMuaXNTY3JvbGxpbmcgJiYgIXRoaXMuaGlkZUNvdW50ZG93bjtcblxuICAgIGlmIChvblVzZXJTY3JvbGxEb3duSGlkZSkge1xuICAgICAgdGhpcy5kaXNhYmxlQ291bnRkb3duKCk7XG4gICAgICB0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDaGVja3MgaWYgdGhlIHVzZXIgaGFzIHN0b3BwZWQgc2Nyb2xsaW5nIGFuZCB0aGUgY291bnRkb3duIGlzIGN1cnJlbnRseSBoaWRkZW5cbiAgICBjb25zdCBvblVzZXJTY3JvbGxUb3BTaG93ID0gIXRoaXMuaXNTY3JvbGxpbmcgJiYgdGhpcy5oaWRlQ291bnRkb3duO1xuXG4gICAgaWYgKG9uVXNlclNjcm9sbFRvcFNob3cpIHtcbiAgICAgIHRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbiA9IHRydWU7XG4gICAgICB0aGlzLmVuYWJsZUNvdW50ZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IHJlbG9hZCgpOiB2b2lkO1xuICAvKipcbiAgICogV3JhcHBlciBtZXRob2Qgd2hlcmUgaXQncyBuYW1lIGJldHRlciBkZXNjcmliZXMgYSBjb250ZXh0IHdoZXJlIGl0IHdhcyBjYWxsZWQuXG4gICAqL1xuICBhYnN0cmFjdCBjb3VudGRvd25FbmRlZCgpOiB2b2lkO1xuICAvKipcbiAgICogSGFuZGxlcyB0aGUgdG9nZ2xlIHN0YXRlIG9mIHRoZSBjb3VudGRvd24gb24gYnV0dG9uIGNsaWNrLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0cmlnZ2VyZWQgYnkgYSBtb3VzZSBldmVudCwgdHlwaWNhbGx5IGEgY2xpY2sgb24gdGhlIGNvdW50ZG93biB0b2dnbGUgYnV0dG9uLlxuICAgKiBJdCB0b2dnbGVzIGBpc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uYCB0byByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqXG4gICAqIC0gSWYgYGlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT25gIGlzIHNldCB0byBmYWxzZSwgaW5kaWNhdGluZyB0aGF0IHRoZSBjb3VudGRvd24gc2hvdWxkIGJlIHN0b3BwZWQsXG4gICAqICAgYGRpc2FibGVDb3VudGRvd25gIGlzIGNhbGxlZCwgYW5kIGBtYW51YWxseURpc2FibGVkQ291bnRkb3duYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICpcbiAgICogLSBJZiBgaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbmAgaXMgdHJ1ZSBhbmQgdGhlIGNvdW50ZG93biBzdWJzY3JpcHRpb24gaXMgY2xvc2VkLCBpbmRpY2F0aW5nIHRoYXRcbiAgICogICB0aGUgY291bnRkb3duIGNhbiBiZSBzdGFydGVkLCBgZW5hYmxlQ291bnRkb3duYCBpcyBjYWxsZWQsIGFuZCBgbWFudWFsbHlEaXNhYmxlZENvdW50ZG93bmBcbiAgICogICBpcyBzZXQgdG8gZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSAkZXZlbnQgLSBUaGUgTW91c2VFdmVudCB0aGF0IHRyaWdnZXJlZCB0aGlzIG1ldGhvZC5cbiAgICovXG4gIG9uVG9nZ2xlQ291bnRkb3duQnV0dG9uU3RhdGUoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc0ludGVydmFsUmVmcmVzaFRvZ2dsZU9uID0gIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbjtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0KCk7XG5cbiAgICBpZiAoIXRoaXMuaXNJbnRlcnZhbFJlZnJlc2hUb2dnbGVPbikge1xuICAgICAgdGhpcy5kaXNhYmxlQ291bnRkb3duKCk7XG4gICAgICB0aGlzLm1hbnVhbGx5RGlzYWJsZWRDb3VudGRvd24gPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzSW50ZXJ2YWxSZWZyZXNoVG9nZ2xlT24pIHtcbiAgICAgIHRoaXMuZW5hYmxlQ291bnRkb3duKCk7XG4gICAgICB0aGlzLm1hbnVhbGx5RGlzYWJsZWRDb3VudGRvd24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBsaXN0ZW5zIGZvciBjaGFuZ2VzIGluIHRoZSBgaXNMb2FkaW5nYCBvYnNlcnZhYmxlLCBmaWx0ZXJpbmcgb3V0IGFueSB0cnV0aHkgdmFsdWVzLlxuICAgKiBPbmNlIGEgZmFsc3kgdmFsdWUgaXMgZGV0ZWN0ZWQgKGluZGljYXRpbmcgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCksIGl0IGF0dGVtcHRzIHRvIHN0YXJ0IHRoZSBjb3VudGRvd24uXG4gICAqXG4gICAqIElNUE9SVEFOVDogSWYgdGhlIHdpZGdldCdzIGNvbmZpZ3VyYXRpb24gKHJlZnJlc2hJbnRlcnZhbCwgY2hlY2sgdGVtcGxhdGUpIGlzIG5vdCBzZXQgcHJpb3IgdG8gZXhlY3V0aW5nIGNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdGFydCxcbiAgICogdGhlIGNvdW50ZG93biBpbnRlcnZhbCB3aWxsIG5vdCBzdGFydCFcbiAgICpcbiAgICogQHBhcmFtIGluamVjdG9yIC0gVGhlIGluamVjdG9yIHVzZWQgdG8gcHJvdmlkZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzXG4gICAqICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgYHJ1bkluSW5qZWN0aW9uQ29udGV4dGAuXG4gICAqL1xuICBzdGFydENvdW50ZG93bihpbmplY3RvcjogSW5qZWN0b3IpOiB2b2lkIHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRpbmcoKSkge1xuICAgICAgICAgIHRoaXMuY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnQ/LnN0YXJ0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgYW5kIHN0YXJ0cyB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBtYWtlcyB0aGUgY291bnRkb3duIHZpc2libGUgKGBoaWRlQ291bnRkb3duYCBpcyBzZXQgdG8gZmFsc2UpIGFuZCB0aGVuXG4gICAqIHN0YXJ0cyB0aGUgY291bnRkb3duIHByb2Nlc3MuIEl0IGVuc3VyZXMgdGhlIGNvdW50ZG93biB0aW1lciBpcyB1cGRhdGVkIGltbWVkaWF0ZWx5XG4gICAqIGJ5IHRyaWdnZXJpbmcgY2hhbmdlIGRldGVjdGlvbiB3aXRoIGBjZFJlZi5kZXRlY3RDaGFuZ2VzKClgIGJlZm9yZSBzdGFydGluZyB0aGUgY291bnRkb3duLlxuICAgKiBUaGlzIG1ldGhvZCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGluaXRpYXRlIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqL1xuICBhYnN0cmFjdCBlbmFibGVDb3VudGRvd24oKTogdm9pZDtcblxuICAvKipcbiAgICogRGlzYWJsZXMgYW5kIGhpZGVzIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHN0b3BzIHRoZSBvbmdvaW5nIGNvdW50ZG93biBwcm9jZXNzIGJ5XG4gICAqIHN0b3BwaW5nIHRoZSBgY291bnRkb3duSW50ZXJ2YWxDb21wb25lbnRgIGlmIGl0IGV4aXN0cy4gSXQgdGhlbiBoaWRlcyB0aGUgY291bnRkb3duIHRpbWVyXG4gICAqIGJ5IHNldHRpbmcgYGhpZGVDb3VudGRvd25gIHRvIHRydWUuIFRoaXMgbWV0aG9kIGVuY2Fwc3VsYXRlcyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFsdCBhbmRcbiAgICogY29uY2VhbCB0aGUgY291bnRkb3duIHRpbWVyLlxuICAgKi9cbiAgZGlzYWJsZUNvdW50ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93bkludGVydmFsQ29tcG9uZW50Py5zdG9wKCk7XG4gICAgdGhpcy5oaWRlQ291bnRkb3duID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb3VudGRvd24gYnV0dG9uIHRvb2x0aXAgdGV4dCBiYXNlZCBvbiB0aGUgc3RhdGUgb2YgdGhlIGludGVydmFsIHJlZnJlc2ggdG9nZ2xlIHN0YXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHVwZGF0ZUNvdW50ZG93bkJ1dHRvblRvb2x0aXBUZXh0KCk6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -110,14 +110,14 @@ export class CountdownIntervalComponent {
|
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CountdownIntervalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: { countdownInterval: "countdownInterval" }, outputs: { countdownEnded: "countdownEnded" }, ngImport: i0, template: "<div\n class=\"time-elapsed\"\n [style.--timescope]=\"countdownInterval + 'ms'\"\n [title]=\"'{{ secondsLeft }} s / {{ interval }} s' | translate: { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\"\n>\n <svg\n [ngClass]=\"{ 'time-on': runSpinner$ | async }\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n />\n </svg>\n\n <span>{{ secondsUntilRefresh$ | async }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CountdownIntervalComponent, selector: "c8y-countdown-interval", inputs: { countdownInterval: "countdownInterval" }, outputs: { countdownEnded: "countdownEnded" }, ngImport: i0, template: "<div\n class=\"time-elapsed\"\n data-cy=\"c8y-countdown-interval--countdown\"\n [style.--timescope]=\"countdownInterval + 'ms'\"\n [title]=\"'{{ secondsLeft }} s / {{ interval }} s' | translate: { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\"\n>\n <svg\n [ngClass]=\"{ 'time-on': runSpinner$ | async }\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n />\n </svg>\n\n <span>{{ secondsUntilRefresh$ | async }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
114
114
|
}
|
|
115
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CountdownIntervalComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
|
-
args: [{ selector: 'c8y-countdown-interval', template: "<div\n class=\"time-elapsed\"\n [style.--timescope]=\"countdownInterval + 'ms'\"\n [title]=\"'{{ secondsLeft }} s / {{ interval }} s' | translate: { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\"\n>\n <svg\n [ngClass]=\"{ 'time-on': runSpinner$ | async }\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n />\n </svg>\n\n <span>{{ secondsUntilRefresh$ | async }}</span>\n</div>\n" }]
|
|
117
|
+
args: [{ selector: 'c8y-countdown-interval', template: "<div\n class=\"time-elapsed\"\n data-cy=\"c8y-countdown-interval--countdown\"\n [style.--timescope]=\"countdownInterval + 'ms'\"\n [title]=\"'{{ secondsLeft }} s / {{ interval }} s' | translate: { secondsLeft: secondsUntilRefresh$ | async, interval: countdownInterval / 1000 }\"\n>\n <svg\n [ngClass]=\"{ 'time-on': runSpinner$ | async }\"\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n cx=\"20\"\n cy=\"20\"\n r=\"15.8\"\n stroke=\"var(--c8y-brand-primary)\"\n stroke-width=\"6\"\n />\n </svg>\n\n <span>{{ secondsUntilRefresh$ | async }}</span>\n</div>\n" }]
|
|
118
118
|
}], propDecorators: { countdownInterval: [{
|
|
119
119
|
type: Input
|
|
120
120
|
}], countdownEnded: [{
|
|
121
121
|
type: Output
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLWludGVydmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY291bnRkb3duLWludGVydmFsL2NvdW50ZG93bi1pbnRlcnZhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2NvdW50ZG93bi1pbnRlcnZhbC9jb3VudGRvd24taW50ZXJ2YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUvRjs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBZUU7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUlqQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLDZCQUE2QjtRQUN6RCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQTZHaEM7SUFuSUM7O09BRUc7SUFDSCxJQUFhLGlCQUFpQixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDMUQsQ0FBQztJQWdCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxNQUFNO2FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUs7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssMkJBQTJCO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUVwRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssK0JBQStCO1FBQ3JDLE9BQU8sU0FBUyxDQUFPLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDdkQsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUNYLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxvQkFBb0IsQ0FDMUIsV0FBMEIsRUFDMUIsb0JBQXNDO1FBRXRDLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FDckIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDcEUsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXO1FBQ2pCLE9BQU8sS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ2xFLEtBQUssRUFBRSxDQUNSLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssbUJBQW1CLENBQUMsS0FBYTtRQUN2QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssbUJBQW1CLENBQUMsU0FBMkI7UUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbklVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlLQ1p2QyxnbUJBc0JBOzsyRkRWYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU9yQixpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBVUksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBjb3VudCBkb3duIHNwZWNpZmljIHRpbWUgaW50ZXJ2YWwsIHRoZW4gZW1pdCB3aGVuIGNvdW50ZG93biBlbmRzLlxuICogTmV4dCBjb3VudGRvd24gaXMgc3RhcnRlZCByaWdodCBhZnRlciBwcmV2aW91cyBvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb3VudGRvd24taW50ZXJ2YWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291bnRkb3duLWludGVydmFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIGNvdW50IGRvd24gZnJvbS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBjb3VudGRvd25JbnRlcnZhbCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fY291bnRkb3duSW50ZXJ2YWwgPSBNYXRoLm1heCh2YWx1ZSwgdGhpcy5NSU5JTVVNX0lOVEVSVkFMKTtcbiAgfVxuXG4gIGdldCBjb3VudGRvd25JbnRlcnZhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb3VudGRvd25JbnRlcnZhbCB8fCB0aGlzLk1JTklNVU1fSU5URVJWQUw7XG4gIH1cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gY291bnRkb3duIGVuZHMuXG4gICAqL1xuICBAT3V0cHV0KCkgY291bnRkb3duRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcnVuU3Bpbm5lciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgc2Vjb25kc1VudGlsUmVmcmVzaCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuXG4gIHByaXZhdGUgX2NvdW50ZG93bkludGVydmFsOiBudW1iZXI7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTklNVU1fSU5URVJWQUwgPSA1XzAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBPTkVfU0VDT05EID0gMTAwMDsgLy8gT25lIHNlY29uZCBpbiBtaWxsaXNlY29uZHNcbiAgcHJpdmF0ZSBzdGFydCQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIGNvdW50ZG93blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGAke01hdGguZmxvb3IodGhpcy5jb3VudGRvd25JbnRlcnZhbCAvIDEwMDApfWApO1xuICAgIHRoaXMuc3RhcnQkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluaXRpYWxpemVDb3VudGRvd25JbnRlcnZhbCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RhcnQkLm5leHQobnVsbCk7XG4gIH1cblxuICBzdG9wKHN0b3BBdFplcm8gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucnVuU3Bpbm5lciQubmV4dChmYWxzZSk7XG4gICAgaWYgKHN0b3BBdFplcm8pIHtcbiAgICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQubmV4dCgnMCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZHNVbnRpbFJlZnJlc2gkLm5leHQoYCR7TWF0aC5mbG9vcih0aGlzLmNvdW50ZG93bkludGVydmFsIC8gMTAwMCl9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wKCk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqIEtpY2tzIG9mZiB0aGUgdGltZXIgbG9naWMgYW5kIGFjdGl2YXRlcyBhbnkgYXNzb2NpYXRlZCBVSSBlbGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvdW50ZG93bkludGVydmFsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdCBkb2N1bWVudEhpZGRlbkV2ZW50JCA9IHRoaXMuY3JlYXRlRG9jdW1lbnRIaWRkZW5FdmVudFN0cmVhbSgpO1xuXG4gICAgY29uc3QgaW50ZXJ2YWwkID0gdGhpcy5jcmVhdGVJbnRlcnZhbFN0cmVhbSh0aW1lclN0YXJ0JCwgZG9jdW1lbnRIaWRkZW5FdmVudCQpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVUb0ludGVydmFsKGludGVydmFsJCk7XG5cbiAgICB0aW1lclN0YXJ0JC5uZXh0KCk7XG4gICAgdGhpcy5ydW5TcGlubmVyJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBzdHJlYW0gdGhhdCBlbWl0cyBldmVudHMgd2hlbiB0aGUgZG9jdW1lbnQncyB2aXNpYmlsaXR5IGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgYG51bGxgIHdoZW5ldmVyIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBkb2N1bWVudCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEhpZGRlbkV2ZW50U3RyZWFtKCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQ8bnVsbD4oZG9jdW1lbnQsICd2aXNpYmlsaXR5Y2hhbmdlJykucGlwZShcbiAgICAgIG1hcFRvKG51bGwpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBtYWluIGludGVydmFsIE9ic2VydmFibGUgZm9yIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqIEBwYXJhbSB0aW1lclN0YXJ0JCAtIEEgU3ViamVjdCB0byBzaWduYWwgdGhlIHN0YXJ0IG9mIHRoZSB0aW1lci5cbiAgICogQHBhcmFtIGRvY3VtZW50SGlkZGVuRXZlbnQkIC0gQW4gT2JzZXJ2YWJsZSBmb3IgZG9jdW1lbnQgdmlzaWJpbGl0eSBjaGFuZ2VzLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSB0aW1lciBsb2dpYy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlSW50ZXJ2YWxTdHJlYW0oXG4gICAgdGltZXJTdGFydCQ6IFN1YmplY3Q8dm9pZD4sXG4gICAgZG9jdW1lbnRIaWRkZW5FdmVudCQ6IE9ic2VydmFibGU8bnVsbD5cbiAgKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgcmV0dXJuIHRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jcmVhdGVUaW1lcigpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiAoZG9jdW1lbnQuaGlkZGVuID8gZG9jdW1lbnRIaWRkZW5FdmVudCQgOiBvZihudWxsKSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdGltZXIgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGV2ZXJ5IHNlY29uZC5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbnVtYmVyIGV2ZXJ5IHNlY29uZCwgc3RhcnRpbmcgZnJvbSAwLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVUaW1lcigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aW1lcigwLCB0aGlzLk9ORV9TRUNPTkQpLnBpcGUoXG4gICAgICB0YXAodmFsdWUgPT4gdGhpcy51cGRhdGVSZW1haW5pbmdUaW1lKHZhbHVlKSksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gdmFsdWUgPj0gdGhpcy5jb3VudGRvd25JbnRlcnZhbCAvIHRoaXMuT05FX1NFQ09ORCksXG4gICAgICBmaXJzdCgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSByZW1haW5pbmcgdGltZSBpbiB0aGUgY291bnRkb3duLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY3VycmVudCB0aW1lciB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVSZW1haW5pbmdUaW1lKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCByZW1haW5pbmdTZWNvbmRzID0gTWF0aC5mbG9vcih0aGlzLmNvdW50ZG93bkludGVydmFsIC8gdGhpcy5PTkVfU0VDT05EIC0gdmFsdWUpO1xuICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQubmV4dChgJHtyZW1haW5pbmdTZWNvbmRzfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gdGhlIGludGVydmFsIE9ic2VydmFibGUgYW5kIHNldHMgdXAgdGhlIGV2ZW50IGhhbmRsZXJzIGZvciB0aGUgY291bnRkb3duLlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwkIC0gVGhlIGNvdW50ZG93biBpbnRlcnZhbCBPYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9JbnRlcnZhbChpbnRlcnZhbCQ6IE9ic2VydmFibGU8bnVsbD4pOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbiA9IGludGVydmFsJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY291bnRkb3duRW5kZWQuZW1pdCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGltZS1lbGFwc2VkXCJcbiAgW3N0eWxlLi0tdGltZXNjb3BlXT1cImNvdW50ZG93bkludGVydmFsICsgJ21zJ1wiXG4gIFt0aXRsZV09XCIne3sgc2Vjb25kc0xlZnQgfX0gcyAvIHt7IGludGVydmFsIH19IHMnIHwgdHJhbnNsYXRlOiB7IHNlY29uZHNMZWZ0OiBzZWNvbmRzVW50aWxSZWZyZXNoJCB8IGFzeW5jLCBpbnRlcnZhbDogY291bnRkb3duSW50ZXJ2YWwgLyAxMDAwIH1cIlxuPlxuICA8c3ZnXG4gICAgW25nQ2xhc3NdPVwieyAndGltZS1vbic6IHJ1blNwaW5uZXIkIHwgYXN5bmMgfVwiXG4gICAgdmlld0JveD1cIjAgMCA0MCA0MFwiXG4gICAgZmlsbD1cIm5vbmVcIlxuICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICA+XG4gICAgPGNpcmNsZVxuICAgICAgY3g9XCIyMFwiXG4gICAgICBjeT1cIjIwXCJcbiAgICAgIHI9XCIxNS44XCJcbiAgICAgIHN0cm9rZT1cInZhcigtLWM4eS1icmFuZC1wcmltYXJ5KVwiXG4gICAgICBzdHJva2Utd2lkdGg9XCI2XCJcbiAgICAvPlxuICA8L3N2Zz5cblxuICA8c3Bhbj57eyBzZWNvbmRzVW50aWxSZWZyZXNoJCB8IGFzeW5jIH19PC9zcGFuPlxuPC9kaXY+XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLWludGVydmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY291bnRkb3duLWludGVydmFsL2NvdW50ZG93bi1pbnRlcnZhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2NvdW50ZG93bi1pbnRlcnZhbC9jb3VudGRvd24taW50ZXJ2YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUvRjs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBZUU7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUlqQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLDZCQUE2QjtRQUN6RCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQTZHaEM7SUFuSUM7O09BRUc7SUFDSCxJQUFhLGlCQUFpQixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0Is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IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0byBjb3VudCBkb3duIHNwZWNpZmljIHRpbWUgaW50ZXJ2YWwsIHRoZW4gZW1pdCB3aGVuIGNvdW50ZG93biBlbmRzLlxuICogTmV4dCBjb3VudGRvd24gaXMgc3RhcnRlZCByaWdodCBhZnRlciBwcmV2aW91cyBvbmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb3VudGRvd24taW50ZXJ2YWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY291bnRkb3duLWludGVydmFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDb3VudGRvd25JbnRlcnZhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIGNvdW50IGRvd24gZnJvbS5cbiAgICovXG4gIEBJbnB1dCgpIHNldCBjb3VudGRvd25JbnRlcnZhbCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fY291bnRkb3duSW50ZXJ2YWwgPSBNYXRoLm1heCh2YWx1ZSwgdGhpcy5NSU5JTVVNX0lOVEVSVkFMKTtcbiAgfVxuXG4gIGdldCBjb3VudGRvd25JbnRlcnZhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb3VudGRvd25JbnRlcnZhbCB8fCB0aGlzLk1JTklNVU1fSU5URVJWQUw7XG4gIH1cbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gY291bnRkb3duIGVuZHMuXG4gICAqL1xuICBAT3V0cHV0KCkgY291bnRkb3duRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcnVuU3Bpbm5lciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgc2Vjb25kc1VudGlsUmVmcmVzaCQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuXG4gIHByaXZhdGUgX2NvdW50ZG93bkludGVydmFsOiBudW1iZXI7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTklNVU1fSU5URVJWQUwgPSA1XzAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBPTkVfU0VDT05EID0gMTAwMDsgLy8gT25lIHNlY29uZCBpbiBtaWxsaXNlY29uZHNcbiAgcHJpdmF0ZSBzdGFydCQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIGNvdW50ZG93blN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGAke01hdGguZmxvb3IodGhpcy5jb3VudGRvd25JbnRlcnZhbCAvIDEwMDApfWApO1xuICAgIHRoaXMuc3RhcnQkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluaXRpYWxpemVDb3VudGRvd25JbnRlcnZhbCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RhcnQkLm5leHQobnVsbCk7XG4gIH1cblxuICBzdG9wKHN0b3BBdFplcm8gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY291bnRkb3duU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucnVuU3Bpbm5lciQubmV4dChmYWxzZSk7XG4gICAgaWYgKHN0b3BBdFplcm8pIHtcbiAgICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQubmV4dCgnMCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY29uZHNVbnRpbFJlZnJlc2gkLm5leHQoYCR7TWF0aC5mbG9vcih0aGlzLmNvdW50ZG93bkludGVydmFsIC8gMTAwMCl9YCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wKCk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqIEtpY2tzIG9mZiB0aGUgdGltZXIgbG9naWMgYW5kIGFjdGl2YXRlcyBhbnkgYXNzb2NpYXRlZCBVSSBlbGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvdW50ZG93bkludGVydmFsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpbWVyU3RhcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBjb25zdCBkb2N1bWVudEhpZGRlbkV2ZW50JCA9IHRoaXMuY3JlYXRlRG9jdW1lbnRIaWRkZW5FdmVudFN0cmVhbSgpO1xuXG4gICAgY29uc3QgaW50ZXJ2YWwkID0gdGhpcy5jcmVhdGVJbnRlcnZhbFN0cmVhbSh0aW1lclN0YXJ0JCwgZG9jdW1lbnRIaWRkZW5FdmVudCQpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmVUb0ludGVydmFsKGludGVydmFsJCk7XG5cbiAgICB0aW1lclN0YXJ0JC5uZXh0KCk7XG4gICAgdGhpcy5ydW5TcGlubmVyJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBzdHJlYW0gdGhhdCBlbWl0cyBldmVudHMgd2hlbiB0aGUgZG9jdW1lbnQncyB2aXNpYmlsaXR5IGNoYW5nZXMuXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgYG51bGxgIHdoZW5ldmVyIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBkb2N1bWVudCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEhpZGRlbkV2ZW50U3RyZWFtKCk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQ8bnVsbD4oZG9jdW1lbnQsICd2aXNpYmlsaXR5Y2hhbmdlJykucGlwZShcbiAgICAgIG1hcFRvKG51bGwpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBtYWluIGludGVydmFsIE9ic2VydmFibGUgZm9yIHRoZSBjb3VudGRvd24gdGltZXIuXG4gICAqIEBwYXJhbSB0aW1lclN0YXJ0JCAtIEEgU3ViamVjdCB0byBzaWduYWwgdGhlIHN0YXJ0IG9mIHRoZSB0aW1lci5cbiAgICogQHBhcmFtIGRvY3VtZW50SGlkZGVuRXZlbnQkIC0gQW4gT2JzZXJ2YWJsZSBmb3IgZG9jdW1lbnQgdmlzaWJpbGl0eSBjaGFuZ2VzLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSB0aW1lciBsb2dpYy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlSW50ZXJ2YWxTdHJlYW0oXG4gICAgdGltZXJTdGFydCQ6IFN1YmplY3Q8dm9pZD4sXG4gICAgZG9jdW1lbnRIaWRkZW5FdmVudCQ6IE9ic2VydmFibGU8bnVsbD5cbiAgKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgcmV0dXJuIHRpbWVyU3RhcnQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jcmVhdGVUaW1lcigpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiAoZG9jdW1lbnQuaGlkZGVuID8gZG9jdW1lbnRIaWRkZW5FdmVudCQgOiBvZihudWxsKSkpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdGltZXIgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGV2ZXJ5IHNlY29uZC5cbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbnVtYmVyIGV2ZXJ5IHNlY29uZCwgc3RhcnRpbmcgZnJvbSAwLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVUaW1lcigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aW1lcigwLCB0aGlzLk9ORV9TRUNPTkQpLnBpcGUoXG4gICAgICB0YXAodmFsdWUgPT4gdGhpcy51cGRhdGVSZW1haW5pbmdUaW1lKHZhbHVlKSksXG4gICAgICBmaWx0ZXIodmFsdWUgPT4gdmFsdWUgPj0gdGhpcy5jb3VudGRvd25JbnRlcnZhbCAvIHRoaXMuT05FX1NFQ09ORCksXG4gICAgICBmaXJzdCgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSByZW1haW5pbmcgdGltZSBpbiB0aGUgY291bnRkb3duLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY3VycmVudCB0aW1lciB2YWx1ZSBpbiBzZWNvbmRzLlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVSZW1haW5pbmdUaW1lKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCByZW1haW5pbmdTZWNvbmRzID0gTWF0aC5mbG9vcih0aGlzLmNvdW50ZG93bkludGVydmFsIC8gdGhpcy5PTkVfU0VDT05EIC0gdmFsdWUpO1xuICAgIHRoaXMuc2Vjb25kc1VudGlsUmVmcmVzaCQubmV4dChgJHtyZW1haW5pbmdTZWNvbmRzfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gdGhlIGludGVydmFsIE9ic2VydmFibGUgYW5kIHNldHMgdXAgdGhlIGV2ZW50IGhhbmRsZXJzIGZvciB0aGUgY291bnRkb3duLlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwkIC0gVGhlIGNvdW50ZG93biBpbnRlcnZhbCBPYnNlcnZhYmxlIHRvIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9JbnRlcnZhbChpbnRlcnZhbCQ6IE9ic2VydmFibGU8bnVsbD4pOiB2b2lkIHtcbiAgICB0aGlzLmNvdW50ZG93blN1YnNjcmlwdGlvbiA9IGludGVydmFsJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY291bnRkb3duRW5kZWQuZW1pdCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGltZS1lbGFwc2VkXCJcbiAgZGF0YS1jeT1cImM4eS1jb3VudGRvd24taW50ZXJ2YWwtLWNvdW50ZG93blwiXG4gIFtzdHlsZS4tLXRpbWVzY29wZV09XCJjb3VudGRvd25JbnRlcnZhbCArICdtcydcIlxuICBbdGl0bGVdPVwiJ3t7IHNlY29uZHNMZWZ0IH19IHMgLyB7eyBpbnRlcnZhbCB9fSBzJyB8IHRyYW5zbGF0ZTogeyBzZWNvbmRzTGVmdDogc2Vjb25kc1VudGlsUmVmcmVzaCQgfCBhc3luYywgaW50ZXJ2YWw6IGNvdW50ZG93bkludGVydmFsIC8gMTAwMCB9XCJcbj5cbiAgPHN2Z1xuICAgIFtuZ0NsYXNzXT1cInsgJ3RpbWUtb24nOiBydW5TcGlubmVyJCB8IGFzeW5jIH1cIlxuICAgIHZpZXdCb3g9XCIwIDAgNDAgNDBcIlxuICAgIGZpbGw9XCJub25lXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgPlxuICAgIDxjaXJjbGVcbiAgICAgIGN4PVwiMjBcIlxuICAgICAgY3k9XCIyMFwiXG4gICAgICByPVwiMTUuOFwiXG4gICAgICBzdHJva2U9XCJ2YXIoLS1jOHktYnJhbmQtcHJpbWFyeSlcIlxuICAgICAgc3Ryb2tlLXdpZHRoPVwiNlwiXG4gICAgLz5cbiAgPC9zdmc+XG5cbiAgPHNwYW4+e3sgc2Vjb25kc1VudGlsUmVmcmVzaCQgfCBhc3luYyB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
|
|
@@ -13,8 +13,9 @@ import * as i4 from "@angular/common";
|
|
|
13
13
|
import * as i5 from "@angular/cdk/drag-drop";
|
|
14
14
|
import * as i6 from "ngx-bootstrap/dropdown";
|
|
15
15
|
import * as i7 from "ngx-bootstrap/tooltip";
|
|
16
|
-
import * as i8 from "./
|
|
17
|
-
import * as i9 from "
|
|
16
|
+
import * as i8 from "./widget-auto-refresh-context/widget-auto-refresh-context-icon-bar.component";
|
|
17
|
+
import * as i9 from "./wiget-time-context/widget-time-context-icon-bar/widget-time-context-icon-bar.component";
|
|
18
|
+
import * as i10 from "@ngx-translate/core";
|
|
18
19
|
/**
|
|
19
20
|
* A dashboard child allows to position elements
|
|
20
21
|
* correctly on a grid.
|
|
@@ -250,13 +251,13 @@ export class DashboardChildComponent {
|
|
|
250
251
|
return false;
|
|
251
252
|
}
|
|
252
253
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DashboardChildComponent, deps: [{ token: i1.DashboardComponent }, { token: i2.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", useIntersection: "useIntersection", isFrozen: "isFrozen", canToggleFullscreen: "canToggleFullscreen", editMode: "editMode", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd", toggleFullscreen: "toggleFullscreen" }, host: { properties: { "class.fullscreen": "this.fullscreen", "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click "Edit widgets" to unlock' | translate\"\n tooltip=\"{{ 'Click "Edit widgets" to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i8.WidgetAutoRefreshContextIconBarComponent, selector: "c8y-widget-auto-refresh-context-icon-bar" }, { kind: "component", type: i9.WidgetTimeContextIconBar, selector: "c8y-widget-time-context-icon-bar", inputs: ["config"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }] }); }
|
|
254
255
|
}
|
|
255
256
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DashboardChildComponent, decorators: [{
|
|
256
257
|
type: Component,
|
|
257
258
|
args: [{ selector: 'c8y-dashboard-child', host: {
|
|
258
259
|
class: 'dashboard-grid-child'
|
|
259
|
-
}, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [
|
|
260
|
+
}, template: "<div cdkDropList>\n <div\n class=\"card-placeholder\"\n *ngIf=\"isResize\"\n ></div>\n <div\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n [ngClass]=\"klasses\"\n cdkDrag\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"(isOneColumnView$ | async) || !editMode || fullscreen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{\n 'drag-handle': editMode && !fullscreen,\n draggableCursor: editMode && !fullscreen\n }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div\n class=\"header-actions d-flex a-i-center\"\n *ngIf=\"actions.length > 0\"\n >\n <c8y-widget-time-context-icon-bar\n *ngIf=\"data?.config?.displaySettings && data?.config?.widgetInstanceGlobalTimeContext\"\n [config]=\"data.config\"\n ></c8y-widget-time-context-icon-bar>\n <c8y-widget-auto-refresh-context-icon-bar\n *ngIf=\"\n data?.config?.widgetInstanceGlobalAutoRefreshContext &&\n data?.config?.displaySettings.globalAutoRefreshContext\n \"\n ></c8y-widget-auto-refresh-context-icon-bar>\n\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Full screen' | translate\"\n [tooltip]=\"fullscreen ? ('Exit full screen' | translate) : ('Full screen' | translate)\"\n delay=\"500\"\n container=\"body\"\n [disabled]=\"editMode || !canToggleFullscreen\"\n (click)=\"toggleFullscreen.next()\"\n data-cy=\"c8y-dashboard-child--settings-fullscreen\"\n >\n <i [c8yIcon]=\"fullscreen ? 'compress' : 'expand'\"></i>\n </button>\n <div\n class=\"optionsBtn dropdown\"\n placement=\"bottom right\"\n dropdown\n [container]=\"'body'\"\n >\n <button\n class=\"btn btn-icon c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n aria-haspopup=\"true\"\n *ngIf=\"editMode\"\n data-cy=\"c8y-dashboard-child--settings\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <button\n class=\"btn btn-icon\"\n [attr.aria-label]=\"'Click "Edit widgets" to unlock' | translate\"\n tooltip=\"{{ 'Click "Edit widgets" to unlock' | translate }}\"\n container=\"body\"\n *ngIf=\"!editMode\"\n (click)=\"(false)\"\n data-cy=\"c8y-dashboard-child--settings-locked\"\n >\n <i [c8yIcon]=\"'lock'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n data-cy=\"c8y-dashboard-child--actions-dropdown\"\n style=\"right: -1px\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n class=\"resize-handle hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n cdkDrag\n [cdkDragDisabled]=\"!editMode || fullscreen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div\n class=\"resize-icon hidden-xs\"\n *ngIf=\"editMode && !isDragging && !fullscreen\"\n ></div>\n\n <div\n class=\"card-placeholder\"\n *cdkDragPlaceholder\n ></div>\n </div>\n</div>\n" }]
|
|
260
261
|
}], ctorParameters: () => [{ type: i1.DashboardComponent }, { type: i2.DomSanitizer }, { type: i0.ElementRef }], propDecorators: { templateActions: [{
|
|
261
262
|
type: ContentChildren,
|
|
262
263
|
args: [DashboardChildActionComponent]
|
|
@@ -295,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
295
296
|
type: HostBinding,
|
|
296
297
|
args: ['attr.style']
|
|
297
298
|
}] } });
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBRTlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQVFILE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBb0QsZUFBZSxDQUNqRSxPQUF3QztRQUV4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBZ0REOzs7O09BSUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQWdDRDs7T0FFRztJQUNILElBQUksT0FBTyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQTJCRDs7O09BR0c7SUFDSCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7eUJBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztzQkFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7NEJBQ0osSUFBSSxDQUFDLEtBQUs7eUJBQ2IsSUFBSSxDQUFDLE1BQU07O2NBRXRCLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTthQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFO0tBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFRRCxZQUNTLFNBQTZCLEVBQzVCLFNBQXVCLEVBQ3hCLE9BQW1CO1FBRm5CLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQTlKNUIsWUFBTyxHQUFvQyxFQUFFLENBQUM7UUFPOUMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixhQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFHbkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNWLG9EQUErQyxHQUFHLEdBQUcsQ0FBQztRQVkvRDs7V0FFRztRQUNNLFVBQUssR0FBRyxDQUFDLENBQUM7UUFFbkI7O1dBRUc7UUFDTSxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBT3BCOztXQUVHO1FBQ00sV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVyQjs7V0FFRztRQUNNLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBYWpDLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUUzQjs7O1dBR0c7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOztXQUVHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUVwRTs7V0FFRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUVsRTs7V0FFRztRQUNPLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEQ7O1dBRUc7UUFFSCxVQUFLLEdBQTBDLEVBQUUsQ0FBQztRQWdCbEQ7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBd0IsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3RFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLE9BQU8sQ0FDTCxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsK0NBQStDLENBQzdGLENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FDUCxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsK0NBQStDLENBQzdGLENBQ0YsQ0FBQztRQUVGOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFDSCxlQUFVLEdBQXNCLElBQUksQ0FBQztJQTZCbEMsQ0FBQztJQUVKLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsSUFBSSxFQUFFLElBQUk7WUFDVixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUMxQixHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksc0JBQXNCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLG9CQUFvQixDQUNuRCxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQzlFLENBQUM7WUFDRixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQW9CO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFtQjtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBd0MsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUNsRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVE7UUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0E1UVUsdUJBQXVCO2tHQUF2Qix1QkFBdUIsdWpCQUVqQiw2QkFBNkIsa0RDL0RoRCwrK0dBMEdBOzsyRkQ3Q2EsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNFLHFCQUFxQixRQUV6Qjt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5QjsySUFJbUQsZUFBZTtzQkFBbEUsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBYzlDLFVBQVU7c0JBRFQsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBT3RCLENBQUM7c0JBQVQsS0FBSztnQkFLRyxDQUFDO3NCQUFULEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQU1OLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBTVAsS0FBSztzQkFESixLQUFLO2dCQStDRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdFbmQsIENka0RyYWdTdGFydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLWNoaWxkLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1jaGFuZ2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXNoYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkRGltZW5zaW9uLCBXaWRnZXQgfSBmcm9tICcuL2Rhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEEgZGFzaGJvYXJkIGNoaWxkIGFsbG93cyB0byBwb3NpdGlvbiBlbGVtZW50c1xuICogY29ycmVjdGx5IG9uIGEgZ3JpZC5cbiAqXG4gKiBCeSBzZXR0aW5nIGBjOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbnNgIGFuZFxuICogYGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVgIG9uIHRoZSBlbGVtZW50IHlvdSBjYW4gYWRkXG4gKiBjdXN0b20gYWN0aW9ucyBvciBhIGN1c3RvbSB0aXRsZSB0byB0aGUgY3VycmVudCBjaGlsZC5cbiAqXG4gKiBCeSBhZGRpbmcgdGhlIGNvcnJlY3QgYnJhbmRlZCBjbGFzc2VzLCB5b3UgY2FuIGRlZmluZVxuICogdGhlIGxvb2sgYW5kIGZlZWwgb2YgdGhlIGNoaWxkLiBCeSBkZWZhdWx0IGl0IGlzIGRpc3BsYXllZFxuICogYXMgYSBjYXJkLlxuICpcbiAqIGBgYGh0bWxcbiAqICAgPGM4eS1kYXNoYm9hcmQtY2hpbGRcbiAqICAgICAjY3BXaWRnZXQzXG4gKiAgICAgW3hdPVwiMFwiXG4gKiAgICAgW3ldPVwiM1wiXG4gKiAgICAgW3dpZHRoXT1cIjRcIlxuICogICAgIFtoZWlnaHRdPVwiNFwiXG4gKiAgICAgW2NsYXNzXT1cIidjYXJkLWRhc2hib2FyZCBwYW5lbC1jb250ZW50LXRyYW5zcGFyZW50J1wiXG4gKiAgID5cbiAqICAgICA8Yzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZSAqbmdJZj1cInNob3dUaXRsZVwiPlxuICogICAgICAgPHNwYW4+VHJhbnNwYXJlbnQhPC9zcGFuPlxuICogICAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZT5cbiAqICAgICA8Yzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb24+XG4gKiAgICAgICA8YSBocmVmPVwiXCIgKGNsaWNrKT1cInNob3dUaXRsZSA9ICFzaG93VGl0bGU7IChmYWxzZSlcIj5cbiAqICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2hlYWRpbmcnXCI+PC9pPiBIaWRlL3Nob3cgdGl0bGVcbiAqICAgICAgIDwvYT5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgIHg6IHt7IGNwV2lkZ2V0My54IH19PGJyIC8+XG4gKiAgICAgeToge3sgY3BXaWRnZXQzLnkgfX08YnIgLz5cbiAqICAgICB3aWR0aDoge3sgY3BXaWRnZXQzLndpZHRoIH19PGJyIC8+XG4gKiAgICAgaGVpZ2h0OiB7eyBjcFdpZGdldDMuaGVpZ2h0IH19PGJyIC8+XG4gKiAgIDwvYzh5LWRhc2hib2FyZC1jaGlsZD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGFzaGJvYXJkLWNoaWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2Rhc2hib2FyZC1ncmlkLWNoaWxkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENoaWxkQ29tcG9uZW50IGltcGxlbWVudHMgRGFzaGJvYXJkQ2hpbGREaW1lbnNpb24ge1xuICBhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdID0gW107XG4gIEBDb250ZW50Q2hpbGRyZW4oRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQpIHNldCB0ZW1wbGF0ZUFjdGlvbnMoXG4gICAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXVxuICApIHtcbiAgICB0aGlzLmFkZEFjdGlvbnMoYWN0aW9ucywgdHJ1ZSk7XG4gIH1cbiAgZHJhZ1NvdXJjZTogQ2RrRHJhZztcbiAgaXNSZXNpemUgPSBmYWxzZTtcbiAgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBrbGFzc2VzID0ge307XG5cbiAgX3B4V2lkdGggPSAnMTAwJSc7XG4gIF9weEhlaWdodCA9ICcxMDAlJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZ1bGxzY3JlZW4nKVxuICBmdWxsc2NyZWVuID0gZmFsc2U7XG4gIHJlYWRvbmx5IE1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZID0gNzY4O1xuXG4gIC8qKlxuICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB4O1xuXG4gIC8qKlxuICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgY2hpbGQuXG4gICAqL1xuICBASW5wdXQoKSB5O1xuXG4gIC8qKlxuICAgKiBUaGUgd2lkdGggb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLWNvbHVtbnMuXG4gICAqL1xuICBASW5wdXQoKSB3aWR0aCA9IDE7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudCBpbiBncmlkLXJvd3MuXG4gICAqL1xuICBASW5wdXQoKSBoZWlnaHQgPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgYXMgYSBkYXRhVHJhbnNmZXIgb2JqZWN0IGZvciBldmVudHMgb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgZGF0YTogV2lkZ2V0IHwgYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFyZ2luIG9mIHRoZSBjaGlsZCBpbiBwaXhlbC5cbiAgICovXG4gIEBJbnB1dCgpIG1hcmdpbiA9IDEyO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgY29udGVudCBpcyBpbml0aWFsaXplZCwgYXMgc29vbiBpdCBpcyBzY3JvbGxlZCBpbnRvIHZpZXdwb3J0XG4gICAqL1xuICBASW5wdXQoKSB1c2VJbnRlcnNlY3Rpb24gPSBmYWxzZTtcblxuICAvKipcbiAgICogSWYgYSBkYXNoYm9hcmQgaXMgZnJvemVuLCBhbGwgY2hpbGRyZW4gY2Fubm90IGJlIG1vdmVkXG4gICAqIG9yIHJlc2l6ZWQuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBlZGl0TW9kZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBpc0Zyb3plbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZWRpdE1vZGUgPSAhdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKVxuICBjYW5Ub2dnbGVGdWxsc2NyZWVuID0gdHJ1ZTtcblxuICAvKipcbiAgICogSWYgYSBkYXNoYm9hcmQgZWRpdGluZyBpcyBkaXNhYmxlZCBubyB3aWRnZXRzIGNhbiBiZSBtb3ZlZCwgZWRpdGVkLCByZW1vdmVkXG4gICAqIG9yIGFkZGVkLlxuICAgKi9cbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgc3RhcnRlZCAoZHJhZ2dpbmcgb3IgcmVzaXppbmcpXG4gICAqL1xuICBAT3V0cHV0KCkgY2hhbmdlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiBhIGNoaWxkIGNoYW5nZSBpcyBlbmRlZFxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ2hpbGRDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIHRoZSBmdWxsc2NyZWVuIHRvZ2dsZSBidXR0b24gd2FzIHByZXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgdG9nZ2xlRnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogQWxsIGNsYXNzZXMgYWRkZWQgdG8gdGhpcyBjaGlsZFxuICAgKi9cbiAgQElucHV0KClcbiAgY2xhc3M6IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgd2lkdGggb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweFdpZHRoKHZhbHVlKSB7XG4gICAgdGhpcy5fcHhXaWR0aCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwaXhlbCBoZWlnaHQgb2YgdGhlIGNoaWxkICh1c2VkIGZvciByZXNpemluZylcbiAgICovXG4gIHNldCBweEhlaWdodCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gYCR7dmFsdWV9cHhgO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIG9uIGV2ZXJ5IHJlc2l6ZSBhbmQgcmV0dXJucyB0cnVlIGlmIGluIG9uZSBjb2x1bW4gdmlldyAobW9iaWxlIHZpZXcpXG4gICAqL1xuICBpc09uZUNvbHVtblZpZXckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoXG4gICAgbWFwKF8gPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDw9IHRoaXMuTURfQk9PVFNUUkFQX0JSRUFLUE9JTlRfUkVBRE9OTFlfQ0xBU1NfUFJPUEVSVFlcbiAgICAgICk7XG4gICAgfSksXG4gICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgc3RhcnRXaXRoKFxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDw9IHRoaXMuTURfQk9PVFNUUkFQX0JSRUFLUE9JTlRfUkVBRE9OTFlfQ0xBU1NfUFJPUEVSVFlcbiAgICApXG4gICk7XG5cbiAgLyoqXG4gICAqIEFuIGluZGljYXRvciBpZiB0aGUgY2hpbGQgaXMgaW50ZXJzZWN0ZWQgKHRoYXQgbWVhbiB2aXNpYmxlIGZvciB0aGUgdXNlcilcbiAgICovXG4gIGludGVyc2VjdGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRlbGxzIGlmIHRoZSBsYXN0IGNoYW5nZSB3YXMgYSBkcmFnZ2luZyBvciByZXNpemluZyBldmVudDtcbiAgICovXG4gIGxhc3RDaGFuZ2U6ICdkcmFnJyB8ICdyZXNpemUnID0gbnVsbDtcblxuICAvKipcbiAgICogbmFzdHkgd29ya2Fyb3VuZCBmb3IgdGhhdCBpc3N1ZTpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvOTM0M1xuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnN0eWxlJylcbiAgZ2V0IGlubGluZVN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYFxuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAke3RoaXMueCArIDF9O1xuICAgIGdyaWQtcm93LXN0YXJ0OiAke3RoaXMueSArIDF9O1xuICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAke3RoaXMud2lkdGh9O1xuICAgIGdyaWQtcm93LWVuZDogc3BhbiAke3RoaXMuaGVpZ2h0fTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46ICR7dGhpcy5tYXJnaW4gfHwgMTJ9cHg7XG4gICAgb3JkZXI6ICR7dGhpcy5nZXRPcmRlcigpfTtcbiAgICBgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb24gd2hpY2ggaXMgbGlzdGVuIHRvXG4gICAqIG9uIGNoYW5nZXMgKGRyYWcgb3IgcmVzaXplKS5cbiAgICovXG4gIGNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkYXNoYm9hcmQ6IERhc2hib2FyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmtsYXNzZXMgPSB7XG4gICAgICBjYXJkOiB0cnVlLFxuICAgICAgJ2NhcmQtZGFzaGJvYXJkJzogdHJ1ZSxcbiAgICAgICdvbi1yZXNpemUnOiB0aGlzLmlzUmVzaXplLFxuICAgICAgLi4udGhpcy5jbGFzc1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy54ID09PSB1bmRlZmluZWQgfHwgdGhpcy55ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXREeW5hbWljRGltZW5zaW9uKCkpO1xuICAgIH1cbiAgICBpZiAodGhpcy51c2VJbnRlcnNlY3Rpb24gJiYgJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICBldmVudHMgPT4gKHRoaXMuaW50ZXJzZWN0ZWQgPSB0aGlzLmNoaWxkSW5WaWV3KGV2ZW50cywgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIpKVxuICAgICAgKTtcbiAgICAgIGludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVyc2VjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4ucHVzaCh0aGlzKTtcbiAgfVxuXG4gIHNldER5bmFtaWNEaW1lbnNpb24oKSB7XG4gICAgY29uc3QgZHMgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgY29uc3QgeyB4LCB5IH0gPSBkcy5maW5kRnJlZURpbWVuc2lvbigpO1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcblxuICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gIH1cblxuICByZXNpemVTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IHRydWU7XG4gICAgdGhpcy5kYXNoYm9hcmQudXBkYXRlUmVjdFNpemUoKTtcbiAgICB0aGlzLmRyYWdTb3VyY2UgPSAkZXZlbnQuc291cmNlO1xuICAgIGNvbnN0IHBvc2l0aW9uaW5nID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uID0gcG9zaXRpb25pbmcucmVzaXplJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICB9XG5cbiAgZHJhZ1N0YXJ0ZWQoJGV2ZW50OiBDZGtEcmFnU3RhcnQpIHtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLmRyYWckLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2hhbmdlU3RhcnQuZW1pdCh0aGlzKTtcbiAgfVxuXG4gIHJlc2V0KCRldmVudD86IENka0RyYWdFbmQpIHtcbiAgICB0aGlzLmxhc3RDaGFuZ2UgPSB0aGlzLmlzUmVzaXplID8gJ3Jlc2l6ZScgOiAnZHJhZyc7XG4gICAgdGhpcy5pc1Jlc2l6ZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuX3B4V2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy5fcHhIZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcygpO1xuICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICRldmVudC5zb3VyY2UucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5kYXNoYm9hcmQuZW1pdENoYW5nZSh0aGlzKTtcbiAgICAgIHRoaXMuY2hhbmdlRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVNlbGZGcm9tRGFzaGJvYXJkKCk7XG4gIH1cblxuICBhZGRBY3Rpb25zKGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W10sIHByZXBlbmQgPSBmYWxzZSkge1xuICAgIGlmIChwcmVwZW5kKSB7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBbLi4uYWN0aW9ucywgLi4udGhpcy5hY3Rpb25zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLnRoaXMuYWN0aW9ucywgLi4uYWN0aW9uc107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpIHtcbiAgICBjb25zdCBpID0gdGhpcy5kYXNoYm9hcmQuY2hpbGRyZW4uaW5kZXhPZih0aGlzKTtcblxuICAgIGlmIChpID49IDApIHtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnNwbGljZShpLCAxKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE9yZGVyKCkge1xuICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKCh0aGlzLnkgKyAodGhpcy54ICsgMSkgLyAxMDApICogMTAwKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGlsZEluVmlldyhldmVudHMsIG9ic2VydmVyKSB7XG4gICAgY29uc3QgaW50ZXJzZWN0aW5nRXZlbnQgPSBldmVudHMuZmluZChldmVudCA9PiBldmVudC5pc0ludGVyc2VjdGluZyk7XG4gICAgaWYgKGludGVyc2VjdGluZ0V2ZW50KSB7XG4gICAgICBvYnNlcnZlci51bm9ic2VydmUoaW50ZXJzZWN0aW5nRXZlbnQudGFyZ2V0KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2RrRHJvcExpc3Q+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtcGxhY2Vob2xkZXJcIlxuICAgICpuZ0lmPVwiaXNSZXNpemVcIlxuICA+PC9kaXY+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBfcHhXaWR0aCwgaGVpZ2h0OiBfcHhIZWlnaHQgfVwiXG4gICAgW25nQ2xhc3NdPVwia2xhc3Nlc1wiXG4gICAgY2RrRHJhZ1xuICAgIChjZGtEcmFnU3RhcnRlZCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAoY2RrRHJhZ0VuZGVkKT1cInJlc2V0KCRldmVudClcIlxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiKGlzT25lQ29sdW1uVmlldyQgfCBhc3luYykgfHwgIWVkaXRNb2RlIHx8IGZ1bGxzY3JlZW5cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLWhlYWRlci1hY3Rpb25zIGNhcmQtaGVhZGVyLWdyaWRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZHJhZy1oYW5kbGUnOiBlZGl0TW9kZSAmJiAhZnVsbHNjcmVlbixcbiAgICAgICAgZHJhZ2dhYmxlQ3Vyc29yOiBlZGl0TW9kZSAmJiAhZnVsbHNjcmVlblxuICAgICAgfVwiXG4gICAgICBjZGtEcmFnSGFuZGxlXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYzh5LWRhc2hib2FyZC1jaGlsZC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoZWFkZXItYWN0aW9ucyBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgICAgICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPGM4eS13aWRnZXQtdGltZS1jb250ZXh0LWljb24tYmFyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhPy5jb25maWc/LmRpc3BsYXlTZXR0aW5ncyAmJiBkYXRhPy5jb25maWc/LndpZGdldEluc3RhbmNlR2xvYmFsVGltZUNvbnRleHRcIlxuICAgICAgICAgIFtjb25maWddPVwiZGF0YS5jb25maWdcIlxuICAgICAgICA+PC9jOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhcj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb25cIlxuICAgICAgICAgIFt0b29sdGlwXT1cImZ1bGxzY3JlZW4gPyAoJ0V4aXQgZnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKSA6ICgnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgZGVsYXk9XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Z1bGwgc2NyZWVuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImVkaXRNb2RlIHx8ICFjYW5Ub2dnbGVGdWxsc2NyZWVuXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbi5uZXh0KClcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktZGFzaGJvYXJkLWNoaWxkLS1zZXR0aW5ncy1mdWxsc2NyZWVuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtjOHlJY29uXT1cImZ1bGxzY3JlZW4gPyAnY29tcHJlc3MnIDogJ2V4cGFuZCdcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJvcHRpb25zQnRuIGRyb3Bkb3duXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gcmlnaHRcIlxuICAgICAgICAgIGRyb3Bkb3duXG4gICAgICAgICAgW2NvbnRhaW5lcl09XCInYm9keSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWljb24gYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImVkaXRNb2RlXCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJjOHktZGFzaGJvYXJkLWNoaWxkLS1zZXR0aW5nc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cIidjb2cnXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHRvb2x0aXA9XCJ7eyAnQ2xpY2sgJnF1b3Q7RWRpdCB3aWRnZXRzJnF1b3Q7IHRvIHVubG9jaycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAqbmdJZj1cIiFlZGl0TW9kZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtbG9ja2VkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInbG9jaydcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tYWN0aW9ucy1kcm9wZG93blwiXG4gICAgICAgICAgICBzdHlsZT1cInJpZ2h0OiAtMXB4XCJcbiAgICAgICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uLnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWlubmVyLXNjcm9sbFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWhhbmRsZSBoaWRkZW4teHNcIlxuICAgICAgKm5nSWY9XCJlZGl0TW9kZSAmJiAhaXNEcmFnZ2luZyAmJiAhZnVsbHNjcmVlblwiXG4gICAgICBjZGtEcmFnXG4gICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJyZXNpemVTdGFydGVkKCRldmVudClcIlxuICAgICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICA+PC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZXNpemUtaWNvbiBoaWRkZW4teHNcIlxuICAgICAgKm5nSWY9XCJlZGl0TW9kZSAmJiAhaXNEcmFnZ2luZyAmJiAhZnVsbHNjcmVlblwiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAgICpjZGtEcmFnUGxhY2Vob2xkZXJcbiAgICA+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoaWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZGFzaGJvYXJkL2Rhc2hib2FyZC1jaGlsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Rhc2hib2FyZC9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFRSCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLElBQW9ELGVBQWUsQ0FDakUsT0FBd0M7UUFFeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQWdERDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFnQ0Q7O09BRUc7SUFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFL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ZGtEcmFnU3RhcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Rhc2hib2FyZC1jaGlsZC1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZENoaWxkQ2hhbmdlIH0gZnJvbSAnLi9kYXNoYm9hcmQtY2hpbGQtY2hhbmdlJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoYm9hcmRDaGlsZERpbWVuc2lvbiwgV2lkZ2V0IH0gZnJvbSAnLi9kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBBIGRhc2hib2FyZCBjaGlsZCBhbGxvd3MgdG8gcG9zaXRpb24gZWxlbWVudHNcbiAqIGNvcnJlY3RseSBvbiBhIGdyaWQuXG4gKlxuICogQnkgc2V0dGluZyBgYzh5LWRhc2hib2FyZC1jaGlsZC1hY3Rpb25zYCBhbmRcbiAqIGBjOHktZGFzaGJvYXJkLWNoaWxkLXRpdGxlYCBvbiB0aGUgZWxlbWVudCB5b3UgY2FuIGFkZFxuICogY3VzdG9tIGFjdGlvbnMgb3IgYSBjdXN0b20gdGl0bGUgdG8gdGhlIGN1cnJlbnQgY2hpbGQuXG4gKlxuICogQnkgYWRkaW5nIHRoZSBjb3JyZWN0IGJyYW5kZWQgY2xhc3NlcywgeW91IGNhbiBkZWZpbmVcbiAqIHRoZSBsb29rIGFuZCBmZWVsIG9mIHRoZSBjaGlsZC4gQnkgZGVmYXVsdCBpdCBpcyBkaXNwbGF5ZWRcbiAqIGFzIGEgY2FyZC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgIDxjOHktZGFzaGJvYXJkLWNoaWxkXG4gKiAgICAgI2NwV2lkZ2V0M1xuICogICAgIFt4XT1cIjBcIlxuICogICAgIFt5XT1cIjNcIlxuICogICAgIFt3aWR0aF09XCI0XCJcbiAqICAgICBbaGVpZ2h0XT1cIjRcIlxuICogICAgIFtjbGFzc109XCInY2FyZC1kYXNoYm9hcmQgcGFuZWwtY29udGVudC10cmFuc3BhcmVudCdcIlxuICogICA+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGUgKm5nSWY9XCJzaG93VGl0bGVcIj5cbiAqICAgICAgIDxzcGFuPlRyYW5zcGFyZW50ITwvc3Bhbj5cbiAqICAgICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGU+XG4gKiAgICAgPGM4eS1kYXNoYm9hcmQtY2hpbGQtYWN0aW9uPlxuICogICAgICAgPGEgaHJlZj1cIlwiIChjbGljayk9XCJzaG93VGl0bGUgPSAhc2hvd1RpdGxlOyAoZmFsc2UpXCI+XG4gKiAgICAgICAgIDxpIFtjOHlJY29uXT1cIidoZWFkaW5nJ1wiPjwvaT4gSGlkZS9zaG93IHRpdGxlXG4gKiAgICAgICA8L2E+XG4gKiAgICAgPC9jOHktZGFzaGJvYXJkLWNoaWxkLWFjdGlvbj5cbiAqICAgICB4OiB7eyBjcFdpZGdldDMueCB9fTxiciAvPlxuICogICAgIHk6IHt7IGNwV2lkZ2V0My55IH19PGJyIC8+XG4gKiAgICAgd2lkdGg6IHt7IGNwV2lkZ2V0My53aWR0aCB9fTxiciAvPlxuICogICAgIGhlaWdodDoge3sgY3BXaWRnZXQzLmhlaWdodCB9fTxiciAvPlxuICogICA8L2M4eS1kYXNoYm9hcmQtY2hpbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWRhc2hib2FyZC1jaGlsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQtY2hpbGQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkYXNoYm9hcmQtZ3JpZC1jaGlsZCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDaGlsZENvbXBvbmVudCBpbXBsZW1lbnRzIERhc2hib2FyZENoaWxkRGltZW5zaW9uIHtcbiAgYWN0aW9uczogRGFzaGJvYXJkQ2hpbGRBY3Rpb25Db21wb25lbnRbXSA9IFtdO1xuICBAQ29udGVudENoaWxkcmVuKERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50KSBzZXQgdGVtcGxhdGVBY3Rpb25zKFxuICAgIGFjdGlvbnM6IERhc2hib2FyZENoaWxkQWN0aW9uQ29tcG9uZW50W11cbiAgKSB7XG4gICAgdGhpcy5hZGRBY3Rpb25zKGFjdGlvbnMsIHRydWUpO1xuICB9XG4gIGRyYWdTb3VyY2U6IENka0RyYWc7XG4gIGlzUmVzaXplID0gZmFsc2U7XG4gIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAga2xhc3NlcyA9IHt9O1xuXG4gIF9weFdpZHRoID0gJzEwMCUnO1xuICBfcHhIZWlnaHQgPSAnMTAwJSc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsc2NyZWVuJylcbiAgZnVsbHNjcmVlbiA9IGZhbHNlO1xuICByZWFkb25seSBNRF9CT09UU1RSQVBfQlJFQUtQT0lOVF9SRUFET05MWV9DTEFTU19QUk9QRVJUWSA9IDc2ODtcblxuICAvKipcbiAgICogVGhlIHggcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeDtcblxuICAvKipcbiAgICogVGhlIHkgcG9zaXRpb24gb2YgdGhlIGNoaWxkLlxuICAgKi9cbiAgQElucHV0KCkgeTtcblxuICAvKipcbiAgICogVGhlIHdpZHRoIG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1jb2x1bW5zLlxuICAgKi9cbiAgQElucHV0KCkgd2lkdGggPSAxO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnQgaW4gZ3JpZC1yb3dzLlxuICAgKi9cbiAgQElucHV0KCkgaGVpZ2h0ID0gMTtcblxuICAvKipcbiAgICogVGhlIGRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIGFzIGEgZGF0YVRyYW5zZmVyIG9iamVjdCBmb3IgZXZlbnRzIG9mIHRoZSBjaGlsZC5cbiAgICovXG4gIEBJbnB1dCgpIGRhdGE6IFdpZGdldCB8IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hcmdpbiBvZiB0aGUgY2hpbGQgaW4gcGl4ZWwuXG4gICAqL1xuICBASW5wdXQoKSBtYXJnaW4gPSAxMjtcblxuICAvKipcbiAgICogVGhlIGNoaWxkIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIGFzIHNvb24gaXQgaXMgc2Nyb2xsZWQgaW50byB2aWV3cG9ydFxuICAgKi9cbiAgQElucHV0KCkgdXNlSW50ZXJzZWN0aW9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGlzIGZyb3plbiwgYWxsIGNoaWxkcmVuIGNhbm5vdCBiZSBtb3ZlZFxuICAgKiBvciByZXNpemVkLlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZWRpdE1vZGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaXNGcm96ZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRNb2RlID0gIXZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgY2FuVG9nZ2xlRnVsbHNjcmVlbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGEgZGFzaGJvYXJkIGVkaXRpbmcgaXMgZGlzYWJsZWQgbm8gd2lkZ2V0cyBjYW4gYmUgbW92ZWQsIGVkaXRlZCwgcmVtb3ZlZFxuICAgKiBvciBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IGZpcmVkIGlmIGEgY2hpbGQgY2hhbmdlIGlzIHN0YXJ0ZWQgKGRyYWdnaW5nIG9yIHJlc2l6aW5nKVxuICAgKi9cbiAgQE91dHB1dCgpIGNoYW5nZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRDaGlsZENvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogQW4gZXZlbnQgZmlyZWQgaWYgYSBjaGlsZCBjaGFuZ2UgaXMgZW5kZWRcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPERhc2hib2FyZENoaWxkQ29tcG9uZW50PigpO1xuXG4gIC8qKlxuICAgKiBBbiBldmVudCBmaXJlZCBpZiB0aGUgZnVsbHNjcmVlbiB0b2dnbGUgYnV0dG9uIHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIHRvZ2dsZUZ1bGxzY3JlZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEFsbCBjbGFzc2VzIGFkZGVkIHRvIHRoaXMgY2hpbGRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBpeGVsIHdpZHRoIG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhXaWR0aCh2YWx1ZSkge1xuICAgIHRoaXMuX3B4V2lkdGggPSBgJHt2YWx1ZX1weGA7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgcGl4ZWwgaGVpZ2h0IG9mIHRoZSBjaGlsZCAodXNlZCBmb3IgcmVzaXppbmcpXG4gICAqL1xuICBzZXQgcHhIZWlnaHQodmFsdWUpIHtcbiAgICB0aGlzLl9weEhlaWdodCA9IGAke3ZhbHVlfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBvbiBldmVyeSByZXNpemUgYW5kIHJldHVybnMgdHJ1ZSBpZiBpbiBvbmUgY29sdW1uIHZpZXcgKG1vYmlsZSB2aWV3KVxuICAgKi9cbiAgaXNPbmVDb2x1bW5WaWV3JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgIG1hcChfID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgICApO1xuICAgIH0pLFxuICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgIHN0YXJ0V2l0aChcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8PSB0aGlzLk1EX0JPT1RTVFJBUF9CUkVBS1BPSU5UX1JFQURPTkxZX0NMQVNTX1BST1BFUlRZXG4gICAgKVxuICApO1xuXG4gIC8qKlxuICAgKiBBbiBpbmRpY2F0b3IgaWYgdGhlIGNoaWxkIGlzIGludGVyc2VjdGVkICh0aGF0IG1lYW4gdmlzaWJsZSBmb3IgdGhlIHVzZXIpXG4gICAqL1xuICBpbnRlcnNlY3RlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUZWxscyBpZiB0aGUgbGFzdCBjaGFuZ2Ugd2FzIGEgZHJhZ2dpbmcgb3IgcmVzaXppbmcgZXZlbnQ7XG4gICAqL1xuICBsYXN0Q2hhbmdlOiAnZHJhZycgfCAncmVzaXplJyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIG5hc3R5IHdvcmthcm91bmQgZm9yIHRoYXQgaXNzdWU6XG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzkzNDNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICBncmlkLWNvbHVtbi1zdGFydDogJHt0aGlzLnggKyAxfTtcbiAgICBncmlkLXJvdy1zdGFydDogJHt0aGlzLnkgKyAxfTtcbiAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gJHt0aGlzLndpZHRofTtcbiAgICBncmlkLXJvdy1lbmQ6IHNwYW4gJHt0aGlzLmhlaWdodH07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAke3RoaXMubWFyZ2luIHx8IDEyfXB4O1xuICAgIG9yZGVyOiAke3RoaXMuZ2V0T3JkZXIoKX07XG4gICAgYCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uIHdoaWNoIGlzIGxpc3RlbiB0b1xuICAgKiBvbiBjaGFuZ2VzIChkcmFnIG9yIHJlc2l6ZSkuXG4gICAqL1xuICBjaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5rbGFzc2VzID0ge1xuICAgICAgY2FyZDogdHJ1ZSxcbiAgICAgICdjYXJkLWRhc2hib2FyZCc6IHRydWUsXG4gICAgICAnb24tcmVzaXplJzogdGhpcy5pc1Jlc2l6ZSxcbiAgICAgIC4uLnRoaXMuY2xhc3NcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMueCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMueSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0RHluYW1pY0RpbWVuc2lvbigpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlSW50ZXJzZWN0aW9uICYmICdJbnRlcnNlY3Rpb25PYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICBjb25zdCBpbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgZXZlbnRzID0+ICh0aGlzLmludGVyc2VjdGVkID0gdGhpcy5jaGlsZEluVmlldyhldmVudHMsIGludGVyc2VjdGlvbk9ic2VydmVyKSlcbiAgICAgICk7XG4gICAgICBpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcnNlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLnB1c2godGhpcyk7XG4gIH1cblxuICBzZXREeW5hbWljRGltZW5zaW9uKCkge1xuICAgIGNvbnN0IGRzID0gbmV3IERhc2hib2FyZENoaWxkQ2hhbmdlKHRoaXMpO1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gZHMuZmluZEZyZWVEaW1lbnNpb24oKTtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG5cbiAgICB0aGlzLmRhc2hib2FyZC5lbWl0Q2hhbmdlKHRoaXMpO1xuICB9XG5cbiAgcmVzaXplU3RhcnRlZCgkZXZlbnQ6IENka0RyYWdTdGFydCkge1xuICAgIHRoaXMuaXNSZXNpemUgPSB0cnVlO1xuICAgIHRoaXMuZGFzaGJvYXJkLnVwZGF0ZVJlY3RTaXplKCk7XG4gICAgdGhpcy5kcmFnU291cmNlID0gJGV2ZW50LnNvdXJjZTtcbiAgICBjb25zdCBwb3NpdGlvbmluZyA9IG5ldyBEYXNoYm9hcmRDaGlsZENoYW5nZSh0aGlzKTtcbiAgICB0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbiA9IHBvc2l0aW9uaW5nLnJlc2l6ZSQuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGFydC5lbWl0KHRoaXMpO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgfVxuXG4gIGRyYWdTdGFydGVkKCRldmVudDogQ2RrRHJhZ1N0YXJ0KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhc2hib2FyZC51cGRhdGVSZWN0U2l6ZSgpO1xuICAgIHRoaXMuZHJhZ1NvdXJjZSA9ICRldmVudC5zb3VyY2U7XG4gICAgY29uc3QgcG9zaXRpb25pbmcgPSBuZXcgRGFzaGJvYXJkQ2hpbGRDaGFuZ2UodGhpcyk7XG4gICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24gPSBwb3NpdGlvbmluZy5kcmFnJC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXJ0LmVtaXQodGhpcyk7XG4gIH1cblxuICByZXNldCgkZXZlbnQ/OiBDZGtEcmFnRW5kKSB7XG4gICAgdGhpcy5sYXN0Q2hhbmdlID0gdGhpcy5pc1Jlc2l6ZSA/ICdyZXNpemUnIDogJ2RyYWcnO1xuICAgIHRoaXMuaXNSZXNpemUgPSBmYWxzZTtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9weFdpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMuX3B4SGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMubmdPbkNoYW5nZXMoKTtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQuc291cmNlLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmVtaXRDaGFuZ2UodGhpcyk7XG4gICAgICB0aGlzLmNoYW5nZUVuZC5lbWl0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVTZWxmRnJvbURhc2hib2FyZCgpO1xuICB9XG5cbiAgYWRkQWN0aW9ucyhhY3Rpb25zOiBEYXNoYm9hcmRDaGlsZEFjdGlvbkNvbXBvbmVudFtdLCBwcmVwZW5kID0gZmFsc2UpIHtcbiAgICBpZiAocHJlcGVuZCkge1xuICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLmFjdGlvbnMsIC4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnMsIC4uLmFjdGlvbnNdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZkZyb21EYXNoYm9hcmQoKSB7XG4gICAgY29uc3QgaSA9IHRoaXMuZGFzaGJvYXJkLmNoaWxkcmVuLmluZGV4T2YodGhpcyk7XG5cbiAgICBpZiAoaSA+PSAwKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZC5jaGlsZHJlbi5zcGxpY2UoaSwgMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcmRlcigpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZCgodGhpcy55ICsgKHRoaXMueCArIDEpIC8gMTAwKSAqIDEwMCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgY2hpbGRJblZpZXcoZXZlbnRzLCBvYnNlcnZlcikge1xuICAgIGNvbnN0IGludGVyc2VjdGluZ0V2ZW50ID0gZXZlbnRzLmZpbmQoZXZlbnQgPT4gZXZlbnQuaXNJbnRlcnNlY3RpbmcpO1xuICAgIGlmIChpbnRlcnNlY3RpbmdFdmVudCkge1xuICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdGluZ0V2ZW50LnRhcmdldCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNka0Ryb3BMaXN0PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLXBsYWNlaG9sZGVyXCJcbiAgICAqbmdJZj1cImlzUmVzaXplXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwieyB3aWR0aDogX3B4V2lkdGgsIGhlaWdodDogX3B4SGVpZ2h0IH1cIlxuICAgIFtuZ0NsYXNzXT1cImtsYXNzZXNcIlxuICAgIGNka0RyYWdcbiAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXG4gICAgKGNka0RyYWdFbmRlZCk9XCJyZXNldCgkZXZlbnQpXCJcbiAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIihpc09uZUNvbHVtblZpZXckIHwgYXN5bmMpIHx8ICFlZGl0TW9kZSB8fCBmdWxsc2NyZWVuXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1oZWFkZXItYWN0aW9ucyBjYXJkLWhlYWRlci1ncmlkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RyYWctaGFuZGxlJzogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW4sXG4gICAgICAgIGRyYWdnYWJsZUN1cnNvcjogZWRpdE1vZGUgJiYgIWZ1bGxzY3JlZW5cbiAgICAgIH1cIlxuICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImM4eS1kYXNoYm9hcmQtY2hpbGQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaGVhZGVyLWFjdGlvbnMgZC1mbGV4IGEtaS1jZW50ZXJcIlxuICAgICAgICAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiXG4gICAgICA+XG4gICAgICAgIDxjOHktd2lkZ2V0LXRpbWUtY29udGV4dC1pY29uLWJhclxuICAgICAgICAgICpuZ0lmPVwiZGF0YT8uY29uZmlnPy5kaXNwbGF5U2V0dGluZ3MgJiYgZGF0YT8uY29uZmlnPy53aWRnZXRJbnN0YW5jZUdsb2JhbFRpbWVDb250ZXh0XCJcbiAgICAgICAgICBbY29uZmlnXT1cImRhdGEuY29uZmlnXCJcbiAgICAgICAgPjwvYzh5LXdpZGdldC10aW1lLWNvbnRleHQtaWNvbi1iYXI+XG4gICAgICAgIDxjOHktd2lkZ2V0LWF1dG8tcmVmcmVzaC1jb250ZXh0LWljb24tYmFyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8ud2lkZ2V0SW5zdGFuY2VHbG9iYWxBdXRvUmVmcmVzaENvbnRleHQgJiZcbiAgICAgICAgICAgIGRhdGE/LmNvbmZpZz8uZGlzcGxheVNldHRpbmdzLmdsb2JhbEF1dG9SZWZyZXNoQ29udGV4dFxuICAgICAgICAgIFwiXG4gICAgICAgID48L2M4eS13aWRnZXQtYXV0by1yZWZyZXNoLWNvbnRleHQtaWNvbi1iYXI+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGdWxsIHNjcmVlbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFt0b29sdGlwXT1cImZ1bGxzY3JlZW4gPyAoJ0V4aXQgZnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKSA6ICgnRnVsbCBzY3JlZW4nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgZGVsYXk9XCI1MDBcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJlZGl0TW9kZSB8fCAhY2FuVG9nZ2xlRnVsbHNjcmVlblwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4ubmV4dCgpXCJcbiAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3MtZnVsbHNjcmVlblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbYzh5SWNvbl09XCJmdWxsc2NyZWVuID8gJ2NvbXByZXNzJyA6ICdleHBhbmQnXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwib3B0aW9uc0J0biBkcm9wZG93blwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCJcbiAgICAgICAgICBkcm9wZG93blxuICAgICAgICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1pY29uIGM4eS1kcm9wZG93blwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICdTZXR0aW5ncycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBkYXRhLWN5PVwiYzh5LWRhc2hib2FyZC1jaGlsZC0tc2V0dGluZ3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbYzh5SWNvbl09XCInY29nJ1wiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4taWNvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDbGljayAmcXVvdDtFZGl0IHdpZGdldHMmcXVvdDsgdG8gdW5sb2NrJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0b29sdGlwPVwie3sgJ0NsaWNrICZxdW90O0VkaXQgd2lkZ2V0cyZxdW90OyB0byB1bmxvY2snIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgKm5nSWY9XCIhZWRpdE1vZGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIihmYWxzZSlcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLXNldHRpbmdzLWxvY2tlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgW2M4eUljb25dPVwiJ2xvY2snXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIlxuICAgICAgICAgICAgZGF0YS1jeT1cImM4eS1kYXNoYm9hcmQtY2hpbGQtLWFjdGlvbnMtZHJvcGRvd25cIlxuICAgICAgICAgICAgc3R5bGU9XCJyaWdodDogLTFweFwiXG4gICAgICAgICAgICAqZHJvcGRvd25NZW51XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbi50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbm5lci1zY3JvbGxcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlc2l6ZS1oYW5kbGUgaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgICAgY2RrRHJhZ1xuICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZWRpdE1vZGUgfHwgZnVsbHNjcmVlblwiXG4gICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwicmVzaXplU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgIChjZGtEcmFnRW5kZWQpPVwicmVzZXQoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVzaXplLWljb24gaGlkZGVuLXhzXCJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgJiYgIWlzRHJhZ2dpbmcgJiYgIWZ1bGxzY3JlZW5cIlxuICAgID48L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1wbGFjZWhvbGRlclwiXG4gICAgICAqY2RrRHJhZ1BsYWNlaG9sZGVyXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|