ngx-hana-nameserver-history-viewer 1.1.2 → 1.1.9-2.beta
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/README.md +6 -5
- package/esm2020/ngx-hana-nameserver-history-viewer.mjs +5 -0
- package/esm2020/public-api.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/alert/alert.component.mjs +68 -0
- package/esm2020/src/nameserver-history-viewer/components/alert/alert.module.mjs +22 -0
- package/esm2020/src/nameserver-history-viewer/components/alert/index.mjs +3 -0
- package/esm2020/src/nameserver-history-viewer/components/file-drop-input/file-drop-input.component.mjs +112 -0
- package/esm2020/src/nameserver-history-viewer/components/file-drop-input/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/index.mjs +9 -0
- package/esm2020/src/nameserver-history-viewer/components/instruction/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/instruction/instruction.component.mjs +42 -0
- package/esm2020/src/nameserver-history-viewer/components/nameserver-history.component.mjs +550 -0
- package/esm2020/src/nameserver-history-viewer/components/port-selector/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/port-selector/port-selector.component.mjs +69 -0
- package/esm2020/src/nameserver-history-viewer/components/port-selector/port-selector.service.mjs +41 -0
- package/esm2020/src/nameserver-history-viewer/components/progress-bar/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/progress-bar/progress-bar.component.mjs +40 -0
- package/esm2020/src/nameserver-history-viewer/components/time-range-selector/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/time-range-selector/time-range-selector.component.mjs +70 -0
- package/esm2020/src/nameserver-history-viewer/components/timezone-selector/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.component.mjs +90 -0
- package/esm2020/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.service.mjs +49 -0
- package/esm2020/src/nameserver-history-viewer/index.mjs +3 -0
- package/esm2020/src/nameserver-history-viewer/nameserver-history.module.mjs +63 -0
- package/esm2020/src/nameserver-history-viewer/services/chart.service.mjs +323 -0
- package/esm2020/src/nameserver-history-viewer/services/file.service.mjs +390 -0
- package/esm2020/src/nameserver-history-viewer/services/index.mjs +4 -0
- package/esm2020/src/nameserver-history-viewer/services/ui.service.mjs +557 -0
- package/esm2020/src/nameserver-history-viewer/types/abort.types.mjs +6 -0
- package/esm2020/src/nameserver-history-viewer/types/alert.types.mjs +8 -0
- package/esm2020/src/nameserver-history-viewer/types/chart-content-data-item.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/chart-content-data.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/chart-content-header.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/chart-content-time.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/chart-content.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/color-rgba.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/html-element.type.mjs +9 -0
- package/esm2020/src/nameserver-history-viewer/types/index.mjs +28 -0
- package/esm2020/src/nameserver-history-viewer/types/item.types.mjs +14 -0
- package/esm2020/src/nameserver-history-viewer/types/legend-color.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-backup.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-columnstore.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-host.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-item.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-persistence.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-rowstore.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-server.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-session-admission-control.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-sql.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-sync-primitives.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info-threads.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/load-history-info.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/port.types.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/types/scale-group.types.mjs +17 -0
- package/esm2020/src/nameserver-history-viewer/types/unit-category.types.mjs +10 -0
- package/esm2020/src/nameserver-history-viewer/types/unit.types.mjs +14 -0
- package/esm2020/src/nameserver-history-viewer/utils/chart-util.mjs +25 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/chartjs_ext.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/data_culling.mjs +57 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/data_mipmap.mjs +139 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/index.mjs +41 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/lttb_data_mipmap.mjs +106 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/responsive_downsample_plugin.mjs +168 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-downsample/utils.mjs +114 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-zoom/chart.zoom.mjs +527 -0
- package/esm2020/src/nameserver-history-viewer/utils/chartjs-zoom/index.mjs +2 -0
- package/esm2020/src/nameserver-history-viewer/utils/file-util.mjs +154 -0
- package/esm2020/src/nameserver-history-viewer/utils/index.mjs +5 -0
- package/esm2020/src/nameserver-history-viewer/utils/time-util.mjs +101 -0
- package/esm2020/src/nameserver-history-viewer/utils/ui-util.mjs +162 -0
- package/fesm2015/{ngx-hana-nameserver-history-viewer.js → ngx-hana-nameserver-history-viewer.mjs} +971 -2679
- package/fesm2015/ngx-hana-nameserver-history-viewer.mjs.map +1 -0
- package/fesm2020/ngx-hana-nameserver-history-viewer.mjs +4081 -0
- package/fesm2020/ngx-hana-nameserver-history-viewer.mjs.map +1 -0
- package/ngx-hana-nameserver-history-viewer.d.ts +1 -1
- package/package.json +33 -57
- package/src/nameserver-history-viewer/components/alert/alert.component.d.ts +4 -1
- package/src/nameserver-history-viewer/components/alert/alert.module.d.ts +6 -0
- package/src/nameserver-history-viewer/components/file-drop-input/file-drop-input.component.d.ts +3 -0
- package/src/nameserver-history-viewer/components/instruction/instruction.component.d.ts +3 -0
- package/src/nameserver-history-viewer/components/nameserver-history.component.d.ts +33 -14
- package/src/nameserver-history-viewer/components/port-selector/port-selector.component.d.ts +4 -1
- package/src/nameserver-history-viewer/components/port-selector/port-selector.service.d.ts +3 -0
- package/src/nameserver-history-viewer/components/progress-bar/progress-bar.component.d.ts +3 -0
- package/src/nameserver-history-viewer/components/time-range-selector/time-range-selector.component.d.ts +3 -0
- package/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.component.d.ts +3 -0
- package/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.service.d.ts +3 -0
- package/src/nameserver-history-viewer/index.d.ts +1 -0
- package/src/nameserver-history-viewer/nameserver-history.module.d.ts +17 -0
- package/src/nameserver-history-viewer/services/chart.service.d.ts +4 -1
- package/src/nameserver-history-viewer/services/file.service.d.ts +4 -0
- package/src/nameserver-history-viewer/services/ui.service.d.ts +5 -2
- package/src/nameserver-history-viewer/utils/chartjs-downsample/lttb_data_mipmap.d.ts +1 -1
- package/src/nameserver-history-viewer/utils/file-util.d.ts +11 -0
- package/bundles/ngx-hana-nameserver-history-viewer.umd.js +0 -6735
- package/bundles/ngx-hana-nameserver-history-viewer.umd.js.map +0 -1
- package/bundles/ngx-hana-nameserver-history-viewer.umd.min.js +0 -2
- package/bundles/ngx-hana-nameserver-history-viewer.umd.min.js.map +0 -1
- package/esm2015/ngx-hana-nameserver-history-viewer.js +0 -10
- package/esm2015/public-api.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/alert/alert.component.js +0 -114
- package/esm2015/src/nameserver-history-viewer/components/alert/alert.module.js +0 -21
- package/esm2015/src/nameserver-history-viewer/components/alert/index.js +0 -7
- package/esm2015/src/nameserver-history-viewer/components/file-drop-input/file-drop-input.component.js +0 -141
- package/esm2015/src/nameserver-history-viewer/components/file-drop-input/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/index.js +0 -13
- package/esm2015/src/nameserver-history-viewer/components/instruction/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/instruction/instruction.component.js +0 -62
- package/esm2015/src/nameserver-history-viewer/components/nameserver-history.component.js +0 -868
- package/esm2015/src/nameserver-history-viewer/components/port-selector/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/port-selector/port-selector.component.js +0 -93
- package/esm2015/src/nameserver-history-viewer/components/port-selector/port-selector.service.js +0 -60
- package/esm2015/src/nameserver-history-viewer/components/progress-bar/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/progress-bar/progress-bar.component.js +0 -35
- package/esm2015/src/nameserver-history-viewer/components/time-range-selector/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/time-range-selector/time-range-selector.component.js +0 -68
- package/esm2015/src/nameserver-history-viewer/components/timezone-selector/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.component.js +0 -151
- package/esm2015/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.service.js +0 -80
- package/esm2015/src/nameserver-history-viewer/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/nameserver-history.module.js +0 -42
- package/esm2015/src/nameserver-history-viewer/services/chart.service.js +0 -504
- package/esm2015/src/nameserver-history-viewer/services/file.service.js +0 -487
- package/esm2015/src/nameserver-history-viewer/services/index.js +0 -8
- package/esm2015/src/nameserver-history-viewer/services/ui.service.js +0 -922
- package/esm2015/src/nameserver-history-viewer/types/abort.types.js +0 -13
- package/esm2015/src/nameserver-history-viewer/types/alert.types.js +0 -13
- package/esm2015/src/nameserver-history-viewer/types/chart-content-data-item.types.js +0 -15
- package/esm2015/src/nameserver-history-viewer/types/chart-content-data.types.js +0 -9
- package/esm2015/src/nameserver-history-viewer/types/chart-content-header.types.js +0 -15
- package/esm2015/src/nameserver-history-viewer/types/chart-content-time.types.js +0 -9
- package/esm2015/src/nameserver-history-viewer/types/chart-content.types.js +0 -21
- package/esm2015/src/nameserver-history-viewer/types/color-rgba.types.js +0 -19
- package/esm2015/src/nameserver-history-viewer/types/html-element.type.js +0 -19
- package/esm2015/src/nameserver-history-viewer/types/index.js +0 -32
- package/esm2015/src/nameserver-history-viewer/types/item.types.js +0 -19
- package/esm2015/src/nameserver-history-viewer/types/legend-color.types.js +0 -9
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-backup.types.js +0 -19
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-columnstore.types.js +0 -19
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-host.types.js +0 -35
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-item.types.js +0 -31
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-persistence.types.js +0 -27
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-rowstore.types.js +0 -15
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-server.types.js +0 -25
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-session-admission-control.types.js +0 -25
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-sql.types.js +0 -37
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-sync-primitives.types.js +0 -15
- package/esm2015/src/nameserver-history-viewer/types/load-history-info-threads.types.js +0 -23
- package/esm2015/src/nameserver-history-viewer/types/load-history-info.types.js +0 -31
- package/esm2015/src/nameserver-history-viewer/types/port.types.js +0 -17
- package/esm2015/src/nameserver-history-viewer/types/scale-group.types.js +0 -35
- package/esm2015/src/nameserver-history-viewer/types/unit-category.types.js +0 -21
- package/esm2015/src/nameserver-history-viewer/types/unit.types.js +0 -19
- package/esm2015/src/nameserver-history-viewer/utils/chart-util.js +0 -38
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/chartjs_ext.js +0 -100
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/data_culling.js +0 -88
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/data_mipmap.js +0 -222
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/index.js +0 -46
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/lttb_data_mipmap.js +0 -166
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/responsive_downsample_plugin.js +0 -311
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-downsample/utils.js +0 -130
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-zoom/chart.zoom.js +0 -827
- package/esm2015/src/nameserver-history-viewer/utils/chartjs-zoom/index.js +0 -6
- package/esm2015/src/nameserver-history-viewer/utils/file-util.js +0 -162
- package/esm2015/src/nameserver-history-viewer/utils/index.js +0 -9
- package/esm2015/src/nameserver-history-viewer/utils/time-util.js +0 -139
- package/esm2015/src/nameserver-history-viewer/utils/ui-util.js +0 -239
- package/esm5/ngx-hana-nameserver-history-viewer.js +0 -10
- package/esm5/public-api.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/alert/alert.component.js +0 -146
- package/esm5/src/nameserver-history-viewer/components/alert/alert.module.js +0 -25
- package/esm5/src/nameserver-history-viewer/components/alert/index.js +0 -7
- package/esm5/src/nameserver-history-viewer/components/file-drop-input/file-drop-input.component.js +0 -155
- package/esm5/src/nameserver-history-viewer/components/file-drop-input/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/index.js +0 -13
- package/esm5/src/nameserver-history-viewer/components/instruction/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/instruction/instruction.component.js +0 -67
- package/esm5/src/nameserver-history-viewer/components/nameserver-history.component.js +0 -1116
- package/esm5/src/nameserver-history-viewer/components/port-selector/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/port-selector/port-selector.component.js +0 -93
- package/esm5/src/nameserver-history-viewer/components/port-selector/port-selector.service.js +0 -85
- package/esm5/src/nameserver-history-viewer/components/progress-bar/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/progress-bar/progress-bar.component.js +0 -26
- package/esm5/src/nameserver-history-viewer/components/time-range-selector/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/time-range-selector/time-range-selector.component.js +0 -58
- package/esm5/src/nameserver-history-viewer/components/timezone-selector/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.component.js +0 -180
- package/esm5/src/nameserver-history-viewer/components/timezone-selector/timezone-selector.service.js +0 -110
- package/esm5/src/nameserver-history-viewer/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/nameserver-history.module.js +0 -46
- package/esm5/src/nameserver-history-viewer/services/chart.service.js +0 -659
- package/esm5/src/nameserver-history-viewer/services/file.service.js +0 -606
- package/esm5/src/nameserver-history-viewer/services/index.js +0 -8
- package/esm5/src/nameserver-history-viewer/services/ui.service.js +0 -1141
- package/esm5/src/nameserver-history-viewer/types/abort.types.js +0 -13
- package/esm5/src/nameserver-history-viewer/types/alert.types.js +0 -13
- package/esm5/src/nameserver-history-viewer/types/chart-content-data-item.types.js +0 -15
- package/esm5/src/nameserver-history-viewer/types/chart-content-data.types.js +0 -9
- package/esm5/src/nameserver-history-viewer/types/chart-content-header.types.js +0 -15
- package/esm5/src/nameserver-history-viewer/types/chart-content-time.types.js +0 -9
- package/esm5/src/nameserver-history-viewer/types/chart-content.types.js +0 -21
- package/esm5/src/nameserver-history-viewer/types/color-rgba.types.js +0 -19
- package/esm5/src/nameserver-history-viewer/types/html-element.type.js +0 -19
- package/esm5/src/nameserver-history-viewer/types/index.js +0 -32
- package/esm5/src/nameserver-history-viewer/types/item.types.js +0 -19
- package/esm5/src/nameserver-history-viewer/types/legend-color.types.js +0 -9
- package/esm5/src/nameserver-history-viewer/types/load-history-info-backup.types.js +0 -19
- package/esm5/src/nameserver-history-viewer/types/load-history-info-columnstore.types.js +0 -19
- package/esm5/src/nameserver-history-viewer/types/load-history-info-host.types.js +0 -35
- package/esm5/src/nameserver-history-viewer/types/load-history-info-item.types.js +0 -31
- package/esm5/src/nameserver-history-viewer/types/load-history-info-persistence.types.js +0 -27
- package/esm5/src/nameserver-history-viewer/types/load-history-info-rowstore.types.js +0 -15
- package/esm5/src/nameserver-history-viewer/types/load-history-info-server.types.js +0 -25
- package/esm5/src/nameserver-history-viewer/types/load-history-info-session-admission-control.types.js +0 -25
- package/esm5/src/nameserver-history-viewer/types/load-history-info-sql.types.js +0 -37
- package/esm5/src/nameserver-history-viewer/types/load-history-info-sync-primitives.types.js +0 -15
- package/esm5/src/nameserver-history-viewer/types/load-history-info-threads.types.js +0 -23
- package/esm5/src/nameserver-history-viewer/types/load-history-info.types.js +0 -31
- package/esm5/src/nameserver-history-viewer/types/port.types.js +0 -17
- package/esm5/src/nameserver-history-viewer/types/scale-group.types.js +0 -35
- package/esm5/src/nameserver-history-viewer/types/unit-category.types.js +0 -21
- package/esm5/src/nameserver-history-viewer/types/unit.types.js +0 -19
- package/esm5/src/nameserver-history-viewer/utils/chart-util.js +0 -39
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/chartjs_ext.js +0 -100
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/data_culling.js +0 -88
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/data_mipmap.js +0 -316
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/index.js +0 -46
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/lttb_data_mipmap.js +0 -240
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/responsive_downsample_plugin.js +0 -366
- package/esm5/src/nameserver-history-viewer/utils/chartjs-downsample/utils.js +0 -142
- package/esm5/src/nameserver-history-viewer/utils/chartjs-zoom/chart.zoom.js +0 -827
- package/esm5/src/nameserver-history-viewer/utils/chartjs-zoom/index.js +0 -6
- package/esm5/src/nameserver-history-viewer/utils/file-util.js +0 -163
- package/esm5/src/nameserver-history-viewer/utils/index.js +0 -9
- package/esm5/src/nameserver-history-viewer/utils/time-util.js +0 -139
- package/esm5/src/nameserver-history-viewer/utils/ui-util.js +0 -241
- package/fesm2015/ngx-hana-nameserver-history-viewer.js.map +0 -1
- package/fesm5/ngx-hana-nameserver-history-viewer.js +0 -6861
- package/fesm5/ngx-hana-nameserver-history-viewer.js.map +0 -1
- package/ngx-hana-nameserver-history-viewer-1.1.2.tgz +0 -0
- package/ngx-hana-nameserver-history-viewer.metadata.json +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* This plugin is adapted from: https://github.com/3dcl/chartjs-plugin-responsive-downsample
|
|
7
|
-
* for controlling the radius of point.
|
|
8
|
-
*
|
|
9
|
-
* MIT License
|
|
10
|
-
* Copyright (c) 2018 3D Content Logistics
|
|
11
|
-
*
|
|
12
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
14
|
-
* in the Software without restriction, including without limitation the rights
|
|
15
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
17
|
-
* furnished to do so, subject to the following conditions:
|
|
18
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
19
|
-
* copies or substantial portions of the Software.
|
|
20
|
-
*
|
|
21
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
-
* SOFTWARE.
|
|
28
|
-
*/
|
|
29
|
-
import * as chartjs from 'chart.js';
|
|
30
|
-
/** @type {?} */
|
|
31
|
-
var Chart = window && ((/** @type {?} */ (window))).Chart ? ((/** @type {?} */ (window))).Chart : chartjs.Chart;
|
|
32
|
-
import { ResponsiveDownsamplePlugin } from './responsive_downsample_plugin';
|
|
33
|
-
export { ResponsiveDownsamplePlugin } from './responsive_downsample_plugin';
|
|
34
|
-
// comment this because this plugin is only used internally, merge ChartOptions interface is unnecessary
|
|
35
|
-
// and causes build error: "error TS2665: Invalid module name in augmentation.".
|
|
36
|
-
// // Extend chart.js options interface
|
|
37
|
-
// declare module 'chart.js' {
|
|
38
|
-
// interface ChartOptions {
|
|
39
|
-
// /**
|
|
40
|
-
// * Options for responsive downsample plugin
|
|
41
|
-
// */
|
|
42
|
-
// responsiveDownsample?: ResponsiveDownsamplePluginOptions;
|
|
43
|
-
// }
|
|
44
|
-
// }
|
|
45
|
-
Chart.pluginService.register(new ResponsiveDownsamplePlugin());
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaGFuYS1uYW1lc2VydmVyLWhpc3Rvcnktdmlld2VyLyIsInNvdXJjZXMiOlsic3JjL25hbWVzZXJ2ZXItaGlzdG9yeS12aWV3ZXIvdXRpbHMvY2hhcnRqcy1kb3duc2FtcGxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7O0lBQzlCLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUs7QUFFckYsT0FBTyxFQUFFLDBCQUEwQixFQUFxQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9HLE9BQU8sRUFBRSwwQkFBMEIsRUFBcUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBZS9HLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFRoaXMgcGx1Z2luIGlzIGFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tLzNkY2wvY2hhcnRqcy1wbHVnaW4tcmVzcG9uc2l2ZS1kb3duc2FtcGxlXHJcbiAqIGZvciBjb250cm9sbGluZyB0aGUgcmFkaXVzIG9mIHBvaW50LlxyXG4gKlxyXG4gKiBNSVQgTGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggM0QgQ29udGVudCBMb2dpc3RpY3NcclxuICpcclxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXHJcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbiAqXHJcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXHJcbiAqIFNPRlRXQVJFLlxyXG4gKi9cclxuaW1wb3J0ICogYXMgY2hhcnRqcyBmcm9tICdjaGFydC5qcyc7XHJcbmNvbnN0IENoYXJ0ID0gd2luZG93ICYmICh3aW5kb3cgYXMgYW55KS5DaGFydCA/ICh3aW5kb3cgYXMgYW55KS5DaGFydCA6IGNoYXJ0anMuQ2hhcnQ7XHJcblxyXG5pbXBvcnQgeyBSZXNwb25zaXZlRG93bnNhbXBsZVBsdWdpbiwgUmVzcG9uc2l2ZURvd25zYW1wbGVQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9yZXNwb25zaXZlX2Rvd25zYW1wbGVfcGx1Z2luJztcclxuZXhwb3J0IHsgUmVzcG9uc2l2ZURvd25zYW1wbGVQbHVnaW4sIFJlc3BvbnNpdmVEb3duc2FtcGxlUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vcmVzcG9uc2l2ZV9kb3duc2FtcGxlX3BsdWdpbic7XHJcblxyXG5cclxuLy8gY29tbWVudCB0aGlzIGJlY2F1c2UgdGhpcyBwbHVnaW4gaXMgb25seSB1c2VkIGludGVybmFsbHksIG1lcmdlIENoYXJ0T3B0aW9ucyBpbnRlcmZhY2UgaXMgdW5uZWNlc3NhcnlcclxuLy8gYW5kIGNhdXNlcyBidWlsZCBlcnJvcjogXCJlcnJvciBUUzI2NjU6IEludmFsaWQgbW9kdWxlIG5hbWUgaW4gYXVnbWVudGF0aW9uLlwiLlxyXG4vLyAvLyBFeHRlbmQgY2hhcnQuanMgb3B0aW9ucyBpbnRlcmZhY2VcclxuLy8gZGVjbGFyZSBtb2R1bGUgJ2NoYXJ0LmpzJyB7XHJcbi8vICAgICBpbnRlcmZhY2UgQ2hhcnRPcHRpb25zIHtcclxuLy8gICAgICAgICAvKipcclxuLy8gICAgICAgICAgKiBPcHRpb25zIGZvciByZXNwb25zaXZlIGRvd25zYW1wbGUgcGx1Z2luXHJcbi8vICAgICAgICAgICovXHJcbi8vICAgICAgICAgcmVzcG9uc2l2ZURvd25zYW1wbGU/OiBSZXNwb25zaXZlRG93bnNhbXBsZVBsdWdpbk9wdGlvbnM7XHJcbi8vICAgICB9XHJcbi8vIH1cclxuXHJcbkNoYXJ0LnBsdWdpblNlcnZpY2UucmVnaXN0ZXIobmV3IFJlc3BvbnNpdmVEb3duc2FtcGxlUGx1Z2luKCkpO1xyXG4iXX0=
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import * as tslib_1 from "tslib";
|
|
6
|
-
import * as utils from './utils';
|
|
7
|
-
import { DataMipmap } from './data_mipmap';
|
|
8
|
-
/**
|
|
9
|
-
* A mipmap data structure that uses Largest-Triangle-Three-Buckets algorithm to downsample data
|
|
10
|
-
*/
|
|
11
|
-
var /**
|
|
12
|
-
* A mipmap data structure that uses Largest-Triangle-Three-Buckets algorithm to downsample data
|
|
13
|
-
*/
|
|
14
|
-
LTTBDataMipmap = /** @class */ (function (_super) {
|
|
15
|
-
tslib_1.__extends(LTTBDataMipmap, _super);
|
|
16
|
-
function LTTBDataMipmap() {
|
|
17
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @param {?} resolution
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
LTTBDataMipmap.prototype.getMipMapIndexForResolution = /**
|
|
24
|
-
* @param {?} resolution
|
|
25
|
-
* @return {?}
|
|
26
|
-
*/
|
|
27
|
-
function (resolution) {
|
|
28
|
-
if (utils.isNil(resolution)) {
|
|
29
|
-
return 0;
|
|
30
|
-
}
|
|
31
|
-
/** @type {?} */
|
|
32
|
-
var index = utils.findIndexInArray(this.resolutions, (/**
|
|
33
|
-
* @param {?} levelResolution
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
|
-
function (levelResolution) { return levelResolution >= resolution; }));
|
|
37
|
-
if (index === -1) {
|
|
38
|
-
// use smallest mipmap as fallback
|
|
39
|
-
index = this.resolutions.length - 1;
|
|
40
|
-
}
|
|
41
|
-
return index;
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* @protected
|
|
45
|
-
* @return {?}
|
|
46
|
-
*/
|
|
47
|
-
LTTBDataMipmap.prototype.createMipMap = /**
|
|
48
|
-
* @protected
|
|
49
|
-
* @return {?}
|
|
50
|
-
*/
|
|
51
|
-
function () {
|
|
52
|
-
var _this = this;
|
|
53
|
-
_super.prototype.createMipMap.call(this);
|
|
54
|
-
this.resolutions = this.mipMaps.map((/**
|
|
55
|
-
* @param {?} level
|
|
56
|
-
* @return {?}
|
|
57
|
-
*/
|
|
58
|
-
function (level) { return _this.computeAverageResolution(level); }));
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* This method is adapted from: https://github.com/sveinn-steinarsson/flot-downsample
|
|
62
|
-
*
|
|
63
|
-
* The MIT License
|
|
64
|
-
* Copyright (c) 2013 by Sveinn Steinarsson
|
|
65
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
66
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
67
|
-
* in the Software without restriction, including without limitation the rights
|
|
68
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
69
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
70
|
-
* furnished to do so, subject to the following conditions:
|
|
71
|
-
* The above copyright notice and this permission notice shall be included in
|
|
72
|
-
* all copies or substantial portions of the Software.
|
|
73
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
74
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
75
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
76
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
77
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
78
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
79
|
-
* THE SOFTWARE.
|
|
80
|
-
*/
|
|
81
|
-
/**
|
|
82
|
-
* This method is adapted from: https://github.com/sveinn-steinarsson/flot-downsample
|
|
83
|
-
*
|
|
84
|
-
* The MIT License
|
|
85
|
-
* Copyright (c) 2013 by Sveinn Steinarsson
|
|
86
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
87
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
88
|
-
* in the Software without restriction, including without limitation the rights
|
|
89
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
90
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
91
|
-
* furnished to do so, subject to the following conditions:
|
|
92
|
-
* The above copyright notice and this permission notice shall be included in
|
|
93
|
-
* all copies or substantial portions of the Software.
|
|
94
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
95
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
96
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
97
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
98
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
99
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
100
|
-
* THE SOFTWARE.
|
|
101
|
-
* @protected
|
|
102
|
-
* @param {?} data
|
|
103
|
-
* @param {?} targetResolution
|
|
104
|
-
* @param {?} targetLength
|
|
105
|
-
* @return {?}
|
|
106
|
-
*/
|
|
107
|
-
LTTBDataMipmap.prototype.downsampleToResolution = /**
|
|
108
|
-
* This method is adapted from: https://github.com/sveinn-steinarsson/flot-downsample
|
|
109
|
-
*
|
|
110
|
-
* The MIT License
|
|
111
|
-
* Copyright (c) 2013 by Sveinn Steinarsson
|
|
112
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
113
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
114
|
-
* in the Software without restriction, including without limitation the rights
|
|
115
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
116
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
117
|
-
* furnished to do so, subject to the following conditions:
|
|
118
|
-
* The above copyright notice and this permission notice shall be included in
|
|
119
|
-
* all copies or substantial portions of the Software.
|
|
120
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
121
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
122
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
123
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
124
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
125
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
126
|
-
* THE SOFTWARE.
|
|
127
|
-
* @protected
|
|
128
|
-
* @param {?} data
|
|
129
|
-
* @param {?} targetResolution
|
|
130
|
-
* @param {?} targetLength
|
|
131
|
-
* @return {?}
|
|
132
|
-
*/
|
|
133
|
-
function (data, targetResolution, targetLength) {
|
|
134
|
-
/** @type {?} */
|
|
135
|
-
var dataLength = data.length;
|
|
136
|
-
if (targetLength >= dataLength || targetLength === 0) {
|
|
137
|
-
return data; // data has target size
|
|
138
|
-
}
|
|
139
|
-
/** @type {?} */
|
|
140
|
-
var output = [];
|
|
141
|
-
// bucket size, leave room for start and end data points
|
|
142
|
-
/** @type {?} */
|
|
143
|
-
var bucksetSize = (dataLength - 2) / (targetLength - 2);
|
|
144
|
-
/** @type {?} */
|
|
145
|
-
var a = 0;
|
|
146
|
-
// initially a is the first point in the triangle
|
|
147
|
-
/** @type {?} */
|
|
148
|
-
var maxAreaPoint;
|
|
149
|
-
/** @type {?} */
|
|
150
|
-
var maxArea;
|
|
151
|
-
/** @type {?} */
|
|
152
|
-
var area;
|
|
153
|
-
/** @type {?} */
|
|
154
|
-
var nextA;
|
|
155
|
-
// always add the first point
|
|
156
|
-
output.push(data[a]);
|
|
157
|
-
for (var i = 0; i < targetLength - 2; ++i) {
|
|
158
|
-
// Calculate point average for next bucket (containing c)
|
|
159
|
-
/** @type {?} */
|
|
160
|
-
var avgX = 0;
|
|
161
|
-
/** @type {?} */
|
|
162
|
-
var avgY = 0;
|
|
163
|
-
/** @type {?} */
|
|
164
|
-
var avgRangeStart = Math.floor((i + 1) * bucksetSize) + 1;
|
|
165
|
-
/** @type {?} */
|
|
166
|
-
var avgRangeEnd = Math.floor((i + 2) * bucksetSize) + 1;
|
|
167
|
-
avgRangeEnd = avgRangeEnd < dataLength ? avgRangeEnd : dataLength;
|
|
168
|
-
/** @type {?} */
|
|
169
|
-
var avgRangeLength = avgRangeEnd - avgRangeStart;
|
|
170
|
-
for (; avgRangeStart < avgRangeEnd; avgRangeStart++) {
|
|
171
|
-
avgX += this.getTime(data[avgRangeStart]);
|
|
172
|
-
avgY += (/** @type {?} */ (data[avgRangeStart].y)) * 1;
|
|
173
|
-
}
|
|
174
|
-
avgX /= avgRangeLength;
|
|
175
|
-
avgY /= avgRangeLength;
|
|
176
|
-
// Get the range for this bucket
|
|
177
|
-
/** @type {?} */
|
|
178
|
-
var rangeOffs = Math.floor((i + 0) * bucksetSize) + 1;
|
|
179
|
-
/** @type {?} */
|
|
180
|
-
var rangeTo = Math.floor((i + 1) * bucksetSize) + 1;
|
|
181
|
-
// Point a
|
|
182
|
-
/** @type {?} */
|
|
183
|
-
var pointA = data[a];
|
|
184
|
-
/** @type {?} */
|
|
185
|
-
var pointAX = this.getTime(pointA);
|
|
186
|
-
/** @type {?} */
|
|
187
|
-
var pointAY = (/** @type {?} */ (pointA.y)) * 1;
|
|
188
|
-
maxArea = area = -1;
|
|
189
|
-
for (; rangeOffs < rangeTo; rangeOffs++) {
|
|
190
|
-
// Calculate triangle area over three buckets
|
|
191
|
-
area = Math.abs((pointAX - avgX) * ((/** @type {?} */ (data[rangeOffs].y)) - pointAY) -
|
|
192
|
-
(pointAX - this.getTime(data[rangeOffs])) * (avgY - pointAY)) * 0.5;
|
|
193
|
-
if (area > maxArea) {
|
|
194
|
-
maxArea = area;
|
|
195
|
-
maxAreaPoint = data[rangeOffs];
|
|
196
|
-
nextA = rangeOffs; // Next a is this b
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
output.push(maxAreaPoint); // Pick this point from the bucket
|
|
200
|
-
a = nextA; // This a is the next a (chosen b)
|
|
201
|
-
}
|
|
202
|
-
output.push(data[dataLength - 1]); // Always add last
|
|
203
|
-
return output;
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* @protected
|
|
207
|
-
* @param {?} data
|
|
208
|
-
* @return {?}
|
|
209
|
-
*/
|
|
210
|
-
LTTBDataMipmap.prototype.computeAverageResolution = /**
|
|
211
|
-
* @protected
|
|
212
|
-
* @param {?} data
|
|
213
|
-
* @return {?}
|
|
214
|
-
*/
|
|
215
|
-
function (data) {
|
|
216
|
-
/** @type {?} */
|
|
217
|
-
var timeDistances = 0;
|
|
218
|
-
for (var i = 0, end = this.originalData.length - 1; i < end; ++i) {
|
|
219
|
-
/** @type {?} */
|
|
220
|
-
var current = this.originalData[i];
|
|
221
|
-
/** @type {?} */
|
|
222
|
-
var next = this.originalData[i + 1];
|
|
223
|
-
timeDistances += Math.abs(this.getTime(current) - this.getTime(next));
|
|
224
|
-
}
|
|
225
|
-
return timeDistances / (data.length - 1);
|
|
226
|
-
};
|
|
227
|
-
return LTTBDataMipmap;
|
|
228
|
-
}(DataMipmap));
|
|
229
|
-
/**
|
|
230
|
-
* A mipmap data structure that uses Largest-Triangle-Three-Buckets algorithm to downsample data
|
|
231
|
-
*/
|
|
232
|
-
export { LTTBDataMipmap };
|
|
233
|
-
if (false) {
|
|
234
|
-
/**
|
|
235
|
-
* @type {?}
|
|
236
|
-
* @protected
|
|
237
|
-
*/
|
|
238
|
-
LTTBDataMipmap.prototype.resolutions;
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHR0Yl9kYXRhX21pcG1hcC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1oYW5hLW5hbWVzZXJ2ZXItaGlzdG9yeS12aWV3ZXIvIiwic291cmNlcyI6WyJzcmMvbmFtZXNlcnZlci1oaXN0b3J5LXZpZXdlci91dGlscy9jaGFydGpzLWRvd25zYW1wbGUvbHR0Yl9kYXRhX21pcG1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXlCQSxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSzNDOzs7O0lBQW9DLDBDQUFVO0lBQTlDOztJQThIQSxDQUFDOzs7OztJQTNIRyxvREFBMkI7Ozs7SUFBM0IsVUFBNEIsVUFBa0I7UUFDMUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQUUsT0FBTyxDQUFDLENBQUM7U0FBRTs7WUFFdEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVzs7OztRQUFFLFVBQUMsZUFBZSxJQUFLLE9BQUEsZUFBZSxJQUFJLFVBQVUsRUFBN0IsQ0FBNkIsRUFBQztRQUN4RyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNkLGtDQUFrQztZQUNsQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7Ozs7SUFFUyxxQ0FBWTs7OztJQUF0QjtRQUFBLGlCQUdDO1FBRkcsaUJBQU0sWUFBWSxXQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7Ozs7UUFBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFBcEMsQ0FBb0MsRUFBQyxDQUFDO0lBQ3pGLENB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O0lBN0hHLHFDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGlzIHBsdWdpbiBpcyBhZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS8zZGNsL2NoYXJ0anMtcGx1Z2luLXJlc3BvbnNpdmUtZG93bnNhbXBsZVxyXG4gKiBmb3IgY29udHJvbGxpbmcgdGhlIHJhZGl1cyBvZiBwb2ludC5cclxuICpcclxuICogTUlUIExpY2Vuc2VcclxuICogQ29weXJpZ2h0IChjKSAyMDE4IDNEIENvbnRlbnQgTG9naXN0aWNzXHJcbiAqXHJcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxyXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXHJcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXHJcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxyXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4gKlxyXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXHJcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcclxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxyXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxyXG4gKiBTT0ZUV0FSRS5cclxuICovXHJcbmltcG9ydCB7IENoYXJ0UG9pbnQgfSBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBEYXRhTWlwbWFwIH0gZnJvbSAnLi9kYXRhX21pcG1hcCc7XHJcblxyXG4vKipcclxuICogQSBtaXBtYXAgZGF0YSBzdHJ1Y3R1cmUgdGhhdCB1c2VzIExhcmdlc3QtVHJpYW5nbGUtVGhyZWUtQnVja2V0cyBhbGdvcml0aG0gdG8gZG93bnNhbXBsZSBkYXRhXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTFRUQkRhdGFNaXBtYXAgZXh0ZW5kcyBEYXRhTWlwbWFwIHtcclxuICAgIHByb3RlY3RlZCByZXNvbHV0aW9uczogbnVtYmVyW107XHJcblxyXG4gICAgZ2V0TWlwTWFwSW5kZXhGb3JSZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHV0aWxzLmlzTmlsKHJlc29sdXRpb24pKSB7IHJldHVybiAwOyB9XHJcblxyXG4gICAgICAgIGxldCBpbmRleCA9IHV0aWxzLmZpbmRJbmRleEluQXJyYXkodGhpcy5yZXNvbHV0aW9ucywgKGxldmVsUmVzb2x1dGlvbikgPT4gbGV2ZWxSZXNvbHV0aW9uID49IHJlc29sdXRpb24pO1xyXG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgLy8gdXNlIHNtYWxsZXN0IG1pcG1hcCBhcyBmYWxsYmFja1xyXG4gICAgICAgICAgICBpbmRleCA9IHRoaXMucmVzb2x1dGlvbnMubGVuZ3RoIC0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlTWlwTWFwKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmNyZWF0ZU1pcE1hcCgpO1xyXG4gICAgICAgIHRoaXMucmVzb2x1dGlvbnMgPSB0aGlzLm1pcE1hcHMubWFwKChsZXZlbCkgPT4gdGhpcy5jb21wdXRlQXZlcmFnZVJlc29sdXRpb24obGV2ZWwpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL3N2ZWlubi1zdGVpbmFyc3Nvbi9mbG90LWRvd25zYW1wbGVcclxuICAgICAqXHJcbiAgICAgKiBUaGUgTUlUIExpY2Vuc2VcclxuICAgICAqIENvcHlyaWdodCAoYykgMjAxMyBieSBTdmVpbm4gU3RlaW5hcnNzb25cclxuICAgICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcclxuICAgICAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuICAgICAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuICAgICAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcclxuICAgICAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4gICAgICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuICAgICAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXHJcbiAgICAgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuICAgICAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuICAgICAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxyXG4gICAgICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbiAgICAgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbiAgICAgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxyXG4gICAgICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxyXG4gICAgICogVEhFIFNPRlRXQVJFLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZG93bnNhbXBsZVRvUmVzb2x1dGlvbihcclxuICAgICAgICBkYXRhOiBDaGFydFBvaW50W10sXHJcbiAgICAgICAgdGFyZ2V0UmVzb2x1dGlvbjogbnVtYmVyLFxyXG4gICAgICAgIHRhcmdldExlbmd0aDogbnVtYmVyXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHRhcmdldExlbmd0aCA+PSBkYXRhTGVuZ3RoIHx8IHRhcmdldExlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YTsgLy8gZGF0YSBoYXMgdGFyZ2V0IHNpemVcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG91dHB1dDogQ2hhcnRQb2ludFtdID0gW107XHJcblxyXG4gICAgICAgIC8vIGJ1Y2tldCBzaXplLCBsZWF2ZSByb29tIGZvciBzdGFydCBhbmQgZW5kIGRhdGEgcG9pbnRzXHJcbiAgICAgICAgY29uc3QgYnVja3NldFNpemUgPSAoZGF0YUxlbmd0aCAtIDIpIC8gKHRhcmdldExlbmd0aCAtIDIpO1xyXG5cclxuICAgICAgICBsZXQgYSA9IDA7ICAvLyBpbml0aWFsbHkgYSBpcyB0aGUgZmlyc3QgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlXHJcbiAgICAgICAgbGV0IG1heEFyZWFQb2ludDogQ2hhcnRQb2ludDtcclxuICAgICAgICBsZXQgbWF4QXJlYTogbnVtYmVyO1xyXG4gICAgICAgIGxldCBhcmVhOiBudW1iZXI7XHJcbiAgICAgICAgbGV0IG5leHRBOiBudW1iZXI7XHJcblxyXG4gICAgICAgIC8vIGFsd2F5cyBhZGQgdGhlIGZpcnN0IHBvaW50XHJcbiAgICAgICAgb3V0cHV0LnB1c2goZGF0YVthXSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0TGVuZ3RoIC0gMjsgKytpKSB7XHJcbiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBwb2ludCBhdmVyYWdlIGZvciBuZXh0IGJ1Y2tldCAoY29udGFpbmluZyBjKVxyXG4gICAgICAgICAgICBsZXQgYXZnWCA9IDA7XHJcbiAgICAgICAgICAgIGxldCBhdmdZID0gMDtcclxuICAgICAgICAgICAgbGV0IGF2Z1JhbmdlU3RhcnQgPSBNYXRoLmZsb29yKChpICsgMSkgKiBidWNrc2V0U2l6ZSkgKyAxO1xyXG4gICAgICAgICAgICBsZXQgYXZnUmFuZ2VFbmQgPSBNYXRoLmZsb29yKChpICsgMikgKiBidWNrc2V0U2l6ZSkgKyAxO1xyXG4gICAgICAgICAgICBhdmdSYW5nZUVuZCA9IGF2Z1JhbmdlRW5kIDwgZGF0YUxlbmd0aCA/IGF2Z1JhbmdlRW5kIDogZGF0YUxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGF2Z1JhbmdlTGVuZ3RoID0gYXZnUmFuZ2VFbmQgLSBhdmdSYW5nZVN0YXJ0O1xyXG5cclxuICAgICAgICAgICAgZm9yICg7IGF2Z1JhbmdlU3RhcnQgPCBhdmdSYW5nZUVuZDsgYXZnUmFuZ2VTdGFydCsrKSB7XHJcbiAgICAgICAgICAgICAgICBhdmdYICs9IHRoaXMuZ2V0VGltZShkYXRhW2F2Z1JhbmdlU3RhcnRdKTtcclxuICAgICAgICAgICAgICAgIGF2Z1kgKz0gZGF0YVthdmdSYW5nZVN0YXJ0XS55IGFzIG51bWJlciAqIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYXZnWCAvPSBhdmdSYW5nZUxlbmd0aDtcclxuICAgICAgICAgICAgYXZnWSAvPSBhdmdSYW5nZUxlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIC8vIEdldCB0aGUgcmFuZ2UgZm9yIHRoaXMgYnVja2V0XHJcbiAgICAgICAgICAgIGxldCByYW5nZU9mZnMgPSBNYXRoLmZsb29yKChpICsgMCkgKiBidWNrc2V0U2l6ZSkgKyAxO1xyXG4gICAgICAgICAgICBjb25zdCByYW5nZVRvID0gTWF0aC5mbG9vcigoaSArIDEpICogYnVja3NldFNpemUpICsgMTtcclxuXHJcbiAgICAgICAgICAgIC8vIFBvaW50IGFcclxuICAgICAgICAgICAgY29uc3QgcG9pbnRBID0gZGF0YVthXTtcclxuICAgICAgICAgICAgY29uc3QgcG9pbnRBWCA9IHRoaXMuZ2V0VGltZShwb2ludEEpO1xyXG4gICAgICAgICAgICBjb25zdCBwb2ludEFZID0gcG9pbnRBLnkgYXMgbnVtYmVyICogMTtcclxuXHJcbiAgICAgICAgICAgIG1heEFyZWEgPSBhcmVhID0gLTE7XHJcblxyXG4gICAgICAgICAgICBmb3IgKDsgcmFuZ2VPZmZzIDwgcmFuZ2VUbzsgcmFuZ2VPZmZzKyspIHtcclxuICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0cmlhbmdsZSBhcmVhIG92ZXIgdGhyZWUgYnVja2V0c1xyXG4gICAgICAgICAgICAgICAgYXJlYSA9IE1hdGguYWJzKChwb2ludEFYIC0gYXZnWCkgKiAoZGF0YVtyYW5nZU9mZnNdLnkgYXMgbnVtYmVyIC0gcG9pbnRBWSkgLVxyXG4gICAgICAgICAgICAgICAgICAgIChwb2ludEFYIC0gdGhpcy5nZXRUaW1lKGRhdGFbcmFuZ2VPZmZzXSkpICogKGF2Z1kgLSBwb2ludEFZKVxyXG4gICAgICAgICAgICAgICAgKSAqIDAuNTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYXJlYSA+IG1heEFyZWEpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXhBcmVhID0gYXJlYTtcclxuICAgICAgICAgICAgICAgICAgICBtYXhBcmVhUG9pbnQgPSBkYXRhW3JhbmdlT2Zmc107XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dEEgPSByYW5nZU9mZnM7IC8vIE5leHQgYSBpcyB0aGlzIGJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgb3V0cHV0LnB1c2gobWF4QXJlYVBvaW50KTsgLy8gUGljayB0aGlzIHBvaW50IGZyb20gdGhlIGJ1Y2tldFxyXG4gICAgICAgICAgICBhID0gbmV4dEE7IC8vIFRoaXMgYSBpcyB0aGUgbmV4dCBhIChjaG9zZW4gYilcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG91dHB1dC5wdXNoKGRhdGFbZGF0YUxlbmd0aCAtIDFdKTsgLy8gQWx3YXlzIGFkZCBsYXN0XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVBdmVyYWdlUmVzb2x1dGlvbihkYXRhOiBDaGFydFBvaW50W10pOiBudW1iZXIge1xyXG4gICAgICAgIGxldCB0aW1lRGlzdGFuY2VzID0gMDtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGVuZCA9IHRoaXMub3JpZ2luYWxEYXRhLmxlbmd0aCAtIDE7IGkgPCBlbmQ7ICsraSkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5vcmlnaW5hbERhdGFbaV07XHJcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB0aGlzLm9yaWdpbmFsRGF0YVtpICsgMV07XHJcblxyXG4gICAgICAgICAgICB0aW1lRGlzdGFuY2VzICs9IE1hdGguYWJzKHRoaXMuZ2V0VGltZShjdXJyZW50KSAtIHRoaXMuZ2V0VGltZShuZXh0KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aW1lRGlzdGFuY2VzIC8gKGRhdGEubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|