@carto/kepler.gl 0.0.77 → 0.0.78-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/README.md +652 -42
- package/dist/actions/action-wrapper.js +49 -21
- package/dist/actions/actions.js +30 -16
- package/dist/actions/identity-actions.js +28 -14
- package/dist/actions/index.js +24 -7
- package/dist/actions/map-state-actions.js +27 -12
- package/dist/actions/map-style-actions.js +69 -31
- package/dist/actions/provider-actions.js +81 -44
- package/dist/actions/ui-state-actions.js +166 -71
- package/dist/actions/vis-state-actions.js +78 -106
- package/dist/cloud-providers/index.js +8 -8
- package/dist/cloud-providers/provider.js +109 -63
- package/dist/components/bottom-widget.js +58 -53
- package/dist/components/common/action-panel.js +41 -44
- package/dist/components/common/animation-control/animation-control.js +44 -44
- package/dist/components/common/animation-control/animation-controller.js +109 -55
- package/dist/components/common/animation-control/animation-speed-slider.js +38 -29
- package/dist/components/common/animation-control/floating-time-display.js +73 -58
- package/dist/components/common/animation-control/playback-controls.js +81 -67
- package/dist/components/common/animation-control/speed-control.js +24 -26
- package/dist/components/common/checkbox.js +54 -49
- package/dist/components/common/color-legend.js +71 -51
- package/dist/components/common/data-table/button.js +23 -30
- package/dist/components/common/data-table/canvas.js +10 -21
- package/dist/components/common/data-table/cell-size.js +58 -54
- package/dist/components/common/data-table/grid.js +51 -35
- package/dist/components/common/data-table/index.js +150 -109
- package/dist/components/common/data-table/option-dropdown.js +33 -29
- package/dist/components/common/dataset-label.js +15 -23
- package/dist/components/common/error-boundary.js +30 -25
- package/dist/components/common/field-selector.js +67 -67
- package/dist/components/common/field-token.js +17 -22
- package/dist/components/common/file-uploader/file-drop.js +66 -46
- package/dist/components/common/file-uploader/file-upload-progress.js +32 -33
- package/dist/components/common/file-uploader/file-upload.js +91 -52
- package/dist/components/common/file-uploader/upload-button.js +56 -82
- package/dist/components/common/histogram-plot.js +37 -35
- package/dist/components/common/icons/add.js +26 -32
- package/dist/components/common/icons/anchor_window.js +8 -8
- package/dist/components/common/icons/arrow-down-alt.js +26 -32
- package/dist/components/common/icons/arrow-down-solid.js +58 -0
- package/dist/components/common/icons/arrow-down.js +26 -32
- package/dist/components/common/icons/arrow-left.js +26 -32
- package/dist/components/common/icons/arrow-right.js +26 -32
- package/dist/components/common/icons/arrow-up-alt.js +26 -32
- package/dist/components/common/icons/arrow-up-solid.js +26 -32
- package/dist/components/common/icons/arrow-up.js +26 -32
- package/dist/components/common/icons/base.js +42 -52
- package/dist/components/common/icons/bug.js +26 -32
- package/dist/components/common/icons/cancel.js +26 -32
- package/dist/components/common/icons/checkmark.js +27 -32
- package/dist/components/common/icons/chevron-right.js +27 -27
- package/dist/components/common/icons/clipboard.js +26 -32
- package/dist/components/common/icons/clock.js +26 -32
- package/dist/components/common/icons/close.js +26 -32
- package/dist/components/common/icons/code-alt.js +27 -32
- package/dist/components/common/icons/copy.js +27 -32
- package/dist/components/common/icons/crosshairs.js +27 -32
- package/dist/components/common/icons/cube-3d.js +26 -32
- package/dist/components/common/icons/cursor-click.js +26 -32
- package/dist/components/common/icons/data-table.js +26 -32
- package/dist/components/common/icons/db.js +26 -32
- package/dist/components/common/icons/delete.js +26 -31
- package/dist/components/common/icons/docs.js +26 -32
- package/dist/components/common/icons/drag-n-drop.js +26 -32
- package/dist/components/common/icons/draw-polygon.js +26 -35
- package/dist/components/common/icons/email.js +26 -32
- package/dist/components/common/icons/expand.js +26 -32
- package/dist/components/common/icons/eye-seen.js +26 -32
- package/dist/components/common/icons/eye-unseen.js +26 -32
- package/dist/components/common/icons/file-type.js +16 -23
- package/dist/components/common/icons/file.js +26 -32
- package/dist/components/common/icons/files.js +25 -29
- package/dist/components/common/icons/filter-funnel.js +26 -32
- package/dist/components/common/icons/free-window.js +8 -8
- package/dist/components/common/icons/gear.js +26 -32
- package/dist/components/common/icons/hash.js +26 -32
- package/dist/components/common/icons/histogram.js +24 -28
- package/dist/components/common/icons/index.js +154 -63
- package/dist/components/common/icons/info.js +27 -32
- package/dist/components/common/icons/layers.js +26 -32
- package/dist/components/common/icons/left-arrow.js +27 -32
- package/dist/components/common/icons/legend.js +26 -32
- package/dist/components/common/icons/line-chart.js +26 -31
- package/dist/components/common/icons/login.js +26 -31
- package/dist/components/common/icons/logout.js +26 -31
- package/dist/components/common/icons/map-icon.js +27 -33
- package/dist/components/common/icons/map.js +27 -33
- package/dist/components/common/icons/messages.js +26 -32
- package/dist/components/common/icons/minus.js +26 -32
- package/dist/components/common/icons/order-by-dataset.js +56 -0
- package/dist/components/common/icons/order-by-list.js +48 -0
- package/dist/components/common/icons/pause.js +26 -32
- package/dist/components/common/icons/picture.js +25 -29
- package/dist/components/common/icons/pin.js +35 -33
- package/dist/components/common/icons/play.js +26 -32
- package/dist/components/common/icons/polygon.js +26 -35
- package/dist/components/common/icons/rectangle.js +26 -35
- package/dist/components/common/icons/reduce.js +26 -32
- package/dist/components/common/icons/reset.js +26 -32
- package/dist/components/common/icons/rocket.js +26 -32
- package/dist/components/common/icons/save.js +26 -32
- package/dist/components/common/icons/save2.js +26 -32
- package/dist/components/common/icons/search.js +26 -32
- package/dist/components/common/icons/settings.js +26 -32
- package/dist/components/common/icons/share.js +26 -32
- package/dist/components/common/icons/split.js +26 -32
- package/dist/components/common/icons/square-select.js +26 -32
- package/dist/components/common/icons/swap-horizontal.js +28 -27
- package/dist/components/common/icons/table.js +26 -31
- package/dist/components/common/icons/trash.js +26 -32
- package/dist/components/common/icons/upload.js +26 -33
- package/dist/components/common/icons/vert-dots.js +26 -32
- package/dist/components/common/icons/vert-three-dots.js +26 -32
- package/dist/components/common/icons/warning.js +27 -32
- package/dist/components/common/image-preview.js +27 -35
- package/dist/components/common/info-helper.js +23 -32
- package/dist/components/common/item-selector/accessor.js +5 -3
- package/dist/components/common/item-selector/chickleted-input.js +42 -62
- package/dist/components/common/item-selector/dropdown-list.js +95 -72
- package/dist/components/common/item-selector/item-selector-submenu.js +38 -29
- package/dist/components/common/item-selector/item-selector.js +102 -89
- package/dist/components/common/item-selector/typeahead.js +118 -86
- package/dist/components/common/line-chart.js +44 -46
- package/dist/components/common/loading-spinner.js +23 -33
- package/dist/components/common/logo.js +24 -36
- package/dist/components/common/map-layer-selector.js +14 -22
- package/dist/components/common/modal.js +62 -50
- package/dist/components/common/portaled.js +109 -64
- package/dist/components/common/progress-bar.js +17 -28
- package/dist/components/common/range-brush.js +132 -84
- package/dist/components/common/range-plot.js +51 -60
- package/dist/components/common/range-slider.js +88 -76
- package/dist/components/common/slider/mouse-event.js +88 -52
- package/dist/components/common/slider/slider-bar-handle.js +40 -39
- package/dist/components/common/slider/slider-handle.js +49 -45
- package/dist/components/common/slider/slider.js +107 -104
- package/dist/components/common/styled-components.js +183 -69
- package/dist/components/common/switch.js +14 -37
- package/dist/components/common/time-range-slider-time-title.js +19 -24
- package/dist/components/common/time-range-slider.js +39 -61
- package/dist/components/common/time-slider-marker.js +41 -36
- package/dist/components/common/tippy-tooltip.js +115 -0
- package/dist/components/common/toolbar-item.js +23 -25
- package/dist/components/common/toolbar.js +10 -21
- package/dist/components/common/vertical-toolbar.js +10 -21
- package/dist/components/container.js +94 -66
- package/dist/components/context.js +10 -6
- package/dist/components/editor/constants.js +8 -6
- package/dist/components/editor/editor.js +77 -62
- package/dist/components/editor/feature-action-panel.js +50 -47
- package/dist/components/editor/feature-styles.js +42 -37
- package/dist/components/editor/handle-style.js +39 -37
- package/dist/components/filters/components.js +10 -21
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +27 -19
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +18 -18
- package/dist/components/filters/filter-panels/new-filter-panel.js +23 -19
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +28 -21
- package/dist/components/filters/filter-panels/range-filter-panel.js +18 -18
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +18 -18
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +24 -19
- package/dist/components/filters/filter-panels/types.js +6 -0
- package/dist/components/filters/index.js +17 -11
- package/dist/components/filters/multi-select-filter.js +9 -3
- package/dist/components/filters/polygon-filter.js +19 -10
- package/dist/components/filters/range-filter.js +9 -4
- package/dist/components/filters/single-select-filter.js +9 -3
- package/dist/components/filters/time-range-filter.js +18 -7
- package/dist/components/filters/time-widget.js +51 -42
- package/dist/components/filters/types.js +6 -0
- package/dist/components/geocoder/geocoder.js +134 -100
- package/dist/components/geocoder-panel.js +79 -57
- package/dist/components/index.js +591 -356
- package/dist/components/injector.js +58 -42
- package/dist/components/kepler-gl.js +171 -82
- package/dist/components/map/coordinate-info.js +13 -4
- package/dist/components/map/layer-hover-info.js +46 -39
- package/dist/components/map/layer-selector-panel.js +30 -17
- package/dist/components/map/locale-panel.js +43 -23
- package/dist/components/map/map-control-panel.js +43 -30
- package/dist/components/map/map-control-toolbar.js +11 -21
- package/dist/components/map/map-control-tooltip.js +13 -6
- package/dist/components/map/map-control.js +28 -27
- package/dist/components/map/map-draw-panel.js +48 -23
- package/dist/components/map/map-legend-panel.js +138 -77
- package/dist/components/map/map-legend.js +82 -55
- package/dist/components/map/map-popover.js +58 -42
- package/dist/components/map/split-map-button.js +40 -25
- package/dist/components/map/toggle-3d-button.js +37 -22
- package/dist/components/map-container.js +164 -144
- package/dist/components/maps-layout.js +29 -25
- package/dist/components/modal-container.js +116 -89
- package/dist/components/modals/add-map-style-modal.js +66 -46
- package/dist/components/modals/cloud-tile.js +36 -36
- package/dist/components/modals/data-table-modal.js +96 -60
- package/dist/components/modals/delete-data-modal.js +20 -24
- package/dist/components/modals/error-display.js +10 -3
- package/dist/components/modals/export-data-modal.js +59 -57
- package/dist/components/modals/export-image-modal.js +28 -31
- package/dist/components/modals/export-map-modal/components.js +27 -27
- package/dist/components/modals/export-map-modal/export-html-map.js +27 -28
- package/dist/components/modals/export-map-modal/export-json-map.js +43 -30
- package/dist/components/modals/export-map-modal/export-map-modal.js +41 -34
- package/dist/components/modals/image-modal-container.js +19 -14
- package/dist/components/modals/load-data-modal.js +35 -31
- package/dist/components/modals/load-storage-map.js +79 -44
- package/dist/components/modals/loading-dialog.js +18 -24
- package/dist/components/modals/modal-dialog.js +7 -3
- package/dist/components/modals/modal-tabs.js +29 -29
- package/dist/components/modals/overwrite-map-modal.js +28 -29
- package/dist/components/modals/provider-modal-container.js +32 -35
- package/dist/components/modals/save-map-modal.js +51 -47
- package/dist/components/modals/share-map-modal.js +63 -55
- package/dist/components/modals/status-panel.js +25 -24
- package/dist/components/modals/storage-map-viewer.js +43 -38
- package/dist/components/notification-panel/notification-item.js +46 -41
- package/dist/components/notification-panel.js +32 -35
- package/dist/components/performance.js +36 -11
- package/dist/components/plot-container.js +76 -60
- package/dist/components/side-panel/cloud-storage-dropdown.js +10 -4
- package/dist/components/side-panel/common/dataset-info.js +13 -20
- package/dist/components/side-panel/common/dataset-tag.js +49 -31
- package/dist/components/side-panel/common/dataset-title.js +91 -44
- package/dist/components/side-panel/common/source-data-catalog.js +26 -28
- package/dist/components/side-panel/common/source-data-selector.js +51 -37
- package/dist/components/side-panel/common/types.js +6 -0
- package/dist/components/side-panel/custom-panel.js +9 -5
- package/dist/components/side-panel/filter-manager.js +32 -30
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +29 -32
- package/dist/components/side-panel/filter-panel/filter-panel.js +58 -53
- package/dist/components/side-panel/interaction-manager.js +12 -5
- package/dist/components/side-panel/interaction-panel/brush-config.js +19 -23
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +58 -41
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +83 -47
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +46 -30
- package/dist/components/side-panel/layer-manager.js +132 -211
- package/dist/components/side-panel/layer-panel/add-layer-button.js +156 -0
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +11 -4
- package/dist/components/side-panel/layer-panel/color-palette.js +29 -41
- package/dist/components/side-panel/layer-panel/color-range-selector.js +164 -162
- package/dist/components/side-panel/layer-panel/color-selector.js +71 -60
- package/dist/components/side-panel/layer-panel/column-selector.js +27 -28
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +7 -3
- package/dist/components/side-panel/layer-panel/custom-palette.js +72 -48
- package/dist/components/side-panel/layer-panel/custom-picker.js +41 -40
- package/dist/components/side-panel/layer-panel/dataset-layer-group.js +87 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-section.js +69 -0
- package/dist/components/side-panel/layer-panel/dataset-section.js +91 -0
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +16 -8
- package/dist/components/side-panel/layer-panel/hex-column-config.js +34 -12
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +10 -2
- package/dist/components/side-panel/layer-panel/layer-column-config.js +26 -42
- package/dist/components/side-panel/layer-panel/layer-config-group.js +86 -52
- package/dist/components/side-panel/layer-panel/layer-configurator.js +249 -158
- package/dist/components/side-panel/layer-panel/layer-list.js +168 -0
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +70 -74
- package/dist/components/side-panel/layer-panel/layer-panel.js +58 -55
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +22 -28
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +18 -22
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +30 -35
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +40 -35
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +123 -0
- package/dist/components/side-panel/layer-panel/single-color-palette.js +45 -77
- package/dist/components/side-panel/layer-panel/text-label-panel.js +45 -41
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +51 -60
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +163 -52
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +27 -38
- package/dist/components/side-panel/map-manager.js +45 -38
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +31 -28
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +24 -26
- package/dist/components/side-panel/panel-dropdown.js +34 -34
- package/dist/components/side-panel/panel-header-action.js +43 -51
- package/dist/components/side-panel/panel-header.js +105 -78
- package/dist/components/side-panel/panel-tab.js +20 -24
- package/dist/components/side-panel/panel-title.js +17 -22
- package/dist/components/side-panel/panel-toggle.js +21 -33
- package/dist/components/side-panel/side-bar.js +53 -44
- package/dist/components/side-panel.js +79 -68
- package/dist/components/types.js +6 -0
- package/dist/connect/keplergl-connect.js +14 -5
- package/dist/connect/with-local-selector.js +38 -33
- package/dist/constants/action-types.js +14 -5
- package/dist/constants/color-palette.js +23 -12
- package/dist/constants/color-ranges.js +31 -32
- package/dist/constants/custom-color-ranges.js +14 -9
- package/dist/constants/default-settings.js +265 -162
- package/dist/constants/index.js +103 -95
- package/dist/constants/keyevent.js +7 -3
- package/dist/constants/tooltip.js +10 -7
- package/dist/constants/user-feedbacks.js +6 -5
- package/dist/constants/user-guides.js +20 -12
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +33 -30
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +43 -10
- package/dist/deckgl-layers/3d-building-layer/types.js +6 -0
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +75 -54
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +34 -31
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +38 -38
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +38 -38
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +26 -12
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +152 -90
- package/dist/deckgl-layers/layer-utils/shader-utils.js +5 -1
- package/dist/deckgl-layers/line-layer/line-layer.js +40 -31
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +32 -27
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +42 -36
- package/dist/index.js +23 -4
- package/dist/layers/aggregation-layer.js +126 -76
- package/dist/layers/arc-layer/arc-layer-icon.js +27 -27
- package/dist/layers/arc-layer/arc-layer.js +85 -56
- package/dist/layers/base-layer.js +459 -288
- package/dist/layers/cluster-layer/cluster-layer-icon.js +27 -27
- package/dist/layers/cluster-layer/cluster-layer.js +45 -34
- package/dist/layers/default-layer-icon.js +27 -27
- package/dist/layers/geojson-layer/geojson-layer-icon.js +27 -27
- package/dist/layers/geojson-layer/geojson-layer.js +105 -60
- package/dist/layers/geojson-layer/geojson-utils.js +68 -39
- package/dist/layers/grid-layer/grid-layer-icon.js +27 -27
- package/dist/layers/grid-layer/grid-layer.js +42 -31
- package/dist/layers/grid-layer/grid-utils.js +15 -12
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +27 -27
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +92 -49
- package/dist/layers/h3-hexagon-layer/h3-utils.js +22 -11
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +27 -27
- package/dist/layers/heatmap-layer/heatmap-layer.js +81 -59
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +27 -27
- package/dist/layers/hexagon-layer/hexagon-layer.js +43 -31
- package/dist/layers/hexagon-layer/hexagon-utils.js +15 -3
- package/dist/layers/icon-layer/icon-info-modal.js +28 -24
- package/dist/layers/icon-layer/icon-layer-icon.js +27 -27
- package/dist/layers/icon-layer/icon-layer.js +115 -63
- package/dist/layers/index.js +39 -38
- package/dist/layers/layer-factory.js +83 -69
- package/dist/layers/layer-text-label.js +15 -9
- package/dist/layers/layer-update.js +21 -12
- package/dist/layers/line-layer/line-layer-icon.js +27 -27
- package/dist/layers/line-layer/line-layer.js +84 -63
- package/dist/layers/mapbox-utils.js +54 -48
- package/dist/layers/mapboxgl-layer.js +68 -45
- package/dist/layers/point-layer/point-layer-icon.js +27 -27
- package/dist/layers/point-layer/point-layer.js +100 -60
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +86 -45
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +27 -27
- package/dist/layers/s2-geometry-layer/s2-utils.js +18 -5
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +15 -21
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +27 -27
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +85 -54
- package/dist/layers/trip-layer/trip-info-modal.js +16 -21
- package/dist/layers/trip-layer/trip-layer-icon.js +27 -27
- package/dist/layers/trip-layer/trip-layer.js +115 -58
- package/dist/layers/trip-layer/trip-utils.js +51 -28
- package/dist/layers/types.js +6 -3
- package/dist/localization/formatted-message.js +12 -8
- package/dist/localization/index.js +14 -8
- package/dist/localization/locales.js +12 -7
- package/dist/localization/messages.js +29 -0
- package/dist/localization/translations/ca.js +455 -0
- package/dist/localization/translations/cn.js +458 -0
- package/dist/localization/translations/en.js +483 -0
- package/dist/localization/translations/es.js +455 -0
- package/dist/localization/translations/fi.js +427 -0
- package/dist/localization/translations/ja.js +456 -0
- package/dist/localization/translations/pt.js +427 -0
- package/dist/localization/translations/ru.js +464 -0
- package/dist/middleware/index.js +5 -2
- package/dist/processors/data-processor.js +217 -149
- package/dist/processors/file-handler.js +284 -210
- package/dist/processors/index.js +25 -97
- package/dist/processors/types.js +6 -0
- package/dist/reducers/combined-updaters.js +48 -40
- package/dist/reducers/composer-helpers.js +34 -32
- package/dist/reducers/composers.js +12 -25
- package/dist/reducers/core.js +46 -19
- package/dist/reducers/index.js +52 -24
- package/dist/reducers/map-state-updaters.js +64 -61
- package/dist/reducers/map-state.js +26 -31
- package/dist/reducers/map-style-updaters.js +149 -116
- package/dist/reducers/map-style.js +26 -31
- package/dist/reducers/provider-state-updaters.js +151 -121
- package/dist/reducers/provider-state.js +25 -32
- package/dist/reducers/root.js +52 -45
- package/dist/reducers/types.js +6 -0
- package/dist/reducers/ui-state-updaters.js +231 -138
- package/dist/reducers/ui-state.js +27 -32
- package/dist/reducers/vis-state-merger.js +212 -143
- package/dist/reducers/vis-state-selectors.js +12 -5
- package/dist/reducers/vis-state-updaters.js +706 -490
- package/dist/reducers/vis-state.js +25 -32
- package/dist/schemas/dataset-schema.js +59 -39
- package/dist/schemas/index.js +45 -38
- package/dist/schemas/map-state-schema.js +24 -28
- package/dist/schemas/map-style-schema.js +48 -34
- package/dist/schemas/schema-manager.js +71 -46
- package/dist/schemas/schema-utils.js +15 -11
- package/dist/schemas/schema.js +37 -35
- package/dist/schemas/versions.js +9 -5
- package/dist/schemas/vis-state-schema.js +312 -112
- package/dist/styles/base.js +646 -367
- package/dist/styles/index.js +5 -1
- package/dist/styles/media-breakpoints.js +36 -27
- package/dist/tasks/tasks.js +50 -22
- package/dist/templates/export-map-html.js +6 -3
- package/dist/utils/aggregate-utils.js +27 -23
- package/dist/utils/color-utils.js +62 -44
- package/dist/utils/custom-scales.js +7 -1
- package/dist/utils/data-scale-utils.js +18 -14
- package/dist/utils/data-utils.js +148 -110
- package/dist/utils/dataset-utils.js +91 -75
- package/dist/utils/dom-to-image.js +97 -19
- package/dist/utils/dom-utils.js +116 -34
- package/dist/utils/export-utils.js +122 -81
- package/dist/utils/filter-utils.js +335 -242
- package/dist/utils/gl-utils.js +12 -22
- package/dist/utils/gpu-filter-utils.js +70 -61
- package/dist/utils/index.js +220 -64
- package/dist/utils/interaction-utils.js +52 -34
- package/dist/utils/layer-utils.js +65 -60
- package/dist/utils/locale-utils.js +21 -23
- package/dist/utils/map-info-utils.js +3 -2
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +85 -86
- package/dist/utils/map-style-utils/mapbox-utils.js +5 -3
- package/dist/utils/mapbox-utils.js +5 -2
- package/dist/utils/notifications-utils.js +42 -43
- package/dist/utils/observe-dimensions.js +44 -39
- package/dist/utils/projection-utils.js +20 -9
- package/dist/utils/searcher-utils.js +4 -1
- package/dist/utils/split-map-utils.js +34 -38
- package/dist/utils/table-utils/data-container-interface.js +6 -0
- package/dist/utils/table-utils/data-container-utils.js +36 -29
- package/dist/utils/table-utils/data-row.js +79 -7
- package/dist/utils/table-utils/index.js +2 -1
- package/dist/utils/table-utils/indexed-data-container.js +113 -81
- package/dist/utils/table-utils/kepler-table.js +200 -99
- package/dist/utils/table-utils/row-data-container.js +109 -74
- package/dist/utils/utils.js +94 -50
- package/package.json +60 -11
- package/src/actions/action-wrapper.ts +183 -0
- package/src/actions/actions.ts +260 -0
- package/src/actions/identity-actions.ts +116 -0
- package/src/actions/map-state-actions.ts +116 -0
- package/src/actions/map-style-actions.ts +243 -0
- package/src/actions/provider-actions.ts +218 -0
- package/src/actions/ui-state-actions.ts +490 -0
- package/src/actions/vis-state-actions.ts +1279 -0
- package/src/cloud-providers/index.ts +22 -0
- package/src/cloud-providers/provider.ts +277 -0
- package/src/components/bottom-widget.tsx +275 -0
- package/src/components/common/action-panel.tsx +207 -0
- package/src/components/common/animation-control/animation-control.tsx +157 -0
- package/src/components/common/animation-control/animation-controller.ts +249 -0
- package/src/components/common/animation-control/animation-speed-slider.tsx +86 -0
- package/src/components/common/animation-control/floating-time-display.tsx +209 -0
- package/src/components/common/animation-control/playback-controls.tsx +316 -0
- package/src/components/common/animation-control/speed-control.tsx +71 -0
- package/src/components/common/checkbox.tsx +137 -0
- package/src/components/common/color-legend.tsx +203 -0
- package/src/components/common/data-table/button.tsx +54 -0
- package/src/components/common/data-table/cell-size.ts +185 -0
- package/src/components/common/data-table/grid.tsx +57 -0
- package/src/components/common/data-table/index.tsx +693 -0
- package/src/components/common/data-table/option-dropdown.tsx +122 -0
- package/src/components/common/dataset-label.tsx +48 -0
- package/src/components/common/error-boundary.tsx +43 -0
- package/src/components/common/field-selector.tsx +237 -0
- package/src/components/common/field-token.tsx +60 -0
- package/src/components/common/file-uploader/file-drop.tsx +208 -0
- package/src/components/common/file-uploader/file-upload-progress.tsx +123 -0
- package/src/components/common/file-uploader/file-upload.tsx +319 -0
- package/src/components/common/file-uploader/upload-button.tsx +88 -0
- package/src/components/common/histogram-plot.tsx +125 -0
- package/src/components/common/icons/add.tsx +37 -0
- package/src/components/common/icons/anchor_window.tsx +49 -0
- package/src/components/common/icons/arrow-down-alt.tsx +37 -0
- package/src/components/common/icons/arrow-down-solid.tsx +37 -0
- package/src/components/common/icons/arrow-down.tsx +40 -0
- package/src/components/common/icons/arrow-left.tsx +42 -0
- package/src/components/common/icons/arrow-right.tsx +40 -0
- package/src/components/common/icons/arrow-up-alt.tsx +40 -0
- package/src/components/common/icons/arrow-up-solid.tsx +37 -0
- package/src/components/common/icons/arrow-up.tsx +40 -0
- package/src/components/common/icons/base.tsx +95 -0
- package/src/components/common/icons/bug.tsx +40 -0
- package/src/components/common/icons/cancel.tsx +37 -0
- package/src/components/common/icons/checkmark.tsx +39 -0
- package/src/components/common/icons/chevron-right.js +1 -1
- package/src/components/common/icons/clipboard.tsx +40 -0
- package/src/components/common/icons/clock.tsx +38 -0
- package/src/components/common/icons/close.tsx +43 -0
- package/src/components/common/icons/code-alt.tsx +37 -0
- package/src/components/common/icons/copy.tsx +38 -0
- package/src/components/common/icons/crosshairs.tsx +37 -0
- package/src/components/common/icons/cube-3d.tsx +39 -0
- package/src/components/common/icons/cursor-click.tsx +43 -0
- package/src/components/common/icons/data-table.tsx +40 -0
- package/src/components/common/icons/db.tsx +40 -0
- package/src/components/common/icons/delete.tsx +39 -0
- package/src/components/common/icons/docs.tsx +40 -0
- package/src/components/common/icons/drag-n-drop.tsx +38 -0
- package/src/components/common/icons/draw-polygon.tsx +51 -0
- package/src/components/common/icons/email.tsx +39 -0
- package/src/components/common/icons/expand.tsx +39 -0
- package/src/components/common/icons/eye-seen.tsx +38 -0
- package/src/components/common/icons/eye-unseen.tsx +38 -0
- package/src/components/common/icons/file-type.tsx +71 -0
- package/src/components/common/icons/file.tsx +37 -0
- package/src/components/common/icons/files.tsx +37 -0
- package/src/components/common/icons/filter-funnel.tsx +37 -0
- package/src/components/common/icons/free-window.tsx +48 -0
- package/src/components/common/icons/gear.tsx +40 -0
- package/src/components/common/icons/hash.tsx +37 -0
- package/src/components/common/icons/histogram.tsx +42 -0
- package/src/components/common/icons/index.tsx +98 -0
- package/src/components/common/icons/info.tsx +48 -0
- package/src/components/common/icons/layers.tsx +37 -0
- package/src/components/common/icons/left-arrow.tsx +37 -0
- package/src/components/common/icons/legend.tsx +37 -0
- package/src/components/common/icons/line-chart.tsx +40 -0
- package/src/components/common/icons/login.tsx +41 -0
- package/src/components/common/icons/logout.tsx +38 -0
- package/src/components/common/icons/map-icon.tsx +62 -0
- package/src/components/common/icons/map.tsx +62 -0
- package/src/components/common/icons/messages.tsx +37 -0
- package/src/components/common/icons/minus.tsx +39 -0
- package/src/components/common/icons/order-by-dataset.tsx +49 -0
- package/src/components/common/icons/order-by-list.tsx +39 -0
- package/src/components/common/icons/pause.tsx +37 -0
- package/src/components/common/icons/picture.tsx +37 -0
- package/src/components/common/icons/pin.tsx +42 -0
- package/src/components/common/icons/play.tsx +37 -0
- package/src/components/common/icons/polygon.tsx +65 -0
- package/src/components/common/icons/rectangle.tsx +66 -0
- package/src/components/common/icons/reduce.tsx +42 -0
- package/src/components/common/icons/reset.tsx +37 -0
- package/src/components/common/icons/rocket.tsx +37 -0
- package/src/components/common/icons/save.tsx +38 -0
- package/src/components/common/icons/save2.tsx +42 -0
- package/src/components/common/icons/search.tsx +38 -0
- package/src/components/common/icons/settings.tsx +39 -0
- package/src/components/common/icons/share.tsx +37 -0
- package/src/components/common/icons/split.tsx +57 -0
- package/src/components/common/icons/square-select.tsx +38 -0
- package/src/components/common/icons/swap-horizontal.js +1 -1
- package/src/components/common/icons/table.tsx +41 -0
- package/src/components/common/icons/trash.tsx +45 -0
- package/src/components/common/icons/upload.tsx +37 -0
- package/src/components/common/icons/vert-dots.tsx +44 -0
- package/src/components/common/icons/vert-three-dots.tsx +39 -0
- package/src/components/common/icons/warning.tsx +40 -0
- package/src/components/common/image-preview.tsx +118 -0
- package/src/components/common/info-helper.tsx +90 -0
- package/src/components/common/item-selector/accessor.ts +45 -0
- package/src/components/common/item-selector/chickleted-input.tsx +153 -0
- package/src/components/common/item-selector/dropdown-list.tsx +269 -0
- package/src/components/common/item-selector/item-selector-submenu.js +1 -1
- package/src/components/common/item-selector/item-selector.d.ts +24 -27
- package/src/components/common/item-selector/item-selector.tsx +372 -0
- package/src/components/common/item-selector/typeahead.tsx +533 -0
- package/src/components/common/line-chart.tsx +170 -0
- package/src/components/common/loading-spinner.tsx +75 -0
- package/src/components/common/logo.tsx +88 -0
- package/src/components/common/map-layer-selector.tsx +64 -0
- package/src/components/common/modal.tsx +238 -0
- package/src/components/common/portaled.tsx +312 -0
- package/src/components/common/progress-bar.tsx +74 -0
- package/src/components/common/range-brush.tsx +276 -0
- package/src/components/common/range-plot.tsx +145 -0
- package/src/components/common/range-slider.tsx +320 -0
- package/src/components/common/slider/mouse-event.ts +122 -0
- package/src/components/common/slider/slider-bar-handle.tsx +106 -0
- package/src/components/common/slider/slider-handle.tsx +210 -0
- package/src/components/common/slider/slider.tsx +234 -0
- package/src/components/common/styled-components.tsx +708 -0
- package/src/components/common/switch.tsx +47 -0
- package/src/components/common/time-range-slider-time-title.tsx +87 -0
- package/src/components/common/time-range-slider.tsx +171 -0
- package/src/components/common/time-slider-marker.tsx +187 -0
- package/src/components/common/tippy-tooltip.tsx +130 -0
- package/src/components/common/toolbar-item.tsx +99 -0
- package/src/components/common/toolbar.tsx +49 -0
- package/src/components/common/vertical-toolbar.tsx +35 -0
- package/src/components/container.d.ts +8 -0
- package/src/components/container.tsx +188 -0
- package/src/components/context.ts +32 -0
- package/src/components/editor/editor.tsx +231 -0
- package/src/components/editor/feature-action-panel.tsx +155 -0
- package/src/components/editor/feature-styles.ts +75 -0
- package/src/components/editor/handle-style.ts +89 -0
- package/src/components/filters/filter-panels/filter-panel-with-field-select.tsx +118 -0
- package/src/components/filters/filter-panels/multi-select-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/new-filter-panel.tsx +100 -0
- package/src/components/filters/filter-panels/polygon-filter-panel.tsx +84 -0
- package/src/components/filters/filter-panels/range-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/single-select-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/time-range-filter-panel.tsx +92 -0
- package/src/components/filters/filter-panels/types.ts +39 -0
- package/src/components/filters/multi-select-filter.tsx +37 -0
- package/src/components/filters/polygon-filter.tsx +74 -0
- package/src/components/filters/range-filter.tsx +44 -0
- package/src/components/filters/single-select-filter.tsx +50 -0
- package/src/components/filters/time-range-filter.tsx +76 -0
- package/src/components/filters/time-widget.tsx +240 -0
- package/src/components/filters/types.ts +78 -0
- package/src/components/geocoder/geocoder.tsx +307 -0
- package/src/components/geocoder-panel.tsx +199 -0
- package/src/components/index.ts +262 -0
- package/src/components/injector.d.ts +33 -0
- package/src/components/injector.tsx +171 -0
- package/src/components/kepler-gl.d.ts +1 -2
- package/src/components/kepler-gl.tsx +579 -0
- package/src/components/map/coordinate-info.tsx +58 -0
- package/src/components/map/layer-hover-info.tsx +192 -0
- package/src/components/map/layer-selector-panel.tsx +121 -0
- package/src/components/map/locale-panel.tsx +110 -0
- package/src/components/map/map-control-panel.tsx +141 -0
- package/src/components/map/map-control-tooltip.tsx +45 -0
- package/src/components/map/map-control.tsx +138 -0
- package/src/components/map/map-draw-panel.tsx +145 -0
- package/src/components/map/map-legend-panel.tsx +167 -0
- package/src/components/map/map-legend.tsx +283 -0
- package/src/components/map/map-popover.tsx +266 -0
- package/src/components/map/split-map-button.tsx +98 -0
- package/src/components/map/toggle-3d-button.tsx +90 -0
- package/src/components/map-container.tsx +541 -0
- package/src/components/maps-layout.tsx +44 -0
- package/src/components/modal-container.tsx +556 -0
- package/src/components/modals/add-map-style-modal.tsx +303 -0
- package/src/components/modals/cloud-tile.tsx +181 -0
- package/src/components/modals/data-table-modal.tsx +241 -0
- package/src/components/modals/delete-data-modal.tsx +55 -0
- package/src/components/modals/error-display.tsx +43 -0
- package/src/components/modals/export-data-modal.tsx +201 -0
- package/src/components/modals/export-image-modal.tsx +155 -0
- package/src/components/modals/export-map-modal/export-html-map.tsx +164 -0
- package/src/components/modals/export-map-modal/export-json-map.tsx +112 -0
- package/src/components/modals/export-map-modal/export-map-modal.tsx +109 -0
- package/src/components/modals/image-modal-container.tsx +85 -0
- package/src/components/modals/load-data-modal.tsx +120 -0
- package/src/components/modals/load-storage-map.tsx +414 -0
- package/src/components/modals/loading-dialog.tsx +77 -0
- package/src/components/modals/modal-tabs.tsx +137 -0
- package/src/components/modals/overwrite-map-modal.tsx +113 -0
- package/src/components/modals/provider-modal-container.tsx +61 -0
- package/src/components/modals/save-map-modal.tsx +277 -0
- package/src/components/modals/share-map-modal.tsx +217 -0
- package/src/components/modals/status-panel.tsx +106 -0
- package/src/components/modals/storage-map-viewer.tsx +190 -0
- package/src/components/notification-panel/notification-item.tsx +143 -0
- package/src/components/notification-panel.tsx +75 -0
- package/src/components/plot-container.tsx +237 -0
- package/src/components/side-panel/common/dataset-info.tsx +46 -0
- package/src/components/side-panel/common/dataset-tag.tsx +86 -0
- package/src/components/side-panel/common/dataset-title.tsx +186 -0
- package/src/components/side-panel/common/source-data-catalog.tsx +67 -0
- package/src/components/side-panel/common/source-data-selector.tsx +90 -0
- package/src/components/side-panel/common/types.ts +76 -0
- package/src/components/side-panel/filter-manager.tsx +120 -0
- package/src/components/side-panel/filter-panel/filter-panel-header.tsx +96 -0
- package/src/components/side-panel/filter-panel/filter-panel.tsx +125 -0
- package/src/components/side-panel/interaction-manager.tsx +59 -0
- package/src/components/side-panel/interaction-panel/brush-config.tsx +58 -0
- package/src/components/side-panel/interaction-panel/interaction-panel.tsx +124 -0
- package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx +243 -0
- package/src/components/side-panel/interaction-panel/tooltip-config.tsx +238 -0
- package/src/components/side-panel/layer-manager.tsx +242 -0
- package/src/components/side-panel/layer-panel/add-layer-button.tsx +208 -0
- package/src/components/side-panel/layer-panel/color-dimension-scale-selector.js +1 -1
- package/src/components/side-panel/layer-panel/color-palette.tsx +98 -0
- package/src/components/side-panel/layer-panel/color-range-selector.tsx +377 -0
- package/src/components/side-panel/layer-panel/color-selector.tsx +200 -0
- package/src/components/side-panel/layer-panel/column-selector.tsx +102 -0
- package/src/components/side-panel/layer-panel/custom-markers-config-group.js +1 -1
- package/src/components/side-panel/layer-panel/custom-palette.tsx +297 -0
- package/src/components/side-panel/layer-panel/custom-picker.tsx +99 -0
- package/src/components/side-panel/layer-panel/dataset-layer-group.tsx +99 -0
- package/src/components/side-panel/layer-panel/dataset-layer-section.tsx +100 -0
- package/src/components/side-panel/layer-panel/dataset-section.tsx +125 -0
- package/src/components/side-panel/layer-panel/dimension-scale-selector.tsx +64 -0
- package/src/components/side-panel/layer-panel/layer-column-config.tsx +115 -0
- package/src/components/side-panel/layer-panel/layer-config-group.tsx +256 -0
- package/src/components/side-panel/layer-panel/layer-list.tsx +191 -0
- package/src/components/side-panel/layer-panel/layer-panel-header.tsx +272 -0
- package/src/components/side-panel/layer-panel/layer-panel.tsx +196 -0
- package/src/components/side-panel/layer-panel/layer-type-dropdown-list.tsx +118 -0
- package/src/components/side-panel/layer-panel/layer-type-list-item.tsx +92 -0
- package/src/components/side-panel/layer-panel/layer-type-selector.tsx +115 -0
- package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +1 -1
- package/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx +132 -0
- package/src/components/side-panel/layer-panel/single-color-palette.tsx +94 -0
- package/src/components/side-panel/layer-panel/text-label-panel.tsx +187 -0
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.tsx +179 -0
- package/src/components/side-panel/layer-panel/vis-config-slider.tsx +237 -0
- package/src/components/side-panel/layer-panel/vis-config-switch.tsx +86 -0
- package/src/components/side-panel/map-manager.tsx +123 -0
- package/src/components/side-panel/map-style-panel/map-layer-selector.tsx +145 -0
- package/src/components/side-panel/map-style-panel/map-style-selector.tsx +122 -0
- package/src/components/side-panel/panel-dropdown.tsx +53 -0
- package/src/components/side-panel/panel-header-action.tsx +114 -0
- package/src/components/side-panel/panel-header.tsx +386 -0
- package/src/components/side-panel/panel-tab.tsx +79 -0
- package/src/components/side-panel/panel-title.tsx +35 -0
- package/src/components/side-panel/panel-toggle.tsx +72 -0
- package/src/components/side-panel/side-bar.tsx +140 -0
- package/src/components/side-panel.tsx +261 -0
- package/src/components/types.ts +41 -0
- package/src/connect/keplergl-connect.ts +48 -0
- package/src/connect/with-local-selector.tsx +70 -0
- package/src/constants/action-types.ts +188 -0
- package/src/constants/color-ranges.ts +87 -0
- package/src/constants/default-settings.ts +1049 -0
- package/src/deckgl-layers/3d-building-layer/3d-building-layer.ts +57 -0
- package/src/deckgl-layers/3d-building-layer/3d-building-utils.ts +211 -0
- package/src/deckgl-layers/3d-building-layer/types.ts +29 -0
- package/src/deckgl-layers/column-layer/enhanced-column-layer.ts +63 -0
- package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +68 -0
- package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.ts +68 -0
- package/src/deckgl-layers/layer-utils/cluster-utils.ts +78 -0
- package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +672 -0
- package/src/deckgl-layers/layer-utils/shader-utils.ts +41 -0
- package/src/deckgl-layers/line-layer/line-layer.ts +126 -0
- package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.ts +63 -0
- package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.ts +96 -0
- package/src/index.d.ts +1 -0
- package/src/layers/aggregation-layer.ts +402 -0
- package/src/layers/arc-layer/arc-layer-icon.tsx +67 -0
- package/src/layers/arc-layer/arc-layer.ts +294 -0
- package/src/layers/base-layer.ts +1743 -0
- package/src/layers/cluster-layer/cluster-layer.ts +162 -0
- package/src/layers/geojson-layer/geojson-layer-icon.tsx +68 -0
- package/src/layers/geojson-layer/geojson-layer.ts +461 -0
- package/src/layers/geojson-layer/geojson-utils.ts +200 -0
- package/src/layers/grid-layer/grid-layer-icon.tsx +53 -0
- package/src/layers/grid-layer/grid-layer.ts +153 -0
- package/src/layers/grid-layer/grid-utils.ts +84 -0
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +339 -0
- package/src/layers/h3-hexagon-layer/h3-utils.ts +67 -0
- package/src/layers/heatmap-layer/heatmap-layer.ts +255 -0
- package/src/layers/hexagon-layer/hexagon-layer.ts +156 -0
- package/src/layers/hexagon-layer/hexagon-utils.ts +64 -0
- package/src/layers/icon-layer/icon-info-modal.tsx +155 -0
- package/src/layers/icon-layer/icon-layer.ts +392 -0
- package/src/layers/index.ts +77 -0
- package/src/layers/layer-factory.ts +695 -0
- package/src/layers/layer-text-label.ts +62 -0
- package/src/layers/layer-update.ts +70 -0
- package/src/layers/line-layer/line-layer.ts +222 -0
- package/src/layers/mapbox-utils.ts +204 -0
- package/src/layers/mapboxgl-layer.ts +176 -0
- package/src/layers/point-layer/point-layer.ts +504 -0
- package/src/layers/s2-geometry-layer/s2-geometry-layer.ts +369 -0
- package/src/layers/s2-geometry-layer/s2-utils.ts +42 -0
- package/src/layers/scenegraph-layer/scenegraph-layer.ts +237 -0
- package/src/layers/trip-layer/trip-layer.ts +356 -0
- package/src/layers/trip-layer/trip-utils.ts +177 -0
- package/src/localization/formatted-message.tsx +42 -0
- package/src/localization/index.ts +29 -0
- package/src/localization/locales.ts +53 -0
- package/src/localization/messages.ts +40 -0
- package/src/localization/translations/ca.ts +476 -0
- package/src/localization/translations/cn.ts +477 -0
- package/src/localization/translations/en.ts +504 -0
- package/src/localization/translations/es.ts +477 -0
- package/src/localization/translations/fi.ts +448 -0
- package/src/localization/translations/ja.ts +477 -0
- package/src/localization/translations/pt.ts +449 -0
- package/src/localization/translations/ru.ts +488 -0
- package/src/middleware/index.ts +35 -0
- package/src/processors/data-processor.ts +723 -0
- package/src/processors/file-handler.ts +248 -0
- package/src/processors/index.ts +22 -0
- package/src/processors/types.ts +22 -0
- package/src/reducers/combined-updaters.ts +216 -0
- package/src/reducers/composer-helpers.ts +75 -0
- package/src/reducers/core.ts +111 -0
- package/src/reducers/index.ts +116 -0
- package/src/reducers/map-state-updaters.ts +271 -0
- package/src/reducers/map-state.ts +47 -0
- package/src/reducers/map-style-updaters.ts +640 -0
- package/src/reducers/map-style.ts +53 -0
- package/src/reducers/provider-state-updaters.ts +454 -0
- package/src/reducers/provider-state.ts +53 -0
- package/src/reducers/root.ts +231 -0
- package/src/reducers/types.ts +18 -0
- package/src/reducers/ui-state-updaters.ts +926 -0
- package/src/reducers/ui-state.ts +75 -0
- package/src/reducers/vis-state-merger.ts +627 -0
- package/src/reducers/vis-state-selectors.ts +37 -0
- package/src/reducers/vis-state-updaters.ts +2568 -0
- package/src/reducers/vis-state.ts +157 -0
- package/src/schemas/dataset-schema.ts +141 -0
- package/src/schemas/index.ts +52 -0
- package/src/schemas/schema-manager.ts +446 -0
- package/src/schemas/schema.ts +124 -0
- package/src/schemas/vis-state-schema.ts +761 -0
- package/src/styles/base.ts +1642 -0
- package/src/styles/media-breakpoints.ts +56 -0
- package/src/typedefs/deckgl.d.ts +25 -0
- package/src/utils/aggregate-utils.ts +71 -0
- package/src/utils/color-utils.ts +134 -0
- package/src/utils/data-scale-utils.ts +73 -0
- package/src/utils/data-utils.ts +459 -0
- package/src/utils/dataset-utils.ts +261 -0
- package/src/utils/dom-to-image.ts +533 -0
- package/src/utils/dom-utils.ts +354 -0
- package/src/utils/export-utils.ts +265 -0
- package/src/utils/filter-utils.ts +1185 -0
- package/src/utils/gpu-filter-utils.ts +249 -0
- package/src/utils/index.ts +69 -0
- package/src/utils/interaction-utils.ts +212 -0
- package/src/utils/layer-utils.ts +249 -0
- package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +227 -0
- package/src/utils/notifications-utils.ts +89 -0
- package/src/utils/observe-dimensions.ts +127 -0
- package/src/utils/split-map-utils.ts +104 -0
- package/src/utils/table-utils/data-container-utils.ts +90 -0
- package/src/utils/table-utils/data-row.ts +110 -0
- package/src/utils/table-utils/indexed-data-container.ts +184 -0
- package/src/utils/table-utils/kepler-table.ts +639 -0
- package/src/utils/table-utils/row-data-container.ts +178 -0
- package/src/utils/utils.ts +228 -0
- package/dist/components/common/icons/arrow-down-solid .js +0 -64
- package/dist/localization/en.js +0 -494
- package/src/actions/action-wrapper.js +0 -183
- package/src/actions/actions.d.ts +0 -104
- package/src/actions/actions.js +0 -178
- package/src/actions/identity-actions.d.ts +0 -53
- package/src/actions/identity-actions.js +0 -83
- package/src/actions/index.d.ts +0 -23
- package/src/actions/map-state-actions.d.ts +0 -46
- package/src/actions/map-state-actions.js +0 -90
- package/src/actions/map-style-actions.d.ts +0 -116
- package/src/actions/map-style-actions.js +0 -135
- package/src/actions/provider-actions.d.ts +0 -203
- package/src/actions/provider-actions.js +0 -94
- package/src/actions/ui-state-actions.d.ts +0 -200
- package/src/actions/ui-state-actions.js +0 -272
- package/src/actions/vis-state-actions.d.ts +0 -502
- package/src/actions/vis-state-actions.js +0 -919
- package/src/cloud-providers/index.d.ts +0 -53
- package/src/cloud-providers/index.js +0 -21
- package/src/cloud-providers/provider.js +0 -233
- package/src/components/bottom-widget.d.ts +0 -33
- package/src/components/bottom-widget.js +0 -235
- package/src/components/common/action-panel.d.ts +0 -24
- package/src/components/common/action-panel.js +0 -177
- package/src/components/common/animation-control/animation-control.js +0 -155
- package/src/components/common/animation-control/animation-controller.js +0 -224
- package/src/components/common/animation-control/animation-speed-slider.js +0 -79
- package/src/components/common/animation-control/floating-time-display.js +0 -192
- package/src/components/common/animation-control/playback-controls.js +0 -278
- package/src/components/common/animation-control/speed-control.js +0 -71
- package/src/components/common/checkbox.js +0 -128
- package/src/components/common/color-legend.js +0 -198
- package/src/components/common/data-table/button.js +0 -47
- package/src/components/common/data-table/cell-size.js +0 -180
- package/src/components/common/data-table/grid.js +0 -55
- package/src/components/common/data-table/index.js +0 -620
- package/src/components/common/data-table/option-dropdown.js +0 -110
- package/src/components/common/dataset-label.js +0 -40
- package/src/components/common/error-boundary.js +0 -43
- package/src/components/common/field-selector.js +0 -233
- package/src/components/common/field-token.js +0 -56
- package/src/components/common/file-uploader/file-drop.d.ts +0 -19
- package/src/components/common/file-uploader/file-drop.js +0 -196
- package/src/components/common/file-uploader/file-upload-progress.d.ts +0 -11
- package/src/components/common/file-uploader/file-upload-progress.js +0 -110
- package/src/components/common/file-uploader/file-upload.d.ts +0 -22
- package/src/components/common/file-uploader/file-upload.js +0 -301
- package/src/components/common/file-uploader/upload-button.d.ts.wip +0 -11
- package/src/components/common/file-uploader/upload-button.js +0 -83
- package/src/components/common/histogram-plot.js +0 -102
- package/src/components/common/icons/add.js +0 -43
- package/src/components/common/icons/anchor_window.js +0 -53
- package/src/components/common/icons/arrow-down-alt.js +0 -43
- package/src/components/common/icons/arrow-down-solid .js +0 -43
- package/src/components/common/icons/arrow-down.js +0 -46
- package/src/components/common/icons/arrow-left.js +0 -48
- package/src/components/common/icons/arrow-right.js +0 -46
- package/src/components/common/icons/arrow-up-alt.js +0 -46
- package/src/components/common/icons/arrow-up-solid.js +0 -43
- package/src/components/common/icons/arrow-up.js +0 -46
- package/src/components/common/icons/base.js +0 -90
- package/src/components/common/icons/bug.js +0 -46
- package/src/components/common/icons/cancel.js +0 -43
- package/src/components/common/icons/checkmark.js +0 -45
- package/src/components/common/icons/clipboard.js +0 -46
- package/src/components/common/icons/clock.js +0 -44
- package/src/components/common/icons/close.js +0 -49
- package/src/components/common/icons/code-alt.js +0 -43
- package/src/components/common/icons/copy.js +0 -44
- package/src/components/common/icons/crosshairs.js +0 -43
- package/src/components/common/icons/cube-3d.js +0 -45
- package/src/components/common/icons/cursor-click.js +0 -49
- package/src/components/common/icons/data-table.js +0 -45
- package/src/components/common/icons/db.js +0 -45
- package/src/components/common/icons/delete.js +0 -44
- package/src/components/common/icons/docs.js +0 -46
- package/src/components/common/icons/drag-n-drop.js +0 -44
- package/src/components/common/icons/draw-polygon.js +0 -60
- package/src/components/common/icons/email.js +0 -45
- package/src/components/common/icons/expand.js +0 -45
- package/src/components/common/icons/eye-seen.js +0 -44
- package/src/components/common/icons/eye-unseen.js +0 -44
- package/src/components/common/icons/file-type.js +0 -57
- package/src/components/common/icons/file.js +0 -43
- package/src/components/common/icons/files.js +0 -42
- package/src/components/common/icons/filter-funnel.js +0 -43
- package/src/components/common/icons/free-window.js +0 -53
- package/src/components/common/icons/gear.js +0 -45
- package/src/components/common/icons/hash.js +0 -43
- package/src/components/common/icons/histogram.js +0 -47
- package/src/components/common/icons/index.js +0 -96
- package/src/components/common/icons/info.js +0 -54
- package/src/components/common/icons/layers.js +0 -43
- package/src/components/common/icons/left-arrow.js +0 -43
- package/src/components/common/icons/legend.js +0 -43
- package/src/components/common/icons/line-chart.js +0 -45
- package/src/components/common/icons/login.js +0 -46
- package/src/components/common/icons/logout.js +0 -43
- package/src/components/common/icons/map-icon.js +0 -69
- package/src/components/common/icons/map.js +0 -69
- package/src/components/common/icons/messages.js +0 -43
- package/src/components/common/icons/minus.js +0 -45
- package/src/components/common/icons/pause.js +0 -43
- package/src/components/common/icons/picture.js +0 -43
- package/src/components/common/icons/pin.js +0 -43
- package/src/components/common/icons/play.js +0 -43
- package/src/components/common/icons/polygon.js +0 -74
- package/src/components/common/icons/rectangle.js +0 -75
- package/src/components/common/icons/reduce.js +0 -48
- package/src/components/common/icons/reset.js +0 -43
- package/src/components/common/icons/rocket.js +0 -43
- package/src/components/common/icons/save.js +0 -44
- package/src/components/common/icons/save2.js +0 -47
- package/src/components/common/icons/search.js +0 -44
- package/src/components/common/icons/settings.js +0 -45
- package/src/components/common/icons/share.js +0 -43
- package/src/components/common/icons/split.js +0 -63
- package/src/components/common/icons/square-select.js +0 -44
- package/src/components/common/icons/table.js +0 -46
- package/src/components/common/icons/trash.js +0 -51
- package/src/components/common/icons/upload.js +0 -44
- package/src/components/common/icons/vert-dots.js +0 -50
- package/src/components/common/icons/vert-three-dots.js +0 -45
- package/src/components/common/icons/warning.js +0 -46
- package/src/components/common/image-preview.js +0 -111
- package/src/components/common/info-helper.js +0 -84
- package/src/components/common/item-selector/accessor.js +0 -45
- package/src/components/common/item-selector/chickleted-input.js +0 -143
- package/src/components/common/item-selector/dropdown-list.js +0 -258
- package/src/components/common/item-selector/item-selector.js +0 -360
- package/src/components/common/item-selector/typeahead.js +0 -507
- package/src/components/common/line-chart.js +0 -134
- package/src/components/common/loading-spinner.js +0 -64
- package/src/components/common/logo.js +0 -92
- package/src/components/common/map-layer-selector.d.ts +0 -10
- package/src/components/common/map-layer-selector.js +0 -54
- package/src/components/common/modal.js +0 -233
- package/src/components/common/portaled.js +0 -264
- package/src/components/common/progress-bar.d.ts +0 -13
- package/src/components/common/progress-bar.js +0 -49
- package/src/components/common/range-brush.js +0 -256
- package/src/components/common/range-plot.js +0 -139
- package/src/components/common/range-slider.js +0 -299
- package/src/components/common/slider/mouse-event.js +0 -97
- package/src/components/common/slider/slider-bar-handle.js +0 -97
- package/src/components/common/slider/slider-handle.js +0 -181
- package/src/components/common/slider/slider.js +0 -213
- package/src/components/common/styled-components.js +0 -657
- package/src/components/common/switch.js +0 -50
- package/src/components/common/time-range-slider-time-title.js +0 -76
- package/src/components/common/time-range-slider.js +0 -163
- package/src/components/common/time-slider-marker.js +0 -168
- package/src/components/common/toolbar-item.d.ts +0 -14
- package/src/components/common/toolbar-item.js +0 -83
- package/src/components/common/toolbar.js +0 -45
- package/src/components/common/vertical-toolbar.js +0 -35
- package/src/components/container.js +0 -173
- package/src/components/context.d.ts +0 -10
- package/src/components/context.js +0 -32
- package/src/components/editor/editor.js +0 -218
- package/src/components/editor/feature-action-panel.js +0 -143
- package/src/components/editor/feature-styles.js +0 -75
- package/src/components/editor/handle-style.js +0 -89
- package/src/components/filters/filter-panels/filter-panel-types.d.ts +0 -28
- package/src/components/filters/filter-panels/filter-panel-with-field-select.js +0 -124
- package/src/components/filters/filter-panels/multi-select-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/new-filter-panel.js +0 -99
- package/src/components/filters/filter-panels/polygon-filter-panel.js +0 -96
- package/src/components/filters/filter-panels/range-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/single-select-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/time-range-filter-panel.js +0 -95
- package/src/components/filters/multi-select-filter.js +0 -36
- package/src/components/filters/polygon-filter.d.ts +0 -13
- package/src/components/filters/polygon-filter.js +0 -73
- package/src/components/filters/range-filter.js +0 -43
- package/src/components/filters/single-select-filter.js +0 -49
- package/src/components/filters/time-range-filter.js +0 -68
- package/src/components/filters/time-widget.js +0 -228
- package/src/components/geocoder/geocoder.d.ts +0 -33
- package/src/components/geocoder/geocoder.js +0 -272
- package/src/components/geocoder-panel.js +0 -191
- package/src/components/index.js +0 -247
- package/src/components/injector.js +0 -161
- package/src/components/kepler-gl.js +0 -518
- package/src/components/map/coordinate-info.js +0 -53
- package/src/components/map/layer-hover-info.d.ts +0 -12
- package/src/components/map/layer-hover-info.js +0 -185
- package/src/components/map/layer-selector-panel.d.ts +0 -16
- package/src/components/map/layer-selector-panel.js +0 -106
- package/src/components/map/locale-panel.d.ts +0 -12
- package/src/components/map/locale-panel.js +0 -91
- package/src/components/map/map-control-panel.d.ts +0 -11
- package/src/components/map/map-control-panel.js +0 -98
- package/src/components/map/map-control-tooltip.d.ts +0 -8
- package/src/components/map/map-control-tooltip.js +0 -40
- package/src/components/map/map-control.d.ts +0 -37
- package/src/components/map/map-control.js +0 -100
- package/src/components/map/map-draw-panel.d.ts +0 -16
- package/src/components/map/map-draw-panel.js +0 -125
- package/src/components/map/map-legend-panel.d.ts +0 -20
- package/src/components/map/map-legend-panel.js +0 -100
- package/src/components/map/map-legend.d.ts +0 -58
- package/src/components/map/map-legend.js +0 -228
- package/src/components/map/map-popover.d.ts +0 -28
- package/src/components/map/map-popover.js +0 -250
- package/src/components/map/split-map-button.d.ts +0 -19
- package/src/components/map/split-map-button.js +0 -82
- package/src/components/map/toggle-3d-button.d.ts +0 -16
- package/src/components/map/toggle-3d-button.js +0 -75
- package/src/components/map-container.d.ts +0 -18
- package/src/components/map-container.js +0 -499
- package/src/components/maps-layout.d.ts +0 -5
- package/src/components/maps-layout.js +0 -40
- package/src/components/modal-container.d.ts +0 -37
- package/src/components/modal-container.js +0 -543
- package/src/components/modals/add-map-style-modal.js +0 -298
- package/src/components/modals/cloud-tile.js +0 -147
- package/src/components/modals/data-table-modal.js +0 -217
- package/src/components/modals/delete-data-modal.js +0 -48
- package/src/components/modals/error-display.js +0 -39
- package/src/components/modals/export-data-modal.js +0 -193
- package/src/components/modals/export-image-modal.d.ts +0 -21
- package/src/components/modals/export-image-modal.js +0 -144
- package/src/components/modals/export-map-modal/export-html-map.d.ts +0 -21
- package/src/components/modals/export-map-modal/export-html-map.js +0 -145
- package/src/components/modals/export-map-modal/export-json-map.js +0 -100
- package/src/components/modals/export-map-modal/export-map-modal.js +0 -114
- package/src/components/modals/image-modal-container.d.ts +0 -13
- package/src/components/modals/image-modal-container.js +0 -76
- package/src/components/modals/load-data-modal.d.ts +0 -30
- package/src/components/modals/load-data-modal.js +0 -94
- package/src/components/modals/load-storage-map.js +0 -381
- package/src/components/modals/loading-dialog.js +0 -69
- package/src/components/modals/modal-tabs.js +0 -126
- package/src/components/modals/overwrite-map-modal.d.ts +0 -18
- package/src/components/modals/overwrite-map-modal.js +0 -97
- package/src/components/modals/provider-modal-container.d.ts +0 -12
- package/src/components/modals/provider-modal-container.js +0 -60
- package/src/components/modals/save-map-modal.d.ts +0 -32
- package/src/components/modals/save-map-modal.js +0 -244
- package/src/components/modals/share-map-modal.js +0 -208
- package/src/components/modals/status-panel.js +0 -95
- package/src/components/modals/storage-map-viewer.js +0 -177
- package/src/components/notification-panel/notification-item.js +0 -132
- package/src/components/notification-panel.js +0 -72
- package/src/components/plot-container.js +0 -228
- package/src/components/side-panel/common/dataset-info.js +0 -45
- package/src/components/side-panel/common/dataset-tag.js +0 -55
- package/src/components/side-panel/common/dataset-title.js +0 -146
- package/src/components/side-panel/common/source-data-catalog.js +0 -61
- package/src/components/side-panel/common/source-data-selector.js +0 -79
- package/src/components/side-panel/filter-manager.js +0 -105
- package/src/components/side-panel/filter-panel/filter-panel-header.js +0 -83
- package/src/components/side-panel/filter-panel/filter-panel.js +0 -126
- package/src/components/side-panel/interaction-manager.js +0 -46
- package/src/components/side-panel/interaction-panel/brush-config.js +0 -51
- package/src/components/side-panel/interaction-panel/interaction-panel.js +0 -115
- package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -199
- package/src/components/side-panel/interaction-panel/tooltip-config.js +0 -190
- package/src/components/side-panel/layer-manager.js +0 -290
- package/src/components/side-panel/layer-panel/color-palette.js +0 -90
- package/src/components/side-panel/layer-panel/color-range-selector.js +0 -353
- package/src/components/side-panel/layer-panel/color-selector.js +0 -196
- package/src/components/side-panel/layer-panel/column-selector.js +0 -70
- package/src/components/side-panel/layer-panel/custom-palette.js +0 -296
- package/src/components/side-panel/layer-panel/custom-picker.js +0 -88
- package/src/components/side-panel/layer-panel/dimension-scale-selector.js +0 -48
- package/src/components/side-panel/layer-panel/layer-column-config.js +0 -113
- package/src/components/side-panel/layer-panel/layer-config-group.js +0 -237
- package/src/components/side-panel/layer-panel/layer-panel-header.js +0 -236
- package/src/components/side-panel/layer-panel/layer-panel.js +0 -171
- package/src/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -105
- package/src/components/side-panel/layer-panel/layer-type-list-item.js +0 -83
- package/src/components/side-panel/layer-panel/layer-type-selector.js +0 -89
- package/src/components/side-panel/layer-panel/single-color-palette.js +0 -98
- package/src/components/side-panel/layer-panel/text-label-panel.js +0 -179
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -163
- package/src/components/side-panel/layer-panel/vis-config-slider.js +0 -82
- package/src/components/side-panel/layer-panel/vis-config-switch.js +0 -87
- package/src/components/side-panel/map-manager.js +0 -114
- package/src/components/side-panel/map-style-panel/map-layer-selector.js +0 -128
- package/src/components/side-panel/map-style-panel/map-style-selector.js +0 -111
- package/src/components/side-panel/panel-dropdown.js +0 -53
- package/src/components/side-panel/panel-header-action.js +0 -106
- package/src/components/side-panel/panel-header.js +0 -321
- package/src/components/side-panel/panel-tab.js +0 -62
- package/src/components/side-panel/panel-title.js +0 -32
- package/src/components/side-panel/panel-toggle.js +0 -70
- package/src/components/side-panel/side-bar.js +0 -136
- package/src/components/side-panel.d.ts +0 -33
- package/src/components/side-panel.js +0 -253
- package/src/connect/keplergl-connect.js +0 -47
- package/src/connect/with-local-selector.d.ts +0 -11
- package/src/connect/with-local-selector.js +0 -67
- package/src/constants/action-types.d.ts +0 -135
- package/src/constants/action-types.js +0 -184
- package/src/constants/color-ranges.js +0 -72
- package/src/constants/default-settings.js +0 -994
- package/src/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -56
- package/src/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -192
- package/src/deckgl-layers/column-layer/enhanced-column-layer.js +0 -63
- package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -70
- package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -70
- package/src/deckgl-layers/layer-utils/cluster-utils.js +0 -76
- package/src/deckgl-layers/layer-utils/cpu-aggregator.js +0 -583
- package/src/deckgl-layers/layer-utils/shader-utils.js +0 -41
- package/src/deckgl-layers/line-layer/line-layer.js +0 -122
- package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -57
- package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -85
- package/src/layers/aggregation-layer.js +0 -356
- package/src/layers/arc-layer/arc-layer-icon.js +0 -67
- package/src/layers/arc-layer/arc-layer.js +0 -221
- package/src/layers/base-layer.js +0 -1545
- package/src/layers/cluster-layer/cluster-layer.js +0 -125
- package/src/layers/geojson-layer/geojson-layer-icon.js +0 -68
- package/src/layers/geojson-layer/geojson-layer.js +0 -344
- package/src/layers/geojson-layer/geojson-utils.js +0 -179
- package/src/layers/grid-layer/grid-layer-icon.js +0 -53
- package/src/layers/grid-layer/grid-layer.js +0 -95
- package/src/layers/grid-layer/grid-utils.js +0 -71
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -264
- package/src/layers/h3-hexagon-layer/h3-utils.js +0 -65
- package/src/layers/heatmap-layer/heatmap-layer.js +0 -226
- package/src/layers/hexagon-layer/hexagon-layer.js +0 -95
- package/src/layers/hexagon-layer/hexagon-utils.js +0 -63
- package/src/layers/icon-layer/icon-info-modal.js +0 -155
- package/src/layers/icon-layer/icon-layer.js +0 -324
- package/src/layers/index.d.ts +0 -128
- package/src/layers/index.js +0 -72
- package/src/layers/layer-factory.d.ts +0 -149
- package/src/layers/layer-factory.js +0 -480
- package/src/layers/layer-text-label.js +0 -62
- package/src/layers/layer-update.js +0 -71
- package/src/layers/line-layer/line-layer.js +0 -161
- package/src/layers/mapbox-utils.js +0 -195
- package/src/layers/mapboxgl-layer.js +0 -154
- package/src/layers/point-layer/point-layer.js +0 -414
- package/src/layers/s2-geometry-layer/s2-geometry-layer.js +0 -265
- package/src/layers/s2-geometry-layer/s2-utils.js +0 -36
- package/src/layers/scenegraph-layer/scenegraph-layer.js +0 -182
- package/src/layers/trip-layer/trip-layer.js +0 -295
- package/src/layers/trip-layer/trip-utils.js +0 -169
- package/src/localization/en.js +0 -504
- package/src/localization/formatted-message.js +0 -33
- package/src/localization/index.js +0 -32
- package/src/localization/locales.js +0 -46
- package/src/middleware/index.js +0 -34
- package/src/processors/data-processor.d.ts +0 -57
- package/src/processors/data-processor.js +0 -684
- package/src/processors/file-handler.d.ts +0 -46
- package/src/processors/file-handler.js +0 -220
- package/src/processors/index.js +0 -44
- package/src/reducers/combined-updaters.d.ts +0 -26
- package/src/reducers/combined-updaters.js +0 -198
- package/src/reducers/composer-helpers.d.ts +0 -32
- package/src/reducers/composer-helpers.js +0 -70
- package/src/reducers/core.d.ts +0 -25
- package/src/reducers/core.js +0 -97
- package/src/reducers/index.d.ts +0 -118
- package/src/reducers/index.js +0 -53
- package/src/reducers/map-state-updaters.d.ts +0 -64
- package/src/reducers/map-state-updaters.js +0 -224
- package/src/reducers/map-state.js +0 -47
- package/src/reducers/map-style-updaters.d.ts +0 -76
- package/src/reducers/map-style-updaters.js +0 -541
- package/src/reducers/map-style.js +0 -53
- package/src/reducers/provider-state-updaters.d.ts +0 -88
- package/src/reducers/provider-state-updaters.js +0 -428
- package/src/reducers/provider-state.js +0 -53
- package/src/reducers/root.js +0 -230
- package/src/reducers/types.d.ts +0 -10
- package/src/reducers/ui-state-updaters.d.ts +0 -198
- package/src/reducers/ui-state-updaters.js +0 -766
- package/src/reducers/ui-state.js +0 -73
- package/src/reducers/vis-state-merger.d.ts +0 -78
- package/src/reducers/vis-state-merger.js +0 -557
- package/src/reducers/vis-state-selectors.js +0 -35
- package/src/reducers/vis-state-updaters.d.ts +0 -534
- package/src/reducers/vis-state-updaters.js +0 -2137
- package/src/reducers/vis-state.js +0 -155
- package/src/schemas/dataset-schema.js +0 -141
- package/src/schemas/index.d.ts +0 -24
- package/src/schemas/index.js +0 -42
- package/src/schemas/schema-manager.d.ts +0 -229
- package/src/schemas/schema-manager.js +0 -228
- package/src/schemas/schema.d.ts +0 -47
- package/src/schemas/schema.js +0 -90
- package/src/schemas/versions.d.ts +0 -23
- package/src/schemas/vis-state-schema.js +0 -754
- package/src/styles/base.js +0 -1620
- package/src/styles/media-breakpoints.js +0 -47
- package/src/typedefs/README.md +0 -3
- package/src/typedefs/deck.gl__core.d.ts +0 -64
- package/src/typedefs/deck.gl__mesh-layers.d.ts +0 -33
- package/src/utils/aggregate-utils.js +0 -71
- package/src/utils/color-utils.js +0 -115
- package/src/utils/data-scale-utils.d.ts +0 -26
- package/src/utils/data-scale-utils.js +0 -61
- package/src/utils/data-utils.d.ts +0 -46
- package/src/utils/data-utils.js +0 -447
- package/src/utils/dataset-utils.d.ts +0 -10
- package/src/utils/dataset-utils.js +0 -255
- package/src/utils/dom-to-image.js +0 -533
- package/src/utils/dom-utils.js +0 -354
- package/src/utils/export-utils.js +0 -247
- package/src/utils/filter-utils.d.ts +0 -192
- package/src/utils/filter-utils.js +0 -1114
- package/src/utils/gpu-filter-utils.d.ts +0 -28
- package/src/utils/gpu-filter-utils.js +0 -253
- package/src/utils/index.d.ts +0 -5
- package/src/utils/index.js +0 -55
- package/src/utils/interaction-utils.d.ts +0 -36
- package/src/utils/interaction-utils.js +0 -185
- package/src/utils/layer-utils.d.ts +0 -78
- package/src/utils/layer-utils.js +0 -206
- package/src/utils/map-style-utils/mapbox-gl-style-editor.js +0 -201
- package/src/utils/notifications-utils.js +0 -83
- package/src/utils/observe-dimensions.d.ts +0 -18
- package/src/utils/observe-dimensions.js +0 -115
- package/src/utils/split-map-utils.js +0 -104
- package/src/utils/table-utils/data-container-utils.d.ts +0 -43
- package/src/utils/table-utils/data-container-utils.js +0 -61
- package/src/utils/table-utils/data-row.d.ts +0 -65
- package/src/utils/table-utils/data-row.js +0 -54
- package/src/utils/table-utils/index.d.ts +0 -1
- package/src/utils/table-utils/indexed-data-container.d.ts +0 -26
- package/src/utils/table-utils/indexed-data-container.js +0 -152
- package/src/utils/table-utils/kepler-table.d.ts +0 -114
- package/src/utils/table-utils/kepler-table.js +0 -508
- package/src/utils/table-utils/row-data-container.d.ts +0 -30
- package/src/utils/table-utils/row-data-container.js +0 -151
- package/src/utils/utils.js +0 -202
- /package/src/actions/{index.js → index.ts} +0 -0
- /package/src/components/common/data-table/{canvas.js → canvas.tsx} +0 -0
- /package/src/components/editor/{constants.js → constants.ts} +0 -0
- /package/src/components/filters/{components.js → components.ts} +0 -0
- /package/src/components/filters/{index.js → index.ts} +0 -0
- /package/src/components/map/{map-control-toolbar.js → map-control-toolbar.tsx} +0 -0
- /package/src/components/modals/export-map-modal/{components.js → components.tsx} +0 -0
- /package/src/components/modals/{modal-dialog.js → modal-dialog.tsx} +0 -0
- /package/src/components/side-panel/{cloud-storage-dropdown.js → cloud-storage-dropdown.tsx} +0 -0
- /package/src/components/side-panel/{custom-panel.js → custom-panel.tsx} +0 -0
- /package/src/components/side-panel/layer-panel/{layer-configurator.js → layer-configurator.tsx} +0 -0
- /package/src/constants/{color-palette.js → color-palette.ts} +0 -0
- /package/src/constants/{custom-color-ranges.js → custom-color-ranges.ts} +0 -0
- /package/src/constants/{index.js → index.ts} +0 -0
- /package/src/constants/{keyevent.js → keyevent.ts} +0 -0
- /package/src/constants/{tooltip.js → tooltip.ts} +0 -0
- /package/src/constants/{user-feedbacks.js → user-feedbacks.ts} +0 -0
- /package/src/constants/{user-guides.js → user-guides.ts} +0 -0
- /package/src/layers/cluster-layer/{cluster-layer-icon.js → cluster-layer-icon.tsx} +0 -0
- /package/src/layers/{default-layer-icon.js → default-layer-icon.tsx} +0 -0
- /package/src/layers/h3-hexagon-layer/{h3-hexagon-layer-icon.js → h3-hexagon-layer-icon.tsx} +0 -0
- /package/src/layers/heatmap-layer/{heatmap-layer-icon.js → heatmap-layer-icon.tsx} +0 -0
- /package/src/layers/hexagon-layer/{hexagon-layer-icon.js → hexagon-layer-icon.tsx} +0 -0
- /package/src/layers/icon-layer/{icon-layer-icon.js → icon-layer-icon.tsx} +0 -0
- /package/src/layers/line-layer/{line-layer-icon.js → line-layer-icon.tsx} +0 -0
- /package/src/layers/point-layer/{point-layer-icon.js → point-layer-icon.tsx} +0 -0
- /package/src/layers/s2-geometry-layer/{s2-layer-icon.js → s2-layer-icon.tsx} +0 -0
- /package/src/layers/scenegraph-layer/{scenegraph-info-modal.js → scenegraph-info-modal.tsx} +0 -0
- /package/src/layers/scenegraph-layer/{scenegraph-layer-icon.js → scenegraph-layer-icon.tsx} +0 -0
- /package/src/layers/trip-layer/{trip-info-modal.js → trip-info-modal.tsx} +0 -0
- /package/src/layers/trip-layer/{trip-layer-icon.js → trip-layer-icon.tsx} +0 -0
- /package/src/layers/{types.js → types.ts} +0 -0
- /package/src/reducers/{composers.js → composers.ts} +0 -0
- /package/src/schemas/{map-state-schema.js → map-state-schema.ts} +0 -0
- /package/src/schemas/{map-style-schema.js → map-style-schema.ts} +0 -0
- /package/src/schemas/{schema-utils.js → schema-utils.ts} +0 -0
- /package/src/schemas/{versions.js → versions.ts} +0 -0
- /package/src/styles/{index.js → index.ts} +0 -0
- /package/src/tasks/{tasks.js → tasks.ts} +0 -0
- /package/src/templates/{export-map-html.js → export-map-html.ts} +0 -0
- /package/src/utils/{gl-utils.js → gl-utils.ts} +0 -0
- /package/src/utils/{locale-utils.js → locale-utils.ts} +0 -0
- /package/src/utils/{map-info-utils.js → map-info-utils.ts} +0 -0
- /package/src/utils/map-style-utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
- /package/src/utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
- /package/src/utils/{projection-utils.js → projection-utils.ts} +0 -0
- /package/src/utils/{searcher-utils.js → searcher-utils.ts} +0 -0
- /package/src/utils/table-utils/{data-container-interface.d.ts → data-container-interface.ts} +0 -0
- /package/src/utils/table-utils/{index.js → index.ts} +0 -0
package/dist/styles/index.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
|
|
6
7
|
var _base = require("./base");
|
|
8
|
+
|
|
7
9
|
Object.keys(_base).forEach(function (key) {
|
|
8
10
|
if (key === "default" || key === "__esModule") return;
|
|
9
11
|
if (key in exports && exports[key] === _base[key]) return;
|
|
@@ -14,7 +16,9 @@ Object.keys(_base).forEach(function (key) {
|
|
|
14
16
|
}
|
|
15
17
|
});
|
|
16
18
|
});
|
|
19
|
+
|
|
17
20
|
var _mediaBreakpoints = require("./media-breakpoints");
|
|
21
|
+
|
|
18
22
|
Object.keys(_mediaBreakpoints).forEach(function (key) {
|
|
19
23
|
if (key === "default" || key === "__esModule") return;
|
|
20
24
|
if (key in exports && exports[key] === _mediaBreakpoints[key]) return;
|
|
@@ -25,4 +29,4 @@ Object.keys(_mediaBreakpoints).forEach(function (key) {
|
|
|
25
29
|
}
|
|
26
30
|
});
|
|
27
31
|
});
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBb0JBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWVkaWEtYnJlYWtwb2ludHMnO1xuIl19
|
|
@@ -1,51 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.media = void 0;
|
|
9
|
+
|
|
8
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
9
12
|
var _styledComponents = require("styled-components");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
14
|
-
// in the Software without restriction, including without limitation the rights
|
|
15
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
17
|
-
// furnished to do so, subject to the following conditions:
|
|
18
|
-
//
|
|
19
|
-
// The above copyright notice and this permission notice shall be included in
|
|
20
|
-
// all copies or substantial portions of the Software.
|
|
21
|
-
//
|
|
22
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
28
|
-
// THE SOFTWARE.
|
|
13
|
+
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
15
|
+
|
|
29
16
|
// These are useful for test or when theme doesn't define them
|
|
30
17
|
var breakPoints = {
|
|
31
18
|
palm: 588,
|
|
32
19
|
desk: 768
|
|
33
20
|
};
|
|
34
|
-
|
|
35
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Contains media rules for different device types
|
|
23
|
+
* @namespace
|
|
24
|
+
* @property {object} media
|
|
25
|
+
* @property {string} media.palm - rule for palm devices
|
|
26
|
+
* @property {string} media.portable - rule for portable devices
|
|
27
|
+
* @property {string} media.desk - rule for desktops
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
var media = {
|
|
31
|
+
palm: function palm(first) {
|
|
32
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
33
|
+
args[_key - 1] = arguments[_key];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
36
|
return (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @media (max-width: ", "px) {\n ", ";\n }\n "])), function (props) {
|
|
37
37
|
return (props.theme.breakPoints || breakPoints).palm;
|
|
38
|
-
}, _styledComponents.css.apply(void 0,
|
|
38
|
+
}, _styledComponents.css.apply(void 0, [first].concat(args)));
|
|
39
39
|
},
|
|
40
|
-
portable: function portable() {
|
|
40
|
+
portable: function portable(first) {
|
|
41
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
42
|
+
args[_key2 - 1] = arguments[_key2];
|
|
43
|
+
}
|
|
44
|
+
|
|
41
45
|
return (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n @media (max-width: ", "px) {\n ", ";\n }\n "])), function (props) {
|
|
42
46
|
return (props.theme.breakPoints || breakPoints).desk;
|
|
43
|
-
}, _styledComponents.css.apply(void 0,
|
|
47
|
+
}, _styledComponents.css.apply(void 0, [first].concat(args)));
|
|
44
48
|
},
|
|
45
|
-
desk: function desk() {
|
|
49
|
+
desk: function desk(first) {
|
|
50
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
51
|
+
args[_key3 - 1] = arguments[_key3];
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
return (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n @media (min-width: ", "px) {\n ", ";\n }\n "])), function (props) {
|
|
47
55
|
return (props.theme.breakPoints || breakPoints).desk + 1;
|
|
48
|
-
}, _styledComponents.css.apply(void 0,
|
|
56
|
+
}, _styledComponents.css.apply(void 0, [first].concat(args)));
|
|
49
57
|
}
|
|
50
58
|
};
|
|
51
|
-
|
|
59
|
+
exports.media = media;
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHlsZXMvbWVkaWEtYnJlYWtwb2ludHMudHMiXSwibmFtZXMiOlsiYnJlYWtQb2ludHMiLCJwYWxtIiwiZGVzayIsIm1lZGlhIiwiZmlyc3QiLCJhcmdzIiwiY3NzIiwicHJvcHMiLCJ0aGVtZSIsInBvcnRhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7OztBQUVBO0FBQ0EsSUFBTUEsV0FBVyxHQUFHO0FBQ2xCQyxFQUFBQSxJQUFJLEVBQUUsR0FEWTtBQUVsQkMsRUFBQUEsSUFBSSxFQUFFO0FBRlksQ0FBcEI7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVPLElBQU1DLEtBQUssR0FBRztBQUNuQkYsRUFBQUEsSUFBSSxFQUFFLGNBQUNHLEtBQUQ7QUFBQSxzQ0FBV0MsSUFBWDtBQUFXQSxNQUFBQSxJQUFYO0FBQUE7O0FBQUEsZUFBb0JDLHFCQUFwQixrSkFDaUIsVUFBQUMsS0FBSztBQUFBLGFBQUksQ0FBQ0EsS0FBSyxDQUFDQyxLQUFOLENBQVlSLFdBQVosSUFBMkJBLFdBQTVCLEVBQXlDQyxJQUE3QztBQUFBLEtBRHRCLEVBRUFLLHFDQUFJRixLQUFKLFNBQWNDLElBQWQsRUFGQTtBQUFBLEdBRGE7QUFPbkJJLEVBQUFBLFFBQVEsRUFBRSxrQkFBQ0wsS0FBRDtBQUFBLHVDQUFXQyxJQUFYO0FBQVdBLE1BQUFBLElBQVg7QUFBQTs7QUFBQSxlQUFvQkMscUJBQXBCLG9KQUNhLFVBQUFDLEtBQUs7QUFBQSxhQUFJLENBQUNBLEtBQUssQ0FBQ0MsS0FBTixDQUFZUixXQUFaLElBQTJCQSxXQUE1QixFQUF5Q0UsSUFBN0M7QUFBQSxLQURsQixFQUVKSSxxQ0FBSUYsS0FBSixTQUFjQyxJQUFkLEVBRkk7QUFBQSxHQVBTO0FBYW5CSCxFQUFBQSxJQUFJLEVBQUUsY0FBQ0UsS0FBRDtBQUFBLHVDQUFXQyxJQUFYO0FBQVdBLE1BQUFBLElBQVg7QUFBQTs7QUFBQSxlQUFvQkMscUJBQXBCLG9KQUNpQixVQUFBQyxLQUFLO0FBQUEsYUFBSSxDQUFDQSxLQUFLLENBQUNDLEtBQU4sQ0FBWVIsV0FBWixJQUEyQkEsV0FBNUIsRUFBeUNFLElBQXpDLEdBQWdELENBQXBEO0FBQUEsS0FEdEIsRUFFQUkscUNBQUlGLEtBQUosU0FBY0MsSUFBZCxFQUZBO0FBQUE7QUFiYSxDQUFkIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtjc3N9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuLy8gVGhlc2UgYXJlIHVzZWZ1bCBmb3IgdGVzdCBvciB3aGVuIHRoZW1lIGRvZXNuJ3QgZGVmaW5lIHRoZW1cbmNvbnN0IGJyZWFrUG9pbnRzID0ge1xuICBwYWxtOiA1ODgsXG4gIGRlc2s6IDc2OFxufTtcblxuLyoqXG4gKiBDb250YWlucyBtZWRpYSBydWxlcyBmb3IgZGlmZmVyZW50IGRldmljZSB0eXBlc1xuICogQG5hbWVzcGFjZVxuICogQHByb3BlcnR5IHtvYmplY3R9ICBtZWRpYVxuICogQHByb3BlcnR5IHtzdHJpbmd9ICBtZWRpYS5wYWxtIC0gcnVsZSBmb3IgcGFsbSBkZXZpY2VzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gIG1lZGlhLnBvcnRhYmxlIC0gcnVsZSBmb3IgcG9ydGFibGUgZGV2aWNlc1xuICogQHByb3BlcnR5IHtzdHJpbmd9ICBtZWRpYS5kZXNrIC0gcnVsZSBmb3IgZGVza3RvcHNcbiAqL1xuXG5leHBvcnQgY29uc3QgbWVkaWEgPSB7XG4gIHBhbG06IChmaXJzdCwgLi4uYXJncykgPT4gY3NzYFxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy50aGVtZS5icmVha1BvaW50cyB8fCBicmVha1BvaW50cykucGFsbX1weCkge1xuICAgICAgJHtjc3MoZmlyc3QsIC4uLmFyZ3MpfTtcbiAgICB9XG4gIGAsXG5cbiAgcG9ydGFibGU6IChmaXJzdCwgLi4uYXJncykgPT4gY3NzYFxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAke3Byb3BzID0+IChwcm9wcy50aGVtZS5icmVha1BvaW50cyB8fCBicmVha1BvaW50cykuZGVza31weCkge1xuICAgICAgJHtjc3MoZmlyc3QsIC4uLmFyZ3MpfTtcbiAgICB9XG4gIGAsXG5cbiAgZGVzazogKGZpcnN0LCAuLi5hcmdzKSA9PiBjc3NgXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLnRoZW1lLmJyZWFrUG9pbnRzIHx8IGJyZWFrUG9pbnRzKS5kZXNrICsgMX1weCkge1xuICAgICAgJHtjc3MoZmlyc3QsIC4uLmFyZ3MpfTtcbiAgICB9XG4gIGBcbn07XG4iXX0=
|
package/dist/tasks/tasks.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
|
-
exports.UNWRAP_TASK = exports.
|
|
8
|
+
exports.UNWRAP_TASK = exports.DELAY_TASK = exports.ACTION_TASK = exports.GET_SAVED_MAPS_TASK = exports.LOAD_CLOUD_MAP_TASK = exports.EXPORT_FILE_TO_CLOUD_TASK = exports.LOAD_MAP_STYLE_TASK = exports.PROCESS_FILE_DATA = exports.LOAD_FILE_TASK = void 0;
|
|
9
|
+
|
|
8
10
|
var _tasks = _interopRequireWildcard(require("react-palm/tasks"));
|
|
11
|
+
|
|
9
12
|
var _d3Request = require("d3-request");
|
|
13
|
+
|
|
10
14
|
var _fileHandler = require("../processors/file-handler");
|
|
11
|
-
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
+
|
|
13
16
|
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
14
17
|
//
|
|
15
18
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
@@ -29,12 +32,11 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
29
32
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
30
33
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
31
34
|
// THE SOFTWARE.
|
|
32
|
-
|
|
33
|
-
var LOAD_FILE_TASK = exports.LOAD_FILE_TASK = _tasks["default"].fromPromise(function (_ref) {
|
|
35
|
+
var LOAD_FILE_TASK = _tasks["default"].fromPromise(function (_ref) {
|
|
34
36
|
var file = _ref.file,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
fileCache = _ref.fileCache,
|
|
38
|
+
loaders = _ref.loaders,
|
|
39
|
+
loadOptions = _ref.loadOptions;
|
|
38
40
|
return (0, _fileHandler.readFileInBatches)({
|
|
39
41
|
file: file,
|
|
40
42
|
fileCache: fileCache,
|
|
@@ -42,10 +44,15 @@ var LOAD_FILE_TASK = exports.LOAD_FILE_TASK = _tasks["default"].fromPromise(func
|
|
|
42
44
|
loadOptions: loadOptions
|
|
43
45
|
});
|
|
44
46
|
}, 'LOAD_FILE_TASK');
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
|
|
48
|
+
exports.LOAD_FILE_TASK = LOAD_FILE_TASK;
|
|
49
|
+
|
|
50
|
+
var PROCESS_FILE_DATA = _tasks["default"].fromPromise(_fileHandler.processFileData, 'PROCESS_FILE_CONTENT');
|
|
51
|
+
|
|
52
|
+
exports.PROCESS_FILE_DATA = PROCESS_FILE_DATA;
|
|
53
|
+
var LOAD_MAP_STYLE_TASK = (0, _tasks.taskCreator)(function (_ref2, success, error) {
|
|
47
54
|
var url = _ref2.url,
|
|
48
|
-
|
|
55
|
+
id = _ref2.id;
|
|
49
56
|
return (0, _d3Request.json)(url, function (err, result) {
|
|
50
57
|
if (err) {
|
|
51
58
|
error(err);
|
|
@@ -53,6 +60,7 @@ var LOAD_MAP_STYLE_TASK = exports.LOAD_MAP_STYLE_TASK = (0, _tasks.taskCreator)(
|
|
|
53
60
|
if (!result) {
|
|
54
61
|
error(new Error('Map style response is empty'));
|
|
55
62
|
}
|
|
63
|
+
|
|
56
64
|
success({
|
|
57
65
|
id: id,
|
|
58
66
|
style: result
|
|
@@ -60,35 +68,55 @@ var LOAD_MAP_STYLE_TASK = exports.LOAD_MAP_STYLE_TASK = (0, _tasks.taskCreator)(
|
|
|
60
68
|
}
|
|
61
69
|
});
|
|
62
70
|
}, 'LOAD_MAP_STYLE_TASK');
|
|
63
|
-
|
|
64
71
|
/**
|
|
65
72
|
* task to upload file to cloud provider
|
|
66
73
|
*/
|
|
67
|
-
|
|
74
|
+
|
|
75
|
+
exports.LOAD_MAP_STYLE_TASK = LOAD_MAP_STYLE_TASK;
|
|
76
|
+
|
|
77
|
+
var EXPORT_FILE_TO_CLOUD_TASK = _tasks["default"].fromPromise(function (_ref3) {
|
|
68
78
|
var provider = _ref3.provider,
|
|
69
|
-
|
|
79
|
+
payload = _ref3.payload;
|
|
70
80
|
return provider.uploadMap(payload);
|
|
71
81
|
}, 'EXPORT_FILE_TO_CLOUD_TASK');
|
|
72
|
-
|
|
82
|
+
|
|
83
|
+
exports.EXPORT_FILE_TO_CLOUD_TASK = EXPORT_FILE_TO_CLOUD_TASK;
|
|
84
|
+
|
|
85
|
+
var LOAD_CLOUD_MAP_TASK = _tasks["default"].fromPromise(function (_ref4) {
|
|
73
86
|
var provider = _ref4.provider,
|
|
74
|
-
|
|
87
|
+
payload = _ref4.payload;
|
|
75
88
|
return provider.downloadMap(payload);
|
|
76
89
|
}, 'LOAD_CLOUD_MAP_TASK');
|
|
77
|
-
|
|
90
|
+
|
|
91
|
+
exports.LOAD_CLOUD_MAP_TASK = LOAD_CLOUD_MAP_TASK;
|
|
92
|
+
|
|
93
|
+
var GET_SAVED_MAPS_TASK = _tasks["default"].fromPromise(function (provider) {
|
|
78
94
|
return provider.listMaps();
|
|
79
95
|
}, 'GET_SAVED_MAPS_TASK');
|
|
80
96
|
/**
|
|
81
97
|
* task to dispatch a function as a task
|
|
82
98
|
*/
|
|
83
|
-
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
exports.GET_SAVED_MAPS_TASK = GET_SAVED_MAPS_TASK;
|
|
102
|
+
|
|
103
|
+
var ACTION_TASK = _tasks["default"].fromCallback(function (_, cb) {
|
|
84
104
|
return cb();
|
|
85
105
|
}, 'ACTION_TASK');
|
|
86
|
-
|
|
106
|
+
|
|
107
|
+
exports.ACTION_TASK = ACTION_TASK;
|
|
108
|
+
|
|
109
|
+
var DELAY_TASK = _tasks["default"].fromCallback(function (delay, cb) {
|
|
87
110
|
return window.setTimeout(function () {
|
|
88
111
|
return cb();
|
|
89
112
|
}, delay);
|
|
90
113
|
}, 'DELAY_TASK');
|
|
91
|
-
|
|
114
|
+
|
|
115
|
+
exports.DELAY_TASK = DELAY_TASK;
|
|
116
|
+
|
|
117
|
+
var UNWRAP_TASK = _tasks["default"].fromPromise(function (promise) {
|
|
92
118
|
return promise;
|
|
93
119
|
}, 'UNWRAP');
|
|
94
|
-
|
|
120
|
+
|
|
121
|
+
exports.UNWRAP_TASK = UNWRAP_TASK;
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90YXNrcy90YXNrcy50cyJdLCJuYW1lcyI6WyJMT0FEX0ZJTEVfVEFTSyIsIlRhc2siLCJmcm9tUHJvbWlzZSIsImZpbGUiLCJmaWxlQ2FjaGUiLCJsb2FkZXJzIiwibG9hZE9wdGlvbnMiLCJQUk9DRVNTX0ZJTEVfREFUQSIsInByb2Nlc3NGaWxlRGF0YSIsIkxPQURfTUFQX1NUWUxFX1RBU0siLCJzdWNjZXNzIiwiZXJyb3IiLCJ1cmwiLCJpZCIsImVyciIsInJlc3VsdCIsIkVycm9yIiwic3R5bGUiLCJFWFBPUlRfRklMRV9UT19DTE9VRF9UQVNLIiwicHJvdmlkZXIiLCJwYXlsb2FkIiwidXBsb2FkTWFwIiwiTE9BRF9DTE9VRF9NQVBfVEFTSyIsImRvd25sb2FkTWFwIiwiR0VUX1NBVkVEX01BUFNfVEFTSyIsImxpc3RNYXBzIiwiQUNUSU9OX1RBU0siLCJmcm9tQ2FsbGJhY2siLCJfIiwiY2IiLCJERUxBWV9UQVNLIiwiZGVsYXkiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiVU5XUkFQX1RBU0siLCJwcm9taXNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTU8sSUFBTUEsY0FBYyxHQUFHQyxrQkFBS0MsV0FBTCxDQUM1QjtBQUFBLE1BQUVDLElBQUYsUUFBRUEsSUFBRjtBQUFBLE1BQVFDLFNBQVIsUUFBUUEsU0FBUjtBQUFBLE1BQW1CQyxPQUFuQixRQUFtQkEsT0FBbkI7QUFBQSxNQUE0QkMsV0FBNUIsUUFBNEJBLFdBQTVCO0FBQUEsU0FDRSxvQ0FBa0I7QUFBQ0gsSUFBQUEsSUFBSSxFQUFKQSxJQUFEO0FBQU9DLElBQUFBLFNBQVMsRUFBVEEsU0FBUDtBQUFrQkMsSUFBQUEsT0FBTyxFQUFQQSxPQUFsQjtBQUEyQkMsSUFBQUEsV0FBVyxFQUFYQTtBQUEzQixHQUFsQixDQURGO0FBQUEsQ0FENEIsRUFHNUIsZ0JBSDRCLENBQXZCOzs7O0FBTUEsSUFBTUMsaUJBQWlCLEdBQUdOLGtCQUFLQyxXQUFMLENBQy9CTSw0QkFEK0IsRUFHL0Isc0JBSCtCLENBQTFCOzs7QUFNQSxJQUFNQyxtQkFBbUIsR0FBRyx3QkFDakMsaUJBQVlDLE9BQVosRUFBcUJDLEtBQXJCO0FBQUEsTUFBRUMsR0FBRixTQUFFQSxHQUFGO0FBQUEsTUFBT0MsRUFBUCxTQUFPQSxFQUFQO0FBQUEsU0FDRSxxQkFBWUQsR0FBWixFQUFpQixVQUFDRSxHQUFELEVBQU1DLE1BQU4sRUFBaUI7QUFDaEMsUUFBSUQsR0FBSixFQUFTO0FBQ1BILE1BQUFBLEtBQUssQ0FBQ0csR0FBRCxDQUFMO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSSxDQUFDQyxNQUFMLEVBQWE7QUFDWEosUUFBQUEsS0FBSyxDQUFDLElBQUlLLEtBQUosQ0FBVSw2QkFBVixDQUFELENBQUw7QUFDRDs7QUFDRE4sTUFBQUEsT0FBTyxDQUFDO0FBQUNHLFFBQUFBLEVBQUUsRUFBRkEsRUFBRDtBQUFLSSxRQUFBQSxLQUFLLEVBQUVGO0FBQVosT0FBRCxDQUFQO0FBQ0Q7QUFDRixHQVRELENBREY7QUFBQSxDQURpQyxFQWFqQyxxQkFiaUMsQ0FBNUI7QUFnQlA7QUFDQTtBQUNBOzs7O0FBQ08sSUFBTUcseUJBQXlCLEdBQUdqQixrQkFBS0MsV0FBTCxDQUN2QztBQUFBLE1BQUVpQixRQUFGLFNBQUVBLFFBQUY7QUFBQSxNQUFZQyxPQUFaLFNBQVlBLE9BQVo7QUFBQSxTQUF5QkQsUUFBUSxDQUFDRSxTQUFULENBQW1CRCxPQUFuQixDQUF6QjtBQUFBLENBRHVDLEVBR3ZDLDJCQUh1QyxDQUFsQzs7OztBQU1BLElBQU1FLG1CQUFtQixHQUFHckIsa0JBQUtDLFdBQUwsQ0FDakM7QUFBQSxNQUFFaUIsUUFBRixTQUFFQSxRQUFGO0FBQUEsTUFBWUMsT0FBWixTQUFZQSxPQUFaO0FBQUEsU0FBeUJELFFBQVEsQ0FBQ0ksV0FBVCxDQUFxQkgsT0FBckIsQ0FBekI7QUFBQSxDQURpQyxFQUdqQyxxQkFIaUMsQ0FBNUI7Ozs7QUFNQSxJQUFNSSxtQkFBbUIsR0FBR3ZCLGtCQUFLQyxXQUFMLENBQ2pDLFVBQUFpQixRQUFRO0FBQUEsU0FBSUEsUUFBUSxDQUFDTSxRQUFULEVBQUo7QUFBQSxDQUR5QixFQUdqQyxxQkFIaUMsQ0FBNUI7QUFLUDtBQUNBO0FBQ0E7Ozs7O0FBQ08sSUFBTUMsV0FBVyxHQUFHekIsa0JBQUswQixZQUFMLENBQ3pCLFVBQUNDLENBQUQsRUFBSUMsRUFBSjtBQUFBLFNBQVdBLEVBQUUsRUFBYjtBQUFBLENBRHlCLEVBR3pCLGFBSHlCLENBQXBCOzs7O0FBTUEsSUFBTUMsVUFBVSxHQUFHN0Isa0JBQUswQixZQUFMLENBQ3hCLFVBQUNJLEtBQUQsRUFBUUYsRUFBUjtBQUFBLFNBQWVHLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQjtBQUFBLFdBQU1KLEVBQUUsRUFBUjtBQUFBLEdBQWxCLEVBQThCRSxLQUE5QixDQUFmO0FBQUEsQ0FEd0IsRUFHeEIsWUFId0IsQ0FBbkI7Ozs7QUFNQSxJQUFNRyxXQUFXLEdBQUdqQyxrQkFBS0MsV0FBTCxDQUN6QixVQUFBaUMsT0FBTztBQUFBLFNBQUlBLE9BQUo7QUFBQSxDQURrQixFQUd6QixRQUh5QixDQUFwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBUYXNrLCB7dGFza0NyZWF0b3J9IGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuaW1wb3J0IHtqc29uIGFzIHJlcXVlc3RKc29ufSBmcm9tICdkMy1yZXF1ZXN0JztcbmltcG9ydCB7cmVhZEZpbGVJbkJhdGNoZXMsIHByb2Nlc3NGaWxlRGF0YX0gZnJvbSAnLi4vcHJvY2Vzc29ycy9maWxlLWhhbmRsZXInO1xuXG5leHBvcnQgY29uc3QgTE9BRF9GSUxFX1RBU0sgPSBUYXNrLmZyb21Qcm9taXNlKFxuICAoe2ZpbGUsIGZpbGVDYWNoZSwgbG9hZGVycywgbG9hZE9wdGlvbnN9KSA9PlxuICAgIHJlYWRGaWxlSW5CYXRjaGVzKHtmaWxlLCBmaWxlQ2FjaGUsIGxvYWRlcnMsIGxvYWRPcHRpb25zfSksXG4gICdMT0FEX0ZJTEVfVEFTSydcbik7XG5cbmV4cG9ydCBjb25zdCBQUk9DRVNTX0ZJTEVfREFUQSA9IFRhc2suZnJvbVByb21pc2UoXG4gIHByb2Nlc3NGaWxlRGF0YSxcblxuICAnUFJPQ0VTU19GSUxFX0NPTlRFTlQnXG4pO1xuXG5leHBvcnQgY29uc3QgTE9BRF9NQVBfU1RZTEVfVEFTSyA9IHRhc2tDcmVhdG9yKFxuICAoe3VybCwgaWR9LCBzdWNjZXNzLCBlcnJvcikgPT5cbiAgICByZXF1ZXN0SnNvbih1cmwsIChlcnIsIHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICBlcnJvcihlcnIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICBlcnJvcihuZXcgRXJyb3IoJ01hcCBzdHlsZSByZXNwb25zZSBpcyBlbXB0eScpKTtcbiAgICAgICAgfVxuICAgICAgICBzdWNjZXNzKHtpZCwgc3R5bGU6IHJlc3VsdH0pO1xuICAgICAgfVxuICAgIH0pLFxuXG4gICdMT0FEX01BUF9TVFlMRV9UQVNLJ1xuKTtcblxuLyoqXG4gKiB0YXNrIHRvIHVwbG9hZCBmaWxlIHRvIGNsb3VkIHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfRklMRV9UT19DTE9VRF9UQVNLID0gVGFzay5mcm9tUHJvbWlzZShcbiAgKHtwcm92aWRlciwgcGF5bG9hZH0pID0+IHByb3ZpZGVyLnVwbG9hZE1hcChwYXlsb2FkKSxcblxuICAnRVhQT1JUX0ZJTEVfVE9fQ0xPVURfVEFTSydcbik7XG5cbmV4cG9ydCBjb25zdCBMT0FEX0NMT1VEX01BUF9UQVNLID0gVGFzay5mcm9tUHJvbWlzZShcbiAgKHtwcm92aWRlciwgcGF5bG9hZH0pID0+IHByb3ZpZGVyLmRvd25sb2FkTWFwKHBheWxvYWQpLFxuXG4gICdMT0FEX0NMT1VEX01BUF9UQVNLJ1xuKTtcblxuZXhwb3J0IGNvbnN0IEdFVF9TQVZFRF9NQVBTX1RBU0sgPSBUYXNrLmZyb21Qcm9taXNlKFxuICBwcm92aWRlciA9PiBwcm92aWRlci5saXN0TWFwcygpLFxuXG4gICdHRVRfU0FWRURfTUFQU19UQVNLJ1xuKTtcbi8qKlxuICogIHRhc2sgdG8gZGlzcGF0Y2ggYSBmdW5jdGlvbiBhcyBhIHRhc2tcbiAqL1xuZXhwb3J0IGNvbnN0IEFDVElPTl9UQVNLID0gVGFzay5mcm9tQ2FsbGJhY2soXG4gIChfLCBjYikgPT4gY2IoKSxcblxuICAnQUNUSU9OX1RBU0snXG4pO1xuXG5leHBvcnQgY29uc3QgREVMQVlfVEFTSyA9IFRhc2suZnJvbUNhbGxiYWNrKFxuICAoZGVsYXksIGNiKSA9PiB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBjYigpLCBkZWxheSksXG5cbiAgJ0RFTEFZX1RBU0snXG4pO1xuXG5leHBvcnQgY29uc3QgVU5XUkFQX1RBU0sgPSBUYXNrLmZyb21Qcm9taXNlKFxuICBwcm9taXNlID0+IHByb21pc2UsXG5cbiAgJ1VOV1JBUCdcbik7XG4iXX0=
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.exportMapToHTML = void 0;
|
|
7
|
+
|
|
7
8
|
var _defaultSettings = require("../constants/default-settings");
|
|
9
|
+
|
|
8
10
|
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
9
11
|
//
|
|
10
12
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
@@ -24,7 +26,6 @@ var _defaultSettings = require("../constants/default-settings");
|
|
|
24
26
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
27
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
28
|
// THE SOFTWARE.
|
|
27
|
-
|
|
28
29
|
// @ts-nocheck
|
|
29
30
|
|
|
30
31
|
/**
|
|
@@ -35,8 +36,10 @@ var _defaultSettings = require("../constants/default-settings");
|
|
|
35
36
|
* @param {Object} options.config this object will contain the full kepler.gl instance configuration {mapState, mapStyle, visState}
|
|
36
37
|
* @param {string} version which version of Kepler.gl to load.
|
|
37
38
|
*/
|
|
38
|
-
var exportMapToHTML =
|
|
39
|
+
var exportMapToHTML = function exportMapToHTML(options) {
|
|
39
40
|
var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _defaultSettings.KEPLER_GL_VERSION;
|
|
40
41
|
return "\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"UTF-8\"/>\n <title>Kepler.gl embedded map</title>\n\n <!--Uber Font-->\n <link rel=\"stylesheet\" href=\"https://d1a3f4spazzrp4.cloudfront.net/kepler.gl/uber-fonts/4.0.0/superfine.css\">\n\n <!--MapBox css-->\n <link href=\"https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.1/mapbox-gl.css\" rel=\"stylesheet\">\n\n <!-\u2014 facebook open graph tags -->\n <meta property=\"og:url\" content=\"http://kepler.gl/\" />\n <meta property=\"og:title\" content=\"Large-scale WebGL-powered Geospatial Data Visualization Tool\" />\n <meta property=\"og:description\" content=\"Kepler.gl is a powerful web-based geospatial data analysis tool. Built on a high performance rendering engine and designed for large-scale data sets.\" />\n <meta property=\"og:site_name\" content=\"kepler.gl\" />\n <meta property=\"og:image\" content=\"https://d1a3f4spazzrp4.cloudfront.net/kepler.gl/kepler.gl-meta-tag.png\" />\n <meta property=\"og:image:type\" content=\"image/png\" />\n <meta property=\"og:image:width\" content=\"800\" />\n <meta property=\"og:image:height\" content=\"800\" />\n\n <!-\u2014 twitter card tags -->\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@uber\">\n <meta name=\"twitter:creator\" content=\"@uber\">\n <meta name=\"twitter:title\" content=\"Large-scale WebGL-powered Geospatial Data Visualization Tool\">\n <meta name=\"twitter:description\" content=\"Kepler.gl is a powerful web-based geospatial data analysis tool. Built on a high performance rendering engine and designed for large-scale data sets.\">\n <meta name=\"twitter:image\" content=\"https://d1a3f4spazzrp4.cloudfront.net/kepler.gl/kepler.gl-meta-tag.png\" />\n\n <!-- Load React/Redux -->\n <script src=\"https://unpkg.com/react@16.8.4/umd/react.production.min.js\" crossorigin></script>\n <script src=\"https://unpkg.com/react-dom@16.8.4/umd/react-dom.production.min.js\" crossorigin></script>\n <script src=\"https://unpkg.com/redux@3.7.2/dist/redux.js\" crossorigin></script>\n <script src=\"https://unpkg.com/react-redux@7.1.3/dist/react-redux.min.js\" crossorigin></script>\n <script src=\"https://unpkg.com/styled-components@4.1.3/dist/styled-components.min.js\" crossorigin></script>\n\n <!-- Load Kepler.gl -->\n <script src=\"https://unpkg.com/kepler.gl@".concat(version, "/umd/keplergl.min.js\" crossorigin></script>\n\n <style type=\"text/css\">\n body {margin: 0; padding: 0; overflow: hidden;}\n </style>\n\n <!--MapBox token-->\n <script>\n /**\n * Provide your MapBox Token\n **/\n const MAPBOX_TOKEN = '").concat(options.mapboxApiAccessToken || 'PROVIDE_MAPBOX_TOKEN', "';\n const WARNING_MESSAGE = 'Please Provide a Mapbox Token in order to use Kepler.gl. Edit this file and fill out MAPBOX_TOKEN with your access key';\n </script>\n\n <!-- GA: Delete this as you wish, However to pat ourselves on the back, we only track anonymous pageview to understand how many people are using kepler.gl. -->\n <script>\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');\n ga('create', 'UA-64694404-19', {\n 'storage': 'none',\n 'clientId': localStorage.getItem('ga:clientId')\n });\n ga(function(tracker) {\n localStorage.setItem('ga:clientId', tracker.get('clientId'));\n });\n ga('set', 'checkProtocolTask', null); // Disable file protocol checking.\n ga('set', 'checkStorageTask', null); // Disable cookie storage checking.\n ga('set', 'historyImportTask', null); // Disable history checking (requires reading from cookies).\n ga('set', 'page', 'keplergl-html');\n ga('send', 'pageview');\n </script>\n </head>\n <body>\n <!-- We will put our React component inside this div. -->\n <div id=\"app\">\n <!-- Kepler.gl map will be placed here-->\n </div>\n\n <!-- Load our React component. -->\n <script>\n /* Validate Mapbox Token */\n if ((MAPBOX_TOKEN || '') === '' || MAPBOX_TOKEN === 'PROVIDE_MAPBOX_TOKEN') {\n alert(WARNING_MESSAGE);\n }\n\n /** STORE **/\n const reducers = (function createReducers(redux, keplerGl) {\n return redux.combineReducers({\n // mount keplerGl reducer\n keplerGl: keplerGl.keplerGlReducer.initialState({\n uiState: {\n readOnly: ").concat(options.mode === _defaultSettings.EXPORT_HTML_MAP_MODES.READ, ",\n currentModal: null\n }\n })\n });\n }(Redux, KeplerGl));\n\n const middleWares = (function createMiddlewares(keplerGl) {\n return keplerGl.enhanceReduxMiddleware([\n // Add other middlewares here\n ]);\n }(KeplerGl));\n\n const enhancers = (function craeteEnhancers(redux, middles) {\n return redux.applyMiddleware(...middles);\n }(Redux, middleWares));\n\n const store = (function createStore(redux, enhancers) {\n const initialState = {};\n\n return redux.createStore(\n reducers,\n initialState,\n redux.compose(enhancers)\n );\n }(Redux, enhancers));\n /** END STORE **/\n\n /** COMPONENTS **/\n var KeplerElement = (function makeKeplerElement(react, keplerGl, mapboxToken) {\n var LogoSvg = function LogoSvg() {\n return react.createElement(\n \"div\",\n { className: \"logo-container\", style: {position: 'fixed', zIndex: 10000, padding: '4px'} },\n react.createElement(\n \"svg\",\n {\n className: \"kepler_gl__logo\",\n width: \"107px\",\n height: \"21px\",\n viewBox: \"0 0 124 24\"\n },\n react.createElement(\n \"g\",\n { transform: \"translate(13.500000, 13.500000) rotate(45.000000) translate(-13.500000, -13.500000) translate(4.000000, 4.000000)\" },\n react.createElement(\"rect\", { x: \"0\", y: \"6\", transform: \"matrix(2.535181e-06 1 -1 2.535181e-06 18.1107 6.0369)\", fill: \"#535C6C\", width: \"12.1\", height: \"12.1\" }),\n react.createElement(\"rect\", { x: \"6\", y: \"0\", transform: \"matrix(2.535182e-06 1 -1 2.535182e-06 18.1107 -6.0369)\", fill:\"#1FBAD6\", width: \"12.1\", height: \"12.1\" })\n ),\n react.createElement(\n \"g\",\n {},\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M39,8.7h2.2l-2.8,4.2l2.9,5.1H39l-2.4-4.2h-1.3V18h-2V5l2-0.1v7.3h1.3L39,8.7z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M42.4,13.3c0-1.5,0.4-2.7,1.1-3.5s1.8-1.2,3.1-1.2c1.3,0,2.2,0.4,2.8,1.1c0.6,0.7,0.9,1.8,0.9,3.3 c0,0.4,0,0.8,0,1.1h-5.8c0,1.6,0.8,2.4,2.4,2.4c1,0,2-0.2,2.9-0.6l0.2,1.7c-0.4,0.2-0.9,0.4-1.4,0.5s-1.1,0.2-1.7,0.2 c-1.5,0-2.6-0.4-3.3-1.2C42.8,16.1,42.4,14.9,42.4,13.3z M46.6,10.1c-0.7,0-1.2,0.2-1.5,0.5c-0.4,0.4-0.6,0.9-0.6,1.7h4 c0-0.8-0.2-1.4-0.5-1.7S47.2,10.1,46.6,10.1z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M57.1,18.2c-1,0-1.8-0.3-2.3-0.9l0,0l0,1.3v2.5h-2V8.7h1.5l0.3,0.9h0c0.3-0.3,0.7-0.6,1.2-0.7 c0.4-0.2,0.9-0.3,1.4-0.3c1.2,0,2.1,0.4,2.7,1.1c0.6,0.7,0.9,2,0.9,3.7c0,1.6-0.3,2.8-1,3.7C59.2,17.8,58.3,18.2,57.1,18.2z M56.7,10.3c-0.4,0-0.8,0.1-1.1,0.2c-0.3,0.2-0.6,0.4-0.8,0.7v4.3c0.2,0.3,0.4,0.5,0.7,0.7c0.3,0.2,0.7,0.3,1.1,0.3 c0.7,0,1.2-0.2,1.6-0.7c0.4-0.5,0.5-1.3,0.5-2.5c0-0.8-0.1-1.4-0.2-1.8s-0.4-0.7-0.7-0.9C57.6,10.4,57.2,10.3,56.7,10.3z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M63.2,16V5l2-0.1v10.8c0,0.3,0.1,0.5,0.2,0.6c0.1,0.1,0.3,0.2,0.6,0.2c0.3,0,0.6,0,0.9-0.1V18 c-0.4,0.1-1,0.2-1.6,0.2c-0.8,0-1.3-0.2-1.7-0.5S63.2,16.8,63.2,16z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M68.2,13.3c0-1.5,0.4-2.7,1.1-3.5c0.7-0.8,1.8-1.2,3.1-1.2c1.3,0,2.2,0.4,2.8,1.1c0.6,0.7,0.9,1.8,0.9,3.3 c0,0.4,0,0.8,0,1.1h-5.8c0,1.6,0.8,2.4,2.4,2.4c1,0,2-0.2,2.9-0.6l0.2,1.7c-0.4,0.2-0.9,0.4-1.4,0.5s-1.1,0.2-1.7,0.2 c-1.5,0-2.6-0.4-3.3-1.2C68.6,16.1,68.2,14.9,68.2,13.3z M72.4,10.1c-0.7,0-1.2,0.2-1.5,0.5c-0.4,0.4-0.6,0.9-0.6,1.7h4 c0-0.8-0.2-1.4-0.5-1.7S73,10.1,72.4,10.1z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M80.2,8.7l0.1,1.7h0c0.3-0.6,0.7-1.1,1.1-1.4c0.4-0.3,1-0.5,1.6-0.5c0.4,0,0.7,0,1,0.1l-0.1,2 c-0.3-0.1-0.7-0.2-1-0.2c-0.7,0-1.3,0.3-1.7,0.8c-0.4,0.5-0.7,1.2-0.7,2.1V18h-2V8.7H80.2z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M83.8,17c0-0.8,0.4-1.2,1.2-1.2c0.8,0,1.2,0.4,1.2,1.2c0,0.8-0.4,1.1-1.2,1.1C84.2,18.2,83.8,17.8,83.8,17z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M88.5,18.7c0-0.8,0.4-1.4,1.2-1.8c-0.6-0.3-0.9-0.8-0.9-1.5c0-0.7,0.4-1.2,1.1-1.6c-0.3-0.3-0.6-0.6-0.7-0.9 c-0.2-0.4-0.2-0.8-0.2-1.3c0-1,0.3-1.8,0.9-2.3c0.6-0.5,1.6-0.8,2.8-0.8c0.5,0,1,0,1.4,0.1c0.4,0.1,0.8,0.2,1.1,0.4l2.4-0.2v1.5 h-1.5c0.2,0.4,0.2,0.8,0.2,1.3c0,1-0.3,1.7-0.9,2.2s-1.5,0.8-2.7,0.8c-0.7,0-1.2-0.1-1.6-0.2c-0.1,0.1-0.2,0.2-0.3,0.3 c-0.1,0.1-0.1,0.2-0.1,0.4c0,0.2,0.1,0.3,0.2,0.4c0.1,0.1,0.3,0.2,0.6,0.2l2.7,0.2c1,0.1,1.7,0.3,2.2,0.6c0.5,0.3,0.8,0.9,0.8,1.7 c0,0.6-0.2,1.1-0.5,1.5c-0.4,0.4-0.9,0.8-1.5,1c-0.7,0.2-1.5,0.4-2.4,0.4c-1.3,0-2.3-0.2-3-0.6C88.8,20.1,88.5,19.5,88.5,18.7z M95.1,18.4c0-0.3-0.1-0.5-0.3-0.7s-0.6-0.2-1.1-0.3l-2.7-0.3c-0.2,0.1-0.4,0.3-0.5,0.5c-0.1,0.2-0.2,0.4-0.2,0.6 c0,0.4,0.2,0.8,0.5,1c0.4,0.2,1,0.3,1.8,0.3C94.2,19.5,95.1,19.2,95.1,18.4z M94.3,11.5c0-0.6-0.1-1-0.4-1.2 c-0.3-0.2-0.7-0.3-1.3-0.3c-0.7,0-1.1,0.1-1.4,0.3c-0.3,0.2-0.4,0.6-0.4,1.2s0.1,1,0.4,1.2c0.3,0.2,0.7,0.3,1.4,0.3 c0.6,0,1.1-0.1,1.3-0.4S94.3,12,94.3,11.5z\" }),\n react.createElement(\"path\", { fill:\"#1FBAD6\", d: \"M99.4,16V5l2-0.1v10.8c0,0.3,0.1,0.5,0.2,0.6c0.1,0.1,0.3,0.2,0.6,0.2c0.3,0,0.6,0,0.9-0.1V18 c-0.4,0.1-1,0.2-1.6,0.2c-0.8,0-1.3-0.2-1.7-0.5S99.4,16.8,99.4,16z\" })\n )\n )\n );\n };\n\n return function App() {\n var rootElm = react.useRef(null);\n var _useState = react.useState({\n width: window.innerWidth,\n height: window.innerHeight\n });\n var windowDimension = _useState[0];\n var setDimension = _useState[1];\n react.useEffect(function sideEffect(){\n function handleResize() {\n setDimension({width: window.innerWidth, height: window.innerHeight});\n };\n window.addEventListener('resize', handleResize);\n return function() {window.removeEventListener('resize', handleResize);};\n }, []);\n return react.createElement(\n 'div',\n {style: {position: 'absolute', left: 0, width: '100vw', height: '100vh'}},\n ").concat(options.mode === _defaultSettings.EXPORT_HTML_MAP_MODES.READ ? 'LogoSvg(),' : '', "\n react.createElement(keplerGl.KeplerGl, {\n mapboxApiAccessToken: mapboxToken,\n id: \"map\",\n width: windowDimension.width,\n height: windowDimension.height\n })\n )\n }\n }(React, KeplerGl, MAPBOX_TOKEN));\n\n const app = (function createReactReduxProvider(react, reactRedux, KeplerElement) {\n return react.createElement(\n reactRedux.Provider,\n {store},\n react.createElement(KeplerElement, null)\n )\n }(React, ReactRedux, KeplerElement));\n /** END COMPONENTS **/\n\n /** Render **/\n (function render(react, reactDOM, app) {\n reactDOM.render(app, document.getElementById('app'));\n }(React, ReactDOM, app));\n </script>\n <!-- The next script will show how to interact directly with Kepler map store -->\n <script>\n /**\n * Customize map.\n * In the following section you can use the store object to dispatch Kepler.gl actions\n * to add new data and customize behavior\n */\n (function customize(keplerGl, store) {\n const datasets = ").concat(JSON.stringify(options.datasets), ";\n const config = ").concat(JSON.stringify(options.config), ";\n\n const loadedData = keplerGl.KeplerGlSchema.load(\n datasets,\n config\n );\n\n store.dispatch(keplerGl.addDataToMap({\n datasets: loadedData.datasets,\n config: loadedData.config,\n options: {\n centerMap: false\n }\n }));\n }(KeplerGl, store))\n </script>\n </body>\n </html>\n ");
|
|
41
42
|
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdFNldHRpbmdzIiwicmVxdWlyZSIsImV4cG9ydE1hcFRvSFRNTCIsImV4cG9ydHMiLCJvcHRpb25zIiwidmVyc2lvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIktFUExFUl9HTF9WRVJTSU9OIiwiY29uY2F0IiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtb2RlIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhc2V0cyIsImNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZXMvZXhwb3J0LW1hcC1odG1sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQge0tFUExFUl9HTF9WRVJTSU9OLCBFWFBPUlRfSFRNTF9NQVBfTU9ERVN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBodG1sIGZpbGUgd2hpY2ggd2lsbCBpbmxjdWRlIGtlcGxlciBhbmQgbWFwIGRhdGFcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIE9iamVjdCB0aGF0IGNvbGxlY3RzIGFsbCBuZWNlc3NhcnkgZGF0YSB0byAgY3JlYXRlIHRoZSBodG1sIGZpbGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm1hcGJveEFwaUFjY2Vzc1Rva2VuIE1hcGJveCB0b2tlbiB1c2VkIHRvIGZldGNoIG1hcGJveCB0aWxlc1xuICogQHBhcmFtIHtBcnJheTxPYmplY3Q+fSBvcHRpb25zLmRhdGFzZXRzIERhdGEgdG8gaW5jbHVkZSBpbiB0aGUgbWFwXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5jb25maWcgdGhpcyBvYmplY3Qgd2lsbCBjb250YWluIHRoZSBmdWxsIGtlcGxlci5nbCBpbnN0YW5jZSBjb25maWd1cmF0aW9uIHttYXBTdGF0ZSwgbWFwU3R5bGUsIHZpc1N0YXRlfVxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNpb24gd2hpY2ggdmVyc2lvbiBvZiBLZXBsZXIuZ2wgdG8gbG9hZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGV4cG9ydE1hcFRvSFRNTCA9IChvcHRpb25zLCB2ZXJzaW9uID0gS0VQTEVSX0dMX1ZFUlNJT04pID0+IHtcbiAgcmV0dXJuIGBcbiAgICA8IURPQ1RZUEUgaHRtbD5cbiAgICA8aHRtbD5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8bWV0YSBjaGFyc2V0PVwiVVRGLThcIi8+XG4gICAgICAgIDx0aXRsZT5LZXBsZXIuZ2wgZW1iZWRkZWQgbWFwPC90aXRsZT5cblxuICAgICAgICA8IS0tVWJlciBGb250LS0+XG4gICAgICAgIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiaHR0cHM6Ly9kMWEzZjRzcGF6enJwNC5jbG91ZGZyb250Lm5ldC9rZXBsZXIuZ2wvdWJlci1mb250cy80LjAuMC9zdXBlcmZpbmUuY3NzXCI+XG5cbiAgICAgICAgPCEtLU1hcEJveCBjc3MtLT5cbiAgICAgICAgPGxpbmsgaHJlZj1cImh0dHBzOi8vYXBpLnRpbGVzLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3YxLjEuMS9tYXBib3gtZ2wuY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiPlxuXG4gICAgICAgIDwhLeKAlCBmYWNlYm9vayBvcGVuIGdyYXBoIHRhZ3MgLS0+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6dXJsXCIgY29udGVudD1cImh0dHA6Ly9rZXBsZXIuZ2wvXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzp0aXRsZVwiIGNvbnRlbnQ9XCJMYXJnZS1zY2FsZSBXZWJHTC1wb3dlcmVkIEdlb3NwYXRpYWwgRGF0YSBWaXN1YWxpemF0aW9uIFRvb2xcIiAvPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOmRlc2NyaXB0aW9uXCIgY29udGVudD1cIktlcGxlci5nbCBpcyBhIHBvd2VyZnVsIHdlYi1iYXNlZCBnZW9zcGF0aWFsIGRhdGEgYW5hbHlzaXMgdG9vbC4gQnVpbHQgb24gYSBoaWdoIHBlcmZvcm1hbmNlIHJlbmRlcmluZyBlbmdpbmUgYW5kIGRlc2lnbmVkIGZvciBsYXJnZS1zY2FsZSBkYXRhIHNldHMuXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzpzaXRlX25hbWVcIiBjb250ZW50PVwia2VwbGVyLmdsXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzppbWFnZVwiIGNvbnRlbnQ9XCJodHRwczovL2QxYTNmNHNwYXp6cnA0LmNsb3VkZnJvbnQubmV0L2tlcGxlci5nbC9rZXBsZXIuZ2wtbWV0YS10YWcucG5nXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzppbWFnZTp0eXBlXCIgY29udGVudD1cImltYWdlL3BuZ1wiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6aW1hZ2U6d2lkdGhcIiBjb250ZW50PVwiODAwXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzppbWFnZTpoZWlnaHRcIiBjb250ZW50PVwiODAwXCIgLz5cblxuICAgICAgICA8IS3igJQgdHdpdHRlciBjYXJkIHRhZ3MgLS0+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJ0d2l0dGVyOmNhcmRcIiBjb250ZW50PVwic3VtbWFyeV9sYXJnZV9pbWFnZVwiPlxuICAgICAgICA8bWV0YSBuYW1lPVwidHdpdHRlcjpzaXRlXCIgY29udGVudD1cIkB1YmVyXCI+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJ0d2l0dGVyOmNyZWF0b3JcIiBjb250ZW50PVwiQHViZXJcIj5cbiAgICAgICAgPG1ldGEgbmFtZT1cInR3aXR0ZXI6dGl0bGVcIiBjb250ZW50PVwiTGFyZ2Utc2NhbGUgV2ViR0wtcG93ZXJlZCBHZW9zcGF0aWFsIERhdGEgVmlzdWFsaXphdGlvbiBUb29sXCI+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJ0d2l0dGVyOmRlc2NyaXB0aW9uXCIgY29udGVudD1cIktlcGxlci5nbCBpcyBhIHBvd2VyZnVsIHdlYi1iYXNlZCBnZW9zcGF0aWFsIGRhdGEgYW5hbHlzaXMgdG9vbC4gQnVpbHQgb24gYSBoaWdoIHBlcmZvcm1hbmNlIHJlbmRlcmluZyBlbmdpbmUgYW5kIGRlc2lnbmVkIGZvciBsYXJnZS1zY2FsZSBkYXRhIHNldHMuXCI+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJ0d2l0dGVyOmltYWdlXCIgY29udGVudD1cImh0dHBzOi8vZDFhM2Y0c3BhenpycDQuY2xvdWRmcm9udC5uZXQva2VwbGVyLmdsL2tlcGxlci5nbC1tZXRhLXRhZy5wbmdcIiAvPlxuXG4gICAgICAgIDwhLS0gTG9hZCBSZWFjdC9SZWR1eCAtLT5cbiAgICAgICAgPHNjcmlwdCBzcmM9XCJodHRwczovL3VucGtnLmNvbS9yZWFjdEAxNi44LjQvdW1kL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIgY3Jvc3NvcmlnaW4+PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly91bnBrZy5jb20vcmVhY3QtZG9tQDE2LjguNC91bWQvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXCIgY3Jvc3NvcmlnaW4+PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly91bnBrZy5jb20vcmVkdXhAMy43LjIvZGlzdC9yZWR1eC5qc1wiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL3JlYWN0LXJlZHV4QDcuMS4zL2Rpc3QvcmVhY3QtcmVkdXgubWluLmpzXCIgY3Jvc3NvcmlnaW4+PC9zY3JpcHQ+XG4gICAgICAgIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly91bnBrZy5jb20vc3R5bGVkLWNvbXBvbmVudHNANC4xLjMvZGlzdC9zdHlsZWQtY29tcG9uZW50cy5taW4uanNcIiBjcm9zc29yaWdpbj48L3NjcmlwdD5cblxuICAgICAgICA8IS0tIExvYWQgS2VwbGVyLmdsIC0tPlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL2tlcGxlci5nbEAke3ZlcnNpb259L3VtZC9rZXBsZXJnbC5taW4uanNcIiBjcm9zc29yaWdpbj48L3NjcmlwdD5cblxuICAgICAgICA8c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+XG4gICAgICAgICAgYm9keSB7bWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBvdmVyZmxvdzogaGlkZGVuO31cbiAgICAgICAgPC9zdHlsZT5cblxuICAgICAgICA8IS0tTWFwQm94IHRva2VuLS0+XG4gICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogUHJvdmlkZSB5b3VyIE1hcEJveCBUb2tlblxuICAgICAgICAgICAqKi9cbiAgICAgICAgICBjb25zdCBNQVBCT1hfVE9LRU4gPSAnJHtvcHRpb25zLm1hcGJveEFwaUFjY2Vzc1Rva2VuIHx8ICdQUk9WSURFX01BUEJPWF9UT0tFTid9JztcbiAgICAgICAgICBjb25zdCBXQVJOSU5HX01FU1NBR0UgPSAnUGxlYXNlIFByb3ZpZGUgYSBNYXBib3ggVG9rZW4gaW4gb3JkZXIgdG8gdXNlIEtlcGxlci5nbC4gRWRpdCB0aGlzIGZpbGUgYW5kIGZpbGwgb3V0IE1BUEJPWF9UT0tFTiB3aXRoIHlvdXIgYWNjZXNzIGtleSc7XG4gICAgICAgIDwvc2NyaXB0PlxuXG4gICAgICAgIDwhLS0gR0E6IERlbGV0ZSB0aGlzIGFzIHlvdSB3aXNoLCBIb3dldmVyIHRvIHBhdCBvdXJzZWx2ZXMgb24gdGhlIGJhY2ssIHdlIG9ubHkgdHJhY2sgYW5vbnltb3VzIHBhZ2V2aWV3IHRvIHVuZGVyc3RhbmQgaG93IG1hbnkgcGVvcGxlIGFyZSB1c2luZyBrZXBsZXIuZ2wuIC0tPlxuICAgICAgICA8c2NyaXB0PlxuICAgICAgICAgIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXtcbiAgICAgICAgICAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSxcbiAgICAgICAgICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pXG4gICAgICAgICAgfSkod2luZG93LGRvY3VtZW50LCdzY3JpcHQnLCdodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCdnYScpO1xuICAgICAgICAgIGdhKCdjcmVhdGUnLCAnVUEtNjQ2OTQ0MDQtMTknLCB7XG4gICAgICAgICAgICAnc3RvcmFnZSc6ICdub25lJyxcbiAgICAgICAgICAgICdjbGllbnRJZCc6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnYTpjbGllbnRJZCcpXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZ2EoZnVuY3Rpb24odHJhY2tlcikge1xuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2E6Y2xpZW50SWQnLCB0cmFja2VyLmdldCgnY2xpZW50SWQnKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZ2EoJ3NldCcsICdjaGVja1Byb3RvY29sVGFzaycsIG51bGwpOyAvLyBEaXNhYmxlIGZpbGUgcHJvdG9jb2wgY2hlY2tpbmcuXG4gICAgICAgICAgZ2EoJ3NldCcsICdjaGVja1N0b3JhZ2VUYXNrJywgbnVsbCk7IC8vIERpc2FibGUgY29va2llIHN0b3JhZ2UgY2hlY2tpbmcuXG4gICAgICAgICAgZ2EoJ3NldCcsICdoaXN0b3J5SW1wb3J0VGFzaycsIG51bGwpOyAvLyBEaXNhYmxlIGhpc3RvcnkgY2hlY2tpbmcgKHJlcXVpcmVzIHJlYWRpbmcgZnJvbSBjb29raWVzKS5cbiAgICAgICAgICBnYSgnc2V0JywgJ3BhZ2UnLCAna2VwbGVyZ2wtaHRtbCcpO1xuICAgICAgICAgIGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgPC9oZWFkPlxuICAgICAgPGJvZHk+XG4gICAgICAgIDwhLS0gV2Ugd2lsbCBwdXQgb3VyIFJlYWN0IGNvbXBvbmVudCBpbnNpZGUgdGhpcyBkaXYuIC0tPlxuICAgICAgICA8ZGl2IGlkPVwiYXBwXCI+XG4gICAgICAgICAgPCEtLSBLZXBsZXIuZ2wgbWFwIHdpbGwgYmUgcGxhY2VkIGhlcmUtLT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBMb2FkIG91ciBSZWFjdCBjb21wb25lbnQuIC0tPlxuICAgICAgICA8c2NyaXB0PlxuICAgICAgICAgIC8qIFZhbGlkYXRlIE1hcGJveCBUb2tlbiAqL1xuICAgICAgICAgIGlmICgoTUFQQk9YX1RPS0VOIHx8ICcnKSA9PT0gJycgfHwgTUFQQk9YX1RPS0VOID09PSAnUFJPVklERV9NQVBCT1hfVE9LRU4nKSB7XG4gICAgICAgICAgICBhbGVydChXQVJOSU5HX01FU1NBR0UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8qKiBTVE9SRSAqKi9cbiAgICAgICAgICBjb25zdCByZWR1Y2VycyA9IChmdW5jdGlvbiBjcmVhdGVSZWR1Y2VycyhyZWR1eCwga2VwbGVyR2wpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1eC5jb21iaW5lUmVkdWNlcnMoe1xuICAgICAgICAgICAgICAvLyBtb3VudCBrZXBsZXJHbCByZWR1Y2VyXG4gICAgICAgICAgICAgIGtlcGxlckdsOiBrZXBsZXJHbC5rZXBsZXJHbFJlZHVjZXIuaW5pdGlhbFN0YXRlKHtcbiAgICAgICAgICAgICAgICB1aVN0YXRlOiB7XG4gICAgICAgICAgICAgICAgICByZWFkT25seTogJHtvcHRpb25zLm1vZGUgPT09IEVYUE9SVF9IVE1MX01BUF9NT0RFUy5SRUFEfSxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RhbDogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0oUmVkdXgsIEtlcGxlckdsKSk7XG5cbiAgICAgICAgICBjb25zdCBtaWRkbGVXYXJlcyA9IChmdW5jdGlvbiBjcmVhdGVNaWRkbGV3YXJlcyhrZXBsZXJHbCkge1xuICAgICAgICAgICAgcmV0dXJuIGtlcGxlckdsLmVuaGFuY2VSZWR1eE1pZGRsZXdhcmUoW1xuICAgICAgICAgICAgICAvLyBBZGQgb3RoZXIgbWlkZGxld2FyZXMgaGVyZVxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgfShLZXBsZXJHbCkpO1xuXG4gICAgICAgICAgY29uc3QgZW5oYW5jZXJzID0gKGZ1bmN0aW9uIGNyYWV0ZUVuaGFuY2VycyhyZWR1eCwgbWlkZGxlcykge1xuICAgICAgICAgICAgcmV0dXJuIHJlZHV4LmFwcGx5TWlkZGxld2FyZSguLi5taWRkbGVzKTtcbiAgICAgICAgICB9KFJlZHV4LCBtaWRkbGVXYXJlcykpO1xuXG4gICAgICAgICAgY29uc3Qgc3RvcmUgPSAoZnVuY3Rpb24gY3JlYXRlU3RvcmUocmVkdXgsIGVuaGFuY2Vycykge1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG5cbiAgICAgICAgICAgIHJldHVybiByZWR1eC5jcmVhdGVTdG9yZShcbiAgICAgICAgICAgICAgcmVkdWNlcnMsXG4gICAgICAgICAgICAgIGluaXRpYWxTdGF0ZSxcbiAgICAgICAgICAgICAgcmVkdXguY29tcG9zZShlbmhhbmNlcnMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0oUmVkdXgsIGVuaGFuY2VycykpO1xuICAgICAgICAgIC8qKiBFTkQgU1RPUkUgKiovXG5cbiAgICAgICAgICAvKiogQ09NUE9ORU5UUyAqKi9cbiAgICAgICAgICB2YXIgS2VwbGVyRWxlbWVudCA9IChmdW5jdGlvbiBtYWtlS2VwbGVyRWxlbWVudChyZWFjdCwga2VwbGVyR2wsIG1hcGJveFRva2VuKSB7XG4gICAgICAgICAgICB2YXIgTG9nb1N2ZyA9IGZ1bmN0aW9uIExvZ29TdmcoKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6IFwibG9nby1jb250YWluZXJcIiwgc3R5bGU6IHtwb3NpdGlvbjogJ2ZpeGVkJywgekluZGV4OiAxMDAwMCwgcGFkZGluZzogJzRweCd9IH0sXG4gICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBcInN2Z1wiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImtlcGxlcl9nbF9fbG9nb1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwN3B4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjIxcHhcIixcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAxMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgIFwiZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHsgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxMy41MDAwMDAsIDEzLjUwMDAwMCkgcm90YXRlKDQ1LjAwMDAwMCkgdHJhbnNsYXRlKC0xMy41MDAwMDAsIC0xMy41MDAwMDApIHRyYW5zbGF0ZSg0LjAwMDAwMCwgNC4wMDAwMDApXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicmVjdFwiLCB7IHg6IFwiMFwiLCB5OiBcIjZcIiwgdHJhbnNmb3JtOiBcIm1hdHJpeCgyLjUzNTE4MWUtMDYgMSAtMSAyLjUzNTE4MWUtMDYgMTguMTEwNyA2LjAzNjkpXCIsIGZpbGw6IFwiIzUzNUM2Q1wiLCB3aWR0aDogXCIxMi4xXCIsIGhlaWdodDogXCIxMi4xXCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwgeyB4OiBcIjZcIiwgeTogXCIwXCIsIHRyYW5zZm9ybTogXCJtYXRyaXgoMi41MzUxODJlLTA2IDEgLTEgMi41MzUxODJlLTA2IDE4LjExMDcgLTYuMDM2OSlcIiwgZmlsbDpcIiMxRkJBRDZcIiwgd2lkdGg6IFwiMTIuMVwiLCBoZWlnaHQ6IFwiMTIuMVwiIH0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgXCJnXCIsXG4gICAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk0zOSw4LjdoMi4ybC0yLjgsNC4ybDIuOSw1LjFIMzlsLTIuNC00LjJoLTEuM1YxOGgtMlY1bDItMC4xdjcuM2gxLjNMMzksOC43elwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNNDIuNCwxMy4zYzAtMS41LDAuNC0yLjcsMS4xLTMuNXMxLjgtMS4yLDMuMS0xLjJjMS4zLDAsMi4yLDAuNCwyLjgsMS4xYzAuNiwwLjcsMC45LDEuOCwwLjksMy4zIGMwLDAuNCwwLDAuOCwwLDEuMWgtNS44YzAsMS42LDAuOCwyLjQsMi40LDIuNGMxLDAsMi0wLjIsMi45LTAuNmwwLjIsMS43Yy0wLjQsMC4yLTAuOSwwLjQtMS40LDAuNXMtMS4xLDAuMi0xLjcsMC4yIGMtMS41LDAtMi42LTAuNC0zLjMtMS4yQzQyLjgsMTYuMSw0Mi40LDE0LjksNDIuNCwxMy4zeiBNNDYuNiwxMC4xYy0wLjcsMC0xLjIsMC4yLTEuNSwwLjVjLTAuNCwwLjQtMC42LDAuOS0wLjYsMS43aDQgYzAtMC44LTAuMi0xLjQtMC41LTEuN1M0Ny4yLDEwLjEsNDYuNiwxMC4xelwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNNTcuMSwxOC4yYy0xLDAtMS44LTAuMy0yLjMtMC45bDAsMGwwLDEuM3YyLjVoLTJWOC43aDEuNWwwLjMsMC45aDBjMC4zLTAuMywwLjctMC42LDEuMi0wLjcgYzAuNC0wLjIsMC45LTAuMywxLjQtMC4zYzEuMiwwLDIuMSwwLjQsMi43LDEuMWMwLjYsMC43LDAuOSwyLDAuOSwzLjdjMCwxLjYtMC4zLDIuOC0xLDMuN0M1OS4yLDE3LjgsNTguMywxOC4yLDU3LjEsMTguMnogTTU2LjcsMTAuM2MtMC40LDAtMC44LDAuMS0xLjEsMC4yYy0wLjMsMC4yLTAuNiwwLjQtMC44LDAuN3Y0LjNjMC4yLDAuMywwLjQsMC41LDAuNywwLjdjMC4zLDAuMiwwLjcsMC4zLDEuMSwwLjMgYzAuNywwLDEuMi0wLjIsMS42LTAuN2MwLjQtMC41LDAuNS0xLjMsMC41LTIuNWMwLTAuOC0wLjEtMS40LTAuMi0xLjhzLTAuNC0wLjctMC43LTAuOUM1Ny42LDEwLjQsNTcuMiwxMC4zLDU2LjcsMTAuM3pcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTYzLjIsMTZWNWwyLTAuMXYxMC44YzAsMC4zLDAuMSwwLjUsMC4yLDAuNmMwLjEsMC4xLDAuMywwLjIsMC42LDAuMmMwLjMsMCwwLjYsMCwwLjktMC4xVjE4IGMtMC40LDAuMS0xLDAuMi0xLjYsMC4yYy0wLjgsMC0xLjMtMC4yLTEuNy0wLjVTNjMuMiwxNi44LDYzLjIsMTZ6XCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk02OC4yLDEzLjNjMC0xLjUsMC40LTIuNywxLjEtMy41YzAuNy0wLjgsMS44LTEuMiwzLjEtMS4yYzEuMywwLDIuMiwwLjQsMi44LDEuMWMwLjYsMC43LDAuOSwxLjgsMC45LDMuMyBjMCwwLjQsMCwwLjgsMCwxLjFoLTUuOGMwLDEuNiwwLjgsMi40LDIuNCwyLjRjMSwwLDItMC4yLDIuOS0wLjZsMC4yLDEuN2MtMC40LDAuMi0wLjksMC40LTEuNCwwLjVzLTEuMSwwLjItMS43LDAuMiBjLTEuNSwwLTIuNi0wLjQtMy4zLTEuMkM2OC42LDE2LjEsNjguMiwxNC45LDY4LjIsMTMuM3ogTTcyLjQsMTAuMWMtMC43LDAtMS4yLDAuMi0xLjUsMC41Yy0wLjQsMC40LTAuNiwwLjktMC42LDEuN2g0IGMwLTAuOC0wLjItMS40LTAuNS0xLjdTNzMsMTAuMSw3Mi40LDEwLjF6XCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk04MC4yLDguN2wwLjEsMS43aDBjMC4zLTAuNiwwLjctMS4xLDEuMS0xLjRjMC40LTAuMywxLTAuNSwxLjYtMC41YzAuNCwwLDAuNywwLDEsMC4xbC0wLjEsMiBjLTAuMy0wLjEtMC43LTAuMi0xLTAuMmMtMC43LDAtMS4zLDAuMy0xLjcsMC44Yy0wLjQsMC41LTAuNywxLjItMC43LDIuMVYxOGgtMlY4LjdIODAuMnpcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTgzLjgsMTdjMC0wLjgsMC40LTEuMiwxLjItMS4yYzAuOCwwLDEuMiwwLjQsMS4yLDEuMmMwLDAuOC0wLjQsMS4xLTEuMiwxLjFDODQuMiwxOC4yLDgzLjgsMTcuOCw4My44LDE3elwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNODguNSwxOC43YzAtMC44LDAuNC0xLjQsMS4yLTEuOGMtMC42LTAuMy0wLjktMC44LTAuOS0xLjVjMC0wLjcsMC40LTEuMiwxLjEtMS42Yy0wLjMtMC4zLTAuNi0wLjYtMC43LTAuOSBjLTAuMi0wLjQtMC4yLTAuOC0wLjItMS4zYzAtMSwwLjMtMS44LDAuOS0yLjNjMC42LTAuNSwxLjYtMC44LDIuOC0wLjhjMC41LDAsMSwwLDEuNCwwLjFjMC40LDAuMSwwLjgsMC4yLDEuMSwwLjRsMi40LTAuMnYxLjUgaC0xLjVjMC4yLDAuNCwwLjIsMC44LDAuMiwxLjNjMCwxLTAuMywxLjctMC45LDIuMnMtMS41LDAuOC0yLjcsMC44Yy0wLjcsMC0xLjItMC4xLTEuNi0wLjJjLTAuMSwwLjEtMC4yLDAuMi0wLjMsMC4zIGMtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjRjMCwwLjIsMC4xLDAuMywwLjIsMC40YzAuMSwwLjEsMC4zLDAuMiwwLjYsMC4ybDIuNywwLjJjMSwwLjEsMS43LDAuMywyLjIsMC42YzAuNSwwLjMsMC44LDAuOSwwLjgsMS43IGMwLDAuNi0wLjIsMS4xLTAuNSwxLjVjLTAuNCwwLjQtMC45LDAuOC0xLjUsMWMtMC43LDAuMi0xLjUsMC40LTIuNCwwLjRjLTEuMywwLTIuMy0wLjItMy0wLjZDODguOCwyMC4xLDg4LjUsMTkuNSw4OC41LDE4Ljd6IE05NS4xLDE4LjRjMC0wLjMtMC4xLTAuNS0wLjMtMC43cy0wLjYtMC4yLTEuMS0wLjNsLTIuNy0wLjNjLTAuMiwwLjEtMC40LDAuMy0wLjUsMC41Yy0wLjEsMC4yLTAuMiwwLjQtMC4yLDAuNiBjMCwwLjQsMC4yLDAuOCwwLjUsMWMwLjQsMC4yLDEsMC4zLDEuOCwwLjNDOTQuMiwxOS41LDk1LjEsMTkuMiw5NS4xLDE4LjR6IE05NC4zLDExLjVjMC0wLjYtMC4xLTEtMC40LTEuMiBjLTAuMy0wLjItMC43LTAuMy0xLjMtMC4zYy0wLjcsMC0xLjEsMC4xLTEuNCwwLjNjLTAuMywwLjItMC40LDAuNi0wLjQsMS4yczAuMSwxLDAuNCwxLjJjMC4zLDAuMiwwLjcsMC4zLDEuNCwwLjMgYzAuNiwwLDEuMS0wLjEsMS4zLTAuNFM5NC4zLDEyLDk0LjMsMTEuNXpcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTk5LjQsMTZWNWwyLTAuMXYxMC44YzAsMC4zLDAuMSwwLjUsMC4yLDAuNmMwLjEsMC4xLDAuMywwLjIsMC42LDAuMmMwLjMsMCwwLjYsMCwwLjktMC4xVjE4IGMtMC40LDAuMS0xLDAuMi0xLjYsMC4yYy0wLjgsMC0xLjMtMC4yLTEuNy0wLjVTOTkuNCwxNi44LDk5LjQsMTZ6XCIgfSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBBcHAoKSB7XG4gICAgICAgICAgICAgIHZhciByb290RWxtID0gcmVhY3QudXNlUmVmKG51bGwpO1xuICAgICAgICAgICAgICB2YXIgX3VzZVN0YXRlID0gcmVhY3QudXNlU3RhdGUoe1xuICAgICAgICAgICAgICAgIHdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdmFyIHdpbmRvd0RpbWVuc2lvbiA9IF91c2VTdGF0ZVswXTtcbiAgICAgICAgICAgICAgdmFyIHNldERpbWVuc2lvbiA9IF91c2VTdGF0ZVsxXTtcbiAgICAgICAgICAgICAgcmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uIHNpZGVFZmZlY3QoKXtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVSZXNpemUoKSB7XG4gICAgICAgICAgICAgICAgICBzZXREaW1lbnNpb24oe3dpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCwgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHR9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBoYW5kbGVSZXNpemUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVzaXplKTt9O1xuICAgICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICAgIHJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgICAgIHtzdHlsZToge3Bvc2l0aW9uOiAnYWJzb2x1dGUnLCBsZWZ0OiAwLCB3aWR0aDogJzEwMHZ3JywgaGVpZ2h0OiAnMTAwdmgnfX0sXG4gICAgICAgICAgICAgICAgJHtvcHRpb25zLm1vZGUgPT09IEVYUE9SVF9IVE1MX01BUF9NT0RFUy5SRUFEID8gJ0xvZ29TdmcoKSwnIDogJyd9XG4gICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChrZXBsZXJHbC5LZXBsZXJHbCwge1xuICAgICAgICAgICAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IG1hcGJveFRva2VuLFxuICAgICAgICAgICAgICAgICAgaWQ6IFwibWFwXCIsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93RGltZW5zaW9uLndpZHRoLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB3aW5kb3dEaW1lbnNpb24uaGVpZ2h0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0oUmVhY3QsIEtlcGxlckdsLCBNQVBCT1hfVE9LRU4pKTtcblxuICAgICAgICAgIGNvbnN0IGFwcCA9IChmdW5jdGlvbiBjcmVhdGVSZWFjdFJlZHV4UHJvdmlkZXIocmVhY3QsIHJlYWN0UmVkdXgsIEtlcGxlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICByZWFjdFJlZHV4LlByb3ZpZGVyLFxuICAgICAgICAgICAgICB7c3RvcmV9LFxuICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KEtlcGxlckVsZW1lbnQsIG51bGwpXG4gICAgICAgICAgICApXG4gICAgICAgICAgfShSZWFjdCwgUmVhY3RSZWR1eCwgS2VwbGVyRWxlbWVudCkpO1xuICAgICAgICAgIC8qKiBFTkQgQ09NUE9ORU5UUyAqKi9cblxuICAgICAgICAgIC8qKiBSZW5kZXIgKiovXG4gICAgICAgICAgKGZ1bmN0aW9uIHJlbmRlcihyZWFjdCwgcmVhY3RET00sIGFwcCkge1xuICAgICAgICAgICAgcmVhY3RET00ucmVuZGVyKGFwcCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcCcpKTtcbiAgICAgICAgICB9KFJlYWN0LCBSZWFjdERPTSwgYXBwKSk7XG4gICAgICAgIDwvc2NyaXB0PlxuICAgICAgICA8IS0tIFRoZSBuZXh0IHNjcmlwdCB3aWxsIHNob3cgaG93IHRvIGludGVyYWN0IGRpcmVjdGx5IHdpdGggS2VwbGVyIG1hcCBzdG9yZSAtLT5cbiAgICAgICAgPHNjcmlwdD5cbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBDdXN0b21pemUgbWFwLlxuICAgICAgICAgICAqIEluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiB5b3UgY2FuIHVzZSB0aGUgc3RvcmUgb2JqZWN0IHRvIGRpc3BhdGNoIEtlcGxlci5nbCBhY3Rpb25zXG4gICAgICAgICAgICogdG8gYWRkIG5ldyBkYXRhIGFuZCBjdXN0b21pemUgYmVoYXZpb3JcbiAgICAgICAgICAgKi9cbiAgICAgICAgICAoZnVuY3Rpb24gY3VzdG9taXplKGtlcGxlckdsLCBzdG9yZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0YXNldHMgPSAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuZGF0YXNldHMpfTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucy5jb25maWcpfTtcblxuICAgICAgICAgICAgY29uc3QgbG9hZGVkRGF0YSA9IGtlcGxlckdsLktlcGxlckdsU2NoZW1hLmxvYWQoXG4gICAgICAgICAgICAgIGRhdGFzZXRzLFxuICAgICAgICAgICAgICBjb25maWdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKGtlcGxlckdsLmFkZERhdGFUb01hcCh7XG4gICAgICAgICAgICAgIGRhdGFzZXRzOiBsb2FkZWREYXRhLmRhdGFzZXRzLFxuICAgICAgICAgICAgICBjb25maWc6IGxvYWRlZERhdGEuY29uZmlnLFxuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgY2VudGVyTWFwOiBmYWxzZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfShLZXBsZXJHbCwgc3RvcmUpKVxuICAgICAgICA8L3NjcmlwdD5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIGA7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFxQkEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUMsZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUUsT0FBTyxFQUFrQztFQUFBLElBQWhDQyxPQUFPLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHRyxrQ0FBaUI7RUFDbEUsa2hGQUFBQyxNQUFBLENBdUNpREwsT0FBTyw4VEFBQUssTUFBQSxDQVd4Qk4sT0FBTyxDQUFDTyxvQkFBb0IsSUFBSSxzQkFBc0IscWxFQUFBRCxNQUFBLENBMkMxRE4sT0FBTyxDQUFDUSxJQUFJLEtBQUtDLHNDQUFxQixDQUFDQyxJQUFJLDBvTkFBQUosTUFBQSxDQW1GdkROLE9BQU8sQ0FBQ1EsSUFBSSxLQUFLQyxzQ0FBcUIsQ0FBQ0MsSUFBSSxHQUFHLFlBQVksR0FBRyxFQUFFLHF4Q0FBQUosTUFBQSxDQWlDbERLLElBQUksQ0FBQ0MsU0FBUyxDQUFDWixPQUFPLENBQUNhLFFBQVEsQ0FBQyxvQ0FBQVAsTUFBQSxDQUNsQ0ssSUFBSSxDQUFDQyxTQUFTLENBQUNaLE9BQU8sQ0FBQ2MsTUFBTSxDQUFDO0FBbUIzRCxDQUFDIn0=
|
|
43
|
+
|
|
44
|
+
exports.exportMapToHTML = exportMapToHTML;
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZW1wbGF0ZXMvZXhwb3J0LW1hcC1odG1sLnRzIl0sIm5hbWVzIjpbImV4cG9ydE1hcFRvSFRNTCIsIm9wdGlvbnMiLCJ2ZXJzaW9uIiwiS0VQTEVSX0dMX1ZFUlNJT04iLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1vZGUiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERVMiLCJSRUFEIiwiSlNPTiIsInN0cmluZ2lmeSIsImRhdGFzZXRzIiwiY29uZmlnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBcUJBOztBQXJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLE9BQUQsRUFBMEM7QUFBQSxNQUFoQ0MsT0FBZ0MsdUVBQXRCQyxrQ0FBc0I7QUFDdkUsMmhGQXVDaURELE9BdkNqRCxxVUFrRGdDRCxPQUFPLENBQUNHLG9CQUFSLElBQWdDLHNCQWxEaEUsNGxFQTZGNEJILE9BQU8sQ0FBQ0ksSUFBUixLQUFpQkMsdUNBQXNCQyxJQTdGbkUsaXBOQWdMZ0JOLE9BQU8sQ0FBQ0ksSUFBUixLQUFpQkMsdUNBQXNCQyxJQUF2QyxHQUE4QyxZQUE5QyxHQUE2RCxFQWhMN0UsNHhDQWlONkJDLElBQUksQ0FBQ0MsU0FBTCxDQUFlUixPQUFPLENBQUNTLFFBQXZCLENBak43QiwyQ0FrTjJCRixJQUFJLENBQUNDLFNBQUwsQ0FBZVIsT0FBTyxDQUFDVSxNQUF2QixDQWxOM0I7QUFxT0QsQ0F0T00iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0IHtLRVBMRVJfR0xfVkVSU0lPTiwgRVhQT1JUX0hUTUxfTUFQX01PREVTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjcmVhdGUgYW4gaHRtbCBmaWxlIHdoaWNoIHdpbGwgaW5sY3VkZSBrZXBsZXIgYW5kIG1hcCBkYXRhXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBPYmplY3QgdGhhdCBjb2xsZWN0cyBhbGwgbmVjZXNzYXJ5IGRhdGEgdG8gIGNyZWF0ZSB0aGUgaHRtbCBmaWxlXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5tYXBib3hBcGlBY2Nlc3NUb2tlbiBNYXBib3ggdG9rZW4gdXNlZCB0byBmZXRjaCBtYXBib3ggdGlsZXNcbiAqIEBwYXJhbSB7QXJyYXk8T2JqZWN0Pn0gb3B0aW9ucy5kYXRhc2V0cyBEYXRhIHRvIGluY2x1ZGUgaW4gdGhlIG1hcFxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuY29uZmlnIHRoaXMgb2JqZWN0IHdpbGwgY29udGFpbiB0aGUgZnVsbCBrZXBsZXIuZ2wgaW5zdGFuY2UgY29uZmlndXJhdGlvbiB7bWFwU3RhdGUsIG1hcFN0eWxlLCB2aXNTdGF0ZX1cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzaW9uIHdoaWNoIHZlcnNpb24gb2YgS2VwbGVyLmdsIHRvIGxvYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBleHBvcnRNYXBUb0hUTUwgPSAob3B0aW9ucywgdmVyc2lvbiA9IEtFUExFUl9HTF9WRVJTSU9OKSA9PiB7XG4gIHJldHVybiBgXG4gICAgPCFET0NUWVBFIGh0bWw+XG4gICAgPGh0bWw+XG4gICAgICA8aGVhZD5cbiAgICAgICAgPG1ldGEgY2hhcnNldD1cIlVURi04XCIvPlxuICAgICAgICA8dGl0bGU+S2VwbGVyLmdsIGVtYmVkZGVkIG1hcDwvdGl0bGU+XG5cbiAgICAgICAgPCEtLVViZXIgRm9udC0tPlxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8vZDFhM2Y0c3BhenpycDQuY2xvdWRmcm9udC5uZXQva2VwbGVyLmdsL3ViZXItZm9udHMvNC4wLjAvc3VwZXJmaW5lLmNzc1wiPlxuXG4gICAgICAgIDwhLS1NYXBCb3ggY3NzLS0+XG4gICAgICAgIDxsaW5rIGhyZWY9XCJodHRwczovL2FwaS50aWxlcy5tYXBib3guY29tL21hcGJveC1nbC1qcy92MS4xLjEvbWFwYm94LWdsLmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIj5cblxuICAgICAgICA8IS3igJQgZmFjZWJvb2sgb3BlbiBncmFwaCB0YWdzIC0tPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOnVybFwiIGNvbnRlbnQ9XCJodHRwOi8va2VwbGVyLmdsL1wiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6dGl0bGVcIiBjb250ZW50PVwiTGFyZ2Utc2NhbGUgV2ViR0wtcG93ZXJlZCBHZW9zcGF0aWFsIERhdGEgVmlzdWFsaXphdGlvbiBUb29sXCIgLz5cbiAgICAgICAgPG1ldGEgcHJvcGVydHk9XCJvZzpkZXNjcmlwdGlvblwiIGNvbnRlbnQ9XCJLZXBsZXIuZ2wgaXMgYSBwb3dlcmZ1bCB3ZWItYmFzZWQgZ2Vvc3BhdGlhbCBkYXRhIGFuYWx5c2lzIHRvb2wuIEJ1aWx0IG9uIGEgaGlnaCBwZXJmb3JtYW5jZSByZW5kZXJpbmcgZW5naW5lIGFuZCBkZXNpZ25lZCBmb3IgbGFyZ2Utc2NhbGUgZGF0YSBzZXRzLlwiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6c2l0ZV9uYW1lXCIgY29udGVudD1cImtlcGxlci5nbFwiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6aW1hZ2VcIiBjb250ZW50PVwiaHR0cHM6Ly9kMWEzZjRzcGF6enJwNC5jbG91ZGZyb250Lm5ldC9rZXBsZXIuZ2wva2VwbGVyLmdsLW1ldGEtdGFnLnBuZ1wiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6aW1hZ2U6dHlwZVwiIGNvbnRlbnQ9XCJpbWFnZS9wbmdcIiAvPlxuICAgICAgICA8bWV0YSBwcm9wZXJ0eT1cIm9nOmltYWdlOndpZHRoXCIgY29udGVudD1cIjgwMFwiIC8+XG4gICAgICAgIDxtZXRhIHByb3BlcnR5PVwib2c6aW1hZ2U6aGVpZ2h0XCIgY29udGVudD1cIjgwMFwiIC8+XG5cbiAgICAgICAgPCEt4oCUIHR3aXR0ZXIgY2FyZCB0YWdzIC0tPlxuICAgICAgICA8bWV0YSBuYW1lPVwidHdpdHRlcjpjYXJkXCIgY29udGVudD1cInN1bW1hcnlfbGFyZ2VfaW1hZ2VcIj5cbiAgICAgICAgPG1ldGEgbmFtZT1cInR3aXR0ZXI6c2l0ZVwiIGNvbnRlbnQ9XCJAdWJlclwiPlxuICAgICAgICA8bWV0YSBuYW1lPVwidHdpdHRlcjpjcmVhdG9yXCIgY29udGVudD1cIkB1YmVyXCI+XG4gICAgICAgIDxtZXRhIG5hbWU9XCJ0d2l0dGVyOnRpdGxlXCIgY29udGVudD1cIkxhcmdlLXNjYWxlIFdlYkdMLXBvd2VyZWQgR2Vvc3BhdGlhbCBEYXRhIFZpc3VhbGl6YXRpb24gVG9vbFwiPlxuICAgICAgICA8bWV0YSBuYW1lPVwidHdpdHRlcjpkZXNjcmlwdGlvblwiIGNvbnRlbnQ9XCJLZXBsZXIuZ2wgaXMgYSBwb3dlcmZ1bCB3ZWItYmFzZWQgZ2Vvc3BhdGlhbCBkYXRhIGFuYWx5c2lzIHRvb2wuIEJ1aWx0IG9uIGEgaGlnaCBwZXJmb3JtYW5jZSByZW5kZXJpbmcgZW5naW5lIGFuZCBkZXNpZ25lZCBmb3IgbGFyZ2Utc2NhbGUgZGF0YSBzZXRzLlwiPlxuICAgICAgICA8bWV0YSBuYW1lPVwidHdpdHRlcjppbWFnZVwiIGNvbnRlbnQ9XCJodHRwczovL2QxYTNmNHNwYXp6cnA0LmNsb3VkZnJvbnQubmV0L2tlcGxlci5nbC9rZXBsZXIuZ2wtbWV0YS10YWcucG5nXCIgLz5cblxuICAgICAgICA8IS0tIExvYWQgUmVhY3QvUmVkdXggLS0+XG4gICAgICAgIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly91bnBrZy5jb20vcmVhY3RAMTYuOC40L3VtZC9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1wiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL3JlYWN0LWRvbUAxNi44LjQvdW1kL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1wiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL3JlZHV4QDMuNy4yL2Rpc3QvcmVkdXguanNcIiBjcm9zc29yaWdpbj48L3NjcmlwdD5cbiAgICAgICAgPHNjcmlwdCBzcmM9XCJodHRwczovL3VucGtnLmNvbS9yZWFjdC1yZWR1eEA3LjEuMy9kaXN0L3JlYWN0LXJlZHV4Lm1pbi5qc1wiIGNyb3Nzb3JpZ2luPjwvc2NyaXB0PlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vdW5wa2cuY29tL3N0eWxlZC1jb21wb25lbnRzQDQuMS4zL2Rpc3Qvc3R5bGVkLWNvbXBvbmVudHMubWluLmpzXCIgY3Jvc3NvcmlnaW4+PC9zY3JpcHQ+XG5cbiAgICAgICAgPCEtLSBMb2FkIEtlcGxlci5nbCAtLT5cbiAgICAgICAgPHNjcmlwdCBzcmM9XCJodHRwczovL3VucGtnLmNvbS9rZXBsZXIuZ2xAJHt2ZXJzaW9ufS91bWQva2VwbGVyZ2wubWluLmpzXCIgY3Jvc3NvcmlnaW4+PC9zY3JpcHQ+XG5cbiAgICAgICAgPHN0eWxlIHR5cGU9XCJ0ZXh0L2Nzc1wiPlxuICAgICAgICAgIGJvZHkge21hcmdpbjogMDsgcGFkZGluZzogMDsgb3ZlcmZsb3c6IGhpZGRlbjt9XG4gICAgICAgIDwvc3R5bGU+XG5cbiAgICAgICAgPCEtLU1hcEJveCB0b2tlbi0tPlxuICAgICAgICA8c2NyaXB0PlxuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFByb3ZpZGUgeW91ciBNYXBCb3ggVG9rZW5cbiAgICAgICAgICAgKiovXG4gICAgICAgICAgY29uc3QgTUFQQk9YX1RPS0VOID0gJyR7b3B0aW9ucy5tYXBib3hBcGlBY2Nlc3NUb2tlbiB8fCAnUFJPVklERV9NQVBCT1hfVE9LRU4nfSc7XG4gICAgICAgICAgY29uc3QgV0FSTklOR19NRVNTQUdFID0gJ1BsZWFzZSBQcm92aWRlIGEgTWFwYm94IFRva2VuIGluIG9yZGVyIHRvIHVzZSBLZXBsZXIuZ2wuIEVkaXQgdGhpcyBmaWxlIGFuZCBmaWxsIG91dCBNQVBCT1hfVE9LRU4gd2l0aCB5b3VyIGFjY2VzcyBrZXknO1xuICAgICAgICA8L3NjcmlwdD5cblxuICAgICAgICA8IS0tIEdBOiBEZWxldGUgdGhpcyBhcyB5b3Ugd2lzaCwgSG93ZXZlciB0byBwYXQgb3Vyc2VsdmVzIG9uIHRoZSBiYWNrLCB3ZSBvbmx5IHRyYWNrIGFub255bW91cyBwYWdldmlldyB0byB1bmRlcnN0YW5kIGhvdyBtYW55IHBlb3BsZSBhcmUgdXNpbmcga2VwbGVyLmdsLiAtLT5cbiAgICAgICAgPHNjcmlwdD5cbiAgICAgICAgICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsnR29vZ2xlQW5hbHl0aWNzT2JqZWN0J109cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7XG4gICAgICAgICAgKGlbcl0ucT1pW3JdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQobyksXG4gICAgICAgICAgbT1zLmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSxtKVxuICAgICAgICAgIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTtcbiAgICAgICAgICBnYSgnY3JlYXRlJywgJ1VBLTY0Njk0NDA0LTE5Jywge1xuICAgICAgICAgICAgJ3N0b3JhZ2UnOiAnbm9uZScsXG4gICAgICAgICAgICAnY2xpZW50SWQnOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ2E6Y2xpZW50SWQnKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGdhKGZ1bmN0aW9uKHRyYWNrZXIpIHtcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dhOmNsaWVudElkJywgdHJhY2tlci5nZXQoJ2NsaWVudElkJykpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGdhKCdzZXQnLCAnY2hlY2tQcm90b2NvbFRhc2snLCBudWxsKTsgLy8gRGlzYWJsZSBmaWxlIHByb3RvY29sIGNoZWNraW5nLlxuICAgICAgICAgIGdhKCdzZXQnLCAnY2hlY2tTdG9yYWdlVGFzaycsIG51bGwpOyAvLyBEaXNhYmxlIGNvb2tpZSBzdG9yYWdlIGNoZWNraW5nLlxuICAgICAgICAgIGdhKCdzZXQnLCAnaGlzdG9yeUltcG9ydFRhc2snLCBudWxsKTsgLy8gRGlzYWJsZSBoaXN0b3J5IGNoZWNraW5nIChyZXF1aXJlcyByZWFkaW5nIGZyb20gY29va2llcykuXG4gICAgICAgICAgZ2EoJ3NldCcsICdwYWdlJywgJ2tlcGxlcmdsLWh0bWwnKTtcbiAgICAgICAgICBnYSgnc2VuZCcsICdwYWdldmlldycpO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8IS0tIFdlIHdpbGwgcHV0IG91ciBSZWFjdCBjb21wb25lbnQgaW5zaWRlIHRoaXMgZGl2LiAtLT5cbiAgICAgICAgPGRpdiBpZD1cImFwcFwiPlxuICAgICAgICAgIDwhLS0gS2VwbGVyLmdsIG1hcCB3aWxsIGJlIHBsYWNlZCBoZXJlLS0+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gTG9hZCBvdXIgUmVhY3QgY29tcG9uZW50LiAtLT5cbiAgICAgICAgPHNjcmlwdD5cbiAgICAgICAgICAvKiBWYWxpZGF0ZSBNYXBib3ggVG9rZW4gKi9cbiAgICAgICAgICBpZiAoKE1BUEJPWF9UT0tFTiB8fCAnJykgPT09ICcnIHx8IE1BUEJPWF9UT0tFTiA9PT0gJ1BST1ZJREVfTUFQQk9YX1RPS0VOJykge1xuICAgICAgICAgICAgYWxlcnQoV0FSTklOR19NRVNTQUdFKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvKiogU1RPUkUgKiovXG4gICAgICAgICAgY29uc3QgcmVkdWNlcnMgPSAoZnVuY3Rpb24gY3JlYXRlUmVkdWNlcnMocmVkdXgsIGtlcGxlckdsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVkdXguY29tYmluZVJlZHVjZXJzKHtcbiAgICAgICAgICAgICAgLy8gbW91bnQga2VwbGVyR2wgcmVkdWNlclxuICAgICAgICAgICAgICBrZXBsZXJHbDoga2VwbGVyR2wua2VwbGVyR2xSZWR1Y2VyLmluaXRpYWxTdGF0ZSh7XG4gICAgICAgICAgICAgICAgdWlTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgcmVhZE9ubHk6ICR7b3B0aW9ucy5tb2RlID09PSBFWFBPUlRfSFRNTF9NQVBfTU9ERVMuUkVBRH0sXG4gICAgICAgICAgICAgICAgICBjdXJyZW50TW9kYWw6IG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KFJlZHV4LCBLZXBsZXJHbCkpO1xuXG4gICAgICAgICAgY29uc3QgbWlkZGxlV2FyZXMgPSAoZnVuY3Rpb24gY3JlYXRlTWlkZGxld2FyZXMoa2VwbGVyR2wpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXBsZXJHbC5lbmhhbmNlUmVkdXhNaWRkbGV3YXJlKFtcbiAgICAgICAgICAgICAgLy8gQWRkIG90aGVyIG1pZGRsZXdhcmVzIGhlcmVcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH0oS2VwbGVyR2wpKTtcblxuICAgICAgICAgIGNvbnN0IGVuaGFuY2VycyA9IChmdW5jdGlvbiBjcmFldGVFbmhhbmNlcnMocmVkdXgsIG1pZGRsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiByZWR1eC5hcHBseU1pZGRsZXdhcmUoLi4ubWlkZGxlcyk7XG4gICAgICAgICAgfShSZWR1eCwgbWlkZGxlV2FyZXMpKTtcblxuICAgICAgICAgIGNvbnN0IHN0b3JlID0gKGZ1bmN0aW9uIGNyZWF0ZVN0b3JlKHJlZHV4LCBlbmhhbmNlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHt9O1xuXG4gICAgICAgICAgICByZXR1cm4gcmVkdXguY3JlYXRlU3RvcmUoXG4gICAgICAgICAgICAgIHJlZHVjZXJzLFxuICAgICAgICAgICAgICBpbml0aWFsU3RhdGUsXG4gICAgICAgICAgICAgIHJlZHV4LmNvbXBvc2UoZW5oYW5jZXJzKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KFJlZHV4LCBlbmhhbmNlcnMpKTtcbiAgICAgICAgICAvKiogRU5EIFNUT1JFICoqL1xuXG4gICAgICAgICAgLyoqIENPTVBPTkVOVFMgKiovXG4gICAgICAgICAgdmFyIEtlcGxlckVsZW1lbnQgPSAoZnVuY3Rpb24gbWFrZUtlcGxlckVsZW1lbnQocmVhY3QsIGtlcGxlckdsLCBtYXBib3hUb2tlbikge1xuICAgICAgICAgICAgdmFyIExvZ29TdmcgPSBmdW5jdGlvbiBMb2dvU3ZnKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiBcImxvZ28tY29udGFpbmVyXCIsIHN0eWxlOiB7cG9zaXRpb246ICdmaXhlZCcsIHpJbmRleDogMTAwMDAsIHBhZGRpbmc6ICc0cHgnfSB9LFxuICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgXCJzdmdcIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJrZXBsZXJfZ2xfX2xvZ29cIixcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDdweFwiLFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIyMXB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveDogXCIwIDAgMTI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICBcImdcIixcbiAgICAgICAgICAgICAgICAgICAgICB7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTMuNTAwMDAwLCAxMy41MDAwMDApIHJvdGF0ZSg0NS4wMDAwMDApIHRyYW5zbGF0ZSgtMTMuNTAwMDAwLCAtMTMuNTAwMDAwKSB0cmFuc2xhdGUoNC4wMDAwMDAsIDQuMDAwMDAwKVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInJlY3RcIiwgeyB4OiBcIjBcIiwgeTogXCI2XCIsIHRyYW5zZm9ybTogXCJtYXRyaXgoMi41MzUxODFlLTA2IDEgLTEgMi41MzUxODFlLTA2IDE4LjExMDcgNi4wMzY5KVwiLCBmaWxsOiBcIiM1MzVDNkNcIiwgd2lkdGg6IFwiMTIuMVwiLCBoZWlnaHQ6IFwiMTIuMVwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJyZWN0XCIsIHsgeDogXCI2XCIsIHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwibWF0cml4KDIuNTM1MTgyZS0wNiAxIC0xIDIuNTM1MTgyZS0wNiAxOC4xMTA3IC02LjAzNjkpXCIsIGZpbGw6XCIjMUZCQUQ2XCIsIHdpZHRoOiBcIjEyLjFcIiwgaGVpZ2h0OiBcIjEyLjFcIiB9KVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICAgIFwiZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNMzksOC43aDIuMmwtMi44LDQuMmwyLjksNS4xSDM5bC0yLjQtNC4yaC0xLjNWMThoLTJWNWwyLTAuMXY3LjNoMS4zTDM5LDguN3pcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTQyLjQsMTMuM2MwLTEuNSwwLjQtMi43LDEuMS0zLjVzMS44LTEuMiwzLjEtMS4yYzEuMywwLDIuMiwwLjQsMi44LDEuMWMwLjYsMC43LDAuOSwxLjgsMC45LDMuMyBjMCwwLjQsMCwwLjgsMCwxLjFoLTUuOGMwLDEuNiwwLjgsMi40LDIuNCwyLjRjMSwwLDItMC4yLDIuOS0wLjZsMC4yLDEuN2MtMC40LDAuMi0wLjksMC40LTEuNCwwLjVzLTEuMSwwLjItMS43LDAuMiBjLTEuNSwwLTIuNi0wLjQtMy4zLTEuMkM0Mi44LDE2LjEsNDIuNCwxNC45LDQyLjQsMTMuM3ogTTQ2LjYsMTAuMWMtMC43LDAtMS4yLDAuMi0xLjUsMC41Yy0wLjQsMC40LTAuNiwwLjktMC42LDEuN2g0IGMwLTAuOC0wLjItMS40LTAuNS0xLjdTNDcuMiwxMC4xLDQ2LjYsMTAuMXpcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTU3LjEsMTguMmMtMSwwLTEuOC0wLjMtMi4zLTAuOWwwLDBsMCwxLjN2Mi41aC0yVjguN2gxLjVsMC4zLDAuOWgwYzAuMy0wLjMsMC43LTAuNiwxLjItMC43IGMwLjQtMC4yLDAuOS0wLjMsMS40LTAuM2MxLjIsMCwyLjEsMC40LDIuNywxLjFjMC42LDAuNywwLjksMiwwLjksMy43YzAsMS42LTAuMywyLjgtMSwzLjdDNTkuMiwxNy44LDU4LjMsMTguMiw1Ny4xLDE4LjJ6IE01Ni43LDEwLjNjLTAuNCwwLTAuOCwwLjEtMS4xLDAuMmMtMC4zLDAuMi0wLjYsMC40LTAuOCwwLjd2NC4zYzAuMiwwLjMsMC40LDAuNSwwLjcsMC43YzAuMywwLjIsMC43LDAuMywxLjEsMC4zIGMwLjcsMCwxLjItMC4yLDEuNi0wLjdjMC40LTAuNSwwLjUtMS4zLDAuNS0yLjVjMC0wLjgtMC4xLTEuNC0wLjItMS44cy0wLjQtMC43LTAuNy0wLjlDNTcuNiwxMC40LDU3LjIsMTAuMyw1Ni43LDEwLjN6XCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk02My4yLDE2VjVsMi0wLjF2MTAuOGMwLDAuMywwLjEsMC41LDAuMiwwLjZjMC4xLDAuMSwwLjMsMC4yLDAuNiwwLjJjMC4zLDAsMC42LDAsMC45LTAuMVYxOCBjLTAuNCwwLjEtMSwwLjItMS42LDAuMmMtMC44LDAtMS4zLTAuMi0xLjctMC41UzYzLjIsMTYuOCw2My4yLDE2elwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNNjguMiwxMy4zYzAtMS41LDAuNC0yLjcsMS4xLTMuNWMwLjctMC44LDEuOC0xLjIsMy4xLTEuMmMxLjMsMCwyLjIsMC40LDIuOCwxLjFjMC42LDAuNywwLjksMS44LDAuOSwzLjMgYzAsMC40LDAsMC44LDAsMS4xaC01LjhjMCwxLjYsMC44LDIuNCwyLjQsMi40YzEsMCwyLTAuMiwyLjktMC42bDAuMiwxLjdjLTAuNCwwLjItMC45LDAuNC0xLjQsMC41cy0xLjEsMC4yLTEuNywwLjIgYy0xLjUsMC0yLjYtMC40LTMuMy0xLjJDNjguNiwxNi4xLDY4LjIsMTQuOSw2OC4yLDEzLjN6IE03Mi40LDEwLjFjLTAuNywwLTEuMiwwLjItMS41LDAuNWMtMC40LDAuNC0wLjYsMC45LTAuNiwxLjdoNCBjMC0wLjgtMC4yLTEuNC0wLjUtMS43UzczLDEwLjEsNzIuNCwxMC4xelwiIH0pLFxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHsgZmlsbDpcIiMxRkJBRDZcIiwgZDogXCJNODAuMiw4LjdsMC4xLDEuN2gwYzAuMy0wLjYsMC43LTEuMSwxLjEtMS40YzAuNC0wLjMsMS0wLjUsMS42LTAuNWMwLjQsMCwwLjcsMCwxLDAuMWwtMC4xLDIgYy0wLjMtMC4xLTAuNy0wLjItMS0wLjJjLTAuNywwLTEuMywwLjMtMS43LDAuOGMtMC40LDAuNS0wLjcsMS4yLTAuNywyLjFWMThoLTJWOC43SDgwLjJ6XCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk04My44LDE3YzAtMC44LDAuNC0xLjIsMS4yLTEuMmMwLjgsMCwxLjIsMC40LDEuMiwxLjJjMCwwLjgtMC40LDEuMS0xLjIsMS4xQzg0LjIsMTguMiw4My44LDE3LjgsODMuOCwxN3pcIiB9KSxcbiAgICAgICAgICAgICAgICAgICAgICByZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7IGZpbGw6XCIjMUZCQUQ2XCIsIGQ6IFwiTTg4LjUsMTguN2MwLTAuOCwwLjQtMS40LDEuMi0xLjhjLTAuNi0wLjMtMC45LTAuOC0wLjktMS41YzAtMC43LDAuNC0xLjIsMS4xLTEuNmMtMC4zLTAuMy0wLjYtMC42LTAuNy0wLjkgYy0wLjItMC40LTAuMi0wLjgtMC4yLTEuM2MwLTEsMC4zLTEuOCwwLjktMi4zYzAuNi0wLjUsMS42LTAuOCwyLjgtMC44YzAuNSwwLDEsMCwxLjQsMC4xYzAuNCwwLjEsMC44LDAuMiwxLjEsMC40bDIuNC0wLjJ2MS41IGgtMS41YzAuMiwwLjQsMC4yLDAuOCwwLjIsMS4zYzAsMS0wLjMsMS43LTAuOSwyLjJzLTEuNSwwLjgtMi43LDAuOGMtMC43LDAtMS4yLTAuMS0xLjYtMC4yYy0wLjEsMC4xLTAuMiwwLjItMC4zLDAuMyBjLTAuMSwwLjEtMC4xLDAuMi0wLjEsMC40YzAsMC4yLDAuMSwwLjMsMC4yLDAuNGMwLjEsMC4xLDAuMywwLjIsMC42LDAuMmwyLjcsMC4yYzEsMC4xLDEuNywwLjMsMi4yLDAuNmMwLjUsMC4zLDAuOCwwLjksMC44LDEuNyBjMCwwLjYtMC4yLDEuMS0wLjUsMS41Yy0wLjQsMC40LTAuOSwwLjgtMS41LDFjLTAuNywwLjItMS41LDAuNC0yLjQsMC40Yy0xLjMsMC0yLjMtMC4yLTMtMC42Qzg4LjgsMjAuMSw4OC41LDE5LjUsODguNSwxOC43eiBNOTUuMSwxOC40YzAtMC4zLTAuMS0wLjUtMC4zLTAuN3MtMC42LTAuMi0xLjEtMC4zbC0yLjctMC4zYy0wLjIsMC4xLTAuNCwwLjMtMC41LDAuNWMtMC4xLDAuMi0wLjIsMC40LTAuMiwwLjYgYzAsMC40LDAuMiwwLjgsMC41LDFjMC40LDAuMiwxLDAuMywxLjgsMC4zQzk0LjIsMTkuNSw5NS4xLDE5LjIsOTUuMSwxOC40eiBNOTQuMywxMS41YzAtMC42LTAuMS0xLTAuNC0xLjIgYy0wLjMtMC4yLTAuNy0wLjMtMS4zLTAuM2MtMC43LDAtMS4xLDAuMS0xLjQsMC4zYy0wLjMsMC4yLTAuNCwwLjYtMC40LDEuMnMwLjEsMSwwLjQsMS4yYzAuMywwLjIsMC43LDAuMywxLjQsMC4zIGMwLjYsMCwxLjEtMC4xLDEuMy0wLjRTOTQuMywxMiw5NC4zLDExLjV6XCIgfSksXG4gICAgICAgICAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwgeyBmaWxsOlwiIzFGQkFENlwiLCBkOiBcIk05OS40LDE2VjVsMi0wLjF2MTAuOGMwLDAuMywwLjEsMC41LDAuMiwwLjZjMC4xLDAuMSwwLjMsMC4yLDAuNiwwLjJjMC4zLDAsMC42LDAsMC45LTAuMVYxOCBjLTAuNCwwLjEtMSwwLjItMS42LDAuMmMtMC44LDAtMS4zLTAuMi0xLjctMC41Uzk5LjQsMTYuOCw5OS40LDE2elwiIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gQXBwKCkge1xuICAgICAgICAgICAgICB2YXIgcm9vdEVsbSA9IHJlYWN0LnVzZVJlZihudWxsKTtcbiAgICAgICAgICAgICAgdmFyIF91c2VTdGF0ZSA9IHJlYWN0LnVzZVN0YXRlKHtcbiAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHRcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHZhciB3aW5kb3dEaW1lbnNpb24gPSBfdXNlU3RhdGVbMF07XG4gICAgICAgICAgICAgIHZhciBzZXREaW1lbnNpb24gPSBfdXNlU3RhdGVbMV07XG4gICAgICAgICAgICAgIHJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiBzaWRlRWZmZWN0KCl7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlUmVzaXplKCkge1xuICAgICAgICAgICAgICAgICAgc2V0RGltZW5zaW9uKHt3aWR0aDogd2luZG93LmlubmVyV2lkdGgsIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0fSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgaGFuZGxlUmVzaXplKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZVJlc2l6ZSk7fTtcbiAgICAgICAgICAgICAgfSwgW10pO1xuICAgICAgICAgICAgICByZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgICAgICB7c3R5bGU6IHtwb3NpdGlvbjogJ2Fic29sdXRlJywgbGVmdDogMCwgd2lkdGg6ICcxMDB2dycsIGhlaWdodDogJzEwMHZoJ319LFxuICAgICAgICAgICAgICAgICR7b3B0aW9ucy5tb2RlID09PSBFWFBPUlRfSFRNTF9NQVBfTU9ERVMuUkVBRCA/ICdMb2dvU3ZnKCksJyA6ICcnfVxuICAgICAgICAgICAgICAgIHJlYWN0LmNyZWF0ZUVsZW1lbnQoa2VwbGVyR2wuS2VwbGVyR2wsIHtcbiAgICAgICAgICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBtYXBib3hUb2tlbixcbiAgICAgICAgICAgICAgICAgIGlkOiBcIm1hcFwiLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpbmRvd0RpbWVuc2lvbi53aWR0aCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogd2luZG93RGltZW5zaW9uLmhlaWdodFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KFJlYWN0LCBLZXBsZXJHbCwgTUFQQk9YX1RPS0VOKSk7XG5cbiAgICAgICAgICBjb25zdCBhcHAgPSAoZnVuY3Rpb24gY3JlYXRlUmVhY3RSZWR1eFByb3ZpZGVyKHJlYWN0LCByZWFjdFJlZHV4LCBLZXBsZXJFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgcmVhY3RSZWR1eC5Qcm92aWRlcixcbiAgICAgICAgICAgICAge3N0b3JlfSxcbiAgICAgICAgICAgICAgcmVhY3QuY3JlYXRlRWxlbWVudChLZXBsZXJFbGVtZW50LCBudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0oUmVhY3QsIFJlYWN0UmVkdXgsIEtlcGxlckVsZW1lbnQpKTtcbiAgICAgICAgICAvKiogRU5EIENPTVBPTkVOVFMgKiovXG5cbiAgICAgICAgICAvKiogUmVuZGVyICoqL1xuICAgICAgICAgIChmdW5jdGlvbiByZW5kZXIocmVhY3QsIHJlYWN0RE9NLCBhcHApIHtcbiAgICAgICAgICAgIHJlYWN0RE9NLnJlbmRlcihhcHAsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHAnKSk7XG4gICAgICAgICAgfShSZWFjdCwgUmVhY3RET00sIGFwcCkpO1xuICAgICAgICA8L3NjcmlwdD5cbiAgICAgICAgPCEtLSBUaGUgbmV4dCBzY3JpcHQgd2lsbCBzaG93IGhvdyB0byBpbnRlcmFjdCBkaXJlY3RseSB3aXRoIEtlcGxlciBtYXAgc3RvcmUgLS0+XG4gICAgICAgIDxzY3JpcHQ+XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogQ3VzdG9taXplIG1hcC5cbiAgICAgICAgICAgKiBJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb24geW91IGNhbiB1c2UgdGhlIHN0b3JlIG9iamVjdCB0byBkaXNwYXRjaCBLZXBsZXIuZ2wgYWN0aW9uc1xuICAgICAgICAgICAqIHRvIGFkZCBuZXcgZGF0YSBhbmQgY3VzdG9taXplIGJlaGF2aW9yXG4gICAgICAgICAgICovXG4gICAgICAgICAgKGZ1bmN0aW9uIGN1c3RvbWl6ZShrZXBsZXJHbCwgc3RvcmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRzID0gJHtKU09OLnN0cmluZ2lmeShvcHRpb25zLmRhdGFzZXRzKX07XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSAke0pTT04uc3RyaW5naWZ5KG9wdGlvbnMuY29uZmlnKX07XG5cbiAgICAgICAgICAgIGNvbnN0IGxvYWRlZERhdGEgPSBrZXBsZXJHbC5LZXBsZXJHbFNjaGVtYS5sb2FkKFxuICAgICAgICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgICAgICAgY29uZmlnXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBzdG9yZS5kaXNwYXRjaChrZXBsZXJHbC5hZGREYXRhVG9NYXAoe1xuICAgICAgICAgICAgICBkYXRhc2V0czogbG9hZGVkRGF0YS5kYXRhc2V0cyxcbiAgICAgICAgICAgICAgY29uZmlnOiBsb2FkZWREYXRhLmNvbmZpZyxcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGNlbnRlck1hcDogZmFsc2VcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0oS2VwbGVyR2wsIHN0b3JlKSlcbiAgICAgICAgPC9zY3JpcHQ+XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICBgO1xufTtcbiJdfQ==
|
|
@@ -1,71 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.aggregate = aggregate;
|
|
8
9
|
exports.getMode = exports.getFrequency = void 0;
|
|
10
|
+
|
|
9
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
|
|
10
13
|
var _d3Array = require("d3-array");
|
|
14
|
+
|
|
11
15
|
var _defaultSettings = require("../constants/default-settings");
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
19
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
20
|
-
// furnished to do so, subject to the following conditions:
|
|
21
|
-
//
|
|
22
|
-
// The above copyright notice and this permission notice shall be included in
|
|
23
|
-
// all copies or substantial portions of the Software.
|
|
24
|
-
//
|
|
25
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
26
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
27
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
28
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
29
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
30
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
31
|
-
// THE SOFTWARE.
|
|
32
|
-
var getFrequency = exports.getFrequency = function getFrequency(data) {
|
|
16
|
+
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
20
|
+
|
|
21
|
+
var getFrequency = function getFrequency(data) {
|
|
33
22
|
return data.reduce(function (uniques, val) {
|
|
34
23
|
return _objectSpread(_objectSpread({}, uniques), {}, (0, _defineProperty2["default"])({}, val, (uniques[val] || 0) + 1));
|
|
35
24
|
}, {});
|
|
36
25
|
};
|
|
37
|
-
|
|
26
|
+
|
|
27
|
+
exports.getFrequency = getFrequency;
|
|
28
|
+
|
|
29
|
+
var getMode = function getMode(data) {
|
|
38
30
|
var occur = getFrequency(data);
|
|
39
31
|
return Object.keys(occur).reduce(function (prev, key) {
|
|
40
32
|
return occur[prev] >= occur[key] ? prev : key;
|
|
41
33
|
}, Object.keys(occur)[0]);
|
|
42
34
|
};
|
|
35
|
+
|
|
36
|
+
exports.getMode = getMode;
|
|
37
|
+
|
|
43
38
|
function aggregate(data, technique) {
|
|
44
39
|
switch (technique) {
|
|
45
40
|
case _defaultSettings.AGGREGATION_TYPES.average:
|
|
46
41
|
return (0, _d3Array.mean)(data);
|
|
42
|
+
|
|
47
43
|
case _defaultSettings.AGGREGATION_TYPES.countUnique:
|
|
48
44
|
return Object.keys(data.reduce(function (uniques, val) {
|
|
49
45
|
uniques[val] = uniques[val] || 0;
|
|
50
46
|
uniques[val] += 1;
|
|
51
47
|
return uniques;
|
|
52
48
|
}, {})).length;
|
|
49
|
+
|
|
53
50
|
case _defaultSettings.AGGREGATION_TYPES.mode:
|
|
54
51
|
return getMode(data);
|
|
52
|
+
|
|
55
53
|
case _defaultSettings.AGGREGATION_TYPES.maximum:
|
|
56
54
|
return (0, _d3Array.max)(data);
|
|
55
|
+
|
|
57
56
|
case _defaultSettings.AGGREGATION_TYPES.minimum:
|
|
58
57
|
return (0, _d3Array.min)(data);
|
|
58
|
+
|
|
59
59
|
case _defaultSettings.AGGREGATION_TYPES.median:
|
|
60
60
|
return (0, _d3Array.median)(data);
|
|
61
|
+
|
|
61
62
|
case _defaultSettings.AGGREGATION_TYPES.stdev:
|
|
62
63
|
return (0, _d3Array.deviation)(data);
|
|
64
|
+
|
|
63
65
|
case _defaultSettings.AGGREGATION_TYPES.sum:
|
|
64
66
|
return (0, _d3Array.sum)(data);
|
|
67
|
+
|
|
65
68
|
case _defaultSettings.AGGREGATION_TYPES.variance:
|
|
66
69
|
return (0, _d3Array.variance)(data);
|
|
70
|
+
|
|
67
71
|
default:
|
|
68
72
|
return data.length;
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hZ2dyZWdhdGUtdXRpbHMudHMiXSwibmFtZXMiOlsiZ2V0RnJlcXVlbmN5IiwiZGF0YSIsInJlZHVjZSIsInVuaXF1ZXMiLCJ2YWwiLCJnZXRNb2RlIiwib2NjdXIiLCJPYmplY3QiLCJrZXlzIiwicHJldiIsImtleSIsImFnZ3JlZ2F0ZSIsInRlY2huaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsImNvdW50VW5pcXVlIiwibGVuZ3RoIiwibW9kZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOzs7Ozs7QUFFTyxJQUFNQSxZQUFZLEdBQUcsU0FBZkEsWUFBZSxDQUFBQyxJQUFJO0FBQUEsU0FDOUJBLElBQUksQ0FBQ0MsTUFBTCxDQUNFLFVBQUNDLE9BQUQsRUFBVUMsR0FBVjtBQUFBLDJDQUNLRCxPQURMLDRDQUVHQyxHQUZILEVBRVMsQ0FBQ0QsT0FBTyxDQUFDQyxHQUFELENBQVAsSUFBZ0IsQ0FBakIsSUFBc0IsQ0FGL0I7QUFBQSxHQURGLEVBS0UsRUFMRixDQUQ4QjtBQUFBLENBQXpCOzs7O0FBU0EsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQUosSUFBSSxFQUFJO0FBQzdCLE1BQU1LLEtBQUssR0FBR04sWUFBWSxDQUFDQyxJQUFELENBQTFCO0FBQ0EsU0FBT00sTUFBTSxDQUFDQyxJQUFQLENBQVlGLEtBQVosRUFBbUJKLE1BQW5CLENBQ0wsVUFBQ08sSUFBRCxFQUFPQyxHQUFQO0FBQUEsV0FBZ0JKLEtBQUssQ0FBQ0csSUFBRCxDQUFMLElBQWVILEtBQUssQ0FBQ0ksR0FBRCxDQUFwQixHQUE0QkQsSUFBNUIsR0FBbUNDLEdBQW5EO0FBQUEsR0FESyxFQUVMSCxNQUFNLENBQUNDLElBQVAsQ0FBWUYsS0FBWixFQUFtQixDQUFuQixDQUZLLENBQVA7QUFJRCxDQU5NOzs7O0FBUUEsU0FBU0ssU0FBVCxDQUFtQlYsSUFBbkIsRUFBeUJXLFNBQXpCLEVBQW9DO0FBQ3pDLFVBQVFBLFNBQVI7QUFDRSxTQUFLQyxtQ0FBa0JDLE9BQXZCO0FBQ0UsYUFBTyxtQkFBS2IsSUFBTCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQkUsV0FBdkI7QUFDRSxhQUFPUixNQUFNLENBQUNDLElBQVAsQ0FDTFAsSUFBSSxDQUFDQyxNQUFMLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxHQUFWLEVBQWtCO0FBQzVCRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxHQUFlRCxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUEvQjtBQUNBRCxRQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUFoQjtBQUNBLGVBQU9ELE9BQVA7QUFDRCxPQUpELEVBSUcsRUFKSCxDQURLLEVBTUxhLE1BTkY7O0FBT0YsU0FBS0gsbUNBQWtCSSxJQUF2QjtBQUNFLGFBQU9aLE9BQU8sQ0FBQ0osSUFBRCxDQUFkOztBQUVGLFNBQUtZLG1DQUFrQkssT0FBdkI7QUFDRSxhQUFPLGtCQUFJakIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk0sT0FBdkI7QUFDRSxhQUFPLGtCQUFJbEIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQk8sTUFBdkI7QUFDRSxhQUFPLHFCQUFPbkIsSUFBUCxDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlEsS0FBdkI7QUFDRSxhQUFPLHdCQUFVcEIsSUFBVixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlMsR0FBdkI7QUFDRSxhQUFPLGtCQUFJckIsSUFBSixDQUFQOztBQUNGLFNBQUtZLG1DQUFrQlUsUUFBdkI7QUFDRSxhQUFPLHVCQUFTdEIsSUFBVCxDQUFQOztBQUNGO0FBQ0UsYUFBT0EsSUFBSSxDQUFDZSxNQUFaO0FBM0JKO0FBNkJEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtkZXZpYXRpb24sIG1pbiwgbWF4LCBtZWFuLCBtZWRpYW4sIHN1bSwgdmFyaWFuY2V9IGZyb20gJ2QzLWFycmF5JztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVN9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuZXhwb3J0IGNvbnN0IGdldEZyZXF1ZW5jeSA9IGRhdGEgPT5cbiAgZGF0YS5yZWR1Y2UoXG4gICAgKHVuaXF1ZXMsIHZhbCkgPT4gKHtcbiAgICAgIC4uLnVuaXF1ZXMsXG4gICAgICBbdmFsXTogKHVuaXF1ZXNbdmFsXSB8fCAwKSArIDFcbiAgICB9KSxcbiAgICB7fVxuICApO1xuXG5leHBvcnQgY29uc3QgZ2V0TW9kZSA9IGRhdGEgPT4ge1xuICBjb25zdCBvY2N1ciA9IGdldEZyZXF1ZW5jeShkYXRhKTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9jY3VyKS5yZWR1Y2UoXG4gICAgKHByZXYsIGtleSkgPT4gKG9jY3VyW3ByZXZdID49IG9jY3VyW2tleV0gPyBwcmV2IDoga2V5KSxcbiAgICBPYmplY3Qua2V5cyhvY2N1cilbMF1cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBhZ2dyZWdhdGUoZGF0YSwgdGVjaG5pcXVlKSB7XG4gIHN3aXRjaCAodGVjaG5pcXVlKSB7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlOlxuICAgICAgcmV0dXJuIG1lYW4oZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5jb3VudFVuaXF1ZTpcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhcbiAgICAgICAgZGF0YS5yZWR1Y2UoKHVuaXF1ZXMsIHZhbCkgPT4ge1xuICAgICAgICAgIHVuaXF1ZXNbdmFsXSA9IHVuaXF1ZXNbdmFsXSB8fCAwO1xuICAgICAgICAgIHVuaXF1ZXNbdmFsXSArPSAxO1xuICAgICAgICAgIHJldHVybiB1bmlxdWVzO1xuICAgICAgICB9LCB7fSlcbiAgICAgICkubGVuZ3RoO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubW9kZTpcbiAgICAgIHJldHVybiBnZXRNb2RlKGRhdGEpO1xuXG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtOlxuICAgICAgcmV0dXJuIG1heChkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW06XG4gICAgICByZXR1cm4gbWluKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuOlxuICAgICAgcmV0dXJuIG1lZGlhbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnN0ZGV2OlxuICAgICAgcmV0dXJuIGRldmlhdGlvbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnN1bTpcbiAgICAgIHJldHVybiBzdW0oZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZTpcbiAgICAgIHJldHVybiB2YXJpYW5jZShkYXRhKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoO1xuICB9XG59XG4iXX0=
|