@carto/kepler.gl 0.0.80 → 0.1.0-alpha.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.d.ts +115 -0
- package/dist/actions/actions.d.ts +195 -0
- package/dist/actions/identity-actions.d.ts +61 -0
- package/dist/actions/index.d.ts +9 -0
- package/dist/actions/map-state-actions.d.ts +69 -0
- package/dist/actions/map-style-actions.d.ts +146 -0
- package/dist/actions/provider-actions.d.ts +153 -0
- package/dist/actions/ui-state-actions.d.ts +300 -0
- package/dist/actions/vis-state-actions.d.ts +821 -0
- package/dist/bundle.js +54227 -0
- package/dist/bundle.js.map +1 -0
- package/dist/cloud-providers/index.d.ts +2 -0
- package/dist/cloud-providers/provider.d.ts +176 -0
- package/dist/components/bottom-widget.d.ts +47 -0
- package/dist/components/common/action-panel.d.ts +27 -0
- package/dist/components/common/animation-control/animation-control.d.ts +24 -0
- package/dist/components/common/animation-control/animation-controller.d.ts +16 -0
- package/dist/components/common/animation-control/animation-speed-slider.d.ts +12 -0
- package/dist/components/common/animation-control/floating-time-display.d.ts +9 -0
- package/dist/components/common/animation-control/playback-controls.d.ts +72 -0
- package/dist/components/common/animation-control/speed-control.d.ts +13 -0
- package/dist/components/common/checkbox.d.ts +35 -0
- package/dist/components/common/color-legend.d.ts +43 -0
- package/dist/components/common/data-table/button.d.ts +8 -0
- package/dist/components/common/data-table/canvas.d.ts +2 -0
- package/dist/components/common/data-table/cell-size.d.ts +36 -0
- package/dist/components/common/data-table/grid.d.ts +7 -0
- package/dist/components/common/data-table/index.d.ts +143 -0
- package/dist/components/common/data-table/option-dropdown.d.ts +14 -0
- package/dist/components/common/dataset-label.d.ts +10 -0
- package/dist/components/common/error-boundary.d.ts +16 -0
- package/dist/components/common/field-selector.d.ts +47 -0
- package/dist/components/common/field-token.d.ts +45 -0
- package/dist/components/common/file-uploader/file-drop.d.ts +54 -0
- package/dist/components/common/file-uploader/file-upload-progress.d.ts +8 -0
- package/dist/components/common/file-uploader/file-upload.d.ts +27 -0
- package/dist/components/common/file-uploader/upload-button.d.ts +8 -0
- package/dist/components/common/histogram-plot.d.ts +3 -0
- package/dist/components/common/icons/add.d.ts +9 -0
- package/dist/components/common/icons/anchor_window.d.ts +11 -0
- package/dist/components/common/icons/arrow-down-alt.d.ts +9 -0
- package/dist/components/common/icons/arrow-down-solid.d.ts +9 -0
- package/dist/components/common/icons/arrow-down.d.ts +9 -0
- package/dist/components/common/icons/arrow-left.d.ts +9 -0
- package/dist/components/common/icons/arrow-right.d.ts +9 -0
- package/dist/components/common/icons/arrow-up-alt.d.ts +9 -0
- package/dist/components/common/icons/arrow-up-solid.d.ts +9 -0
- package/dist/components/common/icons/arrow-up.d.ts +9 -0
- package/dist/components/common/icons/base.d.ts +29 -0
- package/dist/components/common/icons/bug.d.ts +9 -0
- package/dist/components/common/icons/cancel.d.ts +9 -0
- package/dist/components/common/icons/checkmark.d.ts +10 -0
- package/dist/components/common/icons/clipboard.d.ts +9 -0
- package/dist/components/common/icons/clock.d.ts +9 -0
- package/dist/components/common/icons/close.d.ts +9 -0
- package/dist/components/common/icons/code-alt.d.ts +9 -0
- package/dist/components/common/icons/copy.d.ts +9 -0
- package/dist/components/common/icons/crosshairs.d.ts +9 -0
- package/dist/components/common/icons/cube-3d.d.ts +9 -0
- package/dist/components/common/icons/cursor-click.d.ts +9 -0
- package/dist/components/common/icons/data-table.d.ts +10 -0
- package/dist/components/common/icons/db.d.ts +10 -0
- package/dist/components/common/icons/delete.d.ts +9 -0
- package/dist/components/common/icons/docs.d.ts +9 -0
- package/dist/components/common/icons/drag-n-drop.d.ts +9 -0
- package/dist/components/common/icons/draw-polygon.d.ts +10 -0
- package/dist/components/common/icons/email.d.ts +9 -0
- package/dist/components/common/icons/expand.d.ts +9 -0
- package/dist/components/common/icons/eye-seen.d.ts +9 -0
- package/dist/components/common/icons/eye-unseen.d.ts +9 -0
- package/dist/components/common/icons/file-type.d.ts +8 -0
- package/dist/components/common/icons/file.d.ts +9 -0
- package/dist/components/common/icons/files.d.ts +9 -0
- package/dist/components/common/icons/filter-funnel.d.ts +9 -0
- package/dist/components/common/icons/free-window.d.ts +11 -0
- package/dist/components/common/icons/gear.d.ts +9 -0
- package/dist/components/common/icons/hash.d.ts +9 -0
- package/dist/components/common/icons/histogram.d.ts +9 -0
- package/dist/components/common/icons/index.d.ts +78 -0
- package/dist/components/common/icons/info.d.ts +12 -0
- package/dist/components/common/icons/layers.d.ts +9 -0
- package/dist/components/common/icons/left-arrow.d.ts +9 -0
- package/dist/components/common/icons/legend.d.ts +9 -0
- package/dist/components/common/icons/line-chart.d.ts +9 -0
- package/dist/components/common/icons/login.d.ts +9 -0
- package/dist/components/common/icons/logout.d.ts +9 -0
- package/dist/components/common/icons/map-icon.d.ts +11 -0
- package/dist/components/common/icons/map.d.ts +11 -0
- package/dist/components/common/icons/messages.d.ts +9 -0
- package/dist/components/common/icons/minus.d.ts +9 -0
- package/dist/components/common/icons/order-by-dataset.d.ts +12 -0
- package/dist/components/common/icons/order-by-list.d.ts +12 -0
- package/dist/components/common/icons/pause.d.ts +9 -0
- package/dist/components/common/icons/picture.d.ts +9 -0
- package/dist/components/common/icons/pin.d.ts +9 -0
- package/dist/components/common/icons/play.d.ts +9 -0
- package/dist/components/common/icons/polygon.d.ts +10 -0
- package/dist/components/common/icons/rectangle.d.ts +10 -0
- package/dist/components/common/icons/reduce.d.ts +9 -0
- package/dist/components/common/icons/reset.d.ts +9 -0
- package/dist/components/common/icons/rocket.d.ts +9 -0
- package/dist/components/common/icons/save.d.ts +9 -0
- package/dist/components/common/icons/save2.d.ts +9 -0
- package/dist/components/common/icons/search.d.ts +9 -0
- package/dist/components/common/icons/settings.d.ts +9 -0
- package/dist/components/common/icons/share.d.ts +9 -0
- package/dist/components/common/icons/split.d.ts +9 -0
- package/dist/components/common/icons/square-select.d.ts +9 -0
- package/dist/components/common/icons/table.d.ts +9 -0
- package/dist/components/common/icons/trash.d.ts +9 -0
- package/dist/components/common/icons/upload.d.ts +9 -0
- package/dist/components/common/icons/vert-dots.d.ts +9 -0
- package/dist/components/common/icons/vert-three-dots.d.ts +9 -0
- package/dist/components/common/icons/warning.d.ts +10 -0
- package/dist/components/common/image-preview.d.ts +15 -0
- package/dist/components/common/info-helper.d.ts +11 -0
- package/dist/components/common/item-selector/accessor.d.ts +7 -0
- package/dist/components/common/item-selector/chickleted-input.d.ts +21 -0
- package/dist/components/common/item-selector/dropdown-list.d.ts +68 -0
- package/dist/components/common/item-selector/item-selector.d.ts +91 -0
- package/dist/components/common/item-selector/typeahead.d.ts +115 -0
- package/dist/components/common/line-chart.d.ts +34 -0
- package/dist/components/common/loading-spinner.d.ts +9 -0
- package/dist/components/common/logo.d.ts +8 -0
- package/dist/components/common/map-layer-selector.d.ts +13 -0
- package/dist/components/common/modal.d.ts +49 -0
- package/dist/components/common/portaled.d.ts +527 -0
- package/dist/components/common/progress-bar.d.ts +12 -0
- package/dist/components/common/range-brush.d.ts +19 -0
- package/dist/components/common/range-plot.d.ts +35 -0
- package/dist/components/common/range-slider.d.ts +32 -0
- package/dist/components/common/slider/mouse-event.d.ts +27 -0
- package/dist/components/common/slider/slider-bar-handle.d.ts +29 -0
- package/dist/components/common/slider/slider-handle.d.ts +33 -0
- package/dist/components/common/slider/slider.d.ts +70 -0
- package/dist/components/common/styled-components.d.ts +119 -0
- package/dist/components/common/switch.d.ts +16 -0
- package/dist/components/common/time-range-slider-time-title.d.ts +9 -0
- package/dist/components/common/time-range-slider.d.ts +32 -0
- package/dist/components/common/time-slider-marker.d.ts +21 -0
- package/dist/components/common/tippy-tooltip.d.ts +4 -0
- package/dist/components/common/toolbar-item.d.ts +14 -0
- package/dist/components/common/toolbar.d.ts +5 -0
- package/dist/components/common/vertical-toolbar.d.ts +3 -0
- package/dist/components/container.d.ts +39 -0
- package/dist/components/context.d.ts +7 -0
- package/dist/components/editor/constants.d.ts +17 -0
- package/dist/components/editor/editor.d.ts +29 -0
- package/dist/components/editor/feature-action-panel.d.ts +27 -0
- package/dist/components/editor/feature-styles.d.ts +24 -0
- package/dist/components/editor/handle-style.d.ts +38 -0
- package/dist/components/filters/components.d.ts +3 -0
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
- package/dist/components/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/new-filter-panel.d.ts +12 -0
- package/dist/components/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/range-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
- package/dist/components/filters/filter-panels/types.d.ts +36 -0
- package/dist/components/filters/index.d.ts +5 -0
- package/dist/components/filters/multi-select-filter.d.ts +3 -0
- package/dist/components/filters/polygon-filter.d.ts +4 -0
- package/dist/components/filters/range-filter.d.ts +8 -0
- package/dist/components/filters/single-select-filter.d.ts +3 -0
- package/dist/components/filters/time-range-filter.d.ts +28 -0
- package/dist/components/filters/time-widget.d.ts +14 -0
- package/dist/components/filters/types.d.ts +53 -0
- package/dist/components/geocoder/geocoder.d.ts +33 -0
- package/dist/components/geocoder-panel.d.ts +28 -0
- package/dist/components/index.d.ts +165 -0
- package/dist/components/injector.d.ts +25 -0
- package/dist/components/kepler-gl.d.ts +302 -0
- package/dist/components/map/coordinate-info.d.ts +7 -0
- package/dist/components/map/layer-hover-info.d.ts +13 -0
- package/dist/components/map/layer-selector-panel.d.ts +22 -0
- package/dist/components/map/locale-panel.d.ts +16 -0
- package/dist/components/map/map-control-panel.d.ts +14 -0
- package/dist/components/map/map-control-toolbar.d.ts +2 -0
- package/dist/components/map/map-control-tooltip.d.ts +7 -0
- package/dist/components/map/map-control.d.ts +44 -0
- package/dist/components/map/map-draw-panel.d.ts +21 -0
- package/dist/components/map/map-legend-panel.d.ts +23 -0
- package/dist/components/map/map-legend.d.ts +55 -0
- package/dist/components/map/map-popover.d.ts +37 -0
- package/dist/components/map/split-map-button.d.ts +19 -0
- package/dist/components/map/toggle-3d-button.d.ts +16 -0
- package/dist/components/map-container.d.ts +58 -0
- package/dist/components/maps-layout.d.ts +10 -0
- package/dist/components/modal-container.d.ts +65 -0
- package/dist/components/modals/add-map-style-modal.d.ts +17 -0
- package/dist/components/modals/cloud-tile.d.ts +15 -0
- package/dist/components/modals/data-table-modal.d.ts +29 -0
- package/dist/components/modals/delete-data-modal.d.ts +10 -0
- package/dist/components/modals/error-display.d.ts +6 -0
- package/dist/components/modals/export-data-modal.d.ts +25 -0
- package/dist/components/modals/export-image-modal.d.ts +18 -0
- package/dist/components/modals/export-map-modal/components.d.ts +8 -0
- package/dist/components/modals/export-map-modal/export-html-map.d.ts +12 -0
- package/dist/components/modals/export-map-modal/export-json-map.d.ts +9 -0
- package/dist/components/modals/export-map-modal/export-map-modal.d.ts +27 -0
- package/dist/components/modals/image-modal-container.d.ts +18 -0
- package/dist/components/modals/load-data-modal.d.ts +33 -0
- package/dist/components/modals/load-storage-map.d.ts +26 -0
- package/dist/components/modals/loading-dialog.d.ts +7 -0
- package/dist/components/modals/modal-dialog.d.ts +2 -0
- package/dist/components/modals/modal-tabs.d.ts +27 -0
- package/dist/components/modals/overwrite-map-modal.d.ts +16 -0
- package/dist/components/modals/provider-modal-container.d.ts +23 -0
- package/dist/components/modals/save-map-modal.d.ts +29 -0
- package/dist/components/modals/share-map-modal.d.ts +30 -0
- package/dist/components/modals/status-panel.d.ts +13 -0
- package/dist/components/modals/storage-map-viewer.d.ts +21 -0
- package/dist/components/notification-panel/notification-item.d.ts +66 -0
- package/dist/components/notification-panel.d.ts +61 -0
- package/dist/components/performance.d.ts +4 -0
- package/dist/components/plot-container.d.ts +24 -0
- package/dist/components/side-panel/cloud-storage-dropdown.d.ts +6 -0
- package/dist/components/side-panel/common/dataset-info.d.ts +3 -0
- package/dist/components/side-panel/common/dataset-tag.d.ts +3 -0
- package/dist/components/side-panel/common/dataset-title.d.ts +8 -0
- package/dist/components/side-panel/common/source-data-catalog.d.ts +9 -0
- package/dist/components/side-panel/common/source-data-selector.d.ts +8 -0
- package/dist/components/side-panel/common/types.d.ts +58 -0
- package/dist/components/side-panel/custom-panel.d.ts +9 -0
- package/dist/components/side-panel/filter-manager.d.ts +20 -0
- package/dist/components/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
- package/dist/components/side-panel/filter-panel/filter-panel.d.ts +23 -0
- package/dist/components/side-panel/interaction-manager.d.ts +14 -0
- package/dist/components/side-panel/interaction-panel/brush-config.d.ts +15 -0
- package/dist/components/side-panel/interaction-panel/interaction-panel.d.ts +19 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
- package/dist/components/side-panel/layer-manager.d.ts +46 -0
- package/dist/components/side-panel/layer-panel/add-layer-button.d.ts +10 -0
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.d.ts +8 -0
- package/dist/components/side-panel/layer-panel/color-palette.d.ts +13 -0
- package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +129 -0
- package/dist/components/side-panel/layer-panel/color-selector.d.ts +101 -0
- package/dist/components/side-panel/layer-panel/column-selector.d.ts +22 -0
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.d.ts +6 -0
- package/dist/components/side-panel/layer-panel/custom-palette.d.ts +38 -0
- package/dist/components/side-panel/layer-panel/custom-picker.d.ts +67 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-group.d.ts +24 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
- package/dist/components/side-panel/layer-panel/dataset-section.d.ts +26 -0
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
- package/dist/components/side-panel/layer-panel/hex-column-config.d.ts +62 -0
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.d.ts +8 -0
- package/dist/components/side-panel/layer-panel/layer-column-config.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/layer-config-group.d.ts +37 -0
- package/dist/components/side-panel/layer-panel/layer-configurator.d.ts +415 -0
- package/dist/components/side-panel/layer-panel/layer-list.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/layer-panel-header.d.ts +43 -0
- package/dist/components/side-panel/layer-panel/layer-panel.d.ts +40 -0
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.d.ts +17 -0
- package/dist/components/side-panel/layer-panel/layer-type-list-item.d.ts +11 -0
- package/dist/components/side-panel/layer-panel/layer-type-selector.d.ts +23 -0
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.d.ts +23 -0
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
- package/dist/components/side-panel/layer-panel/single-color-palette.d.ts +12 -0
- package/dist/components/side-panel/layer-panel/text-label-panel.d.ts +18 -0
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.d.ts +35 -0
- package/dist/components/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
- package/dist/components/side-panel/map-manager.d.ts +21 -0
- package/dist/components/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
- package/dist/components/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
- package/dist/components/side-panel/panel-dropdown.d.ts +18 -0
- package/dist/components/side-panel/panel-header-action.d.ts +20 -0
- package/dist/components/side-panel/panel-header.d.ts +78 -0
- package/dist/components/side-panel/panel-tab.d.ts +20 -0
- package/dist/components/side-panel/panel-title.d.ts +4 -0
- package/dist/components/side-panel/panel-toggle.d.ts +14 -0
- package/dist/components/side-panel/side-bar.d.ts +76 -0
- package/dist/components/side-panel.d.ts +134 -0
- package/dist/components/types.d.ts +44 -0
- package/dist/connect/keplergl-connect.d.ts +5 -0
- package/dist/connect/with-local-selector.d.ts +6 -0
- package/dist/constants/action-types.d.ts +111 -0
- package/dist/constants/color-palette.d.ts +491 -0
- package/dist/constants/color-ranges.d.ts +24 -0
- package/dist/constants/custom-color-ranges.d.ts +37 -0
- package/dist/constants/default-settings.d.ts +773 -0
- package/dist/constants/index.d.ts +9 -0
- package/dist/constants/keyevent.d.ts +2 -0
- package/dist/constants/tooltip.d.ts +165 -0
- package/dist/constants/user-feedbacks.d.ts +5 -0
- package/dist/constants/user-guides.d.ts +9 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.d.ts +13 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.d.ts +7 -0
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.d.ts +6 -0
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +13 -0
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.d.ts +13 -0
- package/dist/deckgl-layers/layer-utils/cluster-utils.d.ts +12 -0
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +91 -0
- package/dist/deckgl-layers/layer-utils/shader-utils.d.ts +1 -0
- package/dist/deckgl-layers/line-layer/line-layer.d.ts +12 -0
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.d.ts +8 -0
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.d.ts +18 -0
- package/dist/index.d.ts +11 -0
- package/dist/layers/aggregation-layer.d.ts +70 -0
- package/dist/layers/arc-layer/arc-layer-icon.d.ts +16 -0
- package/dist/layers/arc-layer/arc-layer.d.ts +143 -0
- package/dist/layers/base-layer.d.ts +436 -0
- package/dist/layers/cluster-layer/cluster-layer-icon.d.ts +16 -0
- package/dist/layers/cluster-layer/cluster-layer.d.ts +39 -0
- package/dist/layers/default-layer-icon.d.ts +14 -0
- package/dist/layers/geojson-layer/geojson-layer-icon.d.ts +15 -0
- package/dist/layers/geojson-layer/geojson-layer.d.ts +230 -0
- package/dist/layers/geojson-layer/geojson-utils.d.ts +44 -0
- package/dist/layers/grid-layer/grid-layer-icon.d.ts +15 -0
- package/dist/layers/grid-layer/grid-layer.d.ts +74 -0
- package/dist/layers/grid-layer/grid-utils.d.ts +24 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.d.ts +16 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.d.ts +170 -0
- package/dist/layers/h3-hexagon-layer/h3-utils.d.ts +20 -0
- package/dist/layers/heatmap-layer/heatmap-layer-icon.d.ts +15 -0
- package/dist/layers/heatmap-layer/heatmap-layer.d.ts +144 -0
- package/dist/layers/hexagon-layer/hexagon-layer-icon.d.ts +15 -0
- package/dist/layers/hexagon-layer/hexagon-layer.d.ts +78 -0
- package/dist/layers/hexagon-layer/hexagon-utils.d.ts +7 -0
- package/dist/layers/icon-layer/icon-info-modal.d.ts +3 -0
- package/dist/layers/icon-layer/icon-layer-icon.d.ts +15 -0
- package/dist/layers/icon-layer/icon-layer.d.ts +119 -0
- package/dist/layers/index.d.ts +53 -0
- package/dist/layers/layer-factory.d.ts +150 -0
- package/dist/layers/layer-text-label.d.ts +7 -0
- package/dist/layers/layer-update.d.ts +9 -0
- package/dist/layers/line-layer/line-layer-icon.d.ts +15 -0
- package/dist/layers/line-layer/line-layer.d.ts +136 -0
- package/dist/layers/mapbox-utils.d.ts +57 -0
- package/dist/layers/mapboxgl-layer.d.ts +87 -0
- package/dist/layers/point-layer/point-layer-icon.d.ts +15 -0
- package/dist/layers/point-layer/point-layer.d.ts +272 -0
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.d.ts +189 -0
- package/dist/layers/s2-geometry-layer/s2-layer-icon.d.ts +15 -0
- package/dist/layers/s2-geometry-layer/s2-utils.d.ts +7 -0
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.d.ts +3 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.d.ts +15 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer.d.ts +80 -0
- package/dist/layers/trip-layer/trip-info-modal.d.ts +3 -0
- package/dist/layers/trip-layer/trip-layer-icon.d.ts +15 -0
- package/dist/layers/trip-layer/trip-layer.d.ts +157 -0
- package/dist/layers/trip-layer/trip-utils.d.ts +31 -0
- package/dist/layers/types.d.ts +15 -0
- package/dist/localization/formatted-message.d.ts +12 -0
- package/dist/localization/index.d.ts +5 -0
- package/dist/localization/locales.d.ts +27 -0
- package/dist/localization/messages.d.ts +4 -0
- package/dist/localization/translations/ca.d.ts +438 -0
- package/dist/localization/translations/cn.d.ts +441 -0
- package/dist/localization/translations/en.d.ts +466 -0
- package/dist/localization/translations/es.d.ts +438 -0
- package/dist/localization/translations/fi.d.ts +410 -0
- package/dist/localization/translations/ja.d.ts +439 -0
- package/dist/localization/translations/pt.d.ts +410 -0
- package/dist/localization/translations/ru.d.ts +447 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/processors/data-processor.d.ts +242 -0
- package/dist/processors/file-handler.d.ts +28 -0
- package/dist/processors/index.d.ts +3 -0
- package/dist/processors/types.d.ts +21 -0
- package/dist/reducers/combined-updaters.d.ts +52 -0
- package/dist/reducers/composer-helpers.d.ts +21 -0
- package/dist/reducers/composers.d.ts +12 -0
- package/dist/reducers/core.d.ts +65 -0
- package/dist/reducers/index.d.ts +19 -0
- package/dist/reducers/map-state-updaters.d.ts +96 -0
- package/dist/reducers/map-state.d.ts +4 -0
- package/dist/reducers/map-style-updaters.d.ts +204 -0
- package/dist/reducers/map-style.d.ts +16 -0
- package/dist/reducers/provider-state-updaters.d.ts +41 -0
- package/dist/reducers/provider-state.d.ts +4 -0
- package/dist/reducers/root.d.ts +24 -0
- package/dist/reducers/types.d.ts +16 -0
- package/dist/reducers/ui-state-updaters.d.ts +434 -0
- package/dist/reducers/ui-state.d.ts +3 -0
- package/dist/reducers/vis-state-merger.d.ts +110 -0
- package/dist/reducers/vis-state-selectors.d.ts +10 -0
- package/dist/reducers/vis-state-updaters.d.ts +645 -0
- package/dist/reducers/vis-state.d.ts +4 -0
- package/dist/schemas/dataset-schema.d.ts +17 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/map-state-schema.d.ts +23 -0
- package/dist/schemas/map-style-schema.d.ts +38 -0
- package/dist/schemas/schema-manager.d.ts +271 -0
- package/dist/schemas/schema-utils.d.ts +11 -0
- package/dist/schemas/schema.d.ts +37 -0
- package/dist/schemas/versions.d.ts +5 -0
- package/dist/schemas/vis-state-schema.d.ts +214 -0
- package/dist/styles/base.d.ts +1530 -0
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/media-breakpoints.d.ts +13 -0
- package/dist/tasks/tasks.d.ts +15 -0
- package/dist/templates/export-map-html.d.ts +9 -0
- package/dist/utils/aggregate-utils.d.ts +3 -0
- package/dist/utils/color-utils.d.ts +44 -0
- package/dist/utils/data-scale-utils.d.ts +23 -0
- package/dist/utils/data-utils.d.ts +115 -0
- package/dist/utils/dataset-utils.d.ts +38 -0
- package/dist/utils/dom-to-image.d.ts +73 -0
- package/dist/utils/dom-utils.d.ts +20 -0
- package/dist/utils/export-utils.d.ts +56 -0
- package/dist/utils/filter-utils.d.ts +267 -0
- package/dist/utils/gl-utils.d.ts +1 -0
- package/dist/utils/gpu-filter-utils.d.ts +28 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/interaction-utils.d.ts +36 -0
- package/dist/utils/layer-utils.d.ts +54 -0
- package/dist/utils/locale-utils.d.ts +2 -0
- package/dist/utils/map-info-utils.d.ts +1 -0
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +64 -0
- package/dist/utils/map-style-utils/mapbox-utils.d.ts +3 -0
- package/dist/utils/mapbox-utils.d.ts +7 -0
- package/dist/utils/notifications-utils.d.ts +54 -0
- package/dist/utils/observe-dimensions.d.ts +15 -0
- package/dist/utils/projection-utils.d.ts +12 -0
- package/dist/utils/searcher-utils.d.ts +1 -0
- package/dist/utils/split-map-utils.d.ts +29 -0
- package/dist/utils/table-utils/data-container-interface.d.ts +115 -0
- package/dist/utils/table-utils/data-container-utils.d.ts +29 -0
- package/dist/utils/table-utils/data-row.d.ts +59 -0
- package/dist/utils/table-utils/index.d.ts +1 -0
- package/dist/utils/table-utils/indexed-data-container.d.ts +34 -0
- package/dist/utils/table-utils/kepler-table.d.ts +168 -0
- package/dist/utils/table-utils/row-data-container.d.ts +31 -0
- package/dist/utils/utils.d.ts +98 -0
- package/package.json +163 -72
- package/src/actions/action-wrapper.ts +183 -0
- package/src/actions/actions.ts +259 -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 +276 -0
- package/src/components/bottom-widget.tsx +277 -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 +250 -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 +47 -0
- package/src/components/common/field-selector.tsx +242 -0
- package/src/components/common/field-token.tsx +60 -0
- package/src/components/common/file-uploader/file-drop.tsx +209 -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 +89 -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 +91 -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 +373 -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 +315 -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 +714 -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 +189 -0
- package/src/components/context.ts +32 -0
- package/src/components/editor/editor.tsx +234 -0
- package/src/components/editor/feature-action-panel.tsx +155 -0
- package/src/components/editor/feature-styles.ts +76 -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 +40 -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 +269 -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 +585 -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 +122 -0
- package/src/components/map/locale-panel.tsx +110 -0
- package/src/components/map/map-control-panel.tsx +142 -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 +284 -0
- package/src/components/map/map-popover.tsx +268 -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 +549 -0
- package/src/components/maps-layout.tsx +45 -0
- package/src/components/modal-container.tsx +555 -0
- package/src/components/modals/add-map-style-modal.tsx +304 -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 +86 -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 +62 -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/performance.tsx +105 -0
- package/src/components/plot-container.tsx +243 -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 +187 -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.tsx +33 -0
- package/src/components/side-panel/layer-panel/color-palette.tsx +98 -0
- package/src/components/side-panel/layer-panel/color-range-selector.tsx +388 -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.tsx +30 -0
- package/src/components/side-panel/layer-panel/custom-palette.tsx +301 -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/hex-column-config.tsx +53 -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 +259 -0
- package/src/components/side-panel/layer-panel/layer-configurator.tsx +1419 -0
- package/src/components/side-panel/layer-panel/layer-list.tsx +193 -0
- package/src/components/side-panel/layer-panel/layer-panel-header.tsx +273 -0
- package/src/components/side-panel/layer-panel/layer-panel.tsx +197 -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.tsx +123 -0
- 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 +189 -0
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.tsx +187 -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 +54 -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 +141 -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 +1051 -0
- package/src/constants/index.ts +84 -0
- package/src/deckgl-layers/3d-building-layer/3d-building-layer.ts +63 -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 +70 -0
- package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.ts +70 -0
- package/src/deckgl-layers/layer-utils/cluster-utils.ts +78 -0
- package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +671 -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 +68 -0
- package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.ts +102 -0
- package/src/index.ts +54 -0
- package/src/layers/aggregation-layer.ts +400 -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 +1744 -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 +462 -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 +154 -0
- package/src/layers/grid-layer/grid-utils.ts +84 -0
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +340 -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 +157 -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 +396 -0
- package/src/layers/index.ts +81 -0
- package/src/layers/layer-factory.ts +707 -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 +223 -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 +507 -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 +250 -0
- package/src/processors/index.ts +23 -0
- package/src/processors/types.ts +22 -0
- package/src/reducers/combined-updaters.ts +215 -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 +638 -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 +230 -0
- package/src/reducers/types.ts +18 -0
- package/src/reducers/ui-state-updaters.ts +925 -0
- package/src/reducers/ui-state.ts +75 -0
- package/src/reducers/vis-state-merger.ts +625 -0
- package/src/reducers/vis-state-selectors.ts +35 -0
- package/src/reducers/vis-state-updaters.ts +2567 -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 +445 -0
- package/src/schemas/schema.ts +122 -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 +135 -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 +1181 -0
- package/src/utils/gpu-filter-utils.ts +249 -0
- package/src/utils/index.ts +72 -0
- package/src/utils/interaction-utils.ts +212 -0
- package/src/utils/layer-utils.ts +248 -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-interface.ts +140 -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 +638 -0
- package/src/utils/table-utils/row-data-container.ts +178 -0
- package/src/utils/utils.ts +228 -0
- package/CHANGELOG.md +0 -979
- package/actions.js +0 -21
- package/cloud-providers.js +0 -21
- package/components.js +0 -21
- package/constants.js +0 -21
- package/dist/actions/action-wrapper.js +0 -190
- package/dist/actions/actions.js +0 -189
- package/dist/actions/identity-actions.js +0 -96
- package/dist/actions/index.js +0 -144
- package/dist/actions/map-state-actions.js +0 -103
- package/dist/actions/map-style-actions.js +0 -152
- package/dist/actions/provider-actions.js +0 -113
- package/dist/actions/ui-state-actions.js +0 -288
- package/dist/actions/vis-state-actions.js +0 -985
- package/dist/cloud-providers/index.js +0 -22
- package/dist/cloud-providers/provider.js +0 -347
- package/dist/components/bottom-widget.js +0 -214
- package/dist/components/common/action-panel.js +0 -135
- package/dist/components/common/animation-control/animation-control.js +0 -128
- package/dist/components/common/animation-control/animation-controller.js +0 -250
- package/dist/components/common/animation-control/animation-speed-slider.js +0 -91
- package/dist/components/common/animation-control/floating-time-display.js +0 -146
- package/dist/components/common/animation-control/playback-controls.js +0 -262
- package/dist/components/common/animation-control/speed-control.js +0 -70
- package/dist/components/common/checkbox.js +0 -134
- package/dist/components/common/color-legend.js +0 -217
- package/dist/components/common/data-table/button.js +0 -53
- package/dist/components/common/data-table/canvas.js +0 -43
- package/dist/components/common/data-table/cell-size.js +0 -170
- package/dist/components/common/data-table/grid.js +0 -83
- package/dist/components/common/data-table/index.js +0 -472
- package/dist/components/common/data-table/option-dropdown.js +0 -99
- package/dist/components/common/dataset-label.js +0 -44
- package/dist/components/common/error-boundary.js +0 -78
- package/dist/components/common/field-selector.js +0 -248
- package/dist/components/common/field-token.js +0 -47
- package/dist/components/common/file-uploader/file-drop.js +0 -212
- package/dist/components/common/file-uploader/file-upload-progress.js +0 -104
- package/dist/components/common/file-uploader/file-upload.js +0 -265
- package/dist/components/common/file-uploader/upload-button.js +0 -100
- package/dist/components/common/histogram-plot.js +0 -107
- package/dist/components/common/icons/add.js +0 -64
- package/dist/components/common/icons/anchor_window.js +0 -56
- package/dist/components/common/icons/arrow-down-alt.js +0 -64
- package/dist/components/common/icons/arrow-down-solid .js +0 -64
- package/dist/components/common/icons/arrow-down.js +0 -64
- package/dist/components/common/icons/arrow-left.js +0 -67
- package/dist/components/common/icons/arrow-right.js +0 -64
- package/dist/components/common/icons/arrow-up-alt.js +0 -65
- package/dist/components/common/icons/arrow-up-solid.js +0 -64
- package/dist/components/common/icons/arrow-up.js +0 -64
- package/dist/components/common/icons/base.js +0 -106
- package/dist/components/common/icons/bug.js +0 -66
- package/dist/components/common/icons/cancel.js +0 -64
- package/dist/components/common/icons/checkmark.js +0 -70
- package/dist/components/common/icons/chevron-right.js +0 -69
- package/dist/components/common/icons/clipboard.js +0 -65
- package/dist/components/common/icons/clock.js +0 -66
- package/dist/components/common/icons/close.js +0 -69
- package/dist/components/common/icons/code-alt.js +0 -67
- package/dist/components/common/icons/copy.js +0 -69
- package/dist/components/common/icons/crosshairs.js +0 -67
- package/dist/components/common/icons/cube-3d.js +0 -68
- package/dist/components/common/icons/cursor-click.js +0 -68
- package/dist/components/common/icons/data-table.js +0 -65
- package/dist/components/common/icons/db.js +0 -65
- package/dist/components/common/icons/delete.js +0 -65
- package/dist/components/common/icons/docs.js +0 -80
- package/dist/components/common/icons/drag-n-drop.js +0 -66
- package/dist/components/common/icons/draw-polygon.js +0 -87
- package/dist/components/common/icons/email.js +0 -68
- package/dist/components/common/icons/expand.js +0 -66
- package/dist/components/common/icons/eye-seen.js +0 -66
- package/dist/components/common/icons/eye-unseen.js +0 -66
- package/dist/components/common/icons/file-type.js +0 -52
- package/dist/components/common/icons/file.js +0 -64
- package/dist/components/common/icons/files.js +0 -64
- package/dist/components/common/icons/filter-funnel.js +0 -64
- package/dist/components/common/icons/free-window.js +0 -56
- package/dist/components/common/icons/gear.js +0 -66
- package/dist/components/common/icons/hash.js +0 -64
- package/dist/components/common/icons/histogram.js +0 -63
- package/dist/components/common/icons/index.js +0 -537
- package/dist/components/common/icons/info.js +0 -77
- package/dist/components/common/icons/layers.js +0 -64
- package/dist/components/common/icons/left-arrow.js +0 -67
- package/dist/components/common/icons/legend.js +0 -64
- package/dist/components/common/icons/line-chart.js +0 -63
- package/dist/components/common/icons/login.js +0 -66
- package/dist/components/common/icons/logout.js +0 -65
- package/dist/components/common/icons/map-icon.js +0 -72
- package/dist/components/common/icons/map.js +0 -72
- package/dist/components/common/icons/messages.js +0 -64
- package/dist/components/common/icons/minus.js +0 -64
- package/dist/components/common/icons/pause.js +0 -64
- package/dist/components/common/icons/picture.js +0 -64
- package/dist/components/common/icons/pin.js +0 -64
- package/dist/components/common/icons/play.js +0 -64
- package/dist/components/common/icons/polygon.js +0 -89
- package/dist/components/common/icons/rectangle.js +0 -90
- package/dist/components/common/icons/reduce.js +0 -67
- package/dist/components/common/icons/reset.js +0 -64
- package/dist/components/common/icons/rocket.js +0 -64
- package/dist/components/common/icons/save.js +0 -66
- package/dist/components/common/icons/save2.js +0 -70
- package/dist/components/common/icons/search.js +0 -66
- package/dist/components/common/icons/settings.js +0 -66
- package/dist/components/common/icons/share.js +0 -64
- package/dist/components/common/icons/split.js +0 -92
- package/dist/components/common/icons/square-select.js +0 -66
- package/dist/components/common/icons/swap-horizontal.js +0 -67
- package/dist/components/common/icons/table.js +0 -63
- package/dist/components/common/icons/trash.js +0 -66
- package/dist/components/common/icons/upload.js +0 -65
- package/dist/components/common/icons/vert-dots.js +0 -102
- package/dist/components/common/icons/vert-three-dots.js +0 -77
- package/dist/components/common/icons/warning.js +0 -78
- package/dist/components/common/image-preview.js +0 -80
- package/dist/components/common/info-helper.js +0 -85
- package/dist/components/common/item-selector/accessor.js +0 -54
- package/dist/components/common/item-selector/chickleted-input.js +0 -116
- package/dist/components/common/item-selector/dropdown-list.js +0 -289
- package/dist/components/common/item-selector/item-selector-submenu.js +0 -90
- package/dist/components/common/item-selector/item-selector.js +0 -315
- package/dist/components/common/item-selector/typeahead.js +0 -450
- package/dist/components/common/line-chart.js +0 -128
- package/dist/components/common/loading-spinner.js +0 -66
- package/dist/components/common/logo.js +0 -94
- package/dist/components/common/map-layer-selector.js +0 -57
- package/dist/components/common/modal.js +0 -179
- package/dist/components/common/portaled.js +0 -276
- package/dist/components/common/progress-bar.js +0 -65
- package/dist/components/common/range-brush.js +0 -278
- package/dist/components/common/range-plot.js +0 -143
- package/dist/components/common/range-slider.js +0 -320
- package/dist/components/common/slider/mouse-event.js +0 -110
- package/dist/components/common/slider/slider-bar-handle.js +0 -114
- package/dist/components/common/slider/slider-handle.js +0 -158
- package/dist/components/common/slider/slider.js +0 -241
- package/dist/components/common/styled-components.js +0 -290
- package/dist/components/common/switch.js +0 -53
- package/dist/components/common/time-range-slider-time-title.js +0 -79
- package/dist/components/common/time-range-slider.js +0 -134
- package/dist/components/common/time-slider-marker.js +0 -136
- package/dist/components/common/toolbar-item.js +0 -73
- package/dist/components/common/toolbar.js +0 -44
- package/dist/components/common/vertical-toolbar.js +0 -33
- package/dist/components/container.js +0 -196
- package/dist/components/context.js +0 -38
- package/dist/components/editor/constants.js +0 -45
- package/dist/components/editor/editor.js +0 -242
- package/dist/components/editor/feature-action-panel.js +0 -146
- package/dist/components/editor/feature-styles.js +0 -67
- package/dist/components/editor/handle-style.js +0 -78
- package/dist/components/filters/components.js +0 -31
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +0 -99
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +0 -73
- package/dist/components/filters/filter-panels/new-filter-panel.js +0 -91
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +0 -90
- package/dist/components/filters/filter-panels/range-filter-panel.js +0 -73
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +0 -73
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +0 -83
- package/dist/components/filters/index.js +0 -42
- package/dist/components/filters/multi-select-filter.js +0 -48
- package/dist/components/filters/polygon-filter.js +0 -86
- package/dist/components/filters/range-filter.js +0 -48
- package/dist/components/filters/single-select-filter.js +0 -57
- package/dist/components/filters/time-range-filter.js +0 -75
- package/dist/components/filters/time-widget.js +0 -163
- package/dist/components/geocoder/geocoder.js +0 -282
- package/dist/components/geocoder-panel.js +0 -199
- package/dist/components/index.js +0 -1343
- package/dist/components/injector.js +0 -162
- package/dist/components/kepler-gl.js +0 -470
- package/dist/components/map/coordinate-info.js +0 -59
- package/dist/components/map/layer-hover-info.js +0 -168
- package/dist/components/map/layer-selector-panel.js +0 -103
- package/dist/components/map/locale-panel.js +0 -99
- package/dist/components/map/map-control-panel.js +0 -82
- package/dist/components/map/map-control-toolbar.js +0 -35
- package/dist/components/map/map-control-tooltip.js +0 -48
- package/dist/components/map/map-control.js +0 -79
- package/dist/components/map/map-draw-panel.js +0 -125
- package/dist/components/map/map-legend-panel.js +0 -107
- package/dist/components/map/map-legend.js +0 -226
- package/dist/components/map/map-popover.js +0 -188
- package/dist/components/map/split-map-button.js +0 -86
- package/dist/components/map/toggle-3d-button.js +0 -75
- package/dist/components/map-container.js +0 -515
- package/dist/components/maps-layout.js +0 -56
- package/dist/components/modal-container.js +0 -484
- package/dist/components/modals/add-map-style-modal.js +0 -258
- package/dist/components/modals/cloud-tile.js +0 -124
- package/dist/components/modals/data-table-modal.js +0 -219
- package/dist/components/modals/delete-data-modal.js +0 -58
- package/dist/components/modals/error-display.js +0 -44
- package/dist/components/modals/export-data-modal.js +0 -210
- package/dist/components/modals/export-image-modal.js +0 -139
- package/dist/components/modals/export-map-modal/components.js +0 -51
- package/dist/components/modals/export-map-modal/export-html-map.js +0 -141
- package/dist/components/modals/export-map-modal/export-json-map.js +0 -87
- package/dist/components/modals/export-map-modal/export-map-modal.js +0 -113
- package/dist/components/modals/image-modal-container.js +0 -83
- package/dist/components/modals/load-data-modal.js +0 -93
- package/dist/components/modals/load-storage-map.js +0 -253
- package/dist/components/modals/loading-dialog.js +0 -54
- package/dist/components/modals/modal-dialog.js +0 -33
- package/dist/components/modals/modal-tabs.js +0 -99
- package/dist/components/modals/overwrite-map-modal.js +0 -81
- package/dist/components/modals/provider-modal-container.js +0 -84
- package/dist/components/modals/save-map-modal.js +0 -202
- package/dist/components/modals/share-map-modal.js +0 -191
- package/dist/components/modals/status-panel.js +0 -82
- package/dist/components/modals/storage-map-viewer.js +0 -122
- package/dist/components/notification-panel/notification-item.js +0 -150
- package/dist/components/notification-panel.js +0 -81
- package/dist/components/performance.js +0 -109
- package/dist/components/plot-container.js +0 -245
- package/dist/components/side-panel/cloud-storage-dropdown.js +0 -57
- package/dist/components/side-panel/common/dataset-info.js +0 -50
- package/dist/components/side-panel/common/dataset-tag.js +0 -51
- package/dist/components/side-panel/common/dataset-title.js +0 -155
- package/dist/components/side-panel/common/source-data-catalog.js +0 -64
- package/dist/components/side-panel/common/source-data-selector.js +0 -114
- package/dist/components/side-panel/custom-panel.js +0 -56
- package/dist/components/side-panel/filter-manager.js +0 -121
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +0 -70
- package/dist/components/side-panel/filter-panel/filter-panel.js +0 -126
- package/dist/components/side-panel/interaction-manager.js +0 -51
- package/dist/components/side-panel/interaction-panel/brush-config.js +0 -58
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +0 -145
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -210
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +0 -151
- package/dist/components/side-panel/layer-manager.js +0 -290
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +0 -38
- package/dist/components/side-panel/layer-panel/color-palette.js +0 -87
- package/dist/components/side-panel/layer-panel/color-range-selector.js +0 -366
- package/dist/components/side-panel/layer-panel/color-selector.js +0 -198
- package/dist/components/side-panel/layer-panel/column-selector.js +0 -66
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +0 -36
- package/dist/components/side-panel/layer-panel/custom-palette.js +0 -284
- package/dist/components/side-panel/layer-panel/custom-picker.js +0 -115
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +0 -53
- package/dist/components/side-panel/layer-panel/hex-column-config.js +0 -75
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +0 -18
- package/dist/components/side-panel/layer-panel/layer-column-config.js +0 -97
- package/dist/components/side-panel/layer-panel/layer-config-group.js +0 -211
- package/dist/components/side-panel/layer-panel/layer-configurator.js +0 -970
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +0 -208
- package/dist/components/side-panel/layer-panel/layer-panel.js +0 -180
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -95
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +0 -75
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +0 -93
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -106
- package/dist/components/side-panel/layer-panel/single-color-palette.js +0 -99
- package/dist/components/side-panel/layer-panel/text-label-panel.js +0 -164
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -161
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +0 -81
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +0 -83
- package/dist/components/side-panel/map-manager.js +0 -141
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +0 -103
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +0 -80
- package/dist/components/side-panel/panel-dropdown.js +0 -79
- package/dist/components/side-panel/panel-header-action.js +0 -116
- package/dist/components/side-panel/panel-header.js +0 -313
- package/dist/components/side-panel/panel-tab.js +0 -72
- package/dist/components/side-panel/panel-title.js +0 -39
- package/dist/components/side-panel/panel-toggle.js +0 -72
- package/dist/components/side-panel/side-bar.js +0 -148
- package/dist/components/side-panel.js +0 -233
- package/dist/connect/keplergl-connect.js +0 -59
- package/dist/connect/with-local-selector.js +0 -105
- package/dist/constants/action-types.js +0 -179
- package/dist/constants/color-palette.js +0 -536
- package/dist/constants/color-ranges.js +0 -81
- package/dist/constants/custom-color-ranges.js +0 -410
- package/dist/constants/default-settings.js +0 -820
- package/dist/constants/index.js +0 -362
- package/dist/constants/keyevent.js +0 -43
- package/dist/constants/tooltip.js +0 -202
- package/dist/constants/user-feedbacks.js +0 -32
- package/dist/constants/user-guides.js +0 -36
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -85
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -181
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +0 -313
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +0 -75
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -95
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -95
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +0 -108
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +0 -586
- package/dist/deckgl-layers/layer-utils/shader-utils.js +0 -46
- package/dist/deckgl-layers/line-layer/line-layer.js +0 -104
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -74
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -114
- package/dist/index.js +0 -136
- package/dist/layers/aggregation-layer.js +0 -382
- package/dist/layers/arc-layer/arc-layer-icon.js +0 -77
- package/dist/layers/arc-layer/arc-layer.js +0 -250
- package/dist/layers/base-layer.js +0 -1687
- package/dist/layers/cluster-layer/cluster-layer-icon.js +0 -80
- package/dist/layers/cluster-layer/cluster-layer.js +0 -140
- package/dist/layers/default-layer-icon.js +0 -87
- package/dist/layers/geojson-layer/geojson-layer-icon.js +0 -91
- package/dist/layers/geojson-layer/geojson-layer.js +0 -413
- package/dist/layers/geojson-layer/geojson-utils.js +0 -171
- package/dist/layers/grid-layer/grid-layer-icon.js +0 -136
- package/dist/layers/grid-layer/grid-layer.js +0 -104
- package/dist/layers/grid-layer/grid-utils.js +0 -59
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +0 -71
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -314
- package/dist/layers/h3-hexagon-layer/h3-utils.js +0 -86
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +0 -88
- package/dist/layers/heatmap-layer/heatmap-layer.js +0 -242
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +0 -100
- package/dist/layers/hexagon-layer/hexagon-layer.js +0 -108
- package/dist/layers/hexagon-layer/hexagon-utils.js +0 -62
- package/dist/layers/icon-layer/icon-info-modal.js +0 -114
- package/dist/layers/icon-layer/icon-layer-icon.js +0 -73
- package/dist/layers/icon-layer/icon-layer.js +0 -354
- package/dist/layers/index.js +0 -96
- package/dist/layers/layer-factory.js +0 -502
- package/dist/layers/layer-text-label.js +0 -62
- package/dist/layers/layer-update.js +0 -74
- package/dist/layers/line-layer/line-layer-icon.js +0 -79
- package/dist/layers/line-layer/line-layer.js +0 -189
- package/dist/layers/mapbox-utils.js +0 -191
- package/dist/layers/mapboxgl-layer.js +0 -195
- package/dist/layers/point-layer/point-layer-icon.js +0 -94
- package/dist/layers/point-layer/point-layer.js +0 -443
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +0 -302
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +0 -70
- package/dist/layers/s2-geometry-layer/s2-utils.js +0 -45
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +0 -54
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +0 -151
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +0 -227
- package/dist/layers/trip-layer/trip-info-modal.js +0 -59
- package/dist/layers/trip-layer/trip-layer-icon.js +0 -89
- package/dist/layers/trip-layer/trip-layer.js +0 -361
- package/dist/layers/trip-layer/trip-utils.js +0 -181
- package/dist/layers/types.js +0 -44
- package/dist/localization/en.js +0 -494
- package/dist/localization/formatted-message.js +0 -40
- package/dist/localization/index.js +0 -54
- package/dist/localization/locales.js +0 -59
- package/dist/middleware/index.js +0 -44
- package/dist/processors/data-processor.js +0 -720
- package/dist/processors/file-handler.js +0 -356
- package/dist/processors/index.js +0 -104
- package/dist/reducers/combined-updaters.js +0 -184
- package/dist/reducers/composer-helpers.js +0 -111
- package/dist/reducers/composers.js +0 -40
- package/dist/reducers/core.js +0 -123
- package/dist/reducers/index.js +0 -125
- package/dist/reducers/map-state-updaters.js +0 -227
- package/dist/reducers/map-state.js +0 -52
- package/dist/reducers/map-style-updaters.js +0 -487
- package/dist/reducers/map-style.js +0 -51
- package/dist/reducers/provider-state-updaters.js +0 -466
- package/dist/reducers/provider-state.js +0 -53
- package/dist/reducers/root.js +0 -212
- package/dist/reducers/ui-state-updaters.js +0 -755
- package/dist/reducers/ui-state.js +0 -53
- package/dist/reducers/vis-state-merger.js +0 -565
- package/dist/reducers/vis-state-selectors.js +0 -47
- package/dist/reducers/vis-state-updaters.js +0 -2156
- package/dist/reducers/vis-state.js +0 -53
- package/dist/schemas/dataset-schema.js +0 -169
- package/dist/schemas/index.js +0 -125
- package/dist/schemas/map-state-schema.js +0 -53
- package/dist/schemas/map-style-schema.js +0 -108
- package/dist/schemas/schema-manager.js +0 -244
- package/dist/schemas/schema-utils.js +0 -58
- package/dist/schemas/schema.js +0 -119
- package/dist/schemas/versions.js +0 -34
- package/dist/schemas/vis-state-schema.js +0 -906
- package/dist/styles/base.js +0 -1297
- package/dist/styles/index.js +0 -28
- package/dist/styles/media-breakpoints.js +0 -51
- package/dist/tasks/tasks.js +0 -94
- package/dist/templates/export-map-html.js +0 -42
- package/dist/utils/aggregate-utils.js +0 -71
- package/dist/utils/color-utils.js +0 -129
- package/dist/utils/custom-scales.js +0 -22
- package/dist/utils/data-scale-utils.js +0 -75
- package/dist/utils/data-utils.js +0 -462
- package/dist/utils/dataset-utils.js +0 -237
- package/dist/utils/dom-to-image.js +0 -479
- package/dist/utils/dom-utils.js +0 -343
- package/dist/utils/export-utils.js +0 -260
- package/dist/utils/filter-utils.js +0 -1136
- package/dist/utils/gl-utils.js +0 -43
- package/dist/utils/gpu-filter-utils.js +0 -248
- package/dist/utils/index.js +0 -220
- package/dist/utils/interaction-utils.js +0 -177
- package/dist/utils/layer-utils.js +0 -201
- package/dist/utils/locale-utils.js +0 -56
- package/dist/utils/map-info-utils.js +0 -31
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +0 -213
- package/dist/utils/map-style-utils/mapbox-utils.js +0 -33
- package/dist/utils/mapbox-utils.js +0 -36
- package/dist/utils/notifications-utils.js +0 -90
- package/dist/utils/observe-dimensions.js +0 -142
- package/dist/utils/projection-utils.js +0 -72
- package/dist/utils/searcher-utils.js +0 -42
- package/dist/utils/split-map-utils.js +0 -112
- package/dist/utils/table-utils/data-container-utils.js +0 -73
- package/dist/utils/table-utils/data-row.js +0 -71
- package/dist/utils/table-utils/index.js +0 -19
- package/dist/utils/table-utils/indexed-data-container.js +0 -222
- package/dist/utils/table-utils/kepler-table.js +0 -520
- package/dist/utils/table-utils/row-data-container.js +0 -217
- package/dist/utils/utils.js +0 -216
- package/layers.js +0 -21
- package/localization.js +0 -21
- package/middleware.js +0 -21
- package/processors.js +0 -21
- package/reducers.js +0 -21
- package/schemas.js +0 -21
- 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/performance.js +0 -103
- 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-dimension-scale-selector.js +0 -33
- package/src/components/side-panel/layer-panel/color-palette.js +0 -90
- package/src/components/side-panel/layer-panel/color-range-selector.js +0 -359
- 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-markers-config-group.js +0 -30
- 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/hex-column-config.js +0 -45
- 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-configurator.js +0 -1412
- 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/layer-visibility-by-zoom.js +0 -123
- 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/constants/index.js +0 -80
- 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/index.js +0 -52
- 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 -487
- 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 -412
- 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-interface.d.ts +0 -140
- 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/styles.js +0 -21
- /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-aggregation-resolution.js → layer-aggregation-resolution.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/{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/{index.js → index.ts} +0 -0
|
@@ -1,906 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.visStateSchemaV1 = exports.visStateSchemaV0 = exports.visStateSchema = exports.propertiesV1 = exports.propertiesV0 = exports.layerPropsV1 = exports.layerPropsV0 = exports.filterPropsV1 = exports.filterPropsV0 = exports.dimensionPropsV0 = exports["default"] = exports.SplitMapsSchema = exports.LayerSchemaV0 = exports.InteractionSchemaV1 = exports.FilterSchemaV0 = exports.DimensionFieldSchema = void 0;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
18
|
-
var _versions = require("./versions");
|
|
19
|
-
var _filterUtils = require("../utils/filter-utils");
|
|
20
|
-
var _layerFactory = require("../layers/layer-factory");
|
|
21
|
-
var _schema = _interopRequireDefault(require("./schema"));
|
|
22
|
-
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
23
|
-
var _dataUtils = require("../utils/data-utils");
|
|
24
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
27
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // Copyright (c) 2022 Uber Technologies, Inc.
|
|
28
|
-
//
|
|
29
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
30
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
31
|
-
// in the Software without restriction, including without limitation the rights
|
|
32
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
33
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
34
|
-
// furnished to do so, subject to the following conditions:
|
|
35
|
-
//
|
|
36
|
-
// The above copyright notice and this permission notice shall be included in
|
|
37
|
-
// all copies or substantial portions of the Software.
|
|
38
|
-
//
|
|
39
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
40
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
41
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
42
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
43
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
44
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
45
|
-
// THE SOFTWARE.
|
|
46
|
-
/**
|
|
47
|
-
* V0 Schema
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
var dimensionPropsV0 = exports.dimensionPropsV0 = ['name', 'type'];
|
|
51
|
-
|
|
52
|
-
// in v0 geojson there is only sizeField
|
|
53
|
-
|
|
54
|
-
// in v1 geojson
|
|
55
|
-
// stroke base on -> sizeField
|
|
56
|
-
// height based on -> heightField
|
|
57
|
-
// radius based on -> radiusField
|
|
58
|
-
// here we make our wiredst guess on which channel sizeField belongs to
|
|
59
|
-
function geojsonSizeFieldV0ToV1(config) {
|
|
60
|
-
var defaultRaiuds = 10;
|
|
61
|
-
var defaultRadiusRange = [0, 50];
|
|
62
|
-
|
|
63
|
-
// if extruded, sizeField is most likely used for height
|
|
64
|
-
if (config.visConfig.extruded) {
|
|
65
|
-
return 'heightField';
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// if show stroke enabled, sizeField is most likely used for stroke
|
|
69
|
-
if (config.visConfig.stroked) {
|
|
70
|
-
return 'sizeField';
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// if radius changed, or radius Range Changed, sizeField is most likely used for radius
|
|
74
|
-
// this is the most unreliable guess, that's why we put it in the end
|
|
75
|
-
if (config.visConfig.radius !== defaultRaiuds || config.visConfig.radiusRange.some(function (d, i) {
|
|
76
|
-
return d !== defaultRadiusRange[i];
|
|
77
|
-
})) {
|
|
78
|
-
return 'radiusField';
|
|
79
|
-
}
|
|
80
|
-
return 'sizeField';
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// convert v0 to v1 layer config
|
|
84
|
-
var DimensionFieldSchemaV0 = /*#__PURE__*/function (_Schema) {
|
|
85
|
-
(0, _inherits2["default"])(DimensionFieldSchemaV0, _Schema);
|
|
86
|
-
function DimensionFieldSchemaV0() {
|
|
87
|
-
var _this;
|
|
88
|
-
(0, _classCallCheck2["default"])(this, DimensionFieldSchemaV0);
|
|
89
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
90
|
-
args[_key] = arguments[_key];
|
|
91
|
-
}
|
|
92
|
-
_this = _callSuper(this, DimensionFieldSchemaV0, [].concat(args));
|
|
93
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "version", _versions.VERSIONS.v0);
|
|
94
|
-
return _this;
|
|
95
|
-
}
|
|
96
|
-
(0, _createClass2["default"])(DimensionFieldSchemaV0, [{
|
|
97
|
-
key: "save",
|
|
98
|
-
value: function save(field) {
|
|
99
|
-
// should not be called anymore
|
|
100
|
-
return (0, _defineProperty2["default"])({}, this.key, field !== null ? this.savePropertiesOrApplySchema(field)[this.key] : null);
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "load",
|
|
104
|
-
value: function load(field, parents, accumulated) {
|
|
105
|
-
var _parents$slice = parents.slice(-1),
|
|
106
|
-
_parents$slice2 = (0, _slicedToArray2["default"])(_parents$slice, 1),
|
|
107
|
-
config = _parents$slice2[0];
|
|
108
|
-
var fieldName = this.key;
|
|
109
|
-
if (config.type === 'geojson' && this.key === 'sizeField' && field) {
|
|
110
|
-
fieldName = geojsonSizeFieldV0ToV1(config);
|
|
111
|
-
}
|
|
112
|
-
// fold into visualChannels to be load by VisualChannelSchemaV1
|
|
113
|
-
return {
|
|
114
|
-
visualChannels: _objectSpread(_objectSpread({}, accumulated.visualChannels || {}), {}, (0, _defineProperty2["default"])({}, fieldName, field))
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}]);
|
|
118
|
-
return DimensionFieldSchemaV0;
|
|
119
|
-
}(_schema["default"]);
|
|
120
|
-
var DimensionScaleSchemaV0 = /*#__PURE__*/function (_Schema2) {
|
|
121
|
-
(0, _inherits2["default"])(DimensionScaleSchemaV0, _Schema2);
|
|
122
|
-
function DimensionScaleSchemaV0() {
|
|
123
|
-
var _this2;
|
|
124
|
-
(0, _classCallCheck2["default"])(this, DimensionScaleSchemaV0);
|
|
125
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
126
|
-
args[_key2] = arguments[_key2];
|
|
127
|
-
}
|
|
128
|
-
_this2 = _callSuper(this, DimensionScaleSchemaV0, [].concat(args));
|
|
129
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "version", _versions.VERSIONS.v0);
|
|
130
|
-
return _this2;
|
|
131
|
-
}
|
|
132
|
-
(0, _createClass2["default"])(DimensionScaleSchemaV0, [{
|
|
133
|
-
key: "save",
|
|
134
|
-
value: function save(scale) {
|
|
135
|
-
return (0, _defineProperty2["default"])({}, this.key, scale);
|
|
136
|
-
}
|
|
137
|
-
}, {
|
|
138
|
-
key: "load",
|
|
139
|
-
value: function load(scale, parents, accumulated) {
|
|
140
|
-
var _parents$slice3 = parents.slice(-1),
|
|
141
|
-
_parents$slice4 = (0, _slicedToArray2["default"])(_parents$slice3, 1),
|
|
142
|
-
config = _parents$slice4[0];
|
|
143
|
-
// fold into visualChannels to be load by VisualChannelSchemaV1
|
|
144
|
-
if (this.key === 'sizeScale' && config.type === 'geojson') {
|
|
145
|
-
// sizeScale now split into radiusScale, heightScale
|
|
146
|
-
// no user customization, just use default
|
|
147
|
-
return {};
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
visualChannels: _objectSpread(_objectSpread({}, accumulated.visualChannels || {}), {}, (0, _defineProperty2["default"])({}, this.key, scale))
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}]);
|
|
154
|
-
return DimensionScaleSchemaV0;
|
|
155
|
-
}(_schema["default"]); // used to convert v0 to v1 layer config
|
|
156
|
-
var LayerConfigSchemaV0 = /*#__PURE__*/function (_Schema3) {
|
|
157
|
-
(0, _inherits2["default"])(LayerConfigSchemaV0, _Schema3);
|
|
158
|
-
function LayerConfigSchemaV0() {
|
|
159
|
-
var _this3;
|
|
160
|
-
(0, _classCallCheck2["default"])(this, LayerConfigSchemaV0);
|
|
161
|
-
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
162
|
-
args[_key3] = arguments[_key3];
|
|
163
|
-
}
|
|
164
|
-
_this3 = _callSuper(this, LayerConfigSchemaV0, [].concat(args));
|
|
165
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this3), "version", _versions.VERSIONS.v0);
|
|
166
|
-
return _this3;
|
|
167
|
-
}
|
|
168
|
-
(0, _createClass2["default"])(LayerConfigSchemaV0, [{
|
|
169
|
-
key: "load",
|
|
170
|
-
value: function load(saved, parents, accumulated) {
|
|
171
|
-
// fold v0 layer property into config.key
|
|
172
|
-
return {
|
|
173
|
-
config: _objectSpread(_objectSpread({}, accumulated.config || {}), {}, (0, _defineProperty2["default"])({}, this.key, saved))
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
}]);
|
|
177
|
-
return LayerConfigSchemaV0;
|
|
178
|
-
}(_schema["default"]); // used to convert v0 to v1 layer columns
|
|
179
|
-
// only return column value for each column
|
|
180
|
-
var LayerColumnsSchemaV0 = /*#__PURE__*/function (_Schema4) {
|
|
181
|
-
(0, _inherits2["default"])(LayerColumnsSchemaV0, _Schema4);
|
|
182
|
-
function LayerColumnsSchemaV0() {
|
|
183
|
-
var _this4;
|
|
184
|
-
(0, _classCallCheck2["default"])(this, LayerColumnsSchemaV0);
|
|
185
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
186
|
-
args[_key4] = arguments[_key4];
|
|
187
|
-
}
|
|
188
|
-
_this4 = _callSuper(this, LayerColumnsSchemaV0, [].concat(args));
|
|
189
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "version", _versions.VERSIONS.v0);
|
|
190
|
-
return _this4;
|
|
191
|
-
}
|
|
192
|
-
(0, _createClass2["default"])(LayerColumnsSchemaV0, [{
|
|
193
|
-
key: "load",
|
|
194
|
-
value: function load(saved, parents, accumulated) {
|
|
195
|
-
// fold v0 layer property into config.key, flatten columns
|
|
196
|
-
return {
|
|
197
|
-
config: _objectSpread(_objectSpread({}, accumulated.config || {}), {}, {
|
|
198
|
-
columns: Object.keys(saved).reduce(function (accu, key) {
|
|
199
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, saved[key].value));
|
|
200
|
-
}, {})
|
|
201
|
-
})
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
}]);
|
|
205
|
-
return LayerColumnsSchemaV0;
|
|
206
|
-
}(_schema["default"]); // used to convert v0 to v1 layer config.visConfig
|
|
207
|
-
var LayerConfigToVisConfigSchemaV0 = /*#__PURE__*/function (_Schema5) {
|
|
208
|
-
(0, _inherits2["default"])(LayerConfigToVisConfigSchemaV0, _Schema5);
|
|
209
|
-
function LayerConfigToVisConfigSchemaV0() {
|
|
210
|
-
var _this5;
|
|
211
|
-
(0, _classCallCheck2["default"])(this, LayerConfigToVisConfigSchemaV0);
|
|
212
|
-
for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
213
|
-
args[_key5] = arguments[_key5];
|
|
214
|
-
}
|
|
215
|
-
_this5 = _callSuper(this, LayerConfigToVisConfigSchemaV0, [].concat(args));
|
|
216
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "version", _versions.VERSIONS.v0);
|
|
217
|
-
return _this5;
|
|
218
|
-
}
|
|
219
|
-
(0, _createClass2["default"])(LayerConfigToVisConfigSchemaV0, [{
|
|
220
|
-
key: "load",
|
|
221
|
-
value: function load(saved, parents, accumulated) {
|
|
222
|
-
// fold v0 layer property into config.visConfig
|
|
223
|
-
var accumulatedConfig = accumulated.config || {};
|
|
224
|
-
return {
|
|
225
|
-
config: _objectSpread(_objectSpread({}, accumulatedConfig), {}, {
|
|
226
|
-
visConfig: _objectSpread(_objectSpread({}, accumulatedConfig.visConfig || {}), {}, (0, _defineProperty2["default"])({}, this.key, saved))
|
|
227
|
-
})
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
}]);
|
|
231
|
-
return LayerConfigToVisConfigSchemaV0;
|
|
232
|
-
}(_schema["default"]);
|
|
233
|
-
var LayerVisConfigSchemaV0 = /*#__PURE__*/function (_Schema6) {
|
|
234
|
-
(0, _inherits2["default"])(LayerVisConfigSchemaV0, _Schema6);
|
|
235
|
-
function LayerVisConfigSchemaV0() {
|
|
236
|
-
var _this6;
|
|
237
|
-
(0, _classCallCheck2["default"])(this, LayerVisConfigSchemaV0);
|
|
238
|
-
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
|
|
239
|
-
args[_key6] = arguments[_key6];
|
|
240
|
-
}
|
|
241
|
-
_this6 = _callSuper(this, LayerVisConfigSchemaV0, [].concat(args));
|
|
242
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this6), "version", _versions.VERSIONS.v0);
|
|
243
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this6), "key", 'visConfig');
|
|
244
|
-
return _this6;
|
|
245
|
-
}
|
|
246
|
-
(0, _createClass2["default"])(LayerVisConfigSchemaV0, [{
|
|
247
|
-
key: "load",
|
|
248
|
-
value: function load(visConfig, parents, accumulator) {
|
|
249
|
-
var _parents$slice5 = parents.slice(-1),
|
|
250
|
-
_parents$slice6 = (0, _slicedToArray2["default"])(_parents$slice5, 1),
|
|
251
|
-
config = _parents$slice6[0];
|
|
252
|
-
var rename = {
|
|
253
|
-
geojson: {
|
|
254
|
-
extruded: 'enable3d',
|
|
255
|
-
elevationRange: 'heightRange'
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
if (config.type in rename) {
|
|
259
|
-
var propToRename = rename[config.type];
|
|
260
|
-
return {
|
|
261
|
-
config: _objectSpread(_objectSpread({}, accumulator.config || {}), {}, {
|
|
262
|
-
visConfig: Object.keys(visConfig).reduce(function (accu, key) {
|
|
263
|
-
return _objectSpread(_objectSpread({}, accu), propToRename[key] ? (0, _defineProperty2["default"])({}, propToRename[key], visConfig[key]) : (0, _defineProperty2["default"])({}, key, visConfig[key]));
|
|
264
|
-
}, {})
|
|
265
|
-
})
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
return {
|
|
269
|
-
config: _objectSpread(_objectSpread({}, accumulator.config || {}), {}, {
|
|
270
|
-
visConfig: visConfig
|
|
271
|
-
})
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
}]);
|
|
275
|
-
return LayerVisConfigSchemaV0;
|
|
276
|
-
}(_schema["default"]);
|
|
277
|
-
var LayerConfigSchemaDeleteV0 = /*#__PURE__*/function (_Schema7) {
|
|
278
|
-
(0, _inherits2["default"])(LayerConfigSchemaDeleteV0, _Schema7);
|
|
279
|
-
function LayerConfigSchemaDeleteV0() {
|
|
280
|
-
var _this7;
|
|
281
|
-
(0, _classCallCheck2["default"])(this, LayerConfigSchemaDeleteV0);
|
|
282
|
-
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
|
|
283
|
-
args[_key7] = arguments[_key7];
|
|
284
|
-
}
|
|
285
|
-
_this7 = _callSuper(this, LayerConfigSchemaDeleteV0, [].concat(args));
|
|
286
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this7), "version", _versions.VERSIONS.v0);
|
|
287
|
-
return _this7;
|
|
288
|
-
}
|
|
289
|
-
(0, _createClass2["default"])(LayerConfigSchemaDeleteV0, [{
|
|
290
|
-
key: "load",
|
|
291
|
-
value: function load(value) {
|
|
292
|
-
return {};
|
|
293
|
-
}
|
|
294
|
-
}]);
|
|
295
|
-
return LayerConfigSchemaDeleteV0;
|
|
296
|
-
}(_schema["default"]);
|
|
297
|
-
/**
|
|
298
|
-
* V0 -> V1 Changes
|
|
299
|
-
* - layer is now a class
|
|
300
|
-
* - config saved in a config object
|
|
301
|
-
* - id, type, isAggregated is outside layer.config
|
|
302
|
-
* - visualChannels is outside config, it defines available visual channel and
|
|
303
|
-
* property names for field, scale, domain and range of each visual chanel.
|
|
304
|
-
* - enable3d, colorAggregation and sizeAggregation are moved into visConfig
|
|
305
|
-
* - GeojsonLayer - added height, radius specific properties
|
|
306
|
-
*/
|
|
307
|
-
var layerPropsV0 = exports.layerPropsV0 = {
|
|
308
|
-
id: null,
|
|
309
|
-
type: null,
|
|
310
|
-
// move into layer.config
|
|
311
|
-
dataId: new LayerConfigSchemaV0({
|
|
312
|
-
key: 'dataId'
|
|
313
|
-
}),
|
|
314
|
-
label: new LayerConfigSchemaV0({
|
|
315
|
-
key: 'label'
|
|
316
|
-
}),
|
|
317
|
-
color: new LayerConfigSchemaV0({
|
|
318
|
-
key: 'color'
|
|
319
|
-
}),
|
|
320
|
-
isVisible: new LayerConfigSchemaV0({
|
|
321
|
-
key: 'isVisible'
|
|
322
|
-
}),
|
|
323
|
-
hidden: new LayerConfigSchemaV0({
|
|
324
|
-
key: 'hidden'
|
|
325
|
-
}),
|
|
326
|
-
visibilityByZoom: new LayerConfigSchemaV0({
|
|
327
|
-
key: 'visibilityByZoom'
|
|
328
|
-
}),
|
|
329
|
-
// convert visConfig
|
|
330
|
-
visConfig: new LayerVisConfigSchemaV0({
|
|
331
|
-
key: 'visConfig'
|
|
332
|
-
}),
|
|
333
|
-
// move into layer.config
|
|
334
|
-
// flatten
|
|
335
|
-
columns: new LayerColumnsSchemaV0(),
|
|
336
|
-
// save into visualChannels
|
|
337
|
-
colorField: new DimensionFieldSchemaV0({
|
|
338
|
-
properties: dimensionPropsV0,
|
|
339
|
-
key: 'colorField'
|
|
340
|
-
}),
|
|
341
|
-
colorScale: new DimensionScaleSchemaV0({
|
|
342
|
-
key: 'colorScale'
|
|
343
|
-
}),
|
|
344
|
-
sizeField: new DimensionFieldSchemaV0({
|
|
345
|
-
properties: dimensionPropsV0,
|
|
346
|
-
key: 'sizeField'
|
|
347
|
-
}),
|
|
348
|
-
sizeScale: new DimensionScaleSchemaV0({
|
|
349
|
-
key: 'sizeScale'
|
|
350
|
-
}),
|
|
351
|
-
// move into config.visConfig
|
|
352
|
-
enable3d: new LayerConfigToVisConfigSchemaV0({
|
|
353
|
-
key: 'enable3d'
|
|
354
|
-
}),
|
|
355
|
-
colorAggregation: new LayerConfigToVisConfigSchemaV0({
|
|
356
|
-
key: 'colorAggregation'
|
|
357
|
-
}),
|
|
358
|
-
sizeAggregation: new LayerConfigToVisConfigSchemaV0({
|
|
359
|
-
key: 'sizeAggregation'
|
|
360
|
-
}),
|
|
361
|
-
// delete
|
|
362
|
-
isAggregated: new LayerConfigSchemaDeleteV0()
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* V1 Schema
|
|
367
|
-
*/
|
|
368
|
-
var ColumnSchemaV1 = /*#__PURE__*/function (_Schema8) {
|
|
369
|
-
(0, _inherits2["default"])(ColumnSchemaV1, _Schema8);
|
|
370
|
-
function ColumnSchemaV1() {
|
|
371
|
-
(0, _classCallCheck2["default"])(this, ColumnSchemaV1);
|
|
372
|
-
return _callSuper(this, ColumnSchemaV1, arguments);
|
|
373
|
-
}
|
|
374
|
-
(0, _createClass2["default"])(ColumnSchemaV1, [{
|
|
375
|
-
key: "save",
|
|
376
|
-
value: function save(columns, state) {
|
|
377
|
-
// starting from v1, only save column value
|
|
378
|
-
// fieldIdx will be calculated during merge
|
|
379
|
-
return (0, _defineProperty2["default"])({}, this.key, Object.keys(columns).reduce(function (accu, ckey) {
|
|
380
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, ckey, columns[ckey].value));
|
|
381
|
-
}, {}));
|
|
382
|
-
}
|
|
383
|
-
}, {
|
|
384
|
-
key: "load",
|
|
385
|
-
value: function load(columns) {
|
|
386
|
-
return {
|
|
387
|
-
columns: columns
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
}]);
|
|
391
|
-
return ColumnSchemaV1;
|
|
392
|
-
}(_schema["default"]);
|
|
393
|
-
var TextLabelSchemaV1 = /*#__PURE__*/function (_Schema9) {
|
|
394
|
-
(0, _inherits2["default"])(TextLabelSchemaV1, _Schema9);
|
|
395
|
-
function TextLabelSchemaV1() {
|
|
396
|
-
(0, _classCallCheck2["default"])(this, TextLabelSchemaV1);
|
|
397
|
-
return _callSuper(this, TextLabelSchemaV1, arguments);
|
|
398
|
-
}
|
|
399
|
-
(0, _createClass2["default"])(TextLabelSchemaV1, [{
|
|
400
|
-
key: "save",
|
|
401
|
-
value: function save(textLabel) {
|
|
402
|
-
return (0, _defineProperty2["default"])({}, this.key, textLabel.map(function (tl) {
|
|
403
|
-
return _objectSpread(_objectSpread({}, tl), {}, {
|
|
404
|
-
field: tl.field ? (0, _pick["default"])(tl.field, ['name', 'type']) : null
|
|
405
|
-
});
|
|
406
|
-
}));
|
|
407
|
-
}
|
|
408
|
-
}, {
|
|
409
|
-
key: "load",
|
|
410
|
-
value: function load(textLabel) {
|
|
411
|
-
return {
|
|
412
|
-
textLabel: Array.isArray(textLabel) ? textLabel : [textLabel]
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
}]);
|
|
416
|
-
return TextLabelSchemaV1;
|
|
417
|
-
}(_schema["default"]);
|
|
418
|
-
var visualChannelModificationV1 = {
|
|
419
|
-
geojson: function geojson(vc, parents, accumulator) {
|
|
420
|
-
var _parents$slice7 = parents.slice(-1),
|
|
421
|
-
_parents$slice8 = (0, _slicedToArray2["default"])(_parents$slice7, 1),
|
|
422
|
-
layer = _parents$slice8[0];
|
|
423
|
-
var isOld = !vc.hasOwnProperty('strokeColorField');
|
|
424
|
-
// make our best guess if this geojson layer contains point
|
|
425
|
-
var isPoint = vc.radiusField || layer.config.visConfig.radius !== _layerFactory.LAYER_VIS_CONFIGS.radius.defaultValue;
|
|
426
|
-
if (isOld && !isPoint && layer.config.visConfig.stroked) {
|
|
427
|
-
// if stroked is true, copy color config to stroke color config
|
|
428
|
-
return {
|
|
429
|
-
strokeColorField: vc.colorField,
|
|
430
|
-
strokeColorScale: vc.colorScale
|
|
431
|
-
};
|
|
432
|
-
}
|
|
433
|
-
return {};
|
|
434
|
-
}
|
|
435
|
-
};
|
|
436
|
-
/**
|
|
437
|
-
* V1: save [field]: {name, type}, [scale]: '' for each channel
|
|
438
|
-
*/
|
|
439
|
-
var VisualChannelSchemaV1 = /*#__PURE__*/function (_Schema10) {
|
|
440
|
-
(0, _inherits2["default"])(VisualChannelSchemaV1, _Schema10);
|
|
441
|
-
function VisualChannelSchemaV1() {
|
|
442
|
-
(0, _classCallCheck2["default"])(this, VisualChannelSchemaV1);
|
|
443
|
-
return _callSuper(this, VisualChannelSchemaV1, arguments);
|
|
444
|
-
}
|
|
445
|
-
(0, _createClass2["default"])(VisualChannelSchemaV1, [{
|
|
446
|
-
key: "save",
|
|
447
|
-
value: function save(visualChannels, parents) {
|
|
448
|
-
// only save field and scale of each channel
|
|
449
|
-
var _parents$slice9 = parents.slice(-1),
|
|
450
|
-
_parents$slice10 = (0, _slicedToArray2["default"])(_parents$slice9, 1),
|
|
451
|
-
layer = _parents$slice10[0];
|
|
452
|
-
return (0, _defineProperty2["default"])({}, this.key, Object.keys(visualChannels).reduce(
|
|
453
|
-
// save channel to null if didn't select any field
|
|
454
|
-
function (accu, key) {
|
|
455
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, visualChannels[key].field, layer.config[visualChannels[key].field] ? (0, _pick["default"])(layer.config[visualChannels[key].field], ['name', 'type', 'colorColumn']) : null), visualChannels[key].scale, layer.config[visualChannels[key].scale]));
|
|
456
|
-
}, {}));
|
|
457
|
-
}
|
|
458
|
-
}, {
|
|
459
|
-
key: "load",
|
|
460
|
-
value: function load(vc, parents, accumulator) {
|
|
461
|
-
// fold channels into config
|
|
462
|
-
var _parents$slice11 = parents.slice(-1),
|
|
463
|
-
_parents$slice12 = (0, _slicedToArray2["default"])(_parents$slice11, 1),
|
|
464
|
-
layer = _parents$slice12[0];
|
|
465
|
-
var modified = visualChannelModificationV1[layer.type] ? visualChannelModificationV1[layer.type](vc, parents, accumulator) : {};
|
|
466
|
-
return _objectSpread(_objectSpread({}, accumulator), {}, {
|
|
467
|
-
config: _objectSpread(_objectSpread(_objectSpread({}, accumulator.config || {}), vc), modified)
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
}]);
|
|
471
|
-
return VisualChannelSchemaV1;
|
|
472
|
-
}(_schema["default"]);
|
|
473
|
-
/**
|
|
474
|
-
* V1: save [channel]: [{ label, color }, ...] for legend
|
|
475
|
-
*/
|
|
476
|
-
var LegendSettingsV1 = /*#__PURE__*/function (_Schema11) {
|
|
477
|
-
(0, _inherits2["default"])(LegendSettingsV1, _Schema11);
|
|
478
|
-
function LegendSettingsV1() {
|
|
479
|
-
(0, _classCallCheck2["default"])(this, LegendSettingsV1);
|
|
480
|
-
return _callSuper(this, LegendSettingsV1, arguments);
|
|
481
|
-
}
|
|
482
|
-
(0, _createClass2["default"])(LegendSettingsV1, [{
|
|
483
|
-
key: "save",
|
|
484
|
-
value: function save(legendSettings, parents) {
|
|
485
|
-
return (0, _defineProperty2["default"])({}, this.key, Object.keys(legendSettings).reduce(function (accu, key) {
|
|
486
|
-
accu[key] = legendSettings[key];
|
|
487
|
-
return accu;
|
|
488
|
-
}, {}));
|
|
489
|
-
}
|
|
490
|
-
}, {
|
|
491
|
-
key: "load",
|
|
492
|
-
value: function load(ls, parents, accumulator) {
|
|
493
|
-
return _objectSpread(_objectSpread({}, accumulator), {}, (0, _defineProperty2["default"])({}, this.key, ls));
|
|
494
|
-
}
|
|
495
|
-
}]);
|
|
496
|
-
return LegendSettingsV1;
|
|
497
|
-
}(_schema["default"]);
|
|
498
|
-
var visConfigModificationV1 = {
|
|
499
|
-
point: function point(visConfig, parents, accumulated) {
|
|
500
|
-
var modified = {};
|
|
501
|
-
var _parents$slice13 = parents.slice(-2, -1),
|
|
502
|
-
_parents$slice14 = (0, _slicedToArray2["default"])(_parents$slice13, 1),
|
|
503
|
-
layer = _parents$slice14[0];
|
|
504
|
-
var isOld = !visConfig.hasOwnProperty('filled') && !visConfig.strokeColor && !visConfig.strokeColorRange;
|
|
505
|
-
if (isOld) {
|
|
506
|
-
// color color & color range to stroke color
|
|
507
|
-
modified.strokeColor = layer.config.color;
|
|
508
|
-
modified.strokeColorRange = (0, _cloneDeep["default"])(visConfig.colorRange);
|
|
509
|
-
if (visConfig.outline) {
|
|
510
|
-
// point layer now supports both outline and fill
|
|
511
|
-
// for older schema where filled has not been added to point layer
|
|
512
|
-
// set it to false
|
|
513
|
-
modified.filled = false;
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
return modified;
|
|
517
|
-
},
|
|
518
|
-
geojson: function geojson(visConfig, parents, accumulated) {
|
|
519
|
-
// is points?
|
|
520
|
-
var modified = {};
|
|
521
|
-
var _parents$slice15 = parents.slice(-2, -1),
|
|
522
|
-
_parents$slice16 = (0, _slicedToArray2["default"])(_parents$slice15, 1),
|
|
523
|
-
layer = _parents$slice16[0];
|
|
524
|
-
var isOld = layer.visualChannels && !layer.visualChannels.hasOwnProperty('strokeColorField') && !visConfig.strokeColor && !visConfig.strokeColorRange;
|
|
525
|
-
// make our best guess if this geojson layer contains point
|
|
526
|
-
var isPoint = layer.visualChannels && layer.visualChannels.radiusField || visConfig && visConfig.radius !== _layerFactory.LAYER_VIS_CONFIGS.radius.defaultValue;
|
|
527
|
-
if (isOld) {
|
|
528
|
-
// color color & color range to stroke color
|
|
529
|
-
modified.strokeColor = layer.config.color;
|
|
530
|
-
modified.strokeColorRange = (0, _cloneDeep["default"])(visConfig.colorRange);
|
|
531
|
-
if (isPoint) {
|
|
532
|
-
// if is point, set stroke to false
|
|
533
|
-
modified.filled = true;
|
|
534
|
-
modified.stroked = false;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
return modified;
|
|
538
|
-
}
|
|
539
|
-
};
|
|
540
|
-
var VisConfigSchemaV1 = /*#__PURE__*/function (_Schema12) {
|
|
541
|
-
(0, _inherits2["default"])(VisConfigSchemaV1, _Schema12);
|
|
542
|
-
function VisConfigSchemaV1() {
|
|
543
|
-
var _this8;
|
|
544
|
-
(0, _classCallCheck2["default"])(this, VisConfigSchemaV1);
|
|
545
|
-
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
|
|
546
|
-
args[_key8] = arguments[_key8];
|
|
547
|
-
}
|
|
548
|
-
_this8 = _callSuper(this, VisConfigSchemaV1, [].concat(args));
|
|
549
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this8), "key", 'visConfig');
|
|
550
|
-
return _this8;
|
|
551
|
-
}
|
|
552
|
-
(0, _createClass2["default"])(VisConfigSchemaV1, [{
|
|
553
|
-
key: "load",
|
|
554
|
-
value: function load(visConfig, parents, accumulated) {
|
|
555
|
-
var _parents$slice17 = parents.slice(-2, -1),
|
|
556
|
-
_parents$slice18 = (0, _slicedToArray2["default"])(_parents$slice17, 1),
|
|
557
|
-
layer = _parents$slice18[0];
|
|
558
|
-
var modified = visConfigModificationV1[layer.type] ? visConfigModificationV1[layer.type](visConfig, parents, accumulated) : {};
|
|
559
|
-
return {
|
|
560
|
-
visConfig: _objectSpread(_objectSpread({}, visConfig), modified)
|
|
561
|
-
};
|
|
562
|
-
}
|
|
563
|
-
}]);
|
|
564
|
-
return VisConfigSchemaV1;
|
|
565
|
-
}(_schema["default"]);
|
|
566
|
-
var layerPropsV1 = exports.layerPropsV1 = {
|
|
567
|
-
id: null,
|
|
568
|
-
type: null,
|
|
569
|
-
config: new _schema["default"]({
|
|
570
|
-
version: _versions.VERSIONS.v1,
|
|
571
|
-
key: 'config',
|
|
572
|
-
properties: {
|
|
573
|
-
dataId: null,
|
|
574
|
-
label: null,
|
|
575
|
-
color: null,
|
|
576
|
-
highlightColor: null,
|
|
577
|
-
columns: new ColumnSchemaV1({
|
|
578
|
-
version: _versions.VERSIONS.v1,
|
|
579
|
-
key: 'columns'
|
|
580
|
-
}),
|
|
581
|
-
isVisible: null,
|
|
582
|
-
visConfig: new VisConfigSchemaV1({
|
|
583
|
-
version: _versions.VERSIONS.v1
|
|
584
|
-
}),
|
|
585
|
-
hidden: null,
|
|
586
|
-
visibilityByZoom: null,
|
|
587
|
-
textLabel: new TextLabelSchemaV1({
|
|
588
|
-
version: _versions.VERSIONS.v1,
|
|
589
|
-
key: 'textLabel'
|
|
590
|
-
})
|
|
591
|
-
}
|
|
592
|
-
}),
|
|
593
|
-
legendSettings: new LegendSettingsV1({
|
|
594
|
-
version: _versions.VERSIONS.v1,
|
|
595
|
-
key: 'legendSettings'
|
|
596
|
-
}),
|
|
597
|
-
visualChannels: new VisualChannelSchemaV1({
|
|
598
|
-
version: _versions.VERSIONS.v1,
|
|
599
|
-
key: 'visualChannels'
|
|
600
|
-
})
|
|
601
|
-
};
|
|
602
|
-
var LayerSchemaV0 = exports.LayerSchemaV0 = /*#__PURE__*/function (_Schema13) {
|
|
603
|
-
(0, _inherits2["default"])(LayerSchemaV0, _Schema13);
|
|
604
|
-
function LayerSchemaV0() {
|
|
605
|
-
var _this9;
|
|
606
|
-
(0, _classCallCheck2["default"])(this, LayerSchemaV0);
|
|
607
|
-
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
|
|
608
|
-
args[_key9] = arguments[_key9];
|
|
609
|
-
}
|
|
610
|
-
_this9 = _callSuper(this, LayerSchemaV0, [].concat(args));
|
|
611
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this9), "key", 'layers');
|
|
612
|
-
return _this9;
|
|
613
|
-
}
|
|
614
|
-
(0, _createClass2["default"])(LayerSchemaV0, [{
|
|
615
|
-
key: "save",
|
|
616
|
-
value: function save(layers, parents) {
|
|
617
|
-
var _this10 = this;
|
|
618
|
-
var _parents$slice19 = parents.slice(-1),
|
|
619
|
-
_parents$slice20 = (0, _slicedToArray2["default"])(_parents$slice19, 1),
|
|
620
|
-
visState = _parents$slice20[0];
|
|
621
|
-
return (0, _defineProperty2["default"])({}, this.key, visState.layerOrder.reduce(function (saved, index) {
|
|
622
|
-
// save layers according to their rendering order
|
|
623
|
-
var layer = layers[index];
|
|
624
|
-
if (layer.isValidToSave()) {
|
|
625
|
-
saved.push(_this10.savePropertiesOrApplySchema(layer).layers);
|
|
626
|
-
}
|
|
627
|
-
return saved;
|
|
628
|
-
}, []));
|
|
629
|
-
}
|
|
630
|
-
}, {
|
|
631
|
-
key: "load",
|
|
632
|
-
value: function load(layers) {
|
|
633
|
-
var _this11 = this;
|
|
634
|
-
return (0, _defineProperty2["default"])({}, this.key, layers.map(function (layer) {
|
|
635
|
-
return _this11.loadPropertiesOrApplySchema(layer, layers).layers;
|
|
636
|
-
}));
|
|
637
|
-
}
|
|
638
|
-
}]);
|
|
639
|
-
return LayerSchemaV0;
|
|
640
|
-
}(_schema["default"]);
|
|
641
|
-
var FilterSchemaV0 = exports.FilterSchemaV0 = /*#__PURE__*/function (_Schema14) {
|
|
642
|
-
(0, _inherits2["default"])(FilterSchemaV0, _Schema14);
|
|
643
|
-
function FilterSchemaV0() {
|
|
644
|
-
var _this12;
|
|
645
|
-
(0, _classCallCheck2["default"])(this, FilterSchemaV0);
|
|
646
|
-
for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
|
|
647
|
-
args[_key10] = arguments[_key10];
|
|
648
|
-
}
|
|
649
|
-
_this12 = _callSuper(this, FilterSchemaV0, [].concat(args));
|
|
650
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this12), "key", 'filters');
|
|
651
|
-
return _this12;
|
|
652
|
-
}
|
|
653
|
-
(0, _createClass2["default"])(FilterSchemaV0, [{
|
|
654
|
-
key: "save",
|
|
655
|
-
value: function save(filters) {
|
|
656
|
-
var _this13 = this;
|
|
657
|
-
return {
|
|
658
|
-
filters: filters.filter(_filterUtils.isValidFilterValue).map(function (filter) {
|
|
659
|
-
return _this13.savePropertiesOrApplySchema(filter).filters;
|
|
660
|
-
})
|
|
661
|
-
};
|
|
662
|
-
}
|
|
663
|
-
}, {
|
|
664
|
-
key: "load",
|
|
665
|
-
value: function load(filters) {
|
|
666
|
-
return {
|
|
667
|
-
filters: filters
|
|
668
|
-
};
|
|
669
|
-
}
|
|
670
|
-
}]);
|
|
671
|
-
return FilterSchemaV0;
|
|
672
|
-
}(_schema["default"]);
|
|
673
|
-
var interactionPropsV0 = ['tooltip', 'brush'];
|
|
674
|
-
var InteractionSchemaV0 = /*#__PURE__*/function (_Schema15) {
|
|
675
|
-
(0, _inherits2["default"])(InteractionSchemaV0, _Schema15);
|
|
676
|
-
function InteractionSchemaV0() {
|
|
677
|
-
var _this14;
|
|
678
|
-
(0, _classCallCheck2["default"])(this, InteractionSchemaV0);
|
|
679
|
-
for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
|
|
680
|
-
args[_key11] = arguments[_key11];
|
|
681
|
-
}
|
|
682
|
-
_this14 = _callSuper(this, InteractionSchemaV0, [].concat(args));
|
|
683
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this14), "key", 'interactionConfig');
|
|
684
|
-
return _this14;
|
|
685
|
-
}
|
|
686
|
-
(0, _createClass2["default"])(InteractionSchemaV0, [{
|
|
687
|
-
key: "save",
|
|
688
|
-
value: function save(interactionConfig) {
|
|
689
|
-
return Array.isArray(this.properties) ? (0, _defineProperty2["default"])({}, this.key, this.properties.reduce(function (accu, key) {
|
|
690
|
-
return _objectSpread(_objectSpread({}, accu), interactionConfig[key].enabled ? (0, _defineProperty2["default"])({}, key, interactionConfig[key].config) : {});
|
|
691
|
-
}, {})) : {};
|
|
692
|
-
}
|
|
693
|
-
}, {
|
|
694
|
-
key: "load",
|
|
695
|
-
value: function load(interactionConfig) {
|
|
696
|
-
// convert v0 -> v1
|
|
697
|
-
// return enabled: false if disabled,
|
|
698
|
-
return Array.isArray(this.properties) ? (0, _defineProperty2["default"])({}, this.key, this.properties.reduce(function (accu, key) {
|
|
699
|
-
return _objectSpread(_objectSpread({}, accu), (0, _defineProperty2["default"])({}, key, _objectSpread(_objectSpread({}, interactionConfig[key] || {}), {}, {
|
|
700
|
-
enabled: Boolean(interactionConfig[key])
|
|
701
|
-
})));
|
|
702
|
-
}, {})) : {};
|
|
703
|
-
}
|
|
704
|
-
}]);
|
|
705
|
-
return InteractionSchemaV0;
|
|
706
|
-
}(_schema["default"]);
|
|
707
|
-
var interactionPropsV1 = [].concat(interactionPropsV0, ['geocoder', 'coordinate']);
|
|
708
|
-
var InteractionSchemaV1 = exports.InteractionSchemaV1 = /*#__PURE__*/function (_Schema16) {
|
|
709
|
-
(0, _inherits2["default"])(InteractionSchemaV1, _Schema16);
|
|
710
|
-
function InteractionSchemaV1() {
|
|
711
|
-
var _this15;
|
|
712
|
-
(0, _classCallCheck2["default"])(this, InteractionSchemaV1);
|
|
713
|
-
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
|
|
714
|
-
args[_key12] = arguments[_key12];
|
|
715
|
-
}
|
|
716
|
-
_this15 = _callSuper(this, InteractionSchemaV1, [].concat(args));
|
|
717
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this15), "key", 'interactionConfig');
|
|
718
|
-
return _this15;
|
|
719
|
-
}
|
|
720
|
-
(0, _createClass2["default"])(InteractionSchemaV1, [{
|
|
721
|
-
key: "save",
|
|
722
|
-
value: function save(interactionConfig) {
|
|
723
|
-
// save config even if disabled,
|
|
724
|
-
return Array.isArray(this.properties) ? (0, _defineProperty2["default"])({}, this.key, this.properties.reduce(function (accu, key) {
|
|
725
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, _objectSpread(_objectSpread({}, interactionConfig[key].config), {}, {
|
|
726
|
-
enabled: interactionConfig[key].enabled
|
|
727
|
-
})));
|
|
728
|
-
}, {})) : {};
|
|
729
|
-
}
|
|
730
|
-
}, {
|
|
731
|
-
key: "load",
|
|
732
|
-
value: function load(interactionConfig) {
|
|
733
|
-
var _this16 = this;
|
|
734
|
-
var modifiedConfig = interactionConfig;
|
|
735
|
-
Object.keys(interactionConfig).forEach(function (configType) {
|
|
736
|
-
if (configType === 'tooltip') {
|
|
737
|
-
var fieldsToShow = modifiedConfig[configType].fieldsToShow;
|
|
738
|
-
if (!(0, _dataUtils.notNullorUndefined)(fieldsToShow)) {
|
|
739
|
-
return (0, _defineProperty2["default"])({}, _this16.key, modifiedConfig);
|
|
740
|
-
}
|
|
741
|
-
Object.keys(fieldsToShow).forEach(function (key) {
|
|
742
|
-
fieldsToShow[key] = fieldsToShow[key].map(function (fieldData) {
|
|
743
|
-
if (!fieldData.name) {
|
|
744
|
-
return {
|
|
745
|
-
name: fieldData,
|
|
746
|
-
format: null
|
|
747
|
-
};
|
|
748
|
-
}
|
|
749
|
-
return fieldData;
|
|
750
|
-
});
|
|
751
|
-
});
|
|
752
|
-
}
|
|
753
|
-
return;
|
|
754
|
-
});
|
|
755
|
-
return (0, _defineProperty2["default"])({}, this.key, modifiedConfig);
|
|
756
|
-
}
|
|
757
|
-
}]);
|
|
758
|
-
return InteractionSchemaV1;
|
|
759
|
-
}(_schema["default"]);
|
|
760
|
-
var filterPropsV0 = exports.filterPropsV0 = {
|
|
761
|
-
dataId: null,
|
|
762
|
-
id: null,
|
|
763
|
-
name: null,
|
|
764
|
-
type: null,
|
|
765
|
-
value: null,
|
|
766
|
-
enlarged: null
|
|
767
|
-
};
|
|
768
|
-
var DimensionFieldSchema = exports.DimensionFieldSchema = /*#__PURE__*/function (_Schema17) {
|
|
769
|
-
(0, _inherits2["default"])(DimensionFieldSchema, _Schema17);
|
|
770
|
-
function DimensionFieldSchema() {
|
|
771
|
-
(0, _classCallCheck2["default"])(this, DimensionFieldSchema);
|
|
772
|
-
return _callSuper(this, DimensionFieldSchema, arguments);
|
|
773
|
-
}
|
|
774
|
-
(0, _createClass2["default"])(DimensionFieldSchema, [{
|
|
775
|
-
key: "save",
|
|
776
|
-
value: function save(field) {
|
|
777
|
-
return (0, _defineProperty2["default"])({}, this.key, field ? this.savePropertiesOrApplySchema(field)[this.key] : null);
|
|
778
|
-
}
|
|
779
|
-
}, {
|
|
780
|
-
key: "load",
|
|
781
|
-
value: function load(field) {
|
|
782
|
-
return (0, _defineProperty2["default"])({}, this.key, field);
|
|
783
|
-
}
|
|
784
|
-
}]);
|
|
785
|
-
return DimensionFieldSchema;
|
|
786
|
-
}(_schema["default"]);
|
|
787
|
-
var SplitMapsSchema = exports.SplitMapsSchema = /*#__PURE__*/function (_Schema18) {
|
|
788
|
-
(0, _inherits2["default"])(SplitMapsSchema, _Schema18);
|
|
789
|
-
function SplitMapsSchema() {
|
|
790
|
-
(0, _classCallCheck2["default"])(this, SplitMapsSchema);
|
|
791
|
-
return _callSuper(this, SplitMapsSchema, arguments);
|
|
792
|
-
}
|
|
793
|
-
(0, _createClass2["default"])(SplitMapsSchema, [{
|
|
794
|
-
key: "convertLayerSettings",
|
|
795
|
-
value: function convertLayerSettings(accu, _ref19) {
|
|
796
|
-
var _ref20 = (0, _slicedToArray2["default"])(_ref19, 2),
|
|
797
|
-
key = _ref20[0],
|
|
798
|
-
value = _ref20[1];
|
|
799
|
-
if (typeof value === 'boolean') {
|
|
800
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, value));
|
|
801
|
-
} else if (value && (0, _typeof2["default"])(value) === 'object' && value.isAvailable) {
|
|
802
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, key, Boolean(value.isVisible)));
|
|
803
|
-
}
|
|
804
|
-
return accu;
|
|
805
|
-
}
|
|
806
|
-
}, {
|
|
807
|
-
key: "load",
|
|
808
|
-
value: function load(splitMaps) {
|
|
809
|
-
var _this17 = this;
|
|
810
|
-
// previous splitMaps Schema {layers: {layerId: {isVisible, isAvailable}}}
|
|
811
|
-
|
|
812
|
-
if (!Array.isArray(splitMaps) || !splitMaps.length) {
|
|
813
|
-
return {
|
|
814
|
-
splitMaps: []
|
|
815
|
-
};
|
|
816
|
-
}
|
|
817
|
-
return {
|
|
818
|
-
splitMaps: splitMaps.map(function (settings) {
|
|
819
|
-
return _objectSpread(_objectSpread({}, settings), {}, {
|
|
820
|
-
layers: Object.entries(settings.layers || {}).reduce(_this17.convertLayerSettings, {})
|
|
821
|
-
});
|
|
822
|
-
})
|
|
823
|
-
};
|
|
824
|
-
}
|
|
825
|
-
}]);
|
|
826
|
-
return SplitMapsSchema;
|
|
827
|
-
}(_schema["default"]);
|
|
828
|
-
var filterPropsV1 = exports.filterPropsV1 = _objectSpread(_objectSpread({}, filterPropsV0), {}, {
|
|
829
|
-
plotType: null,
|
|
830
|
-
animationWindow: null,
|
|
831
|
-
yAxis: new DimensionFieldSchema({
|
|
832
|
-
version: _versions.VERSIONS.v1,
|
|
833
|
-
key: 'yAxis',
|
|
834
|
-
properties: {
|
|
835
|
-
name: null,
|
|
836
|
-
type: null
|
|
837
|
-
}
|
|
838
|
-
}),
|
|
839
|
-
// polygon filter properties
|
|
840
|
-
layerId: null,
|
|
841
|
-
speed: null
|
|
842
|
-
});
|
|
843
|
-
var propertiesV0 = exports.propertiesV0 = {
|
|
844
|
-
filters: new FilterSchemaV0({
|
|
845
|
-
version: _versions.VERSIONS.v0,
|
|
846
|
-
properties: filterPropsV0
|
|
847
|
-
}),
|
|
848
|
-
layers: new LayerSchemaV0({
|
|
849
|
-
version: _versions.VERSIONS.v0,
|
|
850
|
-
properties: layerPropsV0
|
|
851
|
-
}),
|
|
852
|
-
interactionConfig: new InteractionSchemaV0({
|
|
853
|
-
version: _versions.VERSIONS.v0,
|
|
854
|
-
properties: interactionPropsV0
|
|
855
|
-
}),
|
|
856
|
-
layerBlending: null
|
|
857
|
-
};
|
|
858
|
-
var propertiesV1 = exports.propertiesV1 = {
|
|
859
|
-
filters: new FilterSchemaV0({
|
|
860
|
-
version: _versions.VERSIONS.v1,
|
|
861
|
-
properties: filterPropsV1
|
|
862
|
-
}),
|
|
863
|
-
layers: new LayerSchemaV0({
|
|
864
|
-
version: _versions.VERSIONS.v1,
|
|
865
|
-
properties: layerPropsV1
|
|
866
|
-
}),
|
|
867
|
-
interactionConfig: new InteractionSchemaV1({
|
|
868
|
-
version: _versions.VERSIONS.v1,
|
|
869
|
-
properties: interactionPropsV1
|
|
870
|
-
}),
|
|
871
|
-
layerBlending: null,
|
|
872
|
-
splitMaps: new SplitMapsSchema({
|
|
873
|
-
key: 'splitMaps',
|
|
874
|
-
version: _versions.VERSIONS.v1
|
|
875
|
-
}),
|
|
876
|
-
animationConfig: new _schema["default"]({
|
|
877
|
-
version: _versions.VERSIONS.v1,
|
|
878
|
-
properties: {
|
|
879
|
-
currentTime: null,
|
|
880
|
-
speed: null
|
|
881
|
-
},
|
|
882
|
-
key: 'animationConfig'
|
|
883
|
-
})
|
|
884
|
-
};
|
|
885
|
-
var visStateSchemaV0 = exports.visStateSchemaV0 = new _schema["default"]({
|
|
886
|
-
version: _versions.VERSIONS.v0,
|
|
887
|
-
properties: propertiesV0,
|
|
888
|
-
key: 'visState'
|
|
889
|
-
});
|
|
890
|
-
var visStateSchemaV1 = exports.visStateSchemaV1 = new _schema["default"]({
|
|
891
|
-
version: _versions.VERSIONS.v1,
|
|
892
|
-
properties: propertiesV1,
|
|
893
|
-
key: 'visState'
|
|
894
|
-
});
|
|
895
|
-
var visStateSchema = exports.visStateSchema = (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _versions.VERSIONS.v0, {
|
|
896
|
-
save: function save(toSave) {
|
|
897
|
-
return visStateSchemaV0.save(toSave);
|
|
898
|
-
},
|
|
899
|
-
load: function load(toLoad) {
|
|
900
|
-
return visStateSchemaV1.load(visStateSchemaV0.load(toLoad).visState);
|
|
901
|
-
}
|
|
902
|
-
}), _versions.VERSIONS.v1, visStateSchemaV1);
|
|
903
|
-
|
|
904
|
-
// test load v0
|
|
905
|
-
var _default = exports["default"] = visStateSchema;
|
|
906
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGljayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3ZlcnNpb25zIiwiX2ZpbHRlclV0aWxzIiwiX2xheWVyRmFjdG9yeSIsIl9zY2hlbWEiLCJfY2xvbmVEZWVwIiwiX2RhdGFVdGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiZGltZW5zaW9uUHJvcHNWMCIsImV4cG9ydHMiLCJnZW9qc29uU2l6ZUZpZWxkVjBUb1YxIiwiY29uZmlnIiwiZGVmYXVsdFJhaXVkcyIsImRlZmF1bHRSYWRpdXNSYW5nZSIsInZpc0NvbmZpZyIsImV4dHJ1ZGVkIiwic3Ryb2tlZCIsInJhZGl1cyIsInJhZGl1c1JhbmdlIiwic29tZSIsImQiLCJpIiwiRGltZW5zaW9uRmllbGRTY2hlbWFWMCIsIl9TY2hlbWEiLCJfaW5oZXJpdHMyIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsIlZFUlNJT05TIiwidjAiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJzYXZlIiwiZmllbGQiLCJzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEiLCJsb2FkIiwicGFyZW50cyIsImFjY3VtdWxhdGVkIiwiX3BhcmVudHMkc2xpY2UiLCJzbGljZSIsIl9wYXJlbnRzJHNsaWNlMiIsIl9zbGljZWRUb0FycmF5MiIsImZpZWxkTmFtZSIsInR5cGUiLCJ2aXN1YWxDaGFubmVscyIsIlNjaGVtYSIsIkRpbWVuc2lvblNjYWxlU2NoZW1hVjAiLCJfU2NoZW1hMiIsIl90aGlzMiIsIl9sZW4yIiwiX2tleTIiLCJzY2FsZSIsIl9wYXJlbnRzJHNsaWNlMyIsIl9wYXJlbnRzJHNsaWNlNCIsIkxheWVyQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hMyIsIl90aGlzMyIsIl9sZW4zIiwiX2tleTMiLCJzYXZlZCIsIkxheWVyQ29sdW1uc1NjaGVtYVYwIiwiX1NjaGVtYTQiLCJfdGhpczQiLCJfbGVuNCIsIl9rZXk0IiwiY29sdW1ucyIsInJlZHVjZSIsImFjY3UiLCJMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hNSIsIl90aGlzNSIsIl9sZW41IiwiX2tleTUiLCJhY2N1bXVsYXRlZENvbmZpZyIsIkxheWVyVmlzQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hNiIsIl90aGlzNiIsIl9sZW42IiwiX2tleTYiLCJhY2N1bXVsYXRvciIsIl9wYXJlbnRzJHNsaWNlNSIsIl9wYXJlbnRzJHNsaWNlNiIsInJlbmFtZSIsImdlb2pzb24iLCJlbGV2YXRpb25SYW5nZSIsInByb3BUb1JlbmFtZSIsIkxheWVyQ29uZmlnU2NoZW1hRGVsZXRlVjAiLCJfU2NoZW1hNyIsIl90aGlzNyIsIl9sZW43IiwiX2tleTciLCJsYXllclByb3BzVjAiLCJpZCIsImRhdGFJZCIsImxhYmVsIiwiY29sb3IiLCJpc1Zpc2libGUiLCJoaWRkZW4iLCJ2aXNpYmlsaXR5Qnlab29tIiwiY29sb3JGaWVsZCIsInByb3BlcnRpZXMiLCJjb2xvclNjYWxlIiwic2l6ZUZpZWxkIiwic2l6ZVNjYWxlIiwiZW5hYmxlM2QiLCJjb2xvckFnZ3JlZ2F0aW9uIiwic2l6ZUFnZ3JlZ2F0aW9uIiwiaXNBZ2dyZWdhdGVkIiwiQ29sdW1uU2NoZW1hVjEiLCJfU2NoZW1hOCIsInN0YXRlIiwiY2tleSIsIlRleHRMYWJlbFNjaGVtYVYxIiwiX1NjaGVtYTkiLCJ0ZXh0TGFiZWwiLCJtYXAiLCJ0bCIsInBpY2siLCJpc0FycmF5IiwidmlzdWFsQ2hhbm5lbE1vZGlmaWNhdGlvblYxIiwidmMiLCJfcGFyZW50cyRzbGljZTciLCJfcGFyZW50cyRzbGljZTgiLCJsYXllciIsImlzT2xkIiwiaGFzT3duUHJvcGVydHkiLCJpc1BvaW50IiwicmFkaXVzRmllbGQiLCJMQVlFUl9WSVNfQ09ORklHUyIsImRlZmF1bHRWYWx1ZSIsInN0cm9rZUNvbG9yRmllbGQiLCJzdHJva2VDb2xvclNjYWxlIiwiVmlzdWFsQ2hhbm5lbFNjaGVtYVYxIiwiX1NjaGVtYTEwIiwiX3BhcmVudHMkc2xpY2U5IiwiX3BhcmVudHMkc2xpY2UxMCIsIl9wYXJlbnRzJHNsaWNlMTEiLCJfcGFyZW50cyRzbGljZTEyIiwibW9kaWZpZWQiLCJMZWdlbmRTZXR0aW5nc1YxIiwiX1NjaGVtYTExIiwibGVnZW5kU2V0dGluZ3MiLCJscyIsInZpc0NvbmZpZ01vZGlmaWNhdGlvblYxIiwicG9pbnQiLCJfcGFyZW50cyRzbGljZTEzIiwiX3BhcmVudHMkc2xpY2UxNCIsInN0cm9rZUNvbG9yIiwic3Ryb2tlQ29sb3JSYW5nZSIsImNsb25lRGVlcCIsImNvbG9yUmFuZ2UiLCJvdXRsaW5lIiwiZmlsbGVkIiwiX3BhcmVudHMkc2xpY2UxNSIsIl9wYXJlbnRzJHNsaWNlMTYiLCJWaXNDb25maWdTY2hlbWFWMSIsIl9TY2hlbWExMiIsIl90aGlzOCIsIl9sZW44IiwiX2tleTgiLCJfcGFyZW50cyRzbGljZTE3IiwiX3BhcmVudHMkc2xpY2UxOCIsImxheWVyUHJvcHNWMSIsInZlcnNpb24iLCJ2MSIsImhpZ2hsaWdodENvbG9yIiwiTGF5ZXJTY2hlbWFWMCIsIl9TY2hlbWExMyIsIl90aGlzOSIsIl9sZW45IiwiX2tleTkiLCJsYXllcnMiLCJfdGhpczEwIiwiX3BhcmVudHMkc2xpY2UxOSIsIl9wYXJlbnRzJHNsaWNlMjAiLCJ2aXNTdGF0ZSIsImxheWVyT3JkZXIiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJfdGhpczExIiwibG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hIiwiRmlsdGVyU2NoZW1hVjAiLCJfU2NoZW1hMTQiLCJfdGhpczEyIiwiX2xlbjEwIiwiX2tleTEwIiwiZmlsdGVycyIsIl90aGlzMTMiLCJpc1ZhbGlkRmlsdGVyVmFsdWUiLCJpbnRlcmFjdGlvblByb3BzVjAiLCJJbnRlcmFjdGlvblNjaGVtYVYwIiwiX1NjaGVtYTE1IiwiX3RoaXMxNCIsIl9sZW4xMSIsIl9rZXkxMSIsImludGVyYWN0aW9uQ29uZmlnIiwiZW5hYmxlZCIsImludGVyYWN0aW9uUHJvcHNWMSIsIkludGVyYWN0aW9uU2NoZW1hVjEiLCJfU2NoZW1hMTYiLCJfdGhpczE1IiwiX2xlbjEyIiwiX2tleTEyIiwiX3RoaXMxNiIsIm1vZGlmaWVkQ29uZmlnIiwiY29uZmlnVHlwZSIsImZpZWxkc1RvU2hvdyIsIm5vdE51bGxvclVuZGVmaW5lZCIsImZpZWxkRGF0YSIsIm5hbWUiLCJmb3JtYXQiLCJmaWx0ZXJQcm9wc1YwIiwiZW5sYXJnZWQiLCJEaW1lbnNpb25GaWVsZFNjaGVtYSIsIl9TY2hlbWExNyIsIlNwbGl0TWFwc1NjaGVtYSIsIl9TY2hlbWExOCIsImNvbnZlcnRMYXllclNldHRpbmdzIiwiX3JlZjE5IiwiX3JlZjIwIiwiX3R5cGVvZjIiLCJpc0F2YWlsYWJsZSIsInNwbGl0TWFwcyIsIl90aGlzMTciLCJzZXR0aW5ncyIsImVudHJpZXMiLCJmaWx0ZXJQcm9wc1YxIiwicGxvdFR5cGUiLCJhbmltYXRpb25XaW5kb3ciLCJ5QXhpcyIsImxheWVySWQiLCJzcGVlZCIsInByb3BlcnRpZXNWMCIsImxheWVyQmxlbmRpbmciLCJwcm9wZXJ0aWVzVjEiLCJhbmltYXRpb25Db25maWciLCJjdXJyZW50VGltZSIsInZpc1N0YXRlU2NoZW1hVjAiLCJ2aXNTdGF0ZVNjaGVtYVYxIiwidmlzU3RhdGVTY2hlbWEiLCJ0b1NhdmUiLCJ0b0xvYWQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3Zpcy1zdGF0ZS1zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoL3BpY2snO1xuaW1wb3J0IHtWRVJTSU9OU30gZnJvbSAnLi92ZXJzaW9ucyc7XG5pbXBvcnQge2lzVmFsaWRGaWx0ZXJWYWx1ZX0gZnJvbSAndXRpbHMvZmlsdGVyLXV0aWxzJztcbmltcG9ydCB7TEFZRVJfVklTX0NPTkZJR1N9IGZyb20gJ2xheWVycy9sYXllci1mYWN0b3J5JztcbmltcG9ydCBTY2hlbWEgZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcblxuLyoqXG4gKiBWMCBTY2hlbWFcbiAqL1xuXG5leHBvcnQgY29uc3QgZGltZW5zaW9uUHJvcHNWMCA9IFsnbmFtZScsICd0eXBlJ107XG5cbi8vIGluIHYwIGdlb2pzb24gdGhlcmUgaXMgb25seSBzaXplRmllbGRcblxuLy8gaW4gdjEgZ2VvanNvblxuLy8gc3Ryb2tlIGJhc2Ugb24gLT4gc2l6ZUZpZWxkXG4vLyBoZWlnaHQgYmFzZWQgb24gLT4gaGVpZ2h0RmllbGRcbi8vIHJhZGl1cyBiYXNlZCBvbiAtPiByYWRpdXNGaWVsZFxuLy8gaGVyZSB3ZSBtYWtlIG91ciB3aXJlZHN0IGd1ZXNzIG9uIHdoaWNoIGNoYW5uZWwgc2l6ZUZpZWxkIGJlbG9uZ3MgdG9cbmZ1bmN0aW9uIGdlb2pzb25TaXplRmllbGRWMFRvVjEoY29uZmlnKSB7XG4gIGNvbnN0IGRlZmF1bHRSYWl1ZHMgPSAxMDtcbiAgY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gWzAsIDUwXTtcblxuICAvLyBpZiBleHRydWRlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIGhlaWdodFxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5leHRydWRlZCkge1xuICAgIHJldHVybiAnaGVpZ2h0RmllbGQnO1xuICB9XG5cbiAgLy8gaWYgc2hvdyBzdHJva2UgZW5hYmxlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIHN0cm9rZVxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5zdHJva2VkKSB7XG4gICAgcmV0dXJuICdzaXplRmllbGQnO1xuICB9XG5cbiAgLy8gaWYgcmFkaXVzIGNoYW5nZWQsIG9yIHJhZGl1cyBSYW5nZSBDaGFuZ2VkLCBzaXplRmllbGQgaXMgbW9zdCBsaWtlbHkgdXNlZCBmb3IgcmFkaXVzXG4gIC8vIHRoaXMgaXMgdGhlIG1vc3QgdW5yZWxpYWJsZSBndWVzcywgdGhhdCdzIHdoeSB3ZSBwdXQgaXQgaW4gdGhlIGVuZFxuICBpZiAoXG4gICAgY29uZmlnLnZpc0NvbmZpZy5yYWRpdXMgIT09IGRlZmF1bHRSYWl1ZHMgfHxcbiAgICBjb25maWcudmlzQ29uZmlnLnJhZGl1c1JhbmdlLnNvbWUoKGQsIGkpID0+IGQgIT09IGRlZmF1bHRSYWRpdXNSYW5nZVtpXSlcbiAgKSB7XG4gICAgcmV0dXJuICdyYWRpdXNGaWVsZCc7XG4gIH1cblxuICByZXR1cm4gJ3NpemVGaWVsZCc7XG59XG5cbi8vIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnXG5jbGFzcyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBzYXZlKGZpZWxkKSB7XG4gICAgLy8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgYW55bW9yZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBmaWVsZCAhPT0gbnVsbCA/IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpZWxkKVt0aGlzLmtleV0gOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIGxvYWQoZmllbGQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBsZXQgZmllbGROYW1lID0gdGhpcy5rZXk7XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnZ2VvanNvbicgJiYgdGhpcy5rZXkgPT09ICdzaXplRmllbGQnICYmIGZpZWxkKSB7XG4gICAgICBmaWVsZE5hbWUgPSBnZW9qc29uU2l6ZUZpZWxkVjBUb1YxKGNvbmZpZyk7XG4gICAgfVxuICAgIC8vIGZvbGQgaW50byB2aXN1YWxDaGFubmVscyB0byBiZSBsb2FkIGJ5IFZpc3VhbENoYW5uZWxTY2hlbWFWMVxuICAgIHJldHVybiB7XG4gICAgICB2aXN1YWxDaGFubmVsczoge1xuICAgICAgICAuLi4oYWNjdW11bGF0ZWQudmlzdWFsQ2hhbm5lbHMgfHwge30pLFxuICAgICAgICBbZmllbGROYW1lXTogZmllbGRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIERpbWVuc2lvblNjYWxlU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIHNhdmUoc2NhbGUpIHtcbiAgICByZXR1cm4ge1t0aGlzLmtleV06IHNjYWxlfTtcbiAgfVxuICBsb2FkKHNjYWxlLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIGNvbnN0IFtjb25maWddID0gcGFyZW50cy5zbGljZSgtMSk7XG4gICAgLy8gZm9sZCBpbnRvIHZpc3VhbENoYW5uZWxzIHRvIGJlIGxvYWQgYnkgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxXG4gICAgaWYgKHRoaXMua2V5ID09PSAnc2l6ZVNjYWxlJyAmJiBjb25maWcudHlwZSA9PT0gJ2dlb2pzb24nKSB7XG4gICAgICAvLyBzaXplU2NhbGUgbm93IHNwbGl0IGludG8gcmFkaXVzU2NhbGUsIGhlaWdodFNjYWxlXG4gICAgICAvLyBubyB1c2VyIGN1c3RvbWl6YXRpb24sIGp1c3QgdXNlIGRlZmF1bHRcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmlzdWFsQ2hhbm5lbHM6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdGVkLnZpc3VhbENoYW5uZWxzIHx8IHt9KSxcbiAgICAgICAgW3RoaXMua2V5XTogc2NhbGVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbi8vIHVzZWQgdG8gY29udmVydCB2MCB0byB2MSBsYXllciBjb25maWdcbmNsYXNzIExheWVyQ29uZmlnU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIGxvYWQoc2F2ZWQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgLy8gZm9sZCB2MCBsYXllciBwcm9wZXJ0eSBpbnRvIGNvbmZpZy5rZXlcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBbdGhpcy5rZXldOiBzYXZlZFxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuLy8gdXNlZCB0byBjb252ZXJ0IHYwIHRvIHYxIGxheWVyIGNvbHVtbnNcbi8vIG9ubHkgcmV0dXJuIGNvbHVtbiB2YWx1ZSBmb3IgZWFjaCBjb2x1bW5cbmNsYXNzIExheWVyQ29sdW1uc1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcua2V5LCBmbGF0dGVuIGNvbHVtbnNcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBjb2x1bW5zOiBPYmplY3Qua2V5cyhzYXZlZCkucmVkdWNlKFxuICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgW2tleV06IHNhdmVkW2tleV0udmFsdWVcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7fVxuICAgICAgICApXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG4vLyB1c2VkIHRvIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnLnZpc0NvbmZpZ1xuY2xhc3MgTGF5ZXJDb25maWdUb1Zpc0NvbmZpZ1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcudmlzQ29uZmlnXG4gICAgY29uc3QgYWNjdW11bGF0ZWRDb25maWcgPSBhY2N1bXVsYXRlZC5jb25maWcgfHwge307XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5hY2N1bXVsYXRlZENvbmZpZyxcbiAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdGVkQ29uZmlnLnZpc0NvbmZpZyB8fCB7fSksXG4gICAgICAgICAgW3RoaXMua2V5XTogc2F2ZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJWaXNDb25maWdTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAga2V5ID0gJ3Zpc0NvbmZpZyc7XG5cbiAgbG9hZCh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCByZW5hbWUgPSB7XG4gICAgICBnZW9qc29uOiB7XG4gICAgICAgIGV4dHJ1ZGVkOiAnZW5hYmxlM2QnLFxuICAgICAgICBlbGV2YXRpb25SYW5nZTogJ2hlaWdodFJhbmdlJ1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLnR5cGUgaW4gcmVuYW1lKSB7XG4gICAgICBjb25zdCBwcm9wVG9SZW5hbWUgPSByZW5hbWVbY29uZmlnLnR5cGVdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgICAgdmlzQ29uZmlnOiBPYmplY3Qua2V5cyh2aXNDb25maWcpLnJlZHVjZShcbiAgICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIC4uLihwcm9wVG9SZW5hbWVba2V5XVxuICAgICAgICAgICAgICAgID8ge1twcm9wVG9SZW5hbWVba2V5XV06IHZpc0NvbmZpZ1trZXldfVxuICAgICAgICAgICAgICAgIDoge1trZXldOiB2aXNDb25maWdba2V5XX0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgIHZpc0NvbmZpZ1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAgbG9hZCh2YWx1ZSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKipcbiAqIFYwIC0+IFYxIENoYW5nZXNcbiAqIC0gbGF5ZXIgaXMgbm93IGEgY2xhc3NcbiAqIC0gY29uZmlnIHNhdmVkIGluIGEgY29uZmlnIG9iamVjdFxuICogLSBpZCwgdHlwZSwgaXNBZ2dyZWdhdGVkIGlzIG91dHNpZGUgbGF5ZXIuY29uZmlnXG4gKiAtIHZpc3VhbENoYW5uZWxzIGlzIG91dHNpZGUgY29uZmlnLCBpdCBkZWZpbmVzIGF2YWlsYWJsZSB2aXN1YWwgY2hhbm5lbCBhbmRcbiAqICAgcHJvcGVydHkgbmFtZXMgZm9yIGZpZWxkLCBzY2FsZSwgZG9tYWluIGFuZCByYW5nZSBvZiBlYWNoIHZpc3VhbCBjaGFuZWwuXG4gKiAtIGVuYWJsZTNkLCBjb2xvckFnZ3JlZ2F0aW9uIGFuZCBzaXplQWdncmVnYXRpb24gYXJlIG1vdmVkIGludG8gdmlzQ29uZmlnXG4gKiAtIEdlb2pzb25MYXllciAtIGFkZGVkIGhlaWdodCwgcmFkaXVzIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuXG5leHBvcnQgY29uc3QgbGF5ZXJQcm9wc1YwID0ge1xuICBpZDogbnVsbCxcbiAgdHlwZTogbnVsbCxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIGRhdGFJZDogbmV3IExheWVyQ29uZmlnU2NoZW1hVjAoe2tleTogJ2RhdGFJZCd9KSxcbiAgbGFiZWw6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdsYWJlbCd9KSxcbiAgY29sb3I6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdjb2xvcid9KSxcbiAgaXNWaXNpYmxlOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFWMCh7a2V5OiAnaXNWaXNpYmxlJ30pLFxuICBoaWRkZW46IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdoaWRkZW4nfSksXG4gIHZpc2liaWxpdHlCeVpvb206IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICd2aXNpYmlsaXR5Qnlab29tJ30pLFxuXG4gIC8vIGNvbnZlcnQgdmlzQ29uZmlnXG4gIHZpc0NvbmZpZzogbmV3IExheWVyVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3Zpc0NvbmZpZyd9KSxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIC8vIGZsYXR0ZW5cbiAgY29sdW1uczogbmV3IExheWVyQ29sdW1uc1NjaGVtYVYwKCksXG5cbiAgLy8gc2F2ZSBpbnRvIHZpc3VhbENoYW5uZWxzXG4gIGNvbG9yRmllbGQ6IG5ldyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwKHtcbiAgICBwcm9wZXJ0aWVzOiBkaW1lbnNpb25Qcm9wc1YwLFxuICAgIGtleTogJ2NvbG9yRmllbGQnXG4gIH0pLFxuICBjb2xvclNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnY29sb3JTY2FsZSdcbiAgfSksXG4gIHNpemVGaWVsZDogbmV3IERpbWVuc2lvbkZpZWxkU2NoZW1hVjAoe1xuICAgIHByb3BlcnRpZXM6IGRpbWVuc2lvblByb3BzVjAsXG4gICAga2V5OiAnc2l6ZUZpZWxkJ1xuICB9KSxcbiAgc2l6ZVNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnc2l6ZVNjYWxlJ1xuICB9KSxcblxuICAvLyBtb3ZlIGludG8gY29uZmlnLnZpc0NvbmZpZ1xuICBlbmFibGUzZDogbmV3IExheWVyQ29uZmlnVG9WaXNDb25maWdTY2hlbWFWMCh7a2V5OiAnZW5hYmxlM2QnfSksXG4gIGNvbG9yQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe1xuICAgIGtleTogJ2NvbG9yQWdncmVnYXRpb24nXG4gIH0pLFxuICBzaXplQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3NpemVBZ2dyZWdhdGlvbid9KSxcblxuICAvLyBkZWxldGVcbiAgaXNBZ2dyZWdhdGVkOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCgpXG59O1xuXG4vKipcbiAqIFYxIFNjaGVtYVxuICovXG5jbGFzcyBDb2x1bW5TY2hlbWFWMSBleHRlbmRzIFNjaGVtYSB7XG4gIHNhdmUoY29sdW1ucywgc3RhdGUpIHtcbiAgICAvLyBzdGFydGluZyBmcm9tIHYxLCBvbmx5IHNhdmUgY29sdW1uIHZhbHVlXG4gICAgLy8gZmllbGRJZHggd2lsbCBiZSBjYWxjdWxhdGVkIGR1cmluZyBtZXJnZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhjb2x1bW5zKS5yZWR1Y2UoXG4gICAgICAgIChhY2N1LCBja2V5KSA9PiAoe1xuICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgW2NrZXldOiBjb2x1bW5zW2NrZXldLnZhbHVlXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cblxuICBsb2FkKGNvbHVtbnMpIHtcbiAgICByZXR1cm4ge2NvbHVtbnN9O1xuICB9XG59XG5cbmNsYXNzIFRleHRMYWJlbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogdGV4dExhYmVsLm1hcCh0bCA9PiAoe1xuICAgICAgICAuLi50bCxcbiAgICAgICAgZmllbGQ6IHRsLmZpZWxkID8gcGljayh0bC5maWVsZCwgWyduYW1lJywgJ3R5cGUnXSkgOiBudWxsXG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgbG9hZCh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge3RleHRMYWJlbDogQXJyYXkuaXNBcnJheSh0ZXh0TGFiZWwpID8gdGV4dExhYmVsIDogW3RleHRMYWJlbF19O1xuICB9XG59XG5cbmNvbnN0IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMSA9IHtcbiAgZ2VvanNvbjogKHZjLCBwYXJlbnRzLCBhY2N1bXVsYXRvcikgPT4ge1xuICAgIGNvbnN0IFtsYXllcl0gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCBpc09sZCA9ICF2Yy5oYXNPd25Qcm9wZXJ0eSgnc3Ryb2tlQ29sb3JGaWVsZCcpO1xuICAgIC8vIG1ha2Ugb3VyIGJlc3QgZ3Vlc3MgaWYgdGhpcyBnZW9qc29uIGxheWVyIGNvbnRhaW5zIHBvaW50XG4gICAgY29uc3QgaXNQb2ludCA9XG4gICAgICB2Yy5yYWRpdXNGaWVsZCB8fCBsYXllci5jb25maWcudmlzQ29uZmlnLnJhZGl1cyAhPT0gTEFZRVJfVklTX0NPTkZJR1MucmFkaXVzLmRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChpc09sZCAmJiAhaXNQb2ludCAmJiBsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZWQpIHtcbiAgICAgIC8vIGlmIHN0cm9rZWQgaXMgdHJ1ZSwgY29weSBjb2xvciBjb25maWcgdG8gc3Ryb2tlIGNvbG9yIGNvbmZpZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3Ryb2tlQ29sb3JGaWVsZDogdmMuY29sb3JGaWVsZCxcbiAgICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogdmMuY29sb3JTY2FsZVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuLyoqXG4gKiBWMTogc2F2ZSBbZmllbGRdOiB7bmFtZSwgdHlwZX0sIFtzY2FsZV06ICcnIGZvciBlYWNoIGNoYW5uZWxcbiAqL1xuY2xhc3MgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh2aXN1YWxDaGFubmVscywgcGFyZW50cykge1xuICAgIC8vIG9ubHkgc2F2ZSBmaWVsZCBhbmQgc2NhbGUgb2YgZWFjaCBjaGFubmVsXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyh2aXN1YWxDaGFubmVscykucmVkdWNlKFxuICAgICAgICAvLyAgc2F2ZSBjaGFubmVsIHRvIG51bGwgaWYgZGlkbid0IHNlbGVjdCBhbnkgZmllbGRcbiAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLmZpZWxkXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdXG4gICAgICAgICAgICA/IHBpY2sobGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdLCBbJ25hbWUnLCAndHlwZScsICdjb2xvckNvbHVtbiddKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLnNjYWxlXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uc2NhbGVdXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cbiAgbG9hZCh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpIHtcbiAgICAvLyBmb2xkIGNoYW5uZWxzIGludG8gY29uZmlnXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIGNvbnN0IG1vZGlmaWVkID0gdmlzdWFsQ2hhbm5lbE1vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdXG4gICAgICA/IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMVtsYXllci50eXBlXSh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpXG4gICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRvci5jb25maWcgfHwge30pLFxuICAgICAgICAuLi52YyxcbiAgICAgICAgLi4ubW9kaWZpZWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4vKipcbiAqIFYxOiBzYXZlIFtjaGFubmVsXTogW3sgbGFiZWwsIGNvbG9yIH0sIC4uLl0gZm9yIGxlZ2VuZFxuICovXG5jbGFzcyBMZWdlbmRTZXR0aW5nc1YxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZShsZWdlbmRTZXR0aW5ncywgcGFyZW50cykge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhsZWdlbmRTZXR0aW5ncykucmVkdWNlKChhY2N1LCBrZXkpID0+IHtcbiAgICAgICAgYWNjdVtrZXldID0gbGVnZW5kU2V0dGluZ3Nba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCB7fSlcbiAgICB9O1xuICB9XG4gIGxvYWQobHMsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgW3RoaXMua2V5XTogbHNcbiAgICB9O1xuICB9XG59XG5jb25zdCB2aXNDb25maWdNb2RpZmljYXRpb25WMSA9IHtcbiAgcG9pbnQ6ICh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSA9PiB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSB7fTtcbiAgICBjb25zdCBbbGF5ZXJdID0gcGFyZW50cy5zbGljZSgtMiwgLTEpO1xuICAgIGNvbnN0IGlzT2xkID1cbiAgICAgICF2aXNDb25maWcuaGFzT3duUHJvcGVydHkoJ2ZpbGxlZCcpICYmICF2aXNDb25maWcuc3Ryb2tlQ29sb3IgJiYgIXZpc0NvbmZpZy5zdHJva2VDb2xvclJhbmdlO1xuICAgIGlmIChpc09sZCkge1xuICAgICAgLy8gY29sb3IgY29sb3IgJiBjb2xvciByYW5nZSB0byBzdHJva2UgY29sb3JcbiAgICAgIG1vZGlmaWVkLnN0cm9rZUNvbG9yID0gbGF5ZXIuY29uZmlnLmNvbG9yO1xuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3JSYW5nZSA9IGNsb25lRGVlcCh2aXNDb25maWcuY29sb3JSYW5nZSk7XG4gICAgICBpZiAodmlzQ29uZmlnLm91dGxpbmUpIHtcbiAgICAgICAgLy8gcG9pbnQgbGF5ZXIgbm93IHN1cHBvcnRzIGJvdGggb3V0bGluZSBhbmQgZmlsbFxuICAgICAgICAvLyBmb3Igb2xkZXIgc2NoZW1hIHdoZXJlIGZpbGxlZCBoYXMgbm90IGJlZW4gYWRkZWQgdG8gcG9pbnQgbGF5ZXJcbiAgICAgICAgLy8gc2V0IGl0IHRvIGZhbHNlXG4gICAgICAgIG1vZGlmaWVkLmZpbGxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2RpZmllZDtcbiAgfSxcbiAgZ2VvanNvbjogKHZpc0NvbmZpZywgcGFyZW50cywgYWNjdW11bGF0ZWQpID0+IHtcbiAgICAvLyBpcyBwb2ludHM/XG4gICAgY29uc3QgbW9kaWZpZWQgPSB7fTtcbiAgICBjb25zdCBbbGF5ZXJdID0gcGFyZW50cy5zbGljZSgtMiwgLTEpO1xuICAgIGNvbnN0IGlzT2xkID1cbiAgICAgIGxheWVyLnZpc3VhbENoYW5uZWxzICYmXG4gICAgICAhbGF5ZXIudmlzdWFsQ2hhbm5lbHMuaGFzT3duUHJvcGVydHkoJ3N0cm9rZUNvbG9yRmllbGQnKSAmJlxuICAgICAgIXZpc0NvbmZpZy5zdHJva2VDb2xvciAmJlxuICAgICAgIXZpc0NvbmZpZy5zdHJva2VDb2xvclJhbmdlO1xuICAgIC8vIG1ha2Ugb3VyIGJlc3QgZ3Vlc3MgaWYgdGhpcyBnZW9qc29uIGxheWVyIGNvbnRhaW5zIHBvaW50XG4gICAgY29uc3QgaXNQb2ludCA9XG4gICAgICAobGF5ZXIudmlzdWFsQ2hhbm5lbHMgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMucmFkaXVzRmllbGQpIHx8XG4gICAgICAodmlzQ29uZmlnICYmIHZpc0NvbmZpZy5yYWRpdXMgIT09IExBWUVSX1ZJU19DT05GSUdTLnJhZGl1cy5kZWZhdWx0VmFsdWUpO1xuXG4gICAgaWYgKGlzT2xkKSB7XG4gICAgICAvLyBjb2xvciBjb2xvciAmIGNvbG9yIHJhbmdlIHRvIHN0cm9rZSBjb2xvclxuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3IgPSBsYXllci5jb25maWcuY29sb3I7XG4gICAgICBtb2RpZmllZC5zdHJva2VDb2xvclJhbmdlID0gY2xvbmVEZWVwKHZpc0NvbmZpZy5jb2xvclJhbmdlKTtcbiAgICAgIGlmIChpc1BvaW50KSB7XG4gICAgICAgIC8vIGlmIGlzIHBvaW50LCBzZXQgc3Ryb2tlIHRvIGZhbHNlXG4gICAgICAgIG1vZGlmaWVkLmZpbGxlZCA9IHRydWU7XG4gICAgICAgIG1vZGlmaWVkLnN0cm9rZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kaWZpZWQ7XG4gIH1cbn07XG5cbmNsYXNzIFZpc0NvbmZpZ1NjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAga2V5ID0gJ3Zpc0NvbmZpZyc7XG5cbiAgbG9hZCh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTIsIC0xKTtcbiAgICBjb25zdCBtb2RpZmllZCA9IHZpc0NvbmZpZ01vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdXG4gICAgICA/IHZpc0NvbmZpZ01vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdKHZpc0NvbmZpZywgcGFyZW50cywgYWNjdW11bGF0ZWQpXG4gICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc0NvbmZpZzoge1xuICAgICAgICAuLi52aXNDb25maWcsXG4gICAgICAgIC4uLm1vZGlmaWVkXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbGF5ZXJQcm9wc1YxID0ge1xuICBpZDogbnVsbCxcbiAgdHlwZTogbnVsbCxcbiAgY29uZmlnOiBuZXcgU2NoZW1hKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICBrZXk6ICdjb25maWcnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGRhdGFJZDogbnVsbCxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgY29sb3I6IG51bGwsXG4gICAgICBoaWdobGlnaHRDb2xvcjogbnVsbCxcbiAgICAgIGNvbHVtbnM6IG5ldyBDb2x1bW5TY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgICAgICBrZXk6ICdjb2x1bW5zJ1xuICAgICAgfSksXG4gICAgICBpc1Zpc2libGU6IG51bGwsXG4gICAgICB2aXNDb25maWc6IG5ldyBWaXNDb25maWdTY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxXG4gICAgICB9KSxcbiAgICAgIGhpZGRlbjogbnVsbCxcbiAgICAgIHZpc2liaWxpdHlCeVpvb206IG51bGwsXG4gICAgICB0ZXh0TGFiZWw6IG5ldyBUZXh0TGFiZWxTY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgICAgICBrZXk6ICd0ZXh0TGFiZWwnXG4gICAgICB9KVxuICAgIH1cbiAgfSksXG4gIGxlZ2VuZFNldHRpbmdzOiBuZXcgTGVnZW5kU2V0dGluZ3NWMSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAnbGVnZW5kU2V0dGluZ3MnXG4gIH0pLFxuICB2aXN1YWxDaGFubmVsczogbmV3IFZpc3VhbENoYW5uZWxTY2hlbWFWMSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAndmlzdWFsQ2hhbm5lbHMnXG4gIH0pXG59O1xuXG5leHBvcnQgY2xhc3MgTGF5ZXJTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIGtleSA9ICdsYXllcnMnO1xuXG4gIHNhdmUobGF5ZXJzLCBwYXJlbnRzKSB7XG4gICAgY29uc3QgW3Zpc1N0YXRlXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIFt0aGlzLmtleV06IHZpc1N0YXRlLmxheWVyT3JkZXIucmVkdWNlKChzYXZlZCwgaW5kZXgpID0+IHtcbiAgICAgICAgLy8gc2F2ZSBsYXllcnMgYWNjb3JkaW5nIHRvIHRoZWlyIHJlbmRlcmluZyBvcmRlclxuICAgICAgICBjb25zdCBsYXllciA9IGxheWVyc1tpbmRleF07XG4gICAgICAgIGlmIChsYXllci5pc1ZhbGlkVG9TYXZlKCkpIHtcbiAgICAgICAgICBzYXZlZC5wdXNoKHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGxheWVyKS5sYXllcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYXZlZDtcbiAgICAgIH0sIFtdKVxuICAgIH07XG4gIH1cblxuICBsb2FkKGxheWVycykge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBsYXllcnMubWFwKGxheWVyID0+IHRoaXMubG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGxheWVyLCBsYXllcnMpLmxheWVycylcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIGtleSA9ICdmaWx0ZXJzJztcbiAgc2F2ZShmaWx0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnNcbiAgICAgICAgLmZpbHRlcihpc1ZhbGlkRmlsdGVyVmFsdWUpXG4gICAgICAgIC5tYXAoZmlsdGVyID0+IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpbHRlcikuZmlsdGVycylcbiAgICB9O1xuICB9XG4gIGxvYWQoZmlsdGVycykge1xuICAgIHJldHVybiB7ZmlsdGVyc307XG4gIH1cbn1cblxuY29uc3QgaW50ZXJhY3Rpb25Qcm9wc1YwID0gWyd0b29sdGlwJywgJ2JydXNoJ107XG5cbmNsYXNzIEludGVyYWN0aW9uU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnaW50ZXJhY3Rpb25Db25maWcnO1xuXG4gIHNhdmUoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BlcnRpZXMpXG4gICAgICA/IHtcbiAgICAgICAgICBbdGhpcy5rZXldOiB0aGlzLnByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgLi4uKGludGVyYWN0aW9uQ29uZmlnW2tleV0uZW5hYmxlZCA/IHtba2V5XTogaW50ZXJhY3Rpb25Db25maWdba2V5XS5jb25maWd9IDoge30pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICA6IHt9O1xuICB9XG4gIGxvYWQoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICAvLyBjb252ZXJ0IHYwIC0+IHYxXG4gICAgLy8gcmV0dXJuIGVuYWJsZWQ6IGZhbHNlIGlmIGRpc2FibGVkLFxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcGVydGllcylcbiAgICAgID8ge1xuICAgICAgICAgIFt0aGlzLmtleV06IHRoaXMucHJvcGVydGllcy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgICAuLi57XG4gICAgICAgICAgICAgICAgW2tleV06IHtcbiAgICAgICAgICAgICAgICAgIC4uLihpbnRlcmFjdGlvbkNvbmZpZ1trZXldIHx8IHt9KSxcbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IEJvb2xlYW4oaW50ZXJhY3Rpb25Db25maWdba2V5XSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIDoge307XG4gIH1cbn1cblxuY29uc3QgaW50ZXJhY3Rpb25Qcm9wc1YxID0gWy4uLmludGVyYWN0aW9uUHJvcHNWMCwgJ2dlb2NvZGVyJywgJ2Nvb3JkaW5hdGUnXTtcblxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2NoZW1hVjEgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnaW50ZXJhY3Rpb25Db25maWcnO1xuXG4gIHNhdmUoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICAvLyBzYXZlIGNvbmZpZyBldmVuIGlmIGRpc2FibGVkLFxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcGVydGllcylcbiAgICAgID8ge1xuICAgICAgICAgIFt0aGlzLmtleV06IHRoaXMucHJvcGVydGllcy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgICBba2V5XToge1xuICAgICAgICAgICAgICAgIC4uLmludGVyYWN0aW9uQ29uZmlnW2tleV0uY29uZmlnLFxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGludGVyYWN0aW9uQ29uZmlnW2tleV0uZW5hYmxlZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICA6IHt9O1xuICB9XG4gIGxvYWQoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICBjb25zdCBtb2RpZmllZENvbmZpZyA9IGludGVyYWN0aW9uQ29uZmlnO1xuICAgIE9iamVjdC5rZXlzKGludGVyYWN0aW9uQ29uZmlnKS5mb3JFYWNoKGNvbmZpZ1R5cGUgPT4ge1xuICAgICAgaWYgKGNvbmZpZ1R5cGUgPT09ICd0b29sdGlwJykge1xuICAgICAgICBjb25zdCBmaWVsZHNUb1Nob3cgPSBtb2RpZmllZENvbmZpZ1tjb25maWdUeXBlXS5maWVsZHNUb1Nob3c7XG4gICAgICAgIGlmICghbm90TnVsbG9yVW5kZWZpbmVkKGZpZWxkc1RvU2hvdykpIHtcbiAgICAgICAgICByZXR1cm4ge1t0aGlzLmtleV06IG1vZGlmaWVkQ29uZmlnfTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHNUb1Nob3cpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBmaWVsZHNUb1Nob3dba2V5XSA9IGZpZWxkc1RvU2hvd1trZXldLm1hcChmaWVsZERhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKCFmaWVsZERhdGEubmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkRGF0YSxcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IG51bGxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWVsZERhdGE7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuICAgIHJldHVybiB7W3RoaXMua2V5XTogbW9kaWZpZWRDb25maWd9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQcm9wc1YwID0ge1xuICBkYXRhSWQ6IG51bGwsXG4gIGlkOiBudWxsLFxuICBuYW1lOiBudWxsLFxuICB0eXBlOiBudWxsLFxuICB2YWx1ZTogbnVsbCxcbiAgZW5sYXJnZWQ6IG51bGxcbn07XG5cbmV4cG9ydCBjbGFzcyBEaW1lbnNpb25GaWVsZFNjaGVtYSBleHRlbmRzIFNjaGVtYSB7XG4gIHNhdmUoZmllbGQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogZmllbGQgPyB0aGlzLnNhdmVQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShmaWVsZClbdGhpcy5rZXldIDogbnVsbFxuICAgIH07XG4gIH1cblxuICBsb2FkKGZpZWxkKSB7XG4gICAgcmV0dXJuIHtbdGhpcy5rZXldOiBmaWVsZH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNwbGl0TWFwc1NjaGVtYSBleHRlbmRzIFNjaGVtYSB7XG4gIGNvbnZlcnRMYXllclNldHRpbmdzKGFjY3UsIFtrZXksIHZhbHVlXSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2tleV06IHZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pc0F2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2tleV06IEJvb2xlYW4odmFsdWUuaXNWaXNpYmxlKVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3U7XG4gIH1cblxuICBsb2FkKHNwbGl0TWFwcykge1xuICAgIC8vIHByZXZpb3VzIHNwbGl0TWFwcyBTY2hlbWEge2xheWVyczoge2xheWVySWQ6IHtpc1Zpc2libGUsIGlzQXZhaWxhYmxlfX19XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3BsaXRNYXBzKSB8fCAhc3BsaXRNYXBzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtzcGxpdE1hcHM6IFtdfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BsaXRNYXBzOiBzcGxpdE1hcHMubWFwKHNldHRpbmdzID0+ICh7XG4gICAgICAgIC4uLnNldHRpbmdzLFxuICAgICAgICBsYXllcnM6IE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLmxheWVycyB8fCB7fSkucmVkdWNlKHRoaXMuY29udmVydExheWVyU2V0dGluZ3MsIHt9KVxuICAgICAgfSkpXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyUHJvcHNWMSA9IHtcbiAgLi4uZmlsdGVyUHJvcHNWMCxcbiAgcGxvdFR5cGU6IG51bGwsXG4gIGFuaW1hdGlvbldpbmRvdzogbnVsbCxcbiAgeUF4aXM6IG5ldyBEaW1lbnNpb25GaWVsZFNjaGVtYSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAneUF4aXMnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG5hbWU6IG51bGwsXG4gICAgICB0eXBlOiBudWxsXG4gICAgfVxuICB9KSxcblxuICAvLyBwb2x5Z29uIGZpbHRlciBwcm9wZXJ0aWVzXG4gIGxheWVySWQ6IG51bGwsXG4gIHNwZWVkOiBudWxsXG59O1xuXG5leHBvcnQgY29uc3QgcHJvcGVydGllc1YwID0ge1xuICBmaWx0ZXJzOiBuZXcgRmlsdGVyU2NoZW1hVjAoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICAgIHByb3BlcnRpZXM6IGZpbHRlclByb3BzVjBcbiAgfSksXG4gIGxheWVyczogbmV3IExheWVyU2NoZW1hVjAoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICAgIHByb3BlcnRpZXM6IGxheWVyUHJvcHNWMFxuICB9KSxcbiAgaW50ZXJhY3Rpb25Db25maWc6IG5ldyBJbnRlcmFjdGlvblNjaGVtYVYwKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MCxcbiAgICBwcm9wZXJ0aWVzOiBpbnRlcmFjdGlvblByb3BzVjBcbiAgfSksXG4gIGxheWVyQmxlbmRpbmc6IG51bGxcbn07XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0aWVzVjEgPSB7XG4gIGZpbHRlcnM6IG5ldyBGaWx0ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczogZmlsdGVyUHJvcHNWMVxuICB9KSxcbiAgbGF5ZXJzOiBuZXcgTGF5ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczogbGF5ZXJQcm9wc1YxXG4gIH0pLFxuICBpbnRlcmFjdGlvbkNvbmZpZzogbmV3IEludGVyYWN0aW9uU2NoZW1hVjEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIHByb3BlcnRpZXM6IGludGVyYWN0aW9uUHJvcHNWMVxuICB9KSxcbiAgbGF5ZXJCbGVuZGluZzogbnVsbCxcbiAgc3BsaXRNYXBzOiBuZXcgU3BsaXRNYXBzU2NoZW1hKHtcbiAgICBrZXk6ICdzcGxpdE1hcHMnLFxuICAgIHZlcnNpb246IFZFUlNJT05TLnYxXG4gIH0pLFxuICBhbmltYXRpb25Db25maWc6IG5ldyBTY2hlbWEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGN1cnJlbnRUaW1lOiBudWxsLFxuICAgICAgc3BlZWQ6IG51bGxcbiAgICB9LFxuICAgIGtleTogJ2FuaW1hdGlvbkNvbmZpZydcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYVYwID0gbmV3IFNjaGVtYSh7XG4gIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzVjAsXG4gIGtleTogJ3Zpc1N0YXRlJ1xufSk7XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYVYxID0gbmV3IFNjaGVtYSh7XG4gIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzVjEsXG4gIGtleTogJ3Zpc1N0YXRlJ1xufSk7XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYSA9IHtcbiAgW1ZFUlNJT05TLnYwXToge1xuICAgIHNhdmU6IHRvU2F2ZSA9PiB2aXNTdGF0ZVNjaGVtYVYwLnNhdmUodG9TYXZlKSxcbiAgICBsb2FkOiB0b0xvYWQgPT4gdmlzU3RhdGVTY2hlbWFWMS5sb2FkKHZpc1N0YXRlU2NoZW1hVjAubG9hZCh0b0xvYWQpLnZpc1N0YXRlKVxuICB9LFxuICBbVkVSU0lPTlMudjFdOiB2aXNTdGF0ZVNjaGVtYVYxXG59O1xuXG4vLyB0ZXN0IGxvYWQgdjBcbmV4cG9ydCBkZWZhdWx0IHZpc1N0YXRlU2NoZW1hO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFB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
|