@carto/kepler.gl 0.1.0-alpha.1 → 0.1.0-next.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/dist/actions/action-wrapper.d.ts +115 -115
- package/dist/actions/action-wrapper.js +190 -0
- package/dist/actions/actions.d.ts +195 -195
- package/dist/actions/actions.js +194 -0
- package/dist/actions/identity-actions.d.ts +61 -61
- package/dist/actions/identity-actions.js +101 -0
- package/dist/actions/index.d.ts +9 -9
- package/dist/actions/index.js +144 -0
- package/dist/actions/map-state-actions.d.ts +69 -69
- package/dist/actions/map-state-actions.js +106 -0
- package/dist/actions/map-style-actions.d.ts +146 -146
- package/dist/actions/map-style-actions.js +176 -0
- package/dist/actions/provider-actions.d.ts +153 -153
- package/dist/actions/provider-actions.js +144 -0
- package/dist/actions/ui-state-actions.d.ts +300 -300
- package/dist/actions/ui-state-actions.js +356 -0
- package/dist/actions/vis-state-actions.d.ts +821 -821
- package/dist/actions/vis-state-actions.js +900 -0
- package/dist/cloud-providers/index.d.ts +2 -2
- package/dist/cloud-providers/index.js +22 -0
- package/dist/cloud-providers/provider.d.ts +176 -176
- package/dist/cloud-providers/provider.js +346 -0
- package/dist/components/bottom-widget.d.ts +47 -47
- package/dist/components/bottom-widget.js +217 -0
- package/dist/components/common/action-panel.d.ts +27 -27
- package/dist/components/common/action-panel.js +133 -0
- package/dist/components/common/animation-control/animation-control.d.ts +24 -24
- package/dist/components/common/animation-control/animation-control.js +129 -0
- package/dist/components/common/animation-control/animation-controller.d.ts +16 -16
- package/dist/components/common/animation-control/animation-controller.js +270 -0
- package/dist/components/common/animation-control/animation-speed-slider.d.ts +12 -12
- package/dist/components/common/animation-control/animation-speed-slider.js +88 -0
- package/dist/components/common/animation-control/floating-time-display.d.ts +9 -9
- package/dist/components/common/animation-control/floating-time-display.js +149 -0
- package/dist/components/common/animation-control/playback-controls.d.ts +72 -72
- package/dist/components/common/animation-control/playback-controls.js +261 -0
- package/dist/components/common/animation-control/speed-control.d.ts +13 -13
- package/dist/components/common/animation-control/speed-control.js +70 -0
- package/dist/components/common/checkbox.d.ts +35 -35
- package/dist/components/common/checkbox.js +117 -0
- package/dist/components/common/color-legend.d.ts +43 -43
- package/dist/components/common/color-legend.js +205 -0
- package/dist/components/common/data-table/button.d.ts +8 -8
- package/dist/components/common/data-table/button.js +53 -0
- package/dist/components/common/data-table/canvas.d.ts +2 -2
- package/dist/components/common/data-table/canvas.js +43 -0
- package/dist/components/common/data-table/cell-size.d.ts +36 -36
- package/dist/components/common/data-table/cell-size.js +170 -0
- package/dist/components/common/data-table/grid.d.ts +7 -7
- package/dist/components/common/data-table/grid.js +90 -0
- package/dist/components/common/data-table/index.d.ts +143 -143
- package/dist/components/common/data-table/index.js +469 -0
- package/dist/components/common/data-table/option-dropdown.d.ts +14 -14
- package/dist/components/common/data-table/option-dropdown.js +99 -0
- package/dist/components/common/dataset-label.d.ts +10 -10
- package/dist/components/common/dataset-label.js +44 -0
- package/dist/components/common/error-boundary.d.ts +16 -16
- package/dist/components/common/error-boundary.js +76 -0
- package/dist/components/common/field-selector.d.ts +47 -47
- package/dist/components/common/field-selector.js +214 -0
- package/dist/components/common/field-token.d.ts +45 -45
- package/dist/components/common/field-token.js +47 -0
- package/dist/components/common/file-uploader/file-drop.d.ts +54 -54
- package/dist/components/common/file-uploader/file-drop.js +213 -0
- package/dist/components/common/file-uploader/file-upload-progress.d.ts +8 -8
- package/dist/components/common/file-uploader/file-upload-progress.js +103 -0
- package/dist/components/common/file-uploader/file-upload.d.ts +27 -27
- package/dist/components/common/file-uploader/file-upload.js +263 -0
- package/dist/components/common/file-uploader/upload-button.d.ts +8 -8
- package/dist/components/common/file-uploader/upload-button.js +76 -0
- package/dist/components/common/histogram-plot.d.ts +3 -3
- package/dist/components/common/histogram-plot.js +112 -0
- package/dist/components/common/icons/add.d.ts +9 -9
- package/dist/components/common/icons/add.js +58 -0
- package/dist/components/common/icons/anchor_window.d.ts +11 -11
- package/dist/components/common/icons/anchor_window.js +51 -0
- package/dist/components/common/icons/arrow-down-alt.d.ts +9 -9
- package/dist/components/common/icons/arrow-down-alt.js +58 -0
- package/dist/components/common/icons/arrow-down-solid.d.ts +9 -9
- package/dist/components/common/icons/arrow-down-solid.js +58 -0
- package/dist/components/common/icons/arrow-down.d.ts +9 -9
- package/dist/components/common/icons/arrow-down.js +58 -0
- package/dist/components/common/icons/arrow-left.d.ts +9 -9
- package/dist/components/common/icons/arrow-left.js +61 -0
- package/dist/components/common/icons/arrow-right.d.ts +9 -9
- package/dist/components/common/icons/arrow-right.js +58 -0
- package/dist/components/common/icons/arrow-up-alt.d.ts +9 -9
- package/dist/components/common/icons/arrow-up-alt.js +59 -0
- package/dist/components/common/icons/arrow-up-solid.d.ts +9 -9
- package/dist/components/common/icons/arrow-up-solid.js +58 -0
- package/dist/components/common/icons/arrow-up.d.ts +9 -9
- package/dist/components/common/icons/arrow-up.js +58 -0
- package/dist/components/common/icons/base.d.ts +29 -29
- package/dist/components/common/icons/base.js +94 -0
- package/dist/components/common/icons/bug.d.ts +9 -9
- package/dist/components/common/icons/bug.js +60 -0
- package/dist/components/common/icons/cancel.d.ts +9 -9
- package/dist/components/common/icons/cancel.js +58 -0
- package/dist/components/common/icons/checkmark.d.ts +10 -10
- package/dist/components/common/icons/checkmark.js +64 -0
- package/dist/components/common/icons/chevron-right.js +68 -0
- package/dist/components/common/icons/clipboard.d.ts +9 -9
- package/dist/components/common/icons/clipboard.js +59 -0
- package/dist/components/common/icons/clock.d.ts +9 -9
- package/dist/components/common/icons/clock.js +60 -0
- package/dist/components/common/icons/close.d.ts +9 -9
- package/dist/components/common/icons/close.js +63 -0
- package/dist/components/common/icons/code-alt.d.ts +9 -9
- package/dist/components/common/icons/code-alt.js +61 -0
- package/dist/components/common/icons/copy.d.ts +9 -9
- package/dist/components/common/icons/copy.js +63 -0
- package/dist/components/common/icons/crosshairs.d.ts +9 -9
- package/dist/components/common/icons/crosshairs.js +61 -0
- package/dist/components/common/icons/cube-3d.d.ts +9 -9
- package/dist/components/common/icons/cube-3d.js +62 -0
- package/dist/components/common/icons/cursor-click.d.ts +9 -9
- package/dist/components/common/icons/cursor-click.js +62 -0
- package/dist/components/common/icons/data-table.d.ts +10 -10
- package/dist/components/common/icons/data-table.js +59 -0
- package/dist/components/common/icons/db.d.ts +10 -10
- package/dist/components/common/icons/db.js +59 -0
- package/dist/components/common/icons/delete.d.ts +9 -9
- package/dist/components/common/icons/delete.js +60 -0
- package/dist/components/common/icons/docs.d.ts +9 -9
- package/dist/components/common/icons/docs.js +74 -0
- package/dist/components/common/icons/drag-n-drop.d.ts +9 -9
- package/dist/components/common/icons/drag-n-drop.js +60 -0
- package/dist/components/common/icons/draw-polygon.d.ts +10 -10
- package/dist/components/common/icons/draw-polygon.js +78 -0
- package/dist/components/common/icons/email.d.ts +9 -9
- package/dist/components/common/icons/email.js +62 -0
- package/dist/components/common/icons/expand.d.ts +9 -9
- package/dist/components/common/icons/expand.js +60 -0
- package/dist/components/common/icons/eye-seen.d.ts +9 -9
- package/dist/components/common/icons/eye-seen.js +60 -0
- package/dist/components/common/icons/eye-unseen.d.ts +9 -9
- package/dist/components/common/icons/eye-unseen.js +60 -0
- package/dist/components/common/icons/file-type.d.ts +8 -8
- package/dist/components/common/icons/file-type.js +52 -0
- package/dist/components/common/icons/file.d.ts +9 -9
- package/dist/components/common/icons/file.js +58 -0
- package/dist/components/common/icons/files.d.ts +9 -9
- package/dist/components/common/icons/files.js +58 -0
- package/dist/components/common/icons/filter-funnel.d.ts +9 -9
- package/dist/components/common/icons/filter-funnel.js +58 -0
- package/dist/components/common/icons/free-window.d.ts +11 -11
- package/dist/components/common/icons/free-window.js +51 -0
- package/dist/components/common/icons/gear.d.ts +9 -9
- package/dist/components/common/icons/gear.js +60 -0
- package/dist/components/common/icons/hash.d.ts +9 -9
- package/dist/components/common/icons/hash.js +58 -0
- package/dist/components/common/icons/histogram.d.ts +9 -9
- package/dist/components/common/icons/histogram.js +58 -0
- package/dist/components/common/icons/index.d.ts +78 -78
- package/dist/components/common/icons/index.js +551 -0
- package/dist/components/common/icons/info.d.ts +12 -12
- package/dist/components/common/icons/info.js +71 -0
- package/dist/components/common/icons/layers.d.ts +9 -9
- package/dist/components/common/icons/layers.js +58 -0
- package/dist/components/common/icons/left-arrow.d.ts +9 -9
- package/dist/components/common/icons/left-arrow.js +61 -0
- package/dist/components/common/icons/legend.d.ts +9 -9
- package/dist/components/common/icons/legend.js +58 -0
- package/dist/components/common/icons/line-chart.d.ts +9 -9
- package/dist/components/common/icons/line-chart.js +58 -0
- package/dist/components/common/icons/login.d.ts +9 -9
- package/dist/components/common/icons/login.js +61 -0
- package/dist/components/common/icons/logout.d.ts +9 -9
- package/dist/components/common/icons/logout.js +60 -0
- package/dist/components/common/icons/map-icon.d.ts +11 -11
- package/dist/components/common/icons/map-icon.js +65 -0
- package/dist/components/common/icons/map.d.ts +11 -11
- package/dist/components/common/icons/map.js +65 -0
- package/dist/components/common/icons/messages.d.ts +9 -9
- package/dist/components/common/icons/messages.js +58 -0
- package/dist/components/common/icons/minus.d.ts +9 -9
- package/dist/components/common/icons/minus.js +58 -0
- package/dist/components/common/icons/order-by-dataset.d.ts +12 -12
- package/dist/components/common/icons/order-by-dataset.js +51 -0
- package/dist/components/common/icons/order-by-list.d.ts +12 -12
- package/dist/components/common/icons/order-by-list.js +43 -0
- package/dist/components/common/icons/pause.d.ts +9 -9
- package/dist/components/common/icons/pause.js +58 -0
- package/dist/components/common/icons/picture.d.ts +9 -9
- package/dist/components/common/icons/picture.js +58 -0
- package/dist/components/common/icons/pin.d.ts +9 -9
- package/dist/components/common/icons/pin.js +62 -0
- package/dist/components/common/icons/play.d.ts +9 -9
- package/dist/components/common/icons/play.js +58 -0
- package/dist/components/common/icons/polygon.d.ts +10 -10
- package/dist/components/common/icons/polygon.js +80 -0
- package/dist/components/common/icons/rectangle.d.ts +10 -10
- package/dist/components/common/icons/rectangle.js +81 -0
- package/dist/components/common/icons/reduce.d.ts +9 -9
- package/dist/components/common/icons/reduce.js +61 -0
- package/dist/components/common/icons/reset.d.ts +9 -9
- package/dist/components/common/icons/reset.js +58 -0
- package/dist/components/common/icons/rocket.d.ts +9 -9
- package/dist/components/common/icons/rocket.js +58 -0
- package/dist/components/common/icons/save.d.ts +9 -9
- package/dist/components/common/icons/save.js +60 -0
- package/dist/components/common/icons/save2.d.ts +9 -9
- package/dist/components/common/icons/save2.js +64 -0
- package/dist/components/common/icons/search.d.ts +9 -9
- package/dist/components/common/icons/search.js +60 -0
- package/dist/components/common/icons/settings.d.ts +9 -9
- package/dist/components/common/icons/settings.js +60 -0
- package/dist/components/common/icons/share.d.ts +9 -9
- package/dist/components/common/icons/share.js +58 -0
- package/dist/components/common/icons/split.d.ts +9 -9
- package/dist/components/common/icons/split.js +86 -0
- package/dist/components/common/icons/square-select.d.ts +9 -9
- package/dist/components/common/icons/square-select.js +60 -0
- package/dist/components/common/icons/swap-horizontal.js +66 -0
- package/dist/components/common/icons/table.d.ts +9 -9
- package/dist/components/common/icons/table.js +58 -0
- package/dist/components/common/icons/trash.d.ts +9 -9
- package/dist/components/common/icons/trash.js +60 -0
- package/dist/components/common/icons/upload.d.ts +9 -9
- package/dist/components/common/icons/upload.js +58 -0
- package/dist/components/common/icons/vert-dots.d.ts +9 -9
- package/dist/components/common/icons/vert-dots.js +96 -0
- package/dist/components/common/icons/vert-three-dots.d.ts +9 -9
- package/dist/components/common/icons/vert-three-dots.js +71 -0
- package/dist/components/common/icons/warning.d.ts +10 -10
- package/dist/components/common/icons/warning.js +72 -0
- package/dist/components/common/image-preview.d.ts +15 -15
- package/dist/components/common/image-preview.js +79 -0
- package/dist/components/common/info-helper.d.ts +11 -11
- package/dist/components/common/info-helper.js +79 -0
- package/dist/components/common/item-selector/accessor.d.ts +7 -7
- package/dist/components/common/item-selector/accessor.js +54 -0
- package/dist/components/common/item-selector/chickleted-input.d.ts +21 -21
- package/dist/components/common/item-selector/chickleted-input.js +96 -0
- package/dist/components/common/item-selector/dropdown-list.d.ts +68 -68
- package/dist/components/common/item-selector/dropdown-list.js +279 -0
- package/dist/components/common/item-selector/item-selector-submenu.js +88 -0
- package/dist/components/common/item-selector/item-selector.d.ts +91 -91
- package/dist/components/common/item-selector/item-selector.js +282 -0
- package/dist/components/common/item-selector/typeahead.d.ts +115 -115
- package/dist/components/common/item-selector/typeahead.js +425 -0
- package/dist/components/common/line-chart.d.ts +34 -34
- package/dist/components/common/line-chart.js +127 -0
- package/dist/components/common/loading-spinner.d.ts +9 -9
- package/dist/components/common/loading-spinner.js +64 -0
- package/dist/components/common/logo.d.ts +8 -8
- package/dist/components/common/logo.js +85 -0
- package/dist/components/common/map-layer-selector.d.ts +13 -13
- package/dist/components/common/map-layer-selector.js +56 -0
- package/dist/components/common/modal.d.ts +49 -49
- package/dist/components/common/modal.js +165 -0
- package/dist/components/common/portaled.d.ts +527 -527
- package/dist/components/common/portaled.js +277 -0
- package/dist/components/common/progress-bar.d.ts +12 -12
- package/dist/components/common/progress-bar.js +64 -0
- package/dist/components/common/range-brush.d.ts +19 -19
- package/dist/components/common/range-brush.js +277 -0
- package/dist/components/common/range-plot.d.ts +35 -35
- package/dist/components/common/range-plot.js +130 -0
- package/dist/components/common/range-slider.d.ts +32 -32
- package/dist/components/common/range-slider.js +305 -0
- package/dist/components/common/slider/mouse-event.d.ts +27 -27
- package/dist/components/common/slider/mouse-event.js +115 -0
- package/dist/components/common/slider/slider-bar-handle.d.ts +29 -29
- package/dist/components/common/slider/slider-bar-handle.js +105 -0
- package/dist/components/common/slider/slider-handle.d.ts +33 -33
- package/dist/components/common/slider/slider-handle.js +151 -0
- package/dist/components/common/slider/slider.d.ts +70 -70
- package/dist/components/common/slider/slider.js +221 -0
- package/dist/components/common/styled-components.d.ts +119 -119
- package/dist/components/common/styled-components.js +300 -0
- package/dist/components/common/switch.d.ts +16 -16
- package/dist/components/common/switch.js +38 -0
- package/dist/components/common/time-range-slider-time-title.d.ts +9 -9
- package/dist/components/common/time-range-slider-time-title.js +79 -0
- package/dist/components/common/time-range-slider.d.ts +32 -32
- package/dist/components/common/time-range-slider.js +116 -0
- package/dist/components/common/time-slider-marker.d.ts +21 -21
- package/dist/components/common/time-slider-marker.js +136 -0
- package/dist/components/common/tippy-tooltip.d.ts +4 -4
- package/dist/components/common/tippy-tooltip.js +115 -0
- package/dist/components/common/toolbar-item.d.ts +14 -14
- package/dist/components/common/toolbar-item.js +75 -0
- package/dist/components/common/toolbar.d.ts +5 -5
- package/dist/components/common/toolbar.js +44 -0
- package/dist/components/common/vertical-toolbar.d.ts +3 -3
- package/dist/components/common/vertical-toolbar.js +33 -0
- package/dist/components/container.d.ts +39 -39
- package/dist/components/container.js +203 -0
- package/dist/components/context.d.ts +7 -7
- package/dist/components/context.js +38 -0
- package/dist/components/editor/constants.d.ts +17 -17
- package/dist/components/editor/constants.js +45 -0
- package/dist/components/editor/editor.d.ts +29 -29
- package/dist/components/editor/editor.js +226 -0
- package/dist/components/editor/feature-action-panel.d.ts +27 -27
- package/dist/components/editor/feature-action-panel.js +141 -0
- package/dist/components/editor/feature-styles.d.ts +24 -24
- package/dist/components/editor/feature-styles.js +67 -0
- package/dist/components/editor/handle-style.d.ts +38 -38
- package/dist/components/editor/handle-style.js +78 -0
- package/dist/components/filters/components.d.ts +1 -3
- package/dist/components/filters/components.js +31 -0
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -10
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +96 -0
- package/dist/components/filters/filter-panels/multi-select-filter-panel.d.ts +9 -9
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +66 -0
- package/dist/components/filters/filter-panels/new-filter-panel.d.ts +12 -12
- package/dist/components/filters/filter-panels/new-filter-panel.js +85 -0
- package/dist/components/filters/filter-panels/polygon-filter-panel.d.ts +9 -9
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +85 -0
- package/dist/components/filters/filter-panels/range-filter-panel.d.ts +9 -9
- package/dist/components/filters/filter-panels/range-filter-panel.js +66 -0
- package/dist/components/filters/filter-panels/single-select-filter-panel.d.ts +9 -9
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +66 -0
- package/dist/components/filters/filter-panels/time-range-filter-panel.d.ts +8 -8
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +80 -0
- package/dist/components/filters/filter-panels/types.d.ts +36 -36
- package/dist/components/filters/filter-panels/types.js +6 -0
- package/dist/components/filters/index.d.ts +5 -5
- package/dist/components/filters/index.js +42 -0
- package/dist/components/filters/multi-select-filter.d.ts +3 -3
- package/dist/components/filters/multi-select-filter.js +48 -0
- package/dist/components/filters/polygon-filter.d.ts +4 -4
- package/dist/components/filters/polygon-filter.js +85 -0
- package/dist/components/filters/range-filter.d.ts +8 -8
- package/dist/components/filters/range-filter.js +48 -0
- package/dist/components/filters/single-select-filter.d.ts +3 -3
- package/dist/components/filters/single-select-filter.js +57 -0
- package/dist/components/filters/time-range-filter.d.ts +28 -28
- package/dist/components/filters/time-range-filter.js +75 -0
- package/dist/components/filters/time-widget.d.ts +14 -14
- package/dist/components/filters/time-widget.js +162 -0
- package/dist/components/filters/types.d.ts +53 -53
- package/dist/components/filters/types.js +6 -0
- package/dist/components/geocoder/geocoder.d.ts +33 -33
- package/dist/components/geocoder/geocoder.js +282 -0
- package/dist/components/geocoder-panel.d.ts +28 -28
- package/dist/components/geocoder-panel.js +192 -0
- package/dist/components/index.d.ts +165 -165
- package/dist/components/index.js +1474 -0
- package/dist/components/injector.d.ts +25 -25
- package/dist/components/injector.js +162 -0
- package/dist/components/kepler-gl.d.ts +302 -302
- package/dist/components/kepler-gl.js +487 -0
- package/dist/components/map/coordinate-info.d.ts +7 -7
- package/dist/components/map/coordinate-info.js +59 -0
- package/dist/components/map/layer-hover-info.d.ts +13 -13
- package/dist/components/map/layer-hover-info.js +167 -0
- package/dist/components/map/layer-selector-panel.d.ts +22 -22
- package/dist/components/map/layer-selector-panel.js +103 -0
- package/dist/components/map/locale-panel.d.ts +16 -16
- package/dist/components/map/locale-panel.js +103 -0
- package/dist/components/map/map-control-panel.d.ts +14 -14
- package/dist/components/map/map-control-panel.js +97 -0
- package/dist/components/map/map-control-toolbar.d.ts +2 -2
- package/dist/components/map/map-control-toolbar.js +35 -0
- package/dist/components/map/map-control-tooltip.d.ts +7 -7
- package/dist/components/map/map-control-tooltip.js +48 -0
- package/dist/components/map/map-control.d.ts +44 -44
- package/dist/components/map/map-control.js +79 -0
- package/dist/components/map/map-draw-panel.d.ts +21 -21
- package/dist/components/map/map-draw-panel.js +131 -0
- package/dist/components/map/map-legend-panel.d.ts +23 -23
- package/dist/components/map/map-legend-panel.js +152 -0
- package/dist/components/map/map-legend.d.ts +55 -55
- package/dist/components/map/map-legend.js +234 -0
- package/dist/components/map/map-popover.d.ts +37 -37
- package/dist/components/map/map-popover.js +191 -0
- package/dist/components/map/split-map-button.d.ts +19 -19
- package/dist/components/map/split-map-button.js +89 -0
- package/dist/components/map/toggle-3d-button.d.ts +16 -16
- package/dist/components/map/toggle-3d-button.js +79 -0
- package/dist/components/map-container.d.ts +58 -58
- package/dist/components/map-container.js +502 -0
- package/dist/components/maps-layout.d.ts +10 -10
- package/dist/components/maps-layout.js +57 -0
- package/dist/components/modal-container.d.ts +65 -65
- package/dist/components/modal-container.js +459 -0
- package/dist/components/modals/add-map-style-modal.d.ts +17 -17
- package/dist/components/modals/add-map-style-modal.js +250 -0
- package/dist/components/modals/cloud-tile.d.ts +15 -15
- package/dist/components/modals/cloud-tile.js +124 -0
- package/dist/components/modals/data-table-modal.d.ts +29 -29
- package/dist/components/modals/data-table-modal.js +223 -0
- package/dist/components/modals/delete-data-modal.d.ts +10 -10
- package/dist/components/modals/delete-data-modal.js +58 -0
- package/dist/components/modals/error-display.d.ts +6 -6
- package/dist/components/modals/error-display.js +44 -0
- package/dist/components/modals/export-data-modal.d.ts +25 -25
- package/dist/components/modals/export-data-modal.js +194 -0
- package/dist/components/modals/export-image-modal.d.ts +18 -18
- package/dist/components/modals/export-image-modal.js +139 -0
- package/dist/components/modals/export-map-modal/components.d.ts +8 -8
- package/dist/components/modals/export-map-modal/components.js +51 -0
- package/dist/components/modals/export-map-modal/export-html-map.d.ts +12 -12
- package/dist/components/modals/export-map-modal/export-html-map.js +140 -0
- package/dist/components/modals/export-map-modal/export-json-map.d.ts +9 -9
- package/dist/components/modals/export-map-modal/export-json-map.js +98 -0
- package/dist/components/modals/export-map-modal/export-map-modal.d.ts +27 -27
- package/dist/components/modals/export-map-modal/export-map-modal.js +101 -0
- package/dist/components/modals/image-modal-container.d.ts +18 -18
- package/dist/components/modals/image-modal-container.js +83 -0
- package/dist/components/modals/load-data-modal.d.ts +33 -33
- package/dist/components/modals/load-data-modal.js +93 -0
- package/dist/components/modals/load-storage-map.d.ts +26 -26
- package/dist/components/modals/load-storage-map.js +251 -0
- package/dist/components/modals/loading-dialog.d.ts +7 -7
- package/dist/components/modals/loading-dialog.js +54 -0
- package/dist/components/modals/modal-dialog.d.ts +2 -2
- package/dist/components/modals/modal-dialog.js +33 -0
- package/dist/components/modals/modal-tabs.d.ts +27 -27
- package/dist/components/modals/modal-tabs.js +99 -0
- package/dist/components/modals/overwrite-map-modal.d.ts +16 -16
- package/dist/components/modals/overwrite-map-modal.js +81 -0
- package/dist/components/modals/provider-modal-container.d.ts +23 -23
- package/dist/components/modals/provider-modal-container.js +79 -0
- package/dist/components/modals/save-map-modal.d.ts +29 -29
- package/dist/components/modals/save-map-modal.js +201 -0
- package/dist/components/modals/share-map-modal.d.ts +30 -30
- package/dist/components/modals/share-map-modal.js +188 -0
- package/dist/components/modals/status-panel.d.ts +13 -13
- package/dist/components/modals/status-panel.js +82 -0
- package/dist/components/modals/storage-map-viewer.d.ts +21 -21
- package/dist/components/modals/storage-map-viewer.js +115 -0
- package/dist/components/notification-panel/notification-item.d.ts +66 -66
- package/dist/components/notification-panel/notification-item.js +139 -0
- package/dist/components/notification-panel.d.ts +61 -61
- package/dist/components/notification-panel.js +74 -0
- package/dist/components/performance.d.ts +4 -4
- package/dist/components/performance.js +110 -0
- package/dist/components/plot-container.d.ts +24 -24
- package/dist/components/plot-container.js +240 -0
- package/dist/components/side-panel/cloud-storage-dropdown.d.ts +6 -6
- package/dist/components/side-panel/cloud-storage-dropdown.js +57 -0
- package/dist/components/side-panel/common/dataset-info.d.ts +3 -3
- package/dist/components/side-panel/common/dataset-info.js +50 -0
- package/dist/components/side-panel/common/dataset-tag.d.ts +3 -3
- package/dist/components/side-panel/common/dataset-tag.js +75 -0
- package/dist/components/side-panel/common/dataset-title.d.ts +8 -8
- package/dist/components/side-panel/common/dataset-title.js +185 -0
- package/dist/components/side-panel/common/source-data-catalog.d.ts +9 -9
- package/dist/components/side-panel/common/source-data-catalog.js +66 -0
- package/dist/components/side-panel/common/source-data-selector.d.ts +8 -8
- package/dist/components/side-panel/common/source-data-selector.js +119 -0
- package/dist/components/side-panel/common/types.d.ts +58 -58
- package/dist/components/side-panel/common/types.js +6 -0
- package/dist/components/side-panel/custom-panel.d.ts +9 -9
- package/dist/components/side-panel/custom-panel.js +56 -0
- package/dist/components/side-panel/filter-manager.d.ts +20 -20
- package/dist/components/side-panel/filter-manager.js +113 -0
- package/dist/components/side-panel/filter-panel/filter-panel-header.d.ts +21 -21
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +67 -0
- package/dist/components/side-panel/filter-panel/filter-panel.d.ts +23 -23
- package/dist/components/side-panel/filter-panel/filter-panel.js +110 -0
- package/dist/components/side-panel/interaction-manager.d.ts +14 -14
- package/dist/components/side-panel/interaction-manager.js +51 -0
- package/dist/components/side-panel/interaction-panel/brush-config.d.ts +15 -15
- package/dist/components/side-panel/interaction-panel/brush-config.js +58 -0
- package/dist/components/side-panel/interaction-panel/interaction-panel.d.ts +19 -19
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +137 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -28
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +204 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config.d.ts +38 -38
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +155 -0
- package/dist/components/side-panel/layer-manager.d.ts +46 -46
- package/dist/components/side-panel/layer-manager.js +185 -0
- package/dist/components/side-panel/layer-panel/add-layer-button.d.ts +10 -10
- package/dist/components/side-panel/layer-panel/add-layer-button.js +147 -0
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.d.ts +8 -8
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +38 -0
- package/dist/components/side-panel/layer-panel/color-palette.d.ts +13 -13
- package/dist/components/side-panel/layer-panel/color-palette.js +79 -0
- package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +129 -129
- package/dist/components/side-panel/layer-panel/color-range-selector.js +329 -0
- package/dist/components/side-panel/layer-panel/color-selector.d.ts +101 -101
- package/dist/components/side-panel/layer-panel/color-selector.js +177 -0
- package/dist/components/side-panel/layer-panel/column-selector.d.ts +22 -22
- package/dist/components/side-panel/layer-panel/column-selector.js +66 -0
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.d.ts +6 -6
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +36 -0
- package/dist/components/side-panel/layer-panel/custom-palette.d.ts +38 -38
- package/dist/components/side-panel/layer-panel/custom-palette.js +278 -0
- package/dist/components/side-panel/layer-panel/custom-picker.d.ts +67 -67
- package/dist/components/side-panel/layer-panel/custom-picker.js +106 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-group.d.ts +24 -24
- package/dist/components/side-panel/layer-panel/dataset-layer-group.js +81 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-section.d.ts +25 -25
- package/dist/components/side-panel/layer-panel/dataset-layer-section.js +74 -0
- package/dist/components/side-panel/layer-panel/dataset-section.d.ts +26 -26
- package/dist/components/side-panel/layer-panel/dataset-section.js +91 -0
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -10
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +53 -0
- package/dist/components/side-panel/layer-panel/hex-column-config.d.ts +62 -62
- package/dist/components/side-panel/layer-panel/hex-column-config.js +74 -0
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.d.ts +8 -8
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +18 -0
- package/dist/components/side-panel/layer-panel/layer-column-config.d.ts +20 -20
- package/dist/components/side-panel/layer-panel/layer-column-config.js +86 -0
- package/dist/components/side-panel/layer-panel/layer-config-group.d.ts +37 -37
- package/dist/components/side-panel/layer-panel/layer-config-group.js +209 -0
- package/dist/components/side-panel/layer-panel/layer-configurator.d.ts +415 -415
- package/dist/components/side-panel/layer-panel/layer-configurator.js +977 -0
- package/dist/components/side-panel/layer-panel/layer-list.d.ts +20 -20
- package/dist/components/side-panel/layer-panel/layer-list.js +168 -0
- package/dist/components/side-panel/layer-panel/layer-panel-header.d.ts +43 -43
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +194 -0
- package/dist/components/side-panel/layer-panel/layer-panel.d.ts +40 -40
- package/dist/components/side-panel/layer-panel/layer-panel.js +161 -0
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.d.ts +17 -17
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +95 -0
- package/dist/components/side-panel/layer-panel/layer-type-list-item.d.ts +11 -11
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +75 -0
- package/dist/components/side-panel/layer-panel/layer-type-selector.d.ts +23 -23
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +87 -0
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.d.ts +23 -23
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +106 -0
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -36
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +116 -0
- package/dist/components/side-panel/layer-panel/single-color-palette.d.ts +12 -12
- package/dist/components/side-panel/layer-panel/single-color-palette.js +68 -0
- package/dist/components/side-panel/layer-panel/text-label-panel.d.ts +18 -18
- package/dist/components/side-panel/layer-panel/text-label-panel.js +157 -0
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.d.ts +35 -35
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +148 -0
- package/dist/components/side-panel/layer-panel/vis-config-slider.d.ts +20 -20
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +177 -0
- package/dist/components/side-panel/layer-panel/vis-config-switch.d.ts +16 -16
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +73 -0
- package/dist/components/side-panel/map-manager.d.ts +21 -21
- package/dist/components/side-panel/map-manager.js +133 -0
- package/dist/components/side-panel/map-style-panel/map-layer-selector.d.ts +19 -19
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +103 -0
- package/dist/components/side-panel/map-style-panel/map-style-selector.d.ts +16 -16
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +80 -0
- package/dist/components/side-panel/panel-dropdown.d.ts +18 -18
- package/dist/components/side-panel/panel-dropdown.js +71 -0
- package/dist/components/side-panel/panel-header-action.d.ts +20 -20
- package/dist/components/side-panel/panel-header-action.js +103 -0
- package/dist/components/side-panel/panel-header.d.ts +78 -78
- package/dist/components/side-panel/panel-header.js +301 -0
- package/dist/components/side-panel/panel-tab.d.ts +20 -20
- package/dist/components/side-panel/panel-tab.js +72 -0
- package/dist/components/side-panel/panel-title.d.ts +4 -4
- package/dist/components/side-panel/panel-title.js +44 -0
- package/dist/components/side-panel/panel-toggle.d.ts +14 -14
- package/dist/components/side-panel/panel-toggle.js +65 -0
- package/dist/components/side-panel/side-bar.d.ts +76 -76
- package/dist/components/side-panel/side-bar.js +140 -0
- package/dist/components/side-panel.d.ts +134 -134
- package/dist/components/side-panel.js +235 -0
- package/dist/components/types.d.ts +44 -44
- package/dist/components/types.js +6 -0
- package/dist/connect/keplergl-connect.d.ts +5 -5
- package/dist/connect/keplergl-connect.js +59 -0
- package/dist/connect/with-local-selector.d.ts +6 -6
- package/dist/connect/with-local-selector.js +102 -0
- package/dist/constants/action-types.d.ts +111 -111
- package/dist/constants/action-types.js +184 -0
- package/dist/constants/color-palette.d.ts +491 -491
- package/dist/constants/color-palette.js +536 -0
- package/dist/constants/color-ranges.d.ts +24 -24
- package/dist/constants/color-ranges.js +83 -0
- package/dist/constants/custom-color-ranges.d.ts +37 -37
- package/dist/constants/custom-color-ranges.js +410 -0
- package/dist/constants/default-settings.d.ts +773 -773
- package/dist/constants/default-settings.js +832 -0
- package/dist/constants/index.d.ts +9 -9
- package/dist/constants/index.js +387 -0
- package/dist/constants/keyevent.d.ts +2 -2
- package/dist/constants/keyevent.js +43 -0
- package/dist/constants/tooltip.d.ts +165 -165
- package/dist/constants/tooltip.js +202 -0
- package/dist/constants/user-feedbacks.d.ts +5 -5
- package/dist/constants/user-feedbacks.js +32 -0
- package/dist/constants/user-guides.d.ts +9 -9
- package/dist/constants/user-guides.js +36 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.d.ts +13 -13
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +92 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.d.ts +7 -7
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +181 -0
- package/dist/deckgl-layers/3d-building-layer/types.d.ts +37 -0
- package/dist/deckgl-layers/3d-building-layer/types.js +6 -0
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +312 -0
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.d.ts +6 -6
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +75 -0
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +13 -13
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +96 -0
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.d.ts +13 -13
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +96 -0
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +107 -0
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +91 -91
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +585 -0
- package/dist/deckgl-layers/layer-utils/shader-utils.d.ts +1 -1
- package/dist/deckgl-layers/layer-utils/shader-utils.js +46 -0
- package/dist/deckgl-layers/line-layer/line-layer.d.ts +12 -12
- package/dist/deckgl-layers/line-layer/line-layer.js +106 -0
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.d.ts +8 -8
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +80 -0
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.d.ts +18 -18
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +123 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.js +179 -0
- package/dist/layers/aggregation-layer.d.ts +70 -70
- package/dist/layers/aggregation-layer.js +392 -0
- package/dist/layers/arc-layer/arc-layer-icon.d.ts +16 -16
- package/dist/layers/arc-layer/arc-layer-icon.js +76 -0
- package/dist/layers/arc-layer/arc-layer.d.ts +143 -143
- package/dist/layers/arc-layer/arc-layer.js +252 -0
- package/dist/layers/base-layer.d.ts +436 -436
- package/dist/layers/base-layer.js +1703 -0
- package/dist/layers/cluster-layer/cluster-layer-icon.d.ts +16 -16
- package/dist/layers/cluster-layer/cluster-layer-icon.js +79 -0
- package/dist/layers/cluster-layer/cluster-layer.d.ts +39 -39
- package/dist/layers/cluster-layer/cluster-layer.js +139 -0
- package/dist/layers/default-layer-icon.d.ts +14 -14
- package/dist/layers/default-layer-icon.js +86 -0
- package/dist/layers/geojson-layer/geojson-layer-icon.d.ts +15 -15
- package/dist/layers/geojson-layer/geojson-layer-icon.js +90 -0
- package/dist/layers/geojson-layer/geojson-layer.d.ts +227 -230
- package/dist/layers/geojson-layer/geojson-layer.js +423 -0
- package/dist/layers/geojson-layer/geojson-utils.d.ts +44 -44
- package/dist/layers/geojson-layer/geojson-utils.js +184 -0
- package/dist/layers/grid-layer/grid-layer-icon.d.ts +15 -15
- package/dist/layers/grid-layer/grid-layer-icon.js +135 -0
- package/dist/layers/grid-layer/grid-layer.d.ts +74 -74
- package/dist/layers/grid-layer/grid-layer.js +104 -0
- package/dist/layers/grid-layer/grid-utils.d.ts +24 -24
- package/dist/layers/grid-layer/grid-utils.js +59 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.d.ts +16 -16
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +70 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.d.ts +170 -170
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +321 -0
- package/dist/layers/h3-hexagon-layer/h3-utils.d.ts +20 -20
- package/dist/layers/h3-hexagon-layer/h3-utils.js +86 -0
- package/dist/layers/heatmap-layer/heatmap-layer-icon.d.ts +15 -15
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +87 -0
- package/dist/layers/heatmap-layer/heatmap-layer.d.ts +144 -144
- package/dist/layers/heatmap-layer/heatmap-layer.js +236 -0
- package/dist/layers/hexagon-layer/hexagon-layer-icon.d.ts +15 -15
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +99 -0
- package/dist/layers/hexagon-layer/hexagon-layer.d.ts +78 -78
- package/dist/layers/hexagon-layer/hexagon-layer.js +108 -0
- package/dist/layers/hexagon-layer/hexagon-utils.d.ts +7 -7
- package/dist/layers/hexagon-layer/hexagon-utils.js +62 -0
- package/dist/layers/icon-layer/icon-info-modal.d.ts +3 -3
- package/dist/layers/icon-layer/icon-info-modal.js +115 -0
- package/dist/layers/icon-layer/icon-layer-icon.d.ts +15 -15
- package/dist/layers/icon-layer/icon-layer-icon.js +72 -0
- package/dist/layers/icon-layer/icon-layer.d.ts +119 -119
- package/dist/layers/icon-layer/icon-layer.js +366 -0
- package/dist/layers/index.d.ts +53 -53
- package/dist/layers/index.js +105 -0
- package/dist/layers/layer-factory.d.ts +150 -150
- package/dist/layers/layer-factory.js +517 -0
- package/dist/layers/layer-text-label.d.ts +7 -7
- package/dist/layers/layer-text-label.js +60 -0
- package/dist/layers/layer-update.d.ts +9 -9
- package/dist/layers/layer-update.js +73 -0
- package/dist/layers/line-layer/line-layer-icon.d.ts +15 -15
- package/dist/layers/line-layer/line-layer-icon.js +78 -0
- package/dist/layers/line-layer/line-layer.d.ts +136 -136
- package/dist/layers/line-layer/line-layer.js +191 -0
- package/dist/layers/mapbox-utils.d.ts +57 -57
- package/dist/layers/mapbox-utils.js +186 -0
- package/dist/layers/mapboxgl-layer.d.ts +87 -87
- package/dist/layers/mapboxgl-layer.js +201 -0
- package/dist/layers/point-layer/point-layer-icon.d.ts +15 -15
- package/dist/layers/point-layer/point-layer-icon.js +93 -0
- package/dist/layers/point-layer/point-layer.d.ts +272 -272
- package/dist/layers/point-layer/point-layer.js +457 -0
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.d.ts +189 -189
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +306 -0
- package/dist/layers/s2-geometry-layer/s2-layer-icon.d.ts +15 -15
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +69 -0
- package/dist/layers/s2-geometry-layer/s2-utils.d.ts +7 -7
- package/dist/layers/s2-geometry-layer/s2-utils.js +51 -0
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.d.ts +3 -3
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +54 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.d.ts +15 -15
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +150 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer.d.ts +80 -80
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +230 -0
- package/dist/layers/trip-layer/trip-info-modal.d.ts +3 -3
- package/dist/layers/trip-layer/trip-info-modal.js +59 -0
- package/dist/layers/trip-layer/trip-layer-icon.d.ts +15 -15
- package/dist/layers/trip-layer/trip-layer-icon.js +88 -0
- package/dist/layers/trip-layer/trip-layer.d.ts +157 -157
- package/dist/layers/trip-layer/trip-layer.js +369 -0
- package/dist/layers/trip-layer/trip-utils.d.ts +31 -31
- package/dist/layers/trip-layer/trip-utils.js +180 -0
- package/dist/layers/types.d.ts +15 -15
- package/dist/layers/types.js +44 -0
- package/dist/localization/formatted-message.d.ts +12 -12
- package/dist/localization/formatted-message.js +39 -0
- package/dist/localization/index.d.ts +5 -5
- package/dist/localization/index.js +54 -0
- package/dist/localization/locales.d.ts +27 -27
- package/dist/localization/locales.js +59 -0
- package/dist/localization/messages.d.ts +4 -4
- package/dist/localization/messages.js +37 -0
- package/dist/localization/translations/ca.d.ts +438 -438
- package/dist/localization/translations/ca.js +466 -0
- package/dist/localization/translations/cn.d.ts +441 -441
- package/dist/localization/translations/cn.js +469 -0
- package/dist/localization/translations/en.d.ts +466 -466
- package/dist/localization/translations/en.js +494 -0
- package/dist/localization/translations/es.d.ts +438 -438
- package/dist/localization/translations/es.js +466 -0
- package/dist/localization/translations/fi.d.ts +410 -410
- package/dist/localization/translations/fi.js +438 -0
- package/dist/localization/translations/ja.d.ts +439 -439
- package/dist/localization/translations/ja.js +467 -0
- package/dist/localization/translations/pt.d.ts +410 -410
- package/dist/localization/translations/pt.js +438 -0
- package/dist/localization/translations/ru.d.ts +447 -447
- package/dist/localization/translations/ru.js +475 -0
- package/dist/middleware/index.d.ts +8 -8
- package/dist/middleware/index.js +44 -0
- package/dist/processors/data-processor.d.ts +242 -242
- package/dist/processors/data-processor.js +721 -0
- package/dist/processors/file-handler.d.ts +28 -28
- package/dist/processors/file-handler.js +357 -0
- package/dist/processors/index.d.ts +3 -3
- package/dist/processors/index.js +39 -0
- package/dist/processors/types.d.ts +21 -21
- package/dist/processors/types.js +6 -0
- package/dist/reducers/combined-updaters.d.ts +52 -52
- package/dist/reducers/combined-updaters.js +180 -0
- package/dist/reducers/composer-helpers.d.ts +21 -21
- package/dist/reducers/composer-helpers.js +111 -0
- package/dist/reducers/composers.d.ts +12 -12
- package/dist/reducers/composers.js +40 -0
- package/dist/reducers/core.d.ts +65 -65
- package/dist/reducers/core.js +119 -0
- package/dist/reducers/index.d.ts +19 -19
- package/dist/reducers/index.js +137 -0
- package/dist/reducers/map-state-updaters.d.ts +96 -96
- package/dist/reducers/map-state-updaters.js +220 -0
- package/dist/reducers/map-state.d.ts +4 -4
- package/dist/reducers/map-state.js +52 -0
- package/dist/reducers/map-style-updaters.d.ts +204 -204
- package/dist/reducers/map-style-updaters.js +473 -0
- package/dist/reducers/map-style.d.ts +16 -16
- package/dist/reducers/map-style.js +51 -0
- package/dist/reducers/provider-state-updaters.d.ts +41 -41
- package/dist/reducers/provider-state-updaters.js +421 -0
- package/dist/reducers/provider-state.d.ts +4 -4
- package/dist/reducers/provider-state.js +53 -0
- package/dist/reducers/root.d.ts +24 -24
- package/dist/reducers/root.js +212 -0
- package/dist/reducers/types.d.ts +16 -16
- package/dist/reducers/types.js +6 -0
- package/dist/reducers/ui-state-updaters.d.ts +433 -433
- package/dist/reducers/ui-state-updaters.js +744 -0
- package/dist/reducers/ui-state.d.ts +3 -3
- package/dist/reducers/ui-state.js +54 -0
- package/dist/reducers/vis-state-merger.d.ts +110 -110
- package/dist/reducers/vis-state-merger.js +569 -0
- package/dist/reducers/vis-state-selectors.d.ts +10 -10
- package/dist/reducers/vis-state-selectors.js +47 -0
- package/dist/reducers/vis-state-updaters.d.ts +645 -645
- package/dist/reducers/vis-state-updaters.js +2102 -0
- package/dist/reducers/vis-state.d.ts +4 -4
- package/dist/reducers/vis-state.js +53 -0
- package/dist/schemas/dataset-schema.d.ts +17 -17
- package/dist/schemas/dataset-schema.js +166 -0
- package/dist/schemas/index.d.ts +8 -8
- package/dist/schemas/index.js +125 -0
- package/dist/schemas/map-state-schema.d.ts +23 -23
- package/dist/schemas/map-state-schema.js +53 -0
- package/dist/schemas/map-style-schema.d.ts +38 -38
- package/dist/schemas/map-style-schema.js +106 -0
- package/dist/schemas/schema-manager.d.ts +271 -271
- package/dist/schemas/schema-manager.js +246 -0
- package/dist/schemas/schema-utils.d.ts +11 -11
- package/dist/schemas/schema-utils.js +58 -0
- package/dist/schemas/schema.d.ts +37 -37
- package/dist/schemas/schema.js +119 -0
- package/dist/schemas/versions.d.ts +5 -5
- package/dist/schemas/versions.js +34 -0
- package/dist/schemas/vis-state-schema.d.ts +214 -214
- package/dist/schemas/vis-state-schema.js +886 -0
- package/dist/styles/base.d.ts +1530 -1530
- package/dist/styles/base.js +1301 -0
- package/dist/styles/index.d.ts +2 -2
- package/dist/styles/index.js +28 -0
- package/dist/styles/media-breakpoints.d.ts +13 -13
- package/dist/styles/media-breakpoints.js +70 -0
- package/dist/tasks/tasks.d.ts +15 -15
- package/dist/tasks/tasks.js +94 -0
- package/dist/templates/export-map-html.d.ts +9 -9
- package/dist/templates/export-map-html.js +42 -0
- package/dist/utils/aggregate-utils.d.ts +3 -3
- package/dist/utils/aggregate-utils.js +71 -0
- package/dist/utils/color-utils.d.ts +44 -44
- package/dist/utils/color-utils.js +144 -0
- package/dist/utils/custom-scales.js +22 -0
- package/dist/utils/data-scale-utils.d.ts +23 -23
- package/dist/utils/data-scale-utils.js +70 -0
- package/dist/utils/data-utils.d.ts +115 -115
- package/dist/utils/data-utils.js +441 -0
- package/dist/utils/dataset-utils.d.ts +38 -38
- package/dist/utils/dataset-utils.js +236 -0
- package/dist/utils/dom-to-image.d.ts +73 -73
- package/dist/utils/dom-to-image.js +479 -0
- package/dist/utils/dom-utils.d.ts +20 -20
- package/dist/utils/dom-utils.js +343 -0
- package/dist/utils/export-utils.d.ts +56 -56
- package/dist/utils/export-utils.js +266 -0
- package/dist/utils/filter-utils.d.ts +267 -267
- package/dist/utils/filter-utils.js +1081 -0
- package/dist/utils/gl-utils.d.ts +1 -1
- package/dist/utils/gl-utils.js +43 -0
- package/dist/utils/gpu-filter-utils.d.ts +28 -28
- package/dist/utils/gpu-filter-utils.js +241 -0
- package/dist/utils/index.d.ts +22 -22
- package/dist/utils/index.js +361 -0
- package/dist/utils/interaction-utils.d.ts +36 -36
- package/dist/utils/interaction-utils.js +170 -0
- package/dist/utils/layer-utils.d.ts +54 -54
- package/dist/utils/layer-utils.js +200 -0
- package/dist/utils/locale-utils.d.ts +2 -2
- package/dist/utils/locale-utils.js +56 -0
- package/dist/utils/map-info-utils.d.ts +1 -1
- package/dist/utils/map-info-utils.js +31 -0
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +64 -64
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +213 -0
- package/dist/utils/map-style-utils/mapbox-utils.d.ts +3 -3
- package/dist/utils/map-style-utils/mapbox-utils.js +33 -0
- package/dist/utils/mapbox-utils.d.ts +7 -7
- package/dist/utils/mapbox-utils.js +36 -0
- package/dist/utils/notifications-utils.d.ts +54 -54
- package/dist/utils/notifications-utils.js +90 -0
- package/dist/utils/observe-dimensions.d.ts +15 -15
- package/dist/utils/observe-dimensions.js +142 -0
- package/dist/utils/projection-utils.d.ts +12 -12
- package/dist/utils/projection-utils.js +72 -0
- package/dist/utils/searcher-utils.d.ts +1 -1
- package/dist/utils/searcher-utils.js +42 -0
- package/dist/utils/split-map-utils.d.ts +29 -29
- package/dist/utils/split-map-utils.js +112 -0
- package/dist/utils/table-utils/data-container-interface.d.ts +115 -115
- package/dist/utils/table-utils/data-container-interface.js +6 -0
- package/dist/utils/table-utils/data-container-utils.d.ts +29 -29
- package/dist/utils/table-utils/data-container-utils.js +84 -0
- package/dist/utils/table-utils/data-row.d.ts +59 -59
- package/dist/utils/table-utils/data-row.js +124 -0
- package/dist/utils/table-utils/index.d.ts +1 -1
- package/dist/utils/table-utils/index.js +19 -0
- package/dist/utils/table-utils/indexed-data-container.d.ts +34 -34
- package/dist/utils/table-utils/indexed-data-container.js +228 -0
- package/dist/utils/table-utils/kepler-table.d.ts +168 -168
- package/dist/utils/table-utils/kepler-table.js +554 -0
- package/dist/utils/table-utils/row-data-container.d.ts +31 -31
- package/dist/utils/table-utils/row-data-container.js +220 -0
- package/dist/utils/utils.d.ts +98 -98
- package/dist/utils/utils.js +240 -0
- package/package.json +61 -25
- package/src/index.ts +1 -1
- package/dist/bundle.js +0 -75163
- package/dist/bundle.js.map +0 -1
- package/dist/deckgl-layers/layer-utils/cluster-utils.d.ts +0 -12
|
@@ -0,0 +1,744 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.toggleSplitMapUpdater = exports.toggleSidePanelUpdater = exports.toggleModalUpdater = exports.toggleMapControlUpdater = exports.toggleLayerPanelListViewUpdater = exports.startExportingImageUpdater = exports.showExportDropdownUpdater = exports.showDatasetTableUpdater = exports.setUserMapboxAccessTokenUpdater = exports.setMapControlVisibilityUpdater = exports.setLocaleUpdater = exports.setExportSelectedDatasetUpdater = exports.setExportMapHTMLModeUpdater = exports.setExportMapFormatUpdater = exports.setExportImageSettingUpdater = exports.setExportImageErrorUpdater = exports.setExportImageDataUriUpdater = exports.setExportFilteredUpdater = exports.setExportDataUpdater = exports.setExportDataTypeUpdater = exports.removeNotificationUpdater = exports.openDeleteModalUpdater = exports.loadFilesUpdater = exports.loadFilesSuccessUpdater = exports.loadFilesErrUpdater = exports.initUiStateUpdater = exports.hideExportDropdownUpdater = exports.cleanupExportImageUpdater = exports.addNotificationUpdater = exports.INITIAL_UI_STATE = exports.DEFAULT_NOTIFICATIONS = exports.DEFAULT_MODAL = exports.DEFAULT_MAP_CONTROLS = exports.DEFAULT_LOAD_FILES = exports.DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_JSON = exports.DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_HTML = exports.DEFAULT_EXPORT_DATA = exports.DEFAULT_ACTIVE_SIDE_PANEL = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _defaultSettings = require("../constants/default-settings");
|
|
11
|
+
var _locales = require("../localization/locales");
|
|
12
|
+
var _notificationsUtils = require("../utils/notifications-utils");
|
|
13
|
+
var _exportUtils = require("../utils/export-utils");
|
|
14
|
+
var _composerHelpers = require("./composer-helpers");
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // Copyright (c) 2022 Uber Technologies, Inc.
|
|
17
|
+
//
|
|
18
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
19
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
20
|
+
// in the Software without restriction, including without limitation the rights
|
|
21
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
22
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
23
|
+
// furnished to do so, subject to the following conditions:
|
|
24
|
+
//
|
|
25
|
+
// The above copyright notice and this permission notice shall be included in
|
|
26
|
+
// all copies or substantial portions of the Software.
|
|
27
|
+
//
|
|
28
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
29
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
30
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
31
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
33
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
34
|
+
// THE SOFTWARE.
|
|
35
|
+
var DEFAULT_ACTIVE_SIDE_PANEL = exports.DEFAULT_ACTIVE_SIDE_PANEL = 'layer';
|
|
36
|
+
var DEFAULT_MODAL = exports.DEFAULT_MODAL = _defaultSettings.ADD_DATA_ID;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Updaters for `uiState` reducer. Can be used in your root reducer to directly modify kepler.gl's state.
|
|
40
|
+
* Read more about [Using updaters](../advanced-usage/using-updaters.md)
|
|
41
|
+
*
|
|
42
|
+
* @public
|
|
43
|
+
* @example
|
|
44
|
+
*
|
|
45
|
+
* import keplerGlReducer, {uiStateUpdaters} from 'kepler.gl/reducers';
|
|
46
|
+
* // Root Reducer
|
|
47
|
+
* const reducers = combineReducers({
|
|
48
|
+
* keplerGl: keplerGlReducer,
|
|
49
|
+
* app: appReducer
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* const composedReducer = (state, action) => {
|
|
53
|
+
* switch (action.type) {
|
|
54
|
+
* // click button to close side panel
|
|
55
|
+
* case 'CLICK_BUTTON':
|
|
56
|
+
* return {
|
|
57
|
+
* ...state,
|
|
58
|
+
* keplerGl: {
|
|
59
|
+
* ...state.keplerGl,
|
|
60
|
+
* foo: {
|
|
61
|
+
* ...state.keplerGl.foo,
|
|
62
|
+
* uiState: uiStateUpdaters.toggleSidePanelUpdater(
|
|
63
|
+
* uiState, {payload: null}
|
|
64
|
+
* )
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* };
|
|
68
|
+
* }
|
|
69
|
+
* return reducers(state, action);
|
|
70
|
+
* };
|
|
71
|
+
*
|
|
72
|
+
* export default composedReducer;
|
|
73
|
+
*/
|
|
74
|
+
/* eslint-disable no-unused-vars */
|
|
75
|
+
var uiStateUpdaters = null;
|
|
76
|
+
/* eslint-enable no-unused-vars */
|
|
77
|
+
|
|
78
|
+
var DEFAULT_MAP_CONTROLS_FEATURES = {
|
|
79
|
+
show: true,
|
|
80
|
+
active: false,
|
|
81
|
+
disableClose: false,
|
|
82
|
+
// defines which map index users are interacting with (through map controls)
|
|
83
|
+
activeMapIndex: 0
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* A list of map control visibility and whether is it active.
|
|
88
|
+
* @memberof uiStateUpdaters
|
|
89
|
+
* @constant
|
|
90
|
+
* @property visibleLayers Default: `{show: true, active: false}`
|
|
91
|
+
* @property mapLegend Default: `{show: true, active: false}`
|
|
92
|
+
* @property toggle3d Default: `{show: true}`
|
|
93
|
+
* @property splitMap Default: `{show: true}`
|
|
94
|
+
* @property mapDraw Default: `{show: true, active: false}`
|
|
95
|
+
* @property mapLocale Default: `{show: false, active: false}`
|
|
96
|
+
* @public
|
|
97
|
+
*/
|
|
98
|
+
var DEFAULT_MAP_CONTROLS = exports.DEFAULT_MAP_CONTROLS = Object.keys(_defaultSettings.MAP_CONTROLS).reduce(function (_final, current) {
|
|
99
|
+
return _objectSpread(_objectSpread({}, _final), {}, (0, _defineProperty2["default"])({}, current, DEFAULT_MAP_CONTROLS_FEATURES));
|
|
100
|
+
}, {});
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Default image export config
|
|
104
|
+
* @memberof uiStateUpdaters
|
|
105
|
+
* @constant
|
|
106
|
+
* @property ratio Default: `'SCREEN'`,
|
|
107
|
+
* @property resolution Default: `'ONE_X'`,
|
|
108
|
+
* @property legend Default: `false`,
|
|
109
|
+
* @property mapH Default: 0,
|
|
110
|
+
* @property mapW Default: 0,
|
|
111
|
+
* @property imageSize Default: {zoomOffset: 0, scale: 1, imageW: 0, imageH: 0},
|
|
112
|
+
* @property imageDataUri Default: `''`,
|
|
113
|
+
* @property exporting Default: `false`
|
|
114
|
+
* @property error Default: `false`
|
|
115
|
+
* @public
|
|
116
|
+
*/
|
|
117
|
+
var DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_IMAGE = {
|
|
118
|
+
// user options
|
|
119
|
+
ratio: _defaultSettings.EXPORT_IMG_RATIOS.SCREEN,
|
|
120
|
+
resolution: _defaultSettings.RESOLUTIONS.ONE_X,
|
|
121
|
+
legend: false,
|
|
122
|
+
mapH: 0,
|
|
123
|
+
mapW: 0,
|
|
124
|
+
imageSize: {
|
|
125
|
+
zoomOffset: 0,
|
|
126
|
+
scale: 1,
|
|
127
|
+
imageW: 0,
|
|
128
|
+
imageH: 0
|
|
129
|
+
},
|
|
130
|
+
// when this is set to true, the mock map viewport will move to the center of data
|
|
131
|
+
center: false,
|
|
132
|
+
// exporting state
|
|
133
|
+
imageDataUri: '',
|
|
134
|
+
// exporting: used to attach plot-container to dom
|
|
135
|
+
exporting: false,
|
|
136
|
+
// processing: used as loading indicator when export image is being produced
|
|
137
|
+
processing: false,
|
|
138
|
+
error: false
|
|
139
|
+
};
|
|
140
|
+
var DEFAULT_LOAD_FILES = exports.DEFAULT_LOAD_FILES = {
|
|
141
|
+
fileLoading: false
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Default initial `exportData` settings
|
|
146
|
+
* @memberof uiStateUpdaters
|
|
147
|
+
* @constant
|
|
148
|
+
* @property selectedDataset Default: `''`,
|
|
149
|
+
* @property dataType Default: `'csv'`,
|
|
150
|
+
* @property filtered Default: `true`,
|
|
151
|
+
* @public
|
|
152
|
+
*/
|
|
153
|
+
var DEFAULT_EXPORT_DATA = exports.DEFAULT_EXPORT_DATA = {
|
|
154
|
+
selectedDataset: '',
|
|
155
|
+
dataType: _defaultSettings.EXPORT_DATA_TYPE.CSV,
|
|
156
|
+
filtered: true
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @constant
|
|
161
|
+
*/
|
|
162
|
+
var DEFAULT_NOTIFICATIONS = exports.DEFAULT_NOTIFICATIONS = [];
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @constant
|
|
166
|
+
* @property exportMapboxAccessToken - Default: null, this is used when we provide a default mapbox token for users to take advantage of
|
|
167
|
+
* @property userMapboxToken - Default: '', mapbox token provided by user through input field
|
|
168
|
+
* @property mode - Default: 'READ', read only or editable
|
|
169
|
+
* @public
|
|
170
|
+
*/
|
|
171
|
+
var DEFAULT_EXPORT_HTML = exports.DEFAULT_EXPORT_HTML = {
|
|
172
|
+
exportMapboxAccessToken: null,
|
|
173
|
+
userMapboxToken: '',
|
|
174
|
+
mode: _defaultSettings.EXPORT_HTML_MAP_MODES.READ
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @constant
|
|
179
|
+
* @property hasData - Default: 'true',
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
var DEFAULT_EXPORT_JSON = exports.DEFAULT_EXPORT_JSON = {
|
|
183
|
+
hasData: true
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Export Map Config
|
|
188
|
+
* @constant
|
|
189
|
+
* @property HTML - Default: 'DEFAULT_EXPORT_HTML',
|
|
190
|
+
* @property JSON - Default: 'DEFAULT_EXPORT_JSON',
|
|
191
|
+
* @property format - Default: 'HTML',
|
|
192
|
+
* @public
|
|
193
|
+
*/
|
|
194
|
+
var DEFAULT_EXPORT_MAP = exports.DEFAULT_EXPORT_MAP = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _defaultSettings.EXPORT_MAP_FORMATS.HTML, DEFAULT_EXPORT_HTML), _defaultSettings.EXPORT_MAP_FORMATS.JSON, DEFAULT_EXPORT_JSON), "format", _defaultSettings.EXPORT_MAP_FORMATS.HTML);
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Default initial `uiState`
|
|
198
|
+
* @memberof uiStateUpdaters
|
|
199
|
+
* @constant
|
|
200
|
+
* @property readOnly Default: `false`
|
|
201
|
+
* @property activeSidePanel Default: `'layer'`
|
|
202
|
+
* @property currentModal Default: `'addData'`
|
|
203
|
+
* @property datasetKeyToRemove Default: `null`
|
|
204
|
+
* @property visibleDropdown Default: `null`
|
|
205
|
+
* @property exportImage Default: [`DEFAULT_EXPORT_IMAGE`](#default_export_image)
|
|
206
|
+
* @property exportData Default: [`DEFAULT_EXPORT_DATA`](#default_export_data)
|
|
207
|
+
* @property exportMap Default: [`DEFAULT_EXPORT_MAP`](#default_export_map)
|
|
208
|
+
* @property mapControls Default: [`DEFAULT_MAP_CONTROLS`](#default_map_controls)
|
|
209
|
+
* @property notifications Default: `[]`
|
|
210
|
+
* @property notifications Default: `[]`
|
|
211
|
+
* @property loadFiles
|
|
212
|
+
* @public
|
|
213
|
+
*/
|
|
214
|
+
var INITIAL_UI_STATE = exports.INITIAL_UI_STATE = {
|
|
215
|
+
readOnly: false,
|
|
216
|
+
activeSidePanel: DEFAULT_ACTIVE_SIDE_PANEL,
|
|
217
|
+
currentModal: DEFAULT_MODAL,
|
|
218
|
+
datasetKeyToRemove: null,
|
|
219
|
+
visibleDropdown: null,
|
|
220
|
+
// export image modal ui
|
|
221
|
+
exportImage: DEFAULT_EXPORT_IMAGE,
|
|
222
|
+
// export data modal ui
|
|
223
|
+
exportData: DEFAULT_EXPORT_DATA,
|
|
224
|
+
// html export
|
|
225
|
+
exportMap: DEFAULT_EXPORT_MAP,
|
|
226
|
+
// map control panels
|
|
227
|
+
mapControls: DEFAULT_MAP_CONTROLS,
|
|
228
|
+
// ui notifications
|
|
229
|
+
notifications: DEFAULT_NOTIFICATIONS,
|
|
230
|
+
// load files
|
|
231
|
+
loadFiles: DEFAULT_LOAD_FILES,
|
|
232
|
+
// Locale of the UI
|
|
233
|
+
locale: _locales.LOCALE_CODES.en,
|
|
234
|
+
layerPanelListView: 'list'
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
/* Updaters */
|
|
238
|
+
/**
|
|
239
|
+
* @memberof uiStateUpdaters
|
|
240
|
+
|
|
241
|
+
*/
|
|
242
|
+
var initUiStateUpdater = exports.initUiStateUpdater = function initUiStateUpdater(state, action) {
|
|
243
|
+
return _objectSpread(_objectSpread({}, state), (action.payload || {}).initialUiState);
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Toggle active side panel
|
|
248
|
+
* @memberof uiStateUpdaters
|
|
249
|
+
* @param state `uiState`
|
|
250
|
+
* @param action
|
|
251
|
+
* @param action.payload id of side panel to be shown, one of `layer`, `filter`, `interaction`, `map`. close side panel if `null`
|
|
252
|
+
* @returns nextState
|
|
253
|
+
* @public
|
|
254
|
+
*/
|
|
255
|
+
var toggleSidePanelUpdater = exports.toggleSidePanelUpdater = function toggleSidePanelUpdater(state, _ref) {
|
|
256
|
+
var id = _ref.payload;
|
|
257
|
+
return id === state.activeSidePanel ? state : _objectSpread(_objectSpread({}, state), {}, {
|
|
258
|
+
activeSidePanel: id
|
|
259
|
+
});
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Show and hide modal dialog
|
|
264
|
+
* @memberof uiStateUpdaters
|
|
265
|
+
* @param state `uiState`
|
|
266
|
+
* @param action
|
|
267
|
+
* @paramaction.payload id of modal to be shown, null to hide modals. One of:
|
|
268
|
+
* - [`DATA_TABLE_ID`](../constants/default-settings.md#data_table_id)
|
|
269
|
+
* - [`DELETE_DATA_ID`](../constants/default-settings.md#delete_data_id)
|
|
270
|
+
* - [`ADD_DATA_ID`](../constants/default-settings.md#add_data_id)
|
|
271
|
+
* - [`EXPORT_IMAGE_ID`](../constants/default-settings.md#export_image_id)
|
|
272
|
+
* - [`EXPORT_DATA_ID`](../constants/default-settings.md#export_data_id)
|
|
273
|
+
* - [`ADD_MAP_STYLE_ID`](../constants/default-settings.md#add_map_style_id)
|
|
274
|
+
* @returns nextState
|
|
275
|
+
* @public
|
|
276
|
+
*/
|
|
277
|
+
var toggleModalUpdater = exports.toggleModalUpdater = function toggleModalUpdater(state, _ref2) {
|
|
278
|
+
var id = _ref2.payload;
|
|
279
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
280
|
+
currentModal: id
|
|
281
|
+
});
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Hide and show side panel header dropdown, activated by clicking the share link on top of the side panel
|
|
286
|
+
* @memberof uiStateUpdaters
|
|
287
|
+
* @public
|
|
288
|
+
*/
|
|
289
|
+
var showExportDropdownUpdater = exports.showExportDropdownUpdater = function showExportDropdownUpdater(state, _ref3) {
|
|
290
|
+
var id = _ref3.payload;
|
|
291
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
292
|
+
visibleDropdown: id
|
|
293
|
+
});
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Hide side panel header dropdown, activated by clicking the share link on top of the side panel
|
|
298
|
+
* @memberof uiStateUpdaters
|
|
299
|
+
* @public
|
|
300
|
+
*/
|
|
301
|
+
var hideExportDropdownUpdater = exports.hideExportDropdownUpdater = function hideExportDropdownUpdater(state) {
|
|
302
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
303
|
+
visibleDropdown: null
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Toggle active map control panel
|
|
309
|
+
* @memberof uiStateUpdaters
|
|
310
|
+
* @param state `uiState`
|
|
311
|
+
* @param action action
|
|
312
|
+
* @param action.payload map control panel id, one of the keys of: [`DEFAULT_MAP_CONTROLS`](#default_map_controls)
|
|
313
|
+
* @returns nextState
|
|
314
|
+
* @public
|
|
315
|
+
*/
|
|
316
|
+
var toggleMapControlUpdater = exports.toggleMapControlUpdater = function toggleMapControlUpdater(state, _ref4) {
|
|
317
|
+
var _ref4$payload = _ref4.payload,
|
|
318
|
+
panelId = _ref4$payload.panelId,
|
|
319
|
+
_ref4$payload$index = _ref4$payload.index,
|
|
320
|
+
index = _ref4$payload$index === void 0 ? 0 : _ref4$payload$index;
|
|
321
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
322
|
+
mapControls: _objectSpread(_objectSpread({}, state.mapControls), {}, (0, _defineProperty2["default"])({}, panelId, _objectSpread(_objectSpread({}, state.mapControls[panelId]), {}, {
|
|
323
|
+
// this handles split map interaction
|
|
324
|
+
// Toggling from within the same map will simply toggle the active property
|
|
325
|
+
// Toggling from within different maps we set the active property to true
|
|
326
|
+
active: index === state.mapControls[panelId].activeMapIndex ? !state.mapControls[panelId].active : true,
|
|
327
|
+
activeMapIndex: index
|
|
328
|
+
})))
|
|
329
|
+
});
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Toggle map control visibility
|
|
334
|
+
* @memberof uiStateUpdaters
|
|
335
|
+
* @param state `uiState`
|
|
336
|
+
* @param action action
|
|
337
|
+
* @param action.payload map control panel id, one of the keys of: [`DEFAULT_MAP_CONTROLS`](#default_map_controls)
|
|
338
|
+
* @returns nextState
|
|
339
|
+
* @public
|
|
340
|
+
*/
|
|
341
|
+
var setMapControlVisibilityUpdater = exports.setMapControlVisibilityUpdater = function setMapControlVisibilityUpdater(state, _ref5) {
|
|
342
|
+
var _state$mapControls;
|
|
343
|
+
var _ref5$payload = _ref5.payload,
|
|
344
|
+
panelId = _ref5$payload.panelId,
|
|
345
|
+
show = _ref5$payload.show;
|
|
346
|
+
if (!((_state$mapControls = state.mapControls) !== null && _state$mapControls !== void 0 && _state$mapControls[panelId])) {
|
|
347
|
+
return state;
|
|
348
|
+
}
|
|
349
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
350
|
+
mapControls: _objectSpread(_objectSpread({}, state.mapControls), {}, (0, _defineProperty2["default"])({}, panelId, _objectSpread(_objectSpread({}, state.mapControls[panelId]), {}, {
|
|
351
|
+
show: Boolean(show)
|
|
352
|
+
})))
|
|
353
|
+
});
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Toggle active map control panel
|
|
358
|
+
* @memberof uiStateUpdaters
|
|
359
|
+
* @param state `uiState`
|
|
360
|
+
* @param action
|
|
361
|
+
* @param action.payload dataset id
|
|
362
|
+
* @returns nextState
|
|
363
|
+
* @public
|
|
364
|
+
*/
|
|
365
|
+
var openDeleteModalUpdater = exports.openDeleteModalUpdater = function openDeleteModalUpdater(state, _ref6) {
|
|
366
|
+
var datasetKeyToRemove = _ref6.payload;
|
|
367
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
368
|
+
currentModal: _defaultSettings.DELETE_DATA_ID,
|
|
369
|
+
datasetKeyToRemove: datasetKeyToRemove
|
|
370
|
+
});
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Set `exportImage.legend` to `true` or `false`
|
|
375
|
+
* @memberof uiStateUpdaters
|
|
376
|
+
* @param state `uiState`
|
|
377
|
+
* @returns nextState
|
|
378
|
+
* @public
|
|
379
|
+
*/
|
|
380
|
+
var setExportImageSettingUpdater = exports.setExportImageSettingUpdater = function setExportImageSettingUpdater(state, _ref7) {
|
|
381
|
+
var newSetting = _ref7.payload;
|
|
382
|
+
var updated = _objectSpread(_objectSpread({}, state.exportImage), newSetting);
|
|
383
|
+
var imageSize = (0, _exportUtils.calculateExportImageSize)(updated) || state.exportImage.imageSize;
|
|
384
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
385
|
+
exportImage: _objectSpread(_objectSpread({}, updated), {}, {
|
|
386
|
+
// @ts-expect-error
|
|
387
|
+
// TODO: calculateExportImageSize does not return imageSize.zoomOffset,
|
|
388
|
+
// do we need take this value from current state, or return defaul value = 0
|
|
389
|
+
imageSize: imageSize
|
|
390
|
+
})
|
|
391
|
+
});
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Set `exportImage.setExportImageDataUri` to a image dataUri
|
|
396
|
+
* @memberof uiStateUpdaters
|
|
397
|
+
* @param state `uiState`
|
|
398
|
+
* @param action
|
|
399
|
+
* @param action.payload export image data uri
|
|
400
|
+
* @returns nextState
|
|
401
|
+
* @public
|
|
402
|
+
*/
|
|
403
|
+
var setExportImageDataUriUpdater = exports.setExportImageDataUriUpdater = function setExportImageDataUriUpdater(state, _ref8) {
|
|
404
|
+
var dataUri = _ref8.payload;
|
|
405
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
406
|
+
exportImage: _objectSpread(_objectSpread({}, state.exportImage), {}, {
|
|
407
|
+
processing: false,
|
|
408
|
+
imageDataUri: dataUri
|
|
409
|
+
})
|
|
410
|
+
});
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* @memberof uiStateUpdaters
|
|
415
|
+
* @public
|
|
416
|
+
*/
|
|
417
|
+
var setExportImageErrorUpdater = exports.setExportImageErrorUpdater = function setExportImageErrorUpdater(state, _ref9) {
|
|
418
|
+
var error = _ref9.payload;
|
|
419
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
420
|
+
exportImage: _objectSpread(_objectSpread({}, state.exportImage), {}, {
|
|
421
|
+
processing: false,
|
|
422
|
+
error: error
|
|
423
|
+
})
|
|
424
|
+
});
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Delete cached export image
|
|
429
|
+
* @memberof uiStateUpdaters
|
|
430
|
+
* @public
|
|
431
|
+
*/
|
|
432
|
+
var cleanupExportImageUpdater = exports.cleanupExportImageUpdater = function cleanupExportImageUpdater(state) {
|
|
433
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
434
|
+
exportImage: _objectSpread(_objectSpread({}, state.exportImage), {}, {
|
|
435
|
+
exporting: false,
|
|
436
|
+
imageDataUri: '',
|
|
437
|
+
error: false,
|
|
438
|
+
processing: false,
|
|
439
|
+
center: false
|
|
440
|
+
})
|
|
441
|
+
});
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Start image exporting flow
|
|
446
|
+
* @memberof uiStateUpdaters
|
|
447
|
+
* @param state
|
|
448
|
+
* @param options
|
|
449
|
+
* @returns {UiState}
|
|
450
|
+
* @public
|
|
451
|
+
*/
|
|
452
|
+
var startExportingImageUpdater = exports.startExportingImageUpdater = function startExportingImageUpdater(state, _ref10) {
|
|
453
|
+
var _ref10$payload = _ref10.payload,
|
|
454
|
+
options = _ref10$payload === void 0 ? {} : _ref10$payload;
|
|
455
|
+
var imageSettings = _objectSpread(_objectSpread({}, options), {}, {
|
|
456
|
+
exporting: true
|
|
457
|
+
});
|
|
458
|
+
return (0, _composerHelpers.compose_)([cleanupExportImageUpdater, (0, _composerHelpers.apply_)(setExportImageSettingUpdater, (0, _composerHelpers.payload_)(imageSettings))])(state);
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Set selected dataset for export
|
|
463
|
+
* @memberof uiStateUpdaters
|
|
464
|
+
* @param state `uiState`
|
|
465
|
+
* @param action
|
|
466
|
+
* @param action.payload dataset id
|
|
467
|
+
* @returns nextState
|
|
468
|
+
* @public
|
|
469
|
+
*/
|
|
470
|
+
var setExportSelectedDatasetUpdater = exports.setExportSelectedDatasetUpdater = function setExportSelectedDatasetUpdater(state, _ref11) {
|
|
471
|
+
var dataset = _ref11.payload;
|
|
472
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
473
|
+
exportData: _objectSpread(_objectSpread({}, state.exportData), {}, {
|
|
474
|
+
selectedDataset: dataset
|
|
475
|
+
})
|
|
476
|
+
});
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* Set data format for exporting data
|
|
481
|
+
* @memberof uiStateUpdaters
|
|
482
|
+
* @param state `uiState`
|
|
483
|
+
* @param action
|
|
484
|
+
* @param action.payload one of `'text/csv'`
|
|
485
|
+
* @returns nextState
|
|
486
|
+
* @public
|
|
487
|
+
*/
|
|
488
|
+
var setExportDataTypeUpdater = exports.setExportDataTypeUpdater = function setExportDataTypeUpdater(state, _ref12) {
|
|
489
|
+
var dataType = _ref12.payload;
|
|
490
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
491
|
+
exportData: _objectSpread(_objectSpread({}, state.exportData), {}, {
|
|
492
|
+
dataType: dataType
|
|
493
|
+
})
|
|
494
|
+
});
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Whether to export filtered data, `true` or `false`
|
|
499
|
+
* @memberof uiStateUpdaters
|
|
500
|
+
* @param state `uiState`
|
|
501
|
+
* @param action
|
|
502
|
+
* @param action.payload
|
|
503
|
+
* @returns nextState
|
|
504
|
+
* @public
|
|
505
|
+
*/
|
|
506
|
+
var setExportFilteredUpdater = exports.setExportFilteredUpdater = function setExportFilteredUpdater(state, _ref13) {
|
|
507
|
+
var filtered = _ref13.payload;
|
|
508
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
509
|
+
exportData: _objectSpread(_objectSpread({}, state.exportData), {}, {
|
|
510
|
+
filtered: filtered
|
|
511
|
+
})
|
|
512
|
+
});
|
|
513
|
+
};
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Whether to including data in map config, toggle between `true` or `false`
|
|
517
|
+
* @memberof uiStateUpdaters
|
|
518
|
+
* @param state `uiState`
|
|
519
|
+
* @returns nextState
|
|
520
|
+
* @public
|
|
521
|
+
*/
|
|
522
|
+
var setExportDataUpdater = exports.setExportDataUpdater = function setExportDataUpdater(state) {
|
|
523
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
524
|
+
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, (0, _defineProperty2["default"])({}, _defaultSettings.EXPORT_MAP_FORMATS.JSON, _objectSpread(_objectSpread({}, state.exportMap[_defaultSettings.EXPORT_MAP_FORMATS.JSON]), {}, {
|
|
525
|
+
hasData: !state.exportMap[_defaultSettings.EXPORT_MAP_FORMATS.JSON].hasData
|
|
526
|
+
})))
|
|
527
|
+
});
|
|
528
|
+
};
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* whether to export a mapbox access to HTML single page
|
|
532
|
+
* @param state - `uiState`
|
|
533
|
+
* @param action
|
|
534
|
+
* @param action.payload
|
|
535
|
+
* @returns nextState
|
|
536
|
+
* @public
|
|
537
|
+
*/
|
|
538
|
+
var setUserMapboxAccessTokenUpdater = exports.setUserMapboxAccessTokenUpdater = function setUserMapboxAccessTokenUpdater(state, _ref14) {
|
|
539
|
+
var userMapboxToken = _ref14.payload;
|
|
540
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
541
|
+
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, (0, _defineProperty2["default"])({}, _defaultSettings.EXPORT_MAP_FORMATS.HTML, _objectSpread(_objectSpread({}, state.exportMap[_defaultSettings.EXPORT_MAP_FORMATS.HTML]), {}, {
|
|
542
|
+
userMapboxToken: userMapboxToken
|
|
543
|
+
})))
|
|
544
|
+
});
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* Sets the export map format
|
|
549
|
+
* @param state - `uiState`
|
|
550
|
+
* @param action
|
|
551
|
+
* @param action.payload format to use to export the map into
|
|
552
|
+
* @return nextState
|
|
553
|
+
*/
|
|
554
|
+
var setExportMapFormatUpdater = exports.setExportMapFormatUpdater = function setExportMapFormatUpdater(state, _ref15) {
|
|
555
|
+
var format = _ref15.payload;
|
|
556
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
557
|
+
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, {
|
|
558
|
+
// @ts-expect-error
|
|
559
|
+
format: format
|
|
560
|
+
})
|
|
561
|
+
});
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Set the export html map mode
|
|
566
|
+
* @param state - `uiState`
|
|
567
|
+
* @param action
|
|
568
|
+
* @param action.payload to be set (available modes: EXPORT_HTML_MAP_MODES)
|
|
569
|
+
* @return nextState
|
|
570
|
+
*/
|
|
571
|
+
var setExportMapHTMLModeUpdater = exports.setExportMapHTMLModeUpdater = function setExportMapHTMLModeUpdater(state, _ref16) {
|
|
572
|
+
var mode = _ref16.payload;
|
|
573
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
574
|
+
exportMap: _objectSpread(_objectSpread({}, state.exportMap), {}, (0, _defineProperty2["default"])({}, _defaultSettings.EXPORT_MAP_FORMATS.HTML, _objectSpread(_objectSpread({}, state.exportMap[_defaultSettings.EXPORT_MAP_FORMATS.HTML]), {}, {
|
|
575
|
+
mode: mode
|
|
576
|
+
})))
|
|
577
|
+
});
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Adds a new notification.
|
|
582
|
+
* Updates a notification in case of matching ids.
|
|
583
|
+
* @memberof uiStateUpdaters
|
|
584
|
+
* @param state `uiState`
|
|
585
|
+
* @param action
|
|
586
|
+
* @param action.payload Params of a notification
|
|
587
|
+
* @returns nextState
|
|
588
|
+
* @public
|
|
589
|
+
*/
|
|
590
|
+
var addNotificationUpdater = exports.addNotificationUpdater = function addNotificationUpdater(state, _ref17) {
|
|
591
|
+
var payload = _ref17.payload;
|
|
592
|
+
var notifications;
|
|
593
|
+
|
|
594
|
+
// @ts-expect-error
|
|
595
|
+
var payloadId = payload === null || payload === void 0 ? void 0 : payload.id;
|
|
596
|
+
var notificationToUpdate = payloadId ? state.notifications.find(function (n) {
|
|
597
|
+
return n.id === payloadId;
|
|
598
|
+
}) : null;
|
|
599
|
+
if (notificationToUpdate) {
|
|
600
|
+
notifications = state.notifications.map(function (n) {
|
|
601
|
+
return n.id === payloadId ? (0, _notificationsUtils.createNotification)(payload) : n;
|
|
602
|
+
});
|
|
603
|
+
} else {
|
|
604
|
+
notifications = [].concat((0, _toConsumableArray2["default"])(state.notifications || []), [(0, _notificationsUtils.createNotification)(payload)]);
|
|
605
|
+
}
|
|
606
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
607
|
+
notifications: notifications
|
|
608
|
+
});
|
|
609
|
+
};
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* Remove a notification
|
|
613
|
+
* @memberof uiStateUpdaters
|
|
614
|
+
* @param state `uiState`
|
|
615
|
+
* @param action
|
|
616
|
+
* @param action.payload id of the notification to be removed
|
|
617
|
+
* @returns nextState
|
|
618
|
+
* @public
|
|
619
|
+
*/
|
|
620
|
+
var removeNotificationUpdater = exports.removeNotificationUpdater = function removeNotificationUpdater(state, _ref18) {
|
|
621
|
+
var id = _ref18.payload;
|
|
622
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
623
|
+
notifications: state.notifications.filter(function (n) {
|
|
624
|
+
return n.id !== id;
|
|
625
|
+
})
|
|
626
|
+
});
|
|
627
|
+
};
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Fired when file loading begin
|
|
631
|
+
* @memberof uiStateUpdaters
|
|
632
|
+
* @param state `uiState`
|
|
633
|
+
* @returns nextState
|
|
634
|
+
* @public
|
|
635
|
+
*/
|
|
636
|
+
var loadFilesUpdater = exports.loadFilesUpdater = function loadFilesUpdater(state) {
|
|
637
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
638
|
+
loadFiles: _objectSpread(_objectSpread({}, state.loadFiles), {}, {
|
|
639
|
+
fileLoading: true
|
|
640
|
+
})
|
|
641
|
+
});
|
|
642
|
+
};
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Handles loading file success and set fileLoading property to false
|
|
646
|
+
* @memberof uiStateUpdaters
|
|
647
|
+
* @param state `uiState`
|
|
648
|
+
* @returns nextState
|
|
649
|
+
*/
|
|
650
|
+
var loadFilesSuccessUpdater = exports.loadFilesSuccessUpdater = function loadFilesSuccessUpdater(state) {
|
|
651
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
652
|
+
loadFiles: _objectSpread(_objectSpread({}, state.loadFiles), {}, {
|
|
653
|
+
fileLoading: false
|
|
654
|
+
})
|
|
655
|
+
});
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* Handles load file error and set fileLoading property to false
|
|
660
|
+
* @memberof uiStateUpdaters
|
|
661
|
+
* @param state
|
|
662
|
+
* @param action
|
|
663
|
+
* @param action.error
|
|
664
|
+
* @returns nextState
|
|
665
|
+
* @public
|
|
666
|
+
*/
|
|
667
|
+
var loadFilesErrUpdater = exports.loadFilesErrUpdater = function loadFilesErrUpdater(state, _ref19) {
|
|
668
|
+
var error = _ref19.error;
|
|
669
|
+
return addNotificationUpdater(_objectSpread(_objectSpread({}, state), {}, {
|
|
670
|
+
loadFiles: _objectSpread(_objectSpread({}, state.loadFiles), {}, {
|
|
671
|
+
fileLoading: false
|
|
672
|
+
})
|
|
673
|
+
}), {
|
|
674
|
+
payload: (0, _notificationsUtils.errorNotification)({
|
|
675
|
+
message: (error || {}).message || 'Failed to upload files',
|
|
676
|
+
topic: _defaultSettings.DEFAULT_NOTIFICATION_TOPICS.global
|
|
677
|
+
})
|
|
678
|
+
});
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* Handles toggle map split and reset all map control index to 0
|
|
683
|
+
* @memberof uiStateUpdaters
|
|
684
|
+
* @param state
|
|
685
|
+
* @returns nextState
|
|
686
|
+
* @public
|
|
687
|
+
*/
|
|
688
|
+
var toggleSplitMapUpdater = exports.toggleSplitMapUpdater = function toggleSplitMapUpdater(state) {
|
|
689
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
690
|
+
mapControls: Object.entries(state.mapControls).reduce(function (acc, entry) {
|
|
691
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, entry[0], _objectSpread(_objectSpread({}, entry[1]), {}, {
|
|
692
|
+
activeMapIndex: 0
|
|
693
|
+
})));
|
|
694
|
+
}, {})
|
|
695
|
+
});
|
|
696
|
+
};
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Toggle modal data
|
|
700
|
+
* @memberof uiStateUpdaters
|
|
701
|
+
* @param state
|
|
702
|
+
* @returns nextState
|
|
703
|
+
* @public
|
|
704
|
+
*/
|
|
705
|
+
var showDatasetTableUpdater = exports.showDatasetTableUpdater = function showDatasetTableUpdater(state) {
|
|
706
|
+
return toggleModalUpdater(state, {
|
|
707
|
+
payload: _defaultSettings.DATA_TABLE_ID
|
|
708
|
+
});
|
|
709
|
+
};
|
|
710
|
+
|
|
711
|
+
/**
|
|
712
|
+
* Set the locale of the UI
|
|
713
|
+
* @memberof uiStateUpdaters
|
|
714
|
+
* @param state `uiState`
|
|
715
|
+
* @param action
|
|
716
|
+
* @param action.payload
|
|
717
|
+
* @param action.payload.locale locale
|
|
718
|
+
* @returns nextState
|
|
719
|
+
* @public
|
|
720
|
+
*/
|
|
721
|
+
var setLocaleUpdater = exports.setLocaleUpdater = function setLocaleUpdater(state, _ref20) {
|
|
722
|
+
var locale = _ref20.payload.locale;
|
|
723
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
724
|
+
locale: locale
|
|
725
|
+
});
|
|
726
|
+
};
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* Toggle layer panel list view
|
|
730
|
+
* @memberof uiStateUpdaters
|
|
731
|
+
* @param state `uiState`
|
|
732
|
+
* @param action
|
|
733
|
+
* @param action.payload layer panel listView value. Can be 'list' or 'sortByDataset'
|
|
734
|
+
* @returns nextState
|
|
735
|
+
* @public
|
|
736
|
+
*/
|
|
737
|
+
var toggleLayerPanelListViewUpdater = exports.toggleLayerPanelListViewUpdater = function toggleLayerPanelListViewUpdater(state, _ref21) {
|
|
738
|
+
var listView = _ref21.payload;
|
|
739
|
+
// @ts-expect-error
|
|
740
|
+
return listView === state.layerPanelListView ? state : _objectSpread(_objectSpread({}, state), {}, {
|
|
741
|
+
layerPanelListView: listView
|
|
742
|
+
});
|
|
743
|
+
};
|
|
744
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdFNldHRpbmdzIiwicmVxdWlyZSIsIl9sb2NhbGVzIiwiX25vdGlmaWNhdGlvbnNVdGlscyIsIl9leHBvcnRVdGlscyIsIl9jb21wb3NlckhlbHBlcnMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIkRFRkFVTFRfQUNUSVZFX1NJREVfUEFORUwiLCJleHBvcnRzIiwiREVGQVVMVF9NT0RBTCIsIkFERF9EQVRBX0lEIiwidWlTdGF0ZVVwZGF0ZXJzIiwiREVGQVVMVF9NQVBfQ09OVFJPTFNfRkVBVFVSRVMiLCJzaG93IiwiYWN0aXZlIiwiZGlzYWJsZUNsb3NlIiwiYWN0aXZlTWFwSW5kZXgiLCJERUZBVUxUX01BUF9DT05UUk9MUyIsIk1BUF9DT05UUk9MUyIsInJlZHVjZSIsImZpbmFsIiwiY3VycmVudCIsIkRFRkFVTFRfRVhQT1JUX0lNQUdFIiwicmF0aW8iLCJFWFBPUlRfSU1HX1JBVElPUyIsIlNDUkVFTiIsInJlc29sdXRpb24iLCJSRVNPTFVUSU9OUyIsIk9ORV9YIiwibGVnZW5kIiwibWFwSCIsIm1hcFciLCJpbWFnZVNpemUiLCJ6b29tT2Zmc2V0Iiwic2NhbGUiLCJpbWFnZVciLCJpbWFnZUgiLCJjZW50ZXIiLCJpbWFnZURhdGFVcmkiLCJleHBvcnRpbmciLCJwcm9jZXNzaW5nIiwiZXJyb3IiLCJERUZBVUxUX0xPQURfRklMRVMiLCJmaWxlTG9hZGluZyIsIkRFRkFVTFRfRVhQT1JUX0RBVEEiLCJzZWxlY3RlZERhdGFzZXQiLCJkYXRhVHlwZSIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJmaWx0ZXJlZCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OUyIsIkRFRkFVTFRfRVhQT1JUX0hUTUwiLCJleHBvcnRNYXBib3hBY2Nlc3NUb2tlbiIsInVzZXJNYXBib3hUb2tlbiIsIm1vZGUiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERVMiLCJSRUFEIiwiREVGQVVMVF9FWFBPUlRfSlNPTiIsImhhc0RhdGEiLCJERUZBVUxUX0VYUE9SVF9NQVAiLCJFWFBPUlRfTUFQX0ZPUk1BVFMiLCJIVE1MIiwiSlNPTiIsIklOSVRJQUxfVUlfU1RBVEUiLCJyZWFkT25seSIsImFjdGl2ZVNpZGVQYW5lbCIsImN1cnJlbnRNb2RhbCIsImRhdGFzZXRLZXlUb1JlbW92ZSIsInZpc2libGVEcm9wZG93biIsImV4cG9ydEltYWdlIiwiZXhwb3J0RGF0YSIsImV4cG9ydE1hcCIsIm1hcENvbnRyb2xzIiwibm90aWZpY2F0aW9ucyIsImxvYWRGaWxlcyIsImxvY2FsZSIsIkxPQ0FMRV9DT0RFUyIsImVuIiwibGF5ZXJQYW5lbExpc3RWaWV3IiwiaW5pdFVpU3RhdGVVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJwYXlsb2FkIiwiaW5pdGlhbFVpU3RhdGUiLCJ0b2dnbGVTaWRlUGFuZWxVcGRhdGVyIiwiX3JlZiIsImlkIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwiX3JlZjIiLCJzaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiX3JlZjMiLCJoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyIiwidG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIiLCJfcmVmNCIsIl9yZWY0JHBheWxvYWQiLCJwYW5lbElkIiwiX3JlZjQkcGF5bG9hZCRpbmRleCIsImluZGV4Iiwic2V0TWFwQ29udHJvbFZpc2liaWxpdHlVcGRhdGVyIiwiX3JlZjUiLCJfc3RhdGUkbWFwQ29udHJvbHMiLCJfcmVmNSRwYXlsb2FkIiwiQm9vbGVhbiIsIm9wZW5EZWxldGVNb2RhbFVwZGF0ZXIiLCJfcmVmNiIsIkRFTEVURV9EQVRBX0lEIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlciIsIl9yZWY3IiwibmV3U2V0dGluZyIsInVwZGF0ZWQiLCJjYWxjdWxhdGVFeHBvcnRJbWFnZVNpemUiLCJzZXRFeHBvcnRJbWFnZURhdGFVcmlVcGRhdGVyIiwiX3JlZjgiLCJkYXRhVXJpIiwic2V0RXhwb3J0SW1hZ2VFcnJvclVwZGF0ZXIiLCJfcmVmOSIsImNsZWFudXBFeHBvcnRJbWFnZVVwZGF0ZXIiLCJzdGFydEV4cG9ydGluZ0ltYWdlVXBkYXRlciIsIl9yZWYxMCIsIl9yZWYxMCRwYXlsb2FkIiwib3B0aW9ucyIsImltYWdlU2V0dGluZ3MiLCJjb21wb3NlXyIsImFwcGx5XyIsInBheWxvYWRfIiwic2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlciIsIl9yZWYxMSIsImRhdGFzZXQiLCJzZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIiLCJfcmVmMTIiLCJzZXRFeHBvcnRGaWx0ZXJlZFVwZGF0ZXIiLCJfcmVmMTMiLCJzZXRFeHBvcnREYXRhVXBkYXRlciIsInNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIiLCJfcmVmMTQiLCJzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyIiwiX3JlZjE1IiwiZm9ybWF0Iiwic2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyIiwiX3JlZjE2IiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYxNyIsInBheWxvYWRJZCIsIm5vdGlmaWNhdGlvblRvVXBkYXRlIiwiZmluZCIsIm4iLCJtYXAiLCJjcmVhdGVOb3RpZmljYXRpb24iLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlciIsIl9yZWYxOCIsImxvYWRGaWxlc1VwZGF0ZXIiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJfcmVmMTkiLCJlcnJvck5vdGlmaWNhdGlvbiIsIm1lc3NhZ2UiLCJ0b3BpYyIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyIsImdsb2JhbCIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsImVudHJpZXMiLCJhY2MiLCJlbnRyeSIsInNob3dEYXRhc2V0VGFibGVVcGRhdGVyIiwiREFUQV9UQUJMRV9JRCIsInNldExvY2FsZVVwZGF0ZXIiLCJfcmVmMjAiLCJ0b2dnbGVMYXllclBhbmVsTGlzdFZpZXdVcGRhdGVyIiwiX3JlZjIxIiwibGlzdFZpZXciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVkdWNlcnMvdWktc3RhdGUtdXBkYXRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtcbiAgQUREX0RBVEFfSUQsXG4gIERBVEFfVEFCTEVfSUQsXG4gIERFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyxcbiAgREVMRVRFX0RBVEFfSUQsXG4gIEVYUE9SVF9EQVRBX1RZUEUsXG4gIEVYUE9SVF9IVE1MX01BUF9NT0RFUyxcbiAgRVhQT1JUX0lNR19SQVRJT1MsXG4gIEVYUE9SVF9NQVBfRk9STUFUUyxcbiAgUkVTT0xVVElPTlMsXG4gIE1BUF9DT05UUk9MU1xufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuaW1wb3J0IHtjcmVhdGVOb3RpZmljYXRpb24sIGVycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcbmltcG9ydCB7Y2FsY3VsYXRlRXhwb3J0SW1hZ2VTaXplfSBmcm9tICcuLi91dGlscy9leHBvcnQtdXRpbHMnO1xuaW1wb3J0IHtwYXlsb2FkXywgYXBwbHlfLCBjb21wb3NlX30gZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcblxuaW1wb3J0IEFjdGlvblR5cGVzIGZyb20gJy4uL2NvbnN0YW50cy9hY3Rpb24tdHlwZXMnO1xuaW1wb3J0ICogYXMgVWlTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy91aS1zdGF0ZS1hY3Rpb25zJztcbmltcG9ydCB7S2VwbGVyR2xJbml0UGF5bG9hZCwgTG9hZEZpbGVzRXJyVXBkYXRlckFjdGlvbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIEV4cG9ydEltYWdlID0ge1xuICByYXRpbzoga2V5b2YgdHlwZW9mIEVYUE9SVF9JTUdfUkFUSU9TO1xuICByZXNvbHV0aW9uOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxlZ2VuZDogYm9vbGVhbjtcbiAgbWFwSDogbnVtYmVyO1xuICBtYXBXOiBudW1iZXI7XG4gIGltYWdlU2l6ZToge1xuICAgIHpvb21PZmZzZXQ6IG51bWJlcjtcbiAgICBzY2FsZTogbnVtYmVyO1xuICAgIGltYWdlVzogbnVtYmVyO1xuICAgIGltYWdlSDogbnVtYmVyO1xuICB9O1xuICAvLyBleHBvcnRpbmcgc3RhdGVcbiAgaW1hZ2VEYXRhVXJpOiBzdHJpbmc7XG4gIGV4cG9ydGluZzogYm9vbGVhbjtcbiAgcHJvY2Vzc2luZzogYm9vbGVhbjtcbiAgZXJyb3I6IEVycm9yIHwgZmFsc2U7XG4gIC8vIFRoaXMgZmllbGQgd2FzIG5vdCBpbiB0aGUgLmQudHMgZmlsZVxuICBjZW50ZXI6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBFeHBvcnREYXRhID0ge1xuICBzZWxlY3RlZERhdGFzZXQ6IHN0cmluZztcbiAgZGF0YVR5cGU6IHN0cmluZztcbiAgZmlsdGVyZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBFeHBvcnRIdG1sID0ge1xuICBleHBvcnRNYXBib3hBY2Nlc3NUb2tlbjogbnVsbCB8IHN0cmluZztcbiAgdXNlck1hcGJveFRva2VuOiBzdHJpbmc7XG4gIG1vZGU6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBFeHBvcnRKc29uID0ge1xuICBoYXNEYXRhOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIEV4cG9ydE1hcCA9IHtcbiAgSFRNTDogRXhwb3J0SHRtbDtcbiAgSlNPTjogRXhwb3J0SnNvbjtcbiAgZm9ybWF0OiAnSFRNTCcgfCAnSlNPTic7XG59O1xuXG5leHBvcnQgdHlwZSBNYXBDb250cm9sID0ge1xuICBzaG93OiBib29sZWFuO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIGRpc2FibGVDbG9zZT86IGJvb2xlYW47XG4gIGFjdGl2ZU1hcEluZGV4PzogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIE1hcENvbnRyb2xzID0ge1xuICB2aXNpYmxlTGF5ZXJzPzogTWFwQ29udHJvbDtcbiAgbWFwTGVnZW5kPzogTWFwQ29udHJvbDtcbiAgdG9nZ2xlM2Q/OiBNYXBDb250cm9sO1xuICBzcGxpdE1hcD86IE1hcENvbnRyb2w7XG4gIG1hcERyYXc/OiBNYXBDb250cm9sO1xuICBtYXBMb2NhbGU/OiBNYXBDb250cm9sO1xufTtcblxuZXhwb3J0IHR5cGUgTG9hZEZpbGVzID0ge1xuICBmaWxlTG9hZGluZzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbnMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICB0b3BpYzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIExvY2FsZSA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgTGF5ZXJQYW5lbExpc3RWaWV3ID0gJ2xpc3QnIHwgJ3NvcnRCeURhdGFzZXQnO1xuXG5leHBvcnQgdHlwZSBVaVN0YXRlID0ge1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmc7XG4gIGN1cnJlbnRNb2RhbDogc3RyaW5nIHwgbnVsbDtcbiAgZGF0YXNldEtleVRvUmVtb3ZlOiBzdHJpbmcgfCBudWxsO1xuICB2aXNpYmxlRHJvcGRvd246IHN0cmluZyB8IG51bGw7XG4gIC8vIGV4cG9ydCBpbWFnZSBtb2RhbCB1aVxuICBleHBvcnRJbWFnZTogRXhwb3J0SW1hZ2U7XG4gIC8vIGV4cG9ydCBkYXRhIG1vZGFsIHVpXG4gIGV4cG9ydERhdGE6IEV4cG9ydERhdGE7XG4gIC8vIGh0bWwgZXhwb3J0XG4gIGV4cG9ydE1hcDogRXhwb3J0TWFwO1xuICAvLyBtYXAgY29udHJvbCBwYW5lbHNcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICAvLyB1aSBub3RpZmljYXRpb25zXG4gIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNbXTtcbiAgLy8gbG9hZCBmaWxlc1xuICBsb2FkRmlsZXM6IExvYWRGaWxlcztcbiAgLy8gTG9jYWxlIG9mIHRoZSBVSVxuICBsb2NhbGU6IExvY2FsZTtcbiAgbGF5ZXJQYW5lbExpc3RWaWV3OiBMYXllclBhbmVsTGlzdFZpZXc7XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BQ1RJVkVfU0lERV9QQU5FTCA9ICdsYXllcic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RBTCA9IEFERF9EQVRBX0lEO1xuXG4vKipcbiAqIFVwZGF0ZXJzIGZvciBgdWlTdGF0ZWAgcmVkdWNlci4gQ2FuIGJlIHVzZWQgaW4geW91ciByb290IHJlZHVjZXIgdG8gZGlyZWN0bHkgbW9kaWZ5IGtlcGxlci5nbCdzIHN0YXRlLlxuICogUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKlxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyLCB7dWlTdGF0ZVVwZGF0ZXJzfSBmcm9tICdrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gY2xpY2sgYnV0dG9uIHRvIGNsb3NlIHNpZGUgcGFuZWxcbiAqICAgIGNhc2UgJ0NMSUNLX0JVVFRPTic6XG4gKiAgICAgIHJldHVybiB7XG4gKiAgICAgICAgLi4uc3RhdGUsXG4gKiAgICAgICAga2VwbGVyR2w6IHtcbiAqICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICogICAgICAgICAgZm9vOiB7XG4gKiAgICAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbC5mb28sXG4gKiAgICAgICAgICAgICB1aVN0YXRlOiB1aVN0YXRlVXBkYXRlcnMudG9nZ2xlU2lkZVBhbmVsVXBkYXRlcihcbiAqICAgICAgICAgICAgICAgdWlTdGF0ZSwge3BheWxvYWQ6IG51bGx9XG4gKiAgICAgICAgICAgICApXG4gKiAgICAgICAgICB9XG4gKiAgICAgICAgfVxuICogICAgICB9O1xuICogIH1cbiAqICByZXR1cm4gcmVkdWNlcnMoc3RhdGUsIGFjdGlvbik7XG4gKiB9O1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGNvbXBvc2VkUmVkdWNlcjtcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmNvbnN0IHVpU3RhdGVVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG5cbmNvbnN0IERFRkFVTFRfTUFQX0NPTlRST0xTX0ZFQVRVUkVTOiBNYXBDb250cm9sID0ge1xuICBzaG93OiB0cnVlLFxuICBhY3RpdmU6IGZhbHNlLFxuICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxuICAvLyBkZWZpbmVzIHdoaWNoIG1hcCBpbmRleCB1c2VycyBhcmUgaW50ZXJhY3Rpbmcgd2l0aCAodGhyb3VnaCBtYXAgY29udHJvbHMpXG4gIGFjdGl2ZU1hcEluZGV4OiAwXG59O1xuXG4vKipcbiAqIEEgbGlzdCBvZiBtYXAgY29udHJvbCB2aXNpYmlsaXR5IGFuZCB3aGV0aGVyIGlzIGl0IGFjdGl2ZS5cbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHZpc2libGVMYXllcnMgRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwcm9wZXJ0eSBtYXBMZWdlbmQgRGVmYXVsdDogYHtzaG93OiB0cnVlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwcm9wZXJ0eSB0b2dnbGUzZCBEZWZhdWx0OiBge3Nob3c6IHRydWV9YFxuICogQHByb3BlcnR5IHNwbGl0TWFwIERlZmF1bHQ6IGB7c2hvdzogdHJ1ZX1gXG4gKiBAcHJvcGVydHkgbWFwRHJhdyBEZWZhdWx0OiBge3Nob3c6IHRydWUsIGFjdGl2ZTogZmFsc2V9YFxuICogQHByb3BlcnR5IG1hcExvY2FsZSBEZWZhdWx0OiBge3Nob3c6IGZhbHNlLCBhY3RpdmU6IGZhbHNlfWBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQX0NPTlRST0xTOiBNYXBDb250cm9scyA9IChPYmplY3Qua2V5cyhNQVBfQ09OVFJPTFMpIGFzIEFycmF5PFxuICBrZXlvZiB0eXBlb2YgTUFQX0NPTlRST0xTXG4+KS5yZWR1Y2UoXG4gIChmaW5hbCwgY3VycmVudCkgPT4gKHtcbiAgICAuLi5maW5hbCxcbiAgICBbY3VycmVudF06IERFRkFVTFRfTUFQX0NPTlRST0xTX0ZFQVRVUkVTXG4gIH0pLFxuICB7fSBhcyBNYXBDb250cm9sc1xuKTtcblxuLyoqXG4gKiBEZWZhdWx0IGltYWdlIGV4cG9ydCBjb25maWdcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHJhdGlvIERlZmF1bHQ6IGAnU0NSRUVOJ2AsXG4gKiBAcHJvcGVydHkgcmVzb2x1dGlvbiBEZWZhdWx0OiBgJ09ORV9YJ2AsXG4gKiBAcHJvcGVydHkgbGVnZW5kIERlZmF1bHQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgbWFwSCBEZWZhdWx0OiAwLFxuICogQHByb3BlcnR5IG1hcFcgRGVmYXVsdDogMCxcbiAqIEBwcm9wZXJ0eSBpbWFnZVNpemUgRGVmYXVsdDoge3pvb21PZmZzZXQ6IDAsIHNjYWxlOiAxLCBpbWFnZVc6IDAsIGltYWdlSDogMH0sXG4gKiBAcHJvcGVydHkgaW1hZ2VEYXRhVXJpIERlZmF1bHQ6IGAnJ2AsXG4gKiBAcHJvcGVydHkgZXhwb3J0aW5nIERlZmF1bHQ6IGBmYWxzZWBcbiAqIEBwcm9wZXJ0eSBlcnJvciBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9JTUFHRTogRXhwb3J0SW1hZ2UgPSB7XG4gIC8vIHVzZXIgb3B0aW9uc1xuICByYXRpbzogRVhQT1JUX0lNR19SQVRJT1MuU0NSRUVOLFxuICByZXNvbHV0aW9uOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGVnZW5kOiBmYWxzZSxcbiAgbWFwSDogMCxcbiAgbWFwVzogMCxcbiAgaW1hZ2VTaXplOiB7XG4gICAgem9vbU9mZnNldDogMCxcbiAgICBzY2FsZTogMSxcbiAgICBpbWFnZVc6IDAsXG4gICAgaW1hZ2VIOiAwXG4gIH0sXG4gIC8vIHdoZW4gdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIG1vY2sgbWFwIHZpZXdwb3J0IHdpbGwgbW92ZSB0byB0aGUgY2VudGVyIG9mIGRhdGFcbiAgY2VudGVyOiBmYWxzZSxcbiAgLy8gZXhwb3J0aW5nIHN0YXRlXG4gIGltYWdlRGF0YVVyaTogJycsXG4gIC8vIGV4cG9ydGluZzogdXNlZCB0byBhdHRhY2ggcGxvdC1jb250YWluZXIgdG8gZG9tXG4gIGV4cG9ydGluZzogZmFsc2UsXG4gIC8vIHByb2Nlc3Npbmc6IHVzZWQgYXMgbG9hZGluZyBpbmRpY2F0b3Igd2hlbiBleHBvcnQgaW1hZ2UgaXMgYmVpbmcgcHJvZHVjZWRcbiAgcHJvY2Vzc2luZzogZmFsc2UsXG4gIGVycm9yOiBmYWxzZVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTE9BRF9GSUxFUyA9IHtcbiAgZmlsZUxvYWRpbmc6IGZhbHNlXG59O1xuXG4vKipcbiAqIERlZmF1bHQgaW5pdGlhbCBgZXhwb3J0RGF0YWAgc2V0dGluZ3NcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHNlbGVjdGVkRGF0YXNldCBEZWZhdWx0OiBgJydgLFxuICogQHByb3BlcnR5IGRhdGFUeXBlIERlZmF1bHQ6IGAnY3N2J2AsXG4gKiBAcHJvcGVydHkgZmlsdGVyZWQgRGVmYXVsdDogYHRydWVgLFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfREFUQTogRXhwb3J0RGF0YSA9IHtcbiAgc2VsZWN0ZWREYXRhc2V0OiAnJyxcbiAgZGF0YVR5cGU6IEVYUE9SVF9EQVRBX1RZUEUuQ1NWLFxuICBmaWx0ZXJlZDogdHJ1ZVxufTtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OUyA9IFtdO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IGV4cG9ydE1hcGJveEFjY2Vzc1Rva2VuIC0gRGVmYXVsdDogbnVsbCwgdGhpcyBpcyB1c2VkIHdoZW4gd2UgcHJvdmlkZSBhIGRlZmF1bHQgbWFwYm94IHRva2VuIGZvciB1c2VycyB0byB0YWtlIGFkdmFudGFnZSBvZlxuICogQHByb3BlcnR5IHVzZXJNYXBib3hUb2tlbiAtIERlZmF1bHQ6ICcnLCBtYXBib3ggdG9rZW4gcHJvdmlkZWQgYnkgdXNlciB0aHJvdWdoIGlucHV0IGZpZWxkXG4gKiBAcHJvcGVydHkgbW9kZSAtIERlZmF1bHQ6ICdSRUFEJywgcmVhZCBvbmx5IG9yIGVkaXRhYmxlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9IVE1MOiBFeHBvcnRIdG1sID0ge1xuICBleHBvcnRNYXBib3hBY2Nlc3NUb2tlbjogbnVsbCxcbiAgdXNlck1hcGJveFRva2VuOiAnJyxcbiAgbW9kZTogRVhQT1JUX0hUTUxfTUFQX01PREVTLlJFQURcbn07XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAcHJvcGVydHkgaGFzRGF0YSAtIERlZmF1bHQ6ICd0cnVlJyxcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0pTT046IEV4cG9ydEpzb24gPSB7XG4gIGhhc0RhdGE6IHRydWVcbn07XG5cbi8qKlxuICogRXhwb3J0IE1hcCBDb25maWdcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IEhUTUwgLSBEZWZhdWx0OiAnREVGQVVMVF9FWFBPUlRfSFRNTCcsXG4gKiBAcHJvcGVydHkgSlNPTiAtIERlZmF1bHQ6ICdERUZBVUxUX0VYUE9SVF9KU09OJyxcbiAqIEBwcm9wZXJ0eSBmb3JtYXQgLSBEZWZhdWx0OiAnSFRNTCcsXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VYUE9SVF9NQVA6IEV4cG9ydE1hcCA9IHtcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5IVE1MXTogREVGQVVMVF9FWFBPUlRfSFRNTCxcbiAgW0VYUE9SVF9NQVBfRk9STUFUUy5KU09OXTogREVGQVVMVF9FWFBPUlRfSlNPTixcbiAgZm9ybWF0OiBFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTFxufTtcblxuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYHVpU3RhdGVgXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSByZWFkT25seSBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgYWN0aXZlU2lkZVBhbmVsIERlZmF1bHQ6IGAnbGF5ZXInYFxuICogQHByb3BlcnR5IGN1cnJlbnRNb2RhbCBEZWZhdWx0OiBgJ2FkZERhdGEnYFxuICogQHByb3BlcnR5IGRhdGFzZXRLZXlUb1JlbW92ZSBEZWZhdWx0OiBgbnVsbGBcbiAqIEBwcm9wZXJ0eSB2aXNpYmxlRHJvcGRvd24gRGVmYXVsdDogYG51bGxgXG4gKiBAcHJvcGVydHkgZXhwb3J0SW1hZ2UgRGVmYXVsdDogW2BERUZBVUxUX0VYUE9SVF9JTUFHRWBdKCNkZWZhdWx0X2V4cG9ydF9pbWFnZSlcbiAqIEBwcm9wZXJ0eSBleHBvcnREYXRhIERlZmF1bHQ6IFtgREVGQVVMVF9FWFBPUlRfREFUQWBdKCNkZWZhdWx0X2V4cG9ydF9kYXRhKVxuICogQHByb3BlcnR5IGV4cG9ydE1hcCBEZWZhdWx0OiBbYERFRkFVTFRfRVhQT1JUX01BUGBdKCNkZWZhdWx0X2V4cG9ydF9tYXApXG4gKiBAcHJvcGVydHkgbWFwQ29udHJvbHMgRGVmYXVsdDogW2BERUZBVUxUX01BUF9DT05UUk9MU2BdKCNkZWZhdWx0X21hcF9jb250cm9scylcbiAqIEBwcm9wZXJ0eSBub3RpZmljYXRpb25zIERlZmF1bHQ6IGBbXWBcbiAqIEBwcm9wZXJ0eSBub3RpZmljYXRpb25zIERlZmF1bHQ6IGBbXWBcbiAqIEBwcm9wZXJ0eSBsb2FkRmlsZXNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfVUlfU1RBVEU6IFVpU3RhdGUgPSB7XG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgYWN0aXZlU2lkZVBhbmVsOiBERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMLFxuICBjdXJyZW50TW9kYWw6IERFRkFVTFRfTU9EQUwsXG4gIGRhdGFzZXRLZXlUb1JlbW92ZTogbnVsbCxcbiAgdmlzaWJsZURyb3Bkb3duOiBudWxsLFxuICAvLyBleHBvcnQgaW1hZ2UgbW9kYWwgdWlcbiAgZXhwb3J0SW1hZ2U6IERFRkFVTFRfRVhQT1JUX0lNQUdFLFxuICAvLyBleHBvcnQgZGF0YSBtb2RhbCB1aVxuICBleHBvcnREYXRhOiBERUZBVUxUX0VYUE9SVF9EQVRBLFxuICAvLyBodG1sIGV4cG9ydFxuICBleHBvcnRNYXA6IERFRkFVTFRfRVhQT1JUX01BUCxcbiAgLy8gbWFwIGNvbnRyb2wgcGFuZWxzXG4gIG1hcENvbnRyb2xzOiBERUZBVUxUX01BUF9DT05UUk9MUyxcbiAgLy8gdWkgbm90aWZpY2F0aW9uc1xuICBub3RpZmljYXRpb25zOiBERUZBVUxUX05PVElGSUNBVElPTlMsXG4gIC8vIGxvYWQgZmlsZXNcbiAgbG9hZEZpbGVzOiBERUZBVUxUX0xPQURfRklMRVMsXG4gIC8vIExvY2FsZSBvZiB0aGUgVUlcbiAgbG9jYWxlOiBMT0NBTEVfQ09ERVMuZW4sXG4gIGxheWVyUGFuZWxMaXN0VmlldzogJ2xpc3QnXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG5cbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRVaVN0YXRlVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIGFjdGlvbjoge1xuICAgIHR5cGU/OiB0eXBlb2YgQWN0aW9uVHlwZXNbJ0lOSVQnXTtcbiAgICBwYXlsb2FkOiBLZXBsZXJHbEluaXRQYXlsb2FkO1xuICB9XG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAuLi4oYWN0aW9uLnBheWxvYWQgfHwge30pLmluaXRpYWxVaVN0YXRlXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgYWN0aXZlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBpZCBvZiBzaWRlIHBhbmVsIHRvIGJlIHNob3duLCBvbmUgb2YgYGxheWVyYCwgYGZpbHRlcmAsIGBpbnRlcmFjdGlvbmAsIGBtYXBgLiBjbG9zZSBzaWRlIHBhbmVsIGlmIGBudWxsYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTaWRlUGFuZWxVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGlkfTogVWlTdGF0ZUFjdGlvbnMuVG9nZ2xlU2lkZVBhbmVsVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIHJldHVybiBpZCA9PT0gc3RhdGUuYWN0aXZlU2lkZVBhbmVsXG4gICAgPyBzdGF0ZVxuICAgIDoge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYWN0aXZlU2lkZVBhbmVsOiBpZFxuICAgICAgfTtcbn07XG5cbi8qKlxuICogU2hvdyBhbmQgaGlkZSBtb2RhbCBkaWFsb2dcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbWFjdGlvbi5wYXlsb2FkIGlkIG9mIG1vZGFsIHRvIGJlIHNob3duLCBudWxsIHRvIGhpZGUgbW9kYWxzLiBPbmUgb2Y6XG4gKiAgLSBbYERBVEFfVEFCTEVfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNkYXRhX3RhYmxlX2lkKVxuICogIC0gW2BERUxFVEVfREFUQV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2RlbGV0ZV9kYXRhX2lkKVxuICogIC0gW2BBRERfREFUQV9JRGBdKC4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzLm1kI2FkZF9kYXRhX2lkKVxuICogIC0gW2BFWFBPUlRfSU1BR0VfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNleHBvcnRfaW1hZ2VfaWQpXG4gKiAgLSBbYEVYUE9SVF9EQVRBX0lEYF0oLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MubWQjZXhwb3J0X2RhdGFfaWQpXG4gKiAgLSBbYEFERF9NQVBfU1RZTEVfSURgXSguLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy5tZCNhZGRfbWFwX3N0eWxlX2lkKVxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVNb2RhbFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVaVN0YXRlQWN0aW9ucy5Ub2dnbGVNb2RhbFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGN1cnJlbnRNb2RhbDogaWRcbn0pO1xuXG4vKipcbiAqIEhpZGUgYW5kIHNob3cgc2lkZSBwYW5lbCBoZWFkZXIgZHJvcGRvd24sIGFjdGl2YXRlZCBieSBjbGlja2luZyB0aGUgc2hhcmUgbGluayBvbiB0b3Agb2YgdGhlIHNpZGUgcGFuZWxcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogaWR9OiBVaVN0YXRlQWN0aW9ucy5TaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICB2aXNpYmxlRHJvcGRvd246IGlkXG59KTtcblxuLyoqXG4gKiBIaWRlIHNpZGUgcGFuZWwgaGVhZGVyIGRyb3Bkb3duLCBhY3RpdmF0ZWQgYnkgY2xpY2tpbmcgdGhlIHNoYXJlIGxpbmsgb24gdG9wIG9mIHRoZSBzaWRlIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgdmlzaWJsZURyb3Bkb3duOiBudWxsXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgYWN0aXZlIG1hcCBjb250cm9sIHBhbmVsXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG1hcCBjb250cm9sIHBhbmVsIGlkLCBvbmUgb2YgdGhlIGtleXMgb2Y6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IHtwYW5lbElkLCBpbmRleCA9IDB9fTogVWlTdGF0ZUFjdGlvbnMuVG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIG1hcENvbnRyb2xzOiB7XG4gICAgLi4uc3RhdGUubWFwQ29udHJvbHMsXG4gICAgW3BhbmVsSWRdOiB7XG4gICAgICAuLi5zdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXSxcbiAgICAgIC8vIHRoaXMgaGFuZGxlcyBzcGxpdCBtYXAgaW50ZXJhY3Rpb25cbiAgICAgIC8vIFRvZ2dsaW5nIGZyb20gd2l0aGluIHRoZSBzYW1lIG1hcCB3aWxsIHNpbXBseSB0b2dnbGUgdGhlIGFjdGl2ZSBwcm9wZXJ0eVxuICAgICAgLy8gVG9nZ2xpbmcgZnJvbSB3aXRoaW4gZGlmZmVyZW50IG1hcHMgd2Ugc2V0IHRoZSBhY3RpdmUgcHJvcGVydHkgdG8gdHJ1ZVxuICAgICAgYWN0aXZlOlxuICAgICAgICBpbmRleCA9PT0gc3RhdGUubWFwQ29udHJvbHNbcGFuZWxJZF0uYWN0aXZlTWFwSW5kZXhcbiAgICAgICAgICA/ICFzdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXS5hY3RpdmVcbiAgICAgICAgICA6IHRydWUsXG4gICAgICBhY3RpdmVNYXBJbmRleDogaW5kZXhcbiAgICB9XG4gIH1cbn0pO1xuXG4vKipcbiAqIFRvZ2dsZSBtYXAgY29udHJvbCB2aXNpYmlsaXR5XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG1hcCBjb250cm9sIHBhbmVsIGlkLCBvbmUgb2YgdGhlIGtleXMgb2Y6IFtgREVGQVVMVF9NQVBfQ09OVFJPTFNgXSgjZGVmYXVsdF9tYXBfY29udHJvbHMpXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldE1hcENvbnRyb2xWaXNpYmlsaXR5VXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiB7cGFuZWxJZCwgc2hvd319OiBVaVN0YXRlQWN0aW9ucy5zZXRNYXBDb250cm9sVmlzaWJpbGl0eVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4ge1xuICBpZiAoIXN0YXRlLm1hcENvbnRyb2xzPy5bcGFuZWxJZF0pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1hcENvbnRyb2xzOiB7XG4gICAgICAuLi5zdGF0ZS5tYXBDb250cm9scyxcbiAgICAgIFtwYW5lbElkXToge1xuICAgICAgICAuLi5zdGF0ZS5tYXBDb250cm9sc1twYW5lbElkXSxcbiAgICAgICAgc2hvdzogQm9vbGVhbihzaG93KVxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGFjdGl2ZSBtYXAgY29udHJvbCBwYW5lbFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGRhdGFzZXQgaWRcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgb3BlbkRlbGV0ZU1vZGFsVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBkYXRhc2V0S2V5VG9SZW1vdmV9OiBVaVN0YXRlQWN0aW9ucy5PcGVuRGVsZXRlTW9kYWxVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBjdXJyZW50TW9kYWw6IERFTEVURV9EQVRBX0lELFxuICBkYXRhc2V0S2V5VG9SZW1vdmVcbn0pO1xuXG4vKipcbiAqIFNldCBgZXhwb3J0SW1hZ2UubGVnZW5kYCB0byBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG5ld1NldHRpbmd9OiBVaVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgY29uc3QgdXBkYXRlZCA9IHsuLi5zdGF0ZS5leHBvcnRJbWFnZSwgLi4ubmV3U2V0dGluZ307XG4gIGNvbnN0IGltYWdlU2l6ZSA9IGNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSh1cGRhdGVkKSB8fCBzdGF0ZS5leHBvcnRJbWFnZS5pbWFnZVNpemU7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBleHBvcnRJbWFnZToge1xuICAgICAgLi4udXBkYXRlZCxcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIC8vIFRPRE86IGNhbGN1bGF0ZUV4cG9ydEltYWdlU2l6ZSBkb2VzIG5vdCByZXR1cm4gaW1hZ2VTaXplLnpvb21PZmZzZXQsXG4gICAgICAvLyBkbyB3ZSBuZWVkIHRha2UgdGhpcyB2YWx1ZSBmcm9tIGN1cnJlbnQgc3RhdGUsIG9yIHJldHVybiBkZWZhdWwgdmFsdWUgPSAwXG4gICAgICBpbWFnZVNpemVcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIFNldCBgZXhwb3J0SW1hZ2Uuc2V0RXhwb3J0SW1hZ2VEYXRhVXJpYCB0byBhIGltYWdlIGRhdGFVcmlcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBleHBvcnQgaW1hZ2UgZGF0YSB1cmlcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBkYXRhVXJpfTogVWlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0SW1hZ2VEYXRhVXJpVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0SW1hZ2U6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRJbWFnZSxcbiAgICBwcm9jZXNzaW5nOiBmYWxzZSxcbiAgICBpbWFnZURhdGFVcmk6IGRhdGFVcmlcbiAgfVxufSk7XG5cbi8qKlxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0SW1hZ2VFcnJvclVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogZXJyb3J9OiBVaVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRJbWFnZUVycm9yVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0SW1hZ2U6IHtcbiAgICAuLi5zdGF0ZS5leHBvcnRJbWFnZSxcbiAgICBwcm9jZXNzaW5nOiBmYWxzZSxcbiAgICBlcnJvclxuICB9XG59KTtcblxuLyoqXG4gKiBEZWxldGUgY2FjaGVkIGV4cG9ydCBpbWFnZVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgY2xlYW51cEV4cG9ydEltYWdlVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydEltYWdlOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0SW1hZ2UsXG4gICAgZXhwb3J0aW5nOiBmYWxzZSxcbiAgICBpbWFnZURhdGFVcmk6ICcnLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBwcm9jZXNzaW5nOiBmYWxzZSxcbiAgICBjZW50ZXI6IGZhbHNlXG4gIH1cbn0pO1xuXG4vKipcbiAqIFN0YXJ0IGltYWdlIGV4cG9ydGluZyBmbG93XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyB7VWlTdGF0ZX1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0YXJ0RXhwb3J0aW5nSW1hZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG9wdGlvbnMgPSB7fX06IHtwYXlsb2FkOiBQYXJ0aWFsPEV4cG9ydEltYWdlPn1cbik6IFVpU3RhdGUgPT4ge1xuICBjb25zdCBpbWFnZVNldHRpbmdzID0ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgZXhwb3J0aW5nOiB0cnVlXG4gIH07XG5cbiAgcmV0dXJuIGNvbXBvc2VfKFtcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2VVcGRhdGVyLFxuICAgIGFwcGx5XyhzZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyLCBwYXlsb2FkXyhpbWFnZVNldHRpbmdzKSlcbiAgXSkoc3RhdGUpO1xufTtcblxuLyoqXG4gKiBTZXQgc2VsZWN0ZWQgZGF0YXNldCBmb3IgZXhwb3J0XG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgZGF0YXNldCBpZFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRTZWxlY3RlZERhdGFzZXRVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFzZXR9OiBVaVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRTZWxlY3RlZERhdGFzZXRVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnREYXRhOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0RGF0YSxcbiAgICBzZWxlY3RlZERhdGFzZXQ6IGRhdGFzZXRcbiAgfVxufSk7XG5cbi8qKlxuICogU2V0IGRhdGEgZm9ybWF0IGZvciBleHBvcnRpbmcgZGF0YVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIG9uZSBvZiBgJ3RleHQvY3N2J2BcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGRhdGFUeXBlfTogVWlTdGF0ZUFjdGlvbnMuU2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBleHBvcnREYXRhOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0RGF0YSxcbiAgICBkYXRhVHlwZVxuICB9XG59KTtcblxuLyoqXG4gKiBXaGV0aGVyIHRvIGV4cG9ydCBmaWx0ZXJlZCBkYXRhLCBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEV4cG9ydEZpbHRlcmVkVXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBmaWx0ZXJlZH06IFVpU3RhdGVBY3Rpb25zLlNldEV4cG9ydEZpbHRlcmVkVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0RGF0YToge1xuICAgIC4uLnN0YXRlLmV4cG9ydERhdGEsXG4gICAgZmlsdGVyZWRcbiAgfVxufSk7XG5cbi8qKlxuICogV2hldGhlciB0byBpbmNsdWRpbmcgZGF0YSBpbiBtYXAgY29uZmlnLCB0b2dnbGUgYmV0d2VlbiBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnREYXRhVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICBbRVhQT1JUX01BUF9GT1JNQVRTLkpTT05dOiB7XG4gICAgICAuLi5zdGF0ZS5leHBvcnRNYXBbRVhQT1JUX01BUF9GT1JNQVRTLkpTT05dLFxuICAgICAgaGFzRGF0YTogIXN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSlNPTl0uaGFzRGF0YVxuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogd2hldGhlciB0byBleHBvcnQgYSBtYXBib3ggYWNjZXNzIHRvIEhUTUwgc2luZ2xlIHBhZ2VcbiAqIEBwYXJhbSBzdGF0ZSAtIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlblVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDogdXNlck1hcGJveFRva2VufTogVWlTdGF0ZUFjdGlvbnMuU2V0VXNlck1hcGJveEFjY2Vzc1Rva2VuVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgZXhwb3J0TWFwOiB7XG4gICAgLi4uc3RhdGUuZXhwb3J0TWFwLFxuICAgIFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF06IHtcbiAgICAgIC4uLnN0YXRlLmV4cG9ydE1hcFtFWFBPUlRfTUFQX0ZPUk1BVFMuSFRNTF0sXG4gICAgICB1c2VyTWFwYm94VG9rZW5cbiAgICB9XG4gIH1cbn0pO1xuXG4vKipcbiAqIFNldHMgdGhlIGV4cG9ydCBtYXAgZm9ybWF0XG4gKiBAcGFyYW0gc3RhdGUgLSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBmb3JtYXQgdG8gdXNlIHRvIGV4cG9ydCB0aGUgbWFwIGludG9cbiAqIEByZXR1cm4gbmV4dFN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRFeHBvcnRNYXBGb3JtYXRVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGZvcm1hdH06IFVpU3RhdGVBY3Rpb25zLlNldEV4cG9ydE1hcEZvcm1hdFVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgZm9ybWF0XG4gIH1cbn0pO1xuXG4vKipcbiAqIFNldCB0aGUgZXhwb3J0IGh0bWwgbWFwIG1vZGVcbiAqIEBwYXJhbSBzdGF0ZSAtIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIHRvIGJlIHNldCAoYXZhaWxhYmxlIG1vZGVzOiBFWFBPUlRfSFRNTF9NQVBfTU9ERVMpXG4gKiBAcmV0dXJuIG5leHRTdGF0ZVxuICovXG5leHBvcnQgY29uc3Qgc2V0RXhwb3J0TWFwSFRNTE1vZGVVcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IG1vZGV9OiBVaVN0YXRlQWN0aW9ucy5TZXRFeHBvcnRIVE1MTWFwTW9kZVVwZGF0ZXJBY3Rpb25cbik6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGV4cG9ydE1hcDoge1xuICAgIC4uLnN0YXRlLmV4cG9ydE1hcCxcbiAgICBbRVhQT1JUX01BUF9GT1JNQVRTLkhUTUxdOiB7XG4gICAgICAuLi5zdGF0ZS5leHBvcnRNYXBbRVhQT1JUX01BUF9GT1JNQVRTLkhUTUxdLFxuICAgICAgbW9kZVxuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogQWRkcyBhIG5ldyBub3RpZmljYXRpb24uXG4gKiBVcGRhdGVzIGEgbm90aWZpY2F0aW9uIGluIGNhc2Ugb2YgbWF0Y2hpbmcgaWRzLlxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIFBhcmFtcyBvZiBhIG5vdGlmaWNhdGlvblxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBhZGROb3RpZmljYXRpb25VcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWR9OiBVaVN0YXRlQWN0aW9ucy5BZGROb3RpZmljYXRpb25VcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+IHtcbiAgbGV0IG5vdGlmaWNhdGlvbnM7XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBjb25zdCBwYXlsb2FkSWQgPSBwYXlsb2FkPy5pZDtcbiAgY29uc3Qgbm90aWZpY2F0aW9uVG9VcGRhdGUgPSBwYXlsb2FkSWQgPyBzdGF0ZS5ub3RpZmljYXRpb25zLmZpbmQobiA9PiBuLmlkID09PSBwYXlsb2FkSWQpIDogbnVsbDtcbiAgaWYgKG5vdGlmaWNhdGlvblRvVXBkYXRlKSB7XG4gICAgbm90aWZpY2F0aW9ucyA9IHN0YXRlLm5vdGlmaWNhdGlvbnMubWFwKG4gPT5cbiAgICAgIG4uaWQgPT09IHBheWxvYWRJZCA/IGNyZWF0ZU5vdGlmaWNhdGlvbihwYXlsb2FkKSA6IG5cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG5vdGlmaWNhdGlvbnMgPSBbLi4uKHN0YXRlLm5vdGlmaWNhdGlvbnMgfHwgW10pLCBjcmVhdGVOb3RpZmljYXRpb24ocGF5bG9hZCldO1xuICB9XG5cbiAgcmV0dXJuIHsuLi5zdGF0ZSwgbm90aWZpY2F0aW9uc307XG59O1xuXG4vKipcbiAqIFJlbW92ZSBhIG5vdGlmaWNhdGlvblxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGB1aVN0YXRlYFxuICogQHBhcmFtIGFjdGlvblxuICogQHBhcmFtIGFjdGlvbi5wYXlsb2FkIGlkIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyID0gKFxuICBzdGF0ZTogVWlTdGF0ZSxcbiAge3BheWxvYWQ6IGlkfTogVWlTdGF0ZUFjdGlvbnMuUmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlckFjdGlvblxuKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbm90aWZpY2F0aW9uczogc3RhdGUubm90aWZpY2F0aW9ucy5maWx0ZXIobiA9PiBuLmlkICE9PSBpZClcbn0pO1xuXG4vKipcbiAqIEZpcmVkIHdoZW4gZmlsZSBsb2FkaW5nIGJlZ2luXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1VwZGF0ZXIgPSAoc3RhdGU6IFVpU3RhdGUpOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBsb2FkRmlsZXM6IHtcbiAgICAuLi5zdGF0ZS5sb2FkRmlsZXMsXG4gICAgZmlsZUxvYWRpbmc6IHRydWVcbiAgfVxufSk7XG5cbi8qKlxuICogSGFuZGxlcyBsb2FkaW5nIGZpbGUgc3VjY2VzcyBhbmQgc2V0IGZpbGVMb2FkaW5nIHByb3BlcnR5IHRvIGZhbHNlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgbG9hZEZpbGVzOiB7XG4gICAgLi4uc3RhdGUubG9hZEZpbGVzLFxuICAgIGZpbGVMb2FkaW5nOiBmYWxzZVxuICB9XG59KTtcblxuLyoqXG4gKiBIYW5kbGVzIGxvYWQgZmlsZSBlcnJvciBhbmQgc2V0IGZpbGVMb2FkaW5nIHByb3BlcnR5IHRvIGZhbHNlXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24uZXJyb3JcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZEZpbGVzRXJyVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSwge2Vycm9yfTogTG9hZEZpbGVzRXJyVXBkYXRlckFjdGlvbik6IFVpU3RhdGUgPT5cbiAgYWRkTm90aWZpY2F0aW9uVXBkYXRlcihcbiAgICB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGxvYWRGaWxlczoge1xuICAgICAgICAuLi5zdGF0ZS5sb2FkRmlsZXMsXG4gICAgICAgIGZpbGVMb2FkaW5nOiBmYWxzZVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgcGF5bG9hZDogZXJyb3JOb3RpZmljYXRpb24oe1xuICAgICAgICBtZXNzYWdlOiAoZXJyb3IgfHwge30pLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byB1cGxvYWQgZmlsZXMnLFxuICAgICAgICB0b3BpYzogREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTLmdsb2JhbFxuICAgICAgfSlcbiAgICB9XG4gICk7XG5cbi8qKlxuICogSGFuZGxlcyB0b2dnbGUgbWFwIHNwbGl0IGFuZCByZXNldCBhbGwgbWFwIGNvbnRyb2wgaW5kZXggdG8gMFxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNwbGl0TWFwVXBkYXRlciA9IChzdGF0ZTogVWlTdGF0ZSk6IFVpU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIG1hcENvbnRyb2xzOiBPYmplY3QuZW50cmllcyhzdGF0ZS5tYXBDb250cm9scykucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAoe1xuICAgICAgLi4uYWNjLFxuICAgICAgW2VudHJ5WzBdXToge1xuICAgICAgICAuLi5lbnRyeVsxXSxcbiAgICAgICAgYWN0aXZlTWFwSW5kZXg6IDBcbiAgICAgIH1cbiAgICB9KSxcbiAgICB7fSBhcyBNYXBDb250cm9sc1xuICApXG59KTtcblxuLyoqXG4gKiBUb2dnbGUgbW9kYWwgZGF0YVxuICogQG1lbWJlcm9mIHVpU3RhdGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNob3dEYXRhc2V0VGFibGVVcGRhdGVyID0gKHN0YXRlOiBVaVN0YXRlKTogVWlTdGF0ZSA9PlxuICB0b2dnbGVNb2RhbFVwZGF0ZXIoc3RhdGUsIHtwYXlsb2FkOiBEQVRBX1RBQkxFX0lEfSk7XG5cbi8qKlxuICogU2V0IHRoZSBsb2NhbGUgb2YgdGhlIFVJXG4gKiBAbWVtYmVyb2YgdWlTdGF0ZVVwZGF0ZXJzXG4gKiBAcGFyYW0gc3RhdGUgYHVpU3RhdGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWRcbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZC5sb2NhbGUgbG9jYWxlXG4gKiBAcmV0dXJucyBuZXh0U3RhdGVcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldExvY2FsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBVaVN0YXRlLFxuICB7cGF5bG9hZDoge2xvY2FsZX19OiBVaVN0YXRlQWN0aW9ucy5TZXRMb2NhbGVVcGRhdGVyQWN0aW9uXG4pOiBVaVN0YXRlID0+ICh7XG4gIC4uLnN0YXRlLFxuICBsb2NhbGVcbn0pO1xuXG4vKipcbiAqIFRvZ2dsZSBsYXllciBwYW5lbCBsaXN0IHZpZXdcbiAqIEBtZW1iZXJvZiB1aVN0YXRlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgdWlTdGF0ZWBcbiAqIEBwYXJhbSBhY3Rpb25cbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZCBsYXllciBwYW5lbCBsaXN0VmlldyB2YWx1ZS4gQ2FuIGJlICdsaXN0JyBvciAnc29ydEJ5RGF0YXNldCdcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlTGF5ZXJQYW5lbExpc3RWaWV3VXBkYXRlciA9IChcbiAgc3RhdGU6IFVpU3RhdGUsXG4gIHtwYXlsb2FkOiBsaXN0Vmlld306IFVpU3RhdGVBY3Rpb25zLlRvZ2dsZUxheWVyUGFuZWxMaXN0Vmlld0FjdGlvblxuKTogVWlTdGF0ZSA9PiB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgcmV0dXJuIGxpc3RWaWV3ID09PSBzdGF0ZS5sYXllclBhbmVsTGlzdFZpZXdcbiAgICA/IHN0YXRlXG4gICAgOiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsYXllclBhbmVsTGlzdFZpZXc6IGxpc3RWaWV3XG4gICAgICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBb0JBLElBQUFBLGdCQUFBLEdBQUFDLE9BQUE7QUFZQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUE4RCxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FB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
|