@kepler.gl/components 3.3.0-alpha.5 → 3.3.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/annotations/annotation-node.js +145 -0
- package/dist/cjs/annotations/annotation-overlay.js +168 -0
- package/dist/cjs/annotations/annotation-panel.js +361 -0
- package/dist/cjs/annotations/annotation-text.js +149 -0
- package/dist/cjs/annotations/annotation-utils.js +197 -0
- package/dist/cjs/annotations/index.js +53 -0
- package/dist/cjs/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/cjs/annotations/lexical-editor/floating-link-editor.js +193 -0
- package/dist/cjs/annotations/lexical-editor/index.js +78 -0
- package/dist/cjs/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/cjs/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/cjs/annotations/lexical-editor/lexical-rich-text-editor.js +121 -0
- package/dist/cjs/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/cjs/annotations/lexical-editor/lexical-toolbar.js +292 -0
- package/dist/cjs/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/cjs/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/cjs/bottom-widget.js +183 -0
- package/dist/cjs/common/action-panel.js +133 -0
- package/dist/cjs/common/animation-control/animation-control.js +100 -0
- package/dist/cjs/common/animation-control/animation-controller.js +271 -0
- package/dist/cjs/common/animation-control/animation-speed-slider.js +63 -0
- package/dist/cjs/common/animation-control/animation-window-control.js +59 -0
- package/dist/cjs/common/animation-control/export-video-control.js +43 -0
- package/dist/cjs/common/animation-control/floating-time-display.js +131 -0
- package/dist/cjs/common/animation-control/play-control.js +50 -0
- package/dist/cjs/common/animation-control/playback-controls.js +164 -0
- package/dist/cjs/common/animation-control/reset-control.js +41 -0
- package/dist/cjs/common/animation-control/speed-control.js +51 -0
- package/dist/cjs/common/animation-control/window-action-control.js +57 -0
- package/dist/cjs/common/checkbox.js +101 -0
- package/dist/cjs/common/color-legend.js +272 -0
- package/dist/cjs/common/column-stats-chart.js +312 -0
- package/dist/cjs/common/data-table/button.js +38 -0
- package/dist/cjs/common/data-table/canvas.js +26 -0
- package/dist/cjs/common/data-table/cell-size.js +183 -0
- package/dist/cjs/common/data-table/display-format.js +125 -0
- package/dist/cjs/common/data-table/grid.js +106 -0
- package/dist/cjs/common/data-table/header-cell.js +148 -0
- package/dist/cjs/common/data-table/index.js +470 -0
- package/dist/cjs/common/data-table/option-dropdown.js +159 -0
- package/dist/cjs/common/dataset-label.js +27 -0
- package/dist/cjs/common/dnd-layer-items.js +22 -0
- package/dist/cjs/common/error-boundary.js +59 -0
- package/dist/cjs/common/field-selector.js +172 -0
- package/dist/cjs/common/field-token.js +43 -0
- package/dist/cjs/common/file-uploader/file-drop.js +180 -0
- package/dist/cjs/common/file-uploader/file-upload-progress.js +84 -0
- package/dist/cjs/common/file-uploader/file-upload.js +241 -0
- package/dist/cjs/common/file-uploader/upload-button.js +58 -0
- package/dist/cjs/common/flex-container.js +15 -0
- package/dist/cjs/common/histogram-plot.js +282 -0
- package/dist/cjs/common/icon-button.js +25 -0
- package/dist/cjs/common/icons/3d-models/airplane.js +103 -0
- package/dist/cjs/common/icons/3d-models/bicycle.js +425 -0
- package/dist/cjs/common/icons/3d-models/boeing.js +118 -0
- package/dist/cjs/common/icons/3d-models/car.js +109 -0
- package/dist/cjs/common/icons/3d-models/cargoship.js +245 -0
- package/dist/cjs/common/icons/3d-models/evtol.js +133 -0
- package/dist/cjs/common/icons/3d-models/glider.js +61 -0
- package/dist/cjs/common/icons/3d-models/helicopter.js +109 -0
- package/dist/cjs/common/icons/3d-models/scooter.js +158 -0
- package/dist/cjs/common/icons/3d-models/semitruck.js +176 -0
- package/dist/cjs/common/icons/3d-models/truck.js +121 -0
- package/dist/cjs/common/icons/add.js +40 -0
- package/dist/cjs/common/icons/anchor_window.js +41 -0
- package/dist/cjs/common/icons/annotation-text.js +55 -0
- package/dist/cjs/common/icons/arrow-down-alt.js +40 -0
- package/dist/cjs/common/icons/arrow-down-full.js +49 -0
- package/dist/cjs/common/icons/arrow-down-small.js +53 -0
- package/dist/cjs/common/icons/arrow-down-solid.js +40 -0
- package/dist/cjs/common/icons/arrow-down.js +50 -0
- package/dist/cjs/common/icons/arrow-left.js +43 -0
- package/dist/cjs/common/icons/arrow-right.js +40 -0
- package/dist/cjs/common/icons/arrow-up-alt.js +41 -0
- package/dist/cjs/common/icons/arrow-up-solid.js +40 -0
- package/dist/cjs/common/icons/arrow-up.js +40 -0
- package/dist/cjs/common/icons/base-map.js +56 -0
- package/dist/cjs/common/icons/base.js +78 -0
- package/dist/cjs/common/icons/bug.js +70 -0
- package/dist/cjs/common/icons/calendar.js +48 -0
- package/dist/cjs/common/icons/cancel.js +40 -0
- package/dist/cjs/common/icons/checkmark.js +46 -0
- package/dist/cjs/common/icons/clipboard.js +41 -0
- package/dist/cjs/common/icons/clock.js +42 -0
- package/dist/cjs/common/icons/close.js +46 -0
- package/dist/cjs/common/icons/cloud.js +50 -0
- package/dist/cjs/common/icons/code-alt.js +43 -0
- package/dist/cjs/common/icons/copy.js +51 -0
- package/dist/cjs/common/icons/crosshairs.js +43 -0
- package/dist/cjs/common/icons/cube-3d.js +54 -0
- package/dist/cjs/common/icons/cursor-click.js +44 -0
- package/dist/cjs/common/icons/cursor-point.js +50 -0
- package/dist/cjs/common/icons/data-table.js +76 -0
- package/dist/cjs/common/icons/db.js +58 -0
- package/dist/cjs/common/icons/delete.js +52 -0
- package/dist/cjs/common/icons/docs.js +56 -0
- package/dist/cjs/common/icons/docs2.js +50 -0
- package/dist/cjs/common/icons/drag-n-drop.js +42 -0
- package/dist/cjs/common/icons/draggable-dots.js +84 -0
- package/dist/cjs/common/icons/draw-polygon.js +60 -0
- package/dist/cjs/common/icons/edit.js +48 -0
- package/dist/cjs/common/icons/effects/brightness-contrast.js +69 -0
- package/dist/cjs/common/icons/effects/color-halftone.js +108 -0
- package/dist/cjs/common/icons/effects/distance-fog.js +78 -0
- package/dist/cjs/common/icons/effects/dot-screen.js +103 -0
- package/dist/cjs/common/icons/effects/edge-work.js +62 -0
- package/dist/cjs/common/icons/effects/hexagonal-pixelate.js +129 -0
- package/dist/cjs/common/icons/effects/hue-saturation.js +60 -0
- package/dist/cjs/common/icons/effects/ink.js +59 -0
- package/dist/cjs/common/icons/effects/light-and-shadow.js +48 -0
- package/dist/cjs/common/icons/effects/magic-wand.js +60 -0
- package/dist/cjs/common/icons/effects/magnify.js +67 -0
- package/dist/cjs/common/icons/effects/noise.js +113 -0
- package/dist/cjs/common/icons/effects/sepia.js +60 -0
- package/dist/cjs/common/icons/effects/surface-fog.js +85 -0
- package/dist/cjs/common/icons/effects/tilt-shift.js +69 -0
- package/dist/cjs/common/icons/effects/triangle-blur.js +64 -0
- package/dist/cjs/common/icons/effects/vibrance.js +60 -0
- package/dist/cjs/common/icons/effects/vignette.js +53 -0
- package/dist/cjs/common/icons/effects/zoom-blur.js +88 -0
- package/dist/cjs/common/icons/email.js +44 -0
- package/dist/cjs/common/icons/expand.js +42 -0
- package/dist/cjs/common/icons/eye-seen.js +49 -0
- package/dist/cjs/common/icons/eye-unseen.js +47 -0
- package/dist/cjs/common/icons/file-type.js +35 -0
- package/dist/cjs/common/icons/file.js +40 -0
- package/dist/cjs/common/icons/files.js +41 -0
- package/dist/cjs/common/icons/filter-funnel.js +50 -0
- package/dist/cjs/common/icons/folder.js +50 -0
- package/dist/cjs/common/icons/free-window.js +44 -0
- package/dist/cjs/common/icons/gear.js +42 -0
- package/dist/cjs/common/icons/globe.js +53 -0
- package/dist/cjs/common/icons/hash.js +40 -0
- package/dist/cjs/common/icons/help.js +50 -0
- package/dist/cjs/common/icons/histogram.js +41 -0
- package/dist/cjs/common/icons/horizontal-resize-handle.js +58 -0
- package/dist/cjs/common/icons/index.js +824 -0
- package/dist/cjs/common/icons/info.js +53 -0
- package/dist/cjs/common/icons/layers.js +54 -0
- package/dist/cjs/common/icons/left-arrow.js +43 -0
- package/dist/cjs/common/icons/legend.js +68 -0
- package/dist/cjs/common/icons/line-chart.js +40 -0
- package/dist/cjs/common/icons/location-marker.js +58 -0
- package/dist/cjs/common/icons/login.js +43 -0
- package/dist/cjs/common/icons/logout.js +42 -0
- package/dist/cjs/common/icons/map-icon.js +47 -0
- package/dist/cjs/common/icons/map-pin.js +56 -0
- package/dist/cjs/common/icons/messages.js +54 -0
- package/dist/cjs/common/icons/minus.js +40 -0
- package/dist/cjs/common/icons/moon.js +58 -0
- package/dist/cjs/common/icons/order-by-dataset.js +46 -0
- package/dist/cjs/common/icons/order-by-list.js +38 -0
- package/dist/cjs/common/icons/pause.js +60 -0
- package/dist/cjs/common/icons/picture.js +59 -0
- package/dist/cjs/common/icons/pin.js +52 -0
- package/dist/cjs/common/icons/play.js +50 -0
- package/dist/cjs/common/icons/pointer-click.js +58 -0
- package/dist/cjs/common/icons/polygon.js +62 -0
- package/dist/cjs/common/icons/rectangle.js +63 -0
- package/dist/cjs/common/icons/reduce.js +43 -0
- package/dist/cjs/common/icons/reset.js +56 -0
- package/dist/cjs/common/icons/save.js +57 -0
- package/dist/cjs/common/icons/save2.js +54 -0
- package/dist/cjs/common/icons/search.js +42 -0
- package/dist/cjs/common/icons/settings.js +60 -0
- package/dist/cjs/common/icons/share.js +70 -0
- package/dist/cjs/common/icons/speed.js +52 -0
- package/dist/cjs/common/icons/split.js +68 -0
- package/dist/cjs/common/icons/square-select.js +42 -0
- package/dist/cjs/common/icons/sun.js +74 -0
- package/dist/cjs/common/icons/sunrise.js +70 -0
- package/dist/cjs/common/icons/sunset.js +70 -0
- package/dist/cjs/common/icons/timeline-marker.js +55 -0
- package/dist/cjs/common/icons/trash.js +54 -0
- package/dist/cjs/common/icons/vert-dots.js +78 -0
- package/dist/cjs/common/icons/vert-three-dots.js +53 -0
- package/dist/cjs/common/icons/warning-sign.js +60 -0
- package/dist/cjs/common/icons/warning.js +54 -0
- package/dist/cjs/common/icons/zoom-in.js +47 -0
- package/dist/cjs/common/icons/zoom-out.js +47 -0
- package/dist/cjs/common/image-preview.js +64 -0
- package/dist/cjs/common/index.js +282 -0
- package/dist/cjs/common/info-helper.js +61 -0
- package/dist/cjs/common/item-selector/accessor.js +37 -0
- package/dist/cjs/common/item-selector/chickleted-input.js +157 -0
- package/dist/cjs/common/item-selector/dropdown-list.js +257 -0
- package/dist/cjs/common/item-selector/dropdown-select.js +84 -0
- package/dist/cjs/common/item-selector/item-selector.js +254 -0
- package/dist/cjs/common/item-selector/typeahead.js +435 -0
- package/dist/cjs/common/layout-splitter.js +230 -0
- package/dist/cjs/common/line-chart.js +286 -0
- package/dist/cjs/common/link-renderer.js +20 -0
- package/dist/cjs/common/loading-spinner.js +50 -0
- package/dist/cjs/common/logo.js +68 -0
- package/dist/cjs/common/map-layer-selector.js +38 -0
- package/dist/cjs/common/modal.js +170 -0
- package/dist/cjs/common/portaled.js +287 -0
- package/dist/cjs/common/progress-bar.js +47 -0
- package/dist/cjs/common/radius-legend.js +131 -0
- package/dist/cjs/common/range-brush.js +265 -0
- package/dist/cjs/common/range-plot.js +217 -0
- package/dist/cjs/common/range-slider-timeline-panel.js +42 -0
- package/dist/cjs/common/range-slider-timeline.js +112 -0
- package/dist/cjs/common/range-slider.js +371 -0
- package/dist/cjs/common/slider/mouse-event.js +104 -0
- package/dist/cjs/common/slider/slider-bar-handle.js +90 -0
- package/dist/cjs/common/slider/slider-handle.js +136 -0
- package/dist/cjs/common/slider/slider.js +251 -0
- package/dist/cjs/common/styled-components.js +447 -0
- package/dist/cjs/common/switch.js +21 -0
- package/dist/cjs/common/sync-timeline-control.js +61 -0
- package/dist/cjs/common/time-range-slider-time-title.js +62 -0
- package/dist/cjs/common/time-range-slider.js +143 -0
- package/dist/cjs/common/time-slider-marker.js +115 -0
- package/dist/cjs/common/timeline-helpers.js +57 -0
- package/dist/cjs/common/timeline-slider.js +140 -0
- package/dist/cjs/common/tippy-tooltip.js +134 -0
- package/dist/cjs/common/toolbar-item.js +60 -0
- package/dist/cjs/common/toolbar.js +27 -0
- package/dist/cjs/common/vertical-toolbar.js +16 -0
- package/dist/cjs/connect/keplergl-connect.js +44 -0
- package/dist/cjs/connect/with-local-selector.js +85 -0
- package/dist/cjs/container.js +180 -0
- package/dist/cjs/context.js +43 -0
- package/dist/cjs/dnd-context.js +174 -0
- package/dist/cjs/editor/editor.js +200 -0
- package/dist/cjs/editor/feature-action-panel.js +147 -0
- package/dist/cjs/effects/compact-color-picker.js +110 -0
- package/dist/cjs/effects/effect-configurator.js +473 -0
- package/dist/cjs/effects/effect-list.js +129 -0
- package/dist/cjs/effects/effect-manager.js +126 -0
- package/dist/cjs/effects/effect-panel-header.js +196 -0
- package/dist/cjs/effects/effect-panel.js +86 -0
- package/dist/cjs/effects/effect-time-configurator.js +313 -0
- package/dist/cjs/effects/effect-time-selector.js +152 -0
- package/dist/cjs/effects/effect-time-slider.js +198 -0
- package/dist/cjs/effects/effect-type-dropdown-list.js +65 -0
- package/dist/cjs/effects/effect-type-list-item.js +98 -0
- package/dist/cjs/effects/effect-type-selector.js +76 -0
- package/dist/cjs/effects/side-panel-title.js +37 -0
- package/dist/cjs/effects/surface-fog-section.js +262 -0
- package/dist/cjs/effects/timezone-selector.js +57 -0
- package/dist/cjs/filter-animation-controller.js +76 -0
- package/dist/cjs/filters/components.js +14 -0
- package/dist/cjs/filters/filter-panels/filter-panel-with-field-select.js +77 -0
- package/dist/cjs/filters/filter-panels/filter-synced-dataset-panel.js +260 -0
- package/dist/cjs/filters/filter-panels/multi-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/new-filter-panel.js +66 -0
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +67 -0
- package/dist/cjs/filters/filter-panels/range-filter-panel.js +53 -0
- package/dist/cjs/filters/filter-panels/single-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/time-range-filter-panel.js +129 -0
- package/dist/cjs/filters/filter-panels/time-synced-field-selector.js +28 -0
- package/dist/cjs/filters/filter-panels/types.js +6 -0
- package/dist/cjs/filters/index.js +63 -0
- package/dist/cjs/filters/multi-select-filter.js +31 -0
- package/dist/cjs/filters/polygon-filter.js +76 -0
- package/dist/cjs/filters/range-filter.js +35 -0
- package/dist/cjs/filters/single-select-filter.js +40 -0
- package/dist/cjs/filters/time-range-filter.js +69 -0
- package/dist/cjs/filters/time-widget-settings.js +311 -0
- package/dist/cjs/filters/time-widget-top.js +80 -0
- package/dist/cjs/filters/time-widget.js +376 -0
- package/dist/cjs/filters/types.js +6 -0
- package/dist/cjs/geocoder/geocoder.js +327 -0
- package/dist/cjs/geocoder-panel.js +172 -0
- package/dist/cjs/hooks/use-cloud-list-provider.js +46 -0
- package/dist/cjs/hooks/use-dnd-effects.js +69 -0
- package/dist/cjs/hooks/use-dnd-layers.js +141 -0
- package/dist/cjs/hooks/use-feature-flags.js +17 -0
- package/dist/cjs/hooks/use-fetch-raster-tile-metadata.js +120 -0
- package/dist/cjs/hooks/use-fetch-vector-tile-metadata.js +133 -0
- package/dist/cjs/hooks/use-legend-position.js +176 -0
- package/dist/cjs/hooks/use-on-click-outside.js +36 -0
- package/dist/cjs/index.js +2897 -0
- package/dist/cjs/injector.js +151 -0
- package/dist/cjs/kepler-gl.js +664 -0
- package/dist/cjs/layer-animation-controller.js +53 -0
- package/dist/cjs/loading-indicator.js +76 -0
- package/dist/cjs/map/annotations/annotation-control.js +55 -0
- package/dist/cjs/map/attribution.js +391 -0
- package/dist/cjs/map/coordinate-info.js +42 -0
- package/dist/cjs/map/effects/effect-control.js +51 -0
- package/dist/cjs/map/layer-hover-info.js +318 -0
- package/dist/cjs/map/lazy-tippy.js +60 -0
- package/dist/cjs/map/locale-panel.js +76 -0
- package/dist/cjs/map/map-control-panel.js +140 -0
- package/dist/cjs/map/map-control-toolbar.js +18 -0
- package/dist/cjs/map/map-control-tooltip.js +34 -0
- package/dist/cjs/map/map-control.js +81 -0
- package/dist/cjs/map/map-draw-panel.js +100 -0
- package/dist/cjs/map/map-legend-panel.js +289 -0
- package/dist/cjs/map/map-legend.js +509 -0
- package/dist/cjs/map/map-navigation-control.js +159 -0
- package/dist/cjs/map/map-popover-content.js +28 -0
- package/dist/cjs/map/map-popover.js +189 -0
- package/dist/cjs/map/map-scale.js +162 -0
- package/dist/cjs/map/split-map-button.js +176 -0
- package/dist/cjs/map/toggle-3d-button.js +122 -0
- package/dist/cjs/map-container.js +1322 -0
- package/dist/cjs/map-view-state-context.js +98 -0
- package/dist/cjs/maps-layout.js +102 -0
- package/dist/cjs/modal-container.js +456 -0
- package/dist/cjs/modals/add-map-style-modal.js +262 -0
- package/dist/cjs/modals/cloud-components/cloud-header.js +59 -0
- package/dist/cjs/modals/cloud-components/cloud-item.js +59 -0
- package/dist/cjs/modals/cloud-components/cloud-item.spec.js +92 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.js +47 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.spec.js +98 -0
- package/dist/cjs/modals/cloud-components/provider-loading.js +20 -0
- package/dist/cjs/modals/cloud-components/provider-select.js +30 -0
- package/dist/cjs/modals/cloud-tile.js +202 -0
- package/dist/cjs/modals/data-table-modal.js +215 -0
- package/dist/cjs/modals/delete-data-modal.js +41 -0
- package/dist/cjs/modals/error-display.js +32 -0
- package/dist/cjs/modals/export-data-modal.js +163 -0
- package/dist/cjs/modals/export-image-modal.js +188 -0
- package/dist/cjs/modals/export-map-modal/components.js +34 -0
- package/dist/cjs/modals/export-map-modal/export-html-map.js +128 -0
- package/dist/cjs/modals/export-map-modal/export-json-map.js +81 -0
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +84 -0
- package/dist/cjs/modals/export-video-modal.js +413 -0
- package/dist/cjs/modals/export-video-modal.spec.js +686 -0
- package/dist/cjs/modals/fog-height-animation.js +97 -0
- package/dist/cjs/modals/globe-export-video-container.js +626 -0
- package/dist/cjs/modals/globe-export-video-preview.js +148 -0
- package/dist/cjs/modals/hubble-utils.js +447 -0
- package/dist/cjs/modals/hubble-utils.spec.js +397 -0
- package/dist/cjs/modals/image-modal-container.js +57 -0
- package/dist/cjs/modals/load-data-modal.js +97 -0
- package/dist/cjs/modals/load-storage-map.js +79 -0
- package/dist/cjs/modals/load-storage-map.spec.js +216 -0
- package/dist/cjs/modals/loading-dialog.js +37 -0
- package/dist/cjs/modals/modal-dialog.js +16 -0
- package/dist/cjs/modals/modal-tabs.js +74 -0
- package/dist/cjs/modals/overwrite-map-modal.js +83 -0
- package/dist/cjs/modals/save-map-modal.js +179 -0
- package/dist/cjs/modals/save-map-modal.spec.js +195 -0
- package/dist/cjs/modals/share-map-modal.js +168 -0
- package/dist/cjs/modals/share-map-modal.spec.js +173 -0
- package/dist/cjs/modals/status-panel.js +65 -0
- package/dist/cjs/modals/storage-map-viewer.js +98 -0
- package/dist/cjs/modals/swipe-composite-utils.js +118 -0
- package/dist/cjs/modals/swipe-export-settings.js +372 -0
- package/dist/cjs/modals/swipe-export-video-container.js +653 -0
- package/dist/cjs/modals/swipe-export-video-preview.js +391 -0
- package/dist/cjs/modals/tilesets-modals/common.js +6 -0
- package/dist/cjs/modals/tilesets-modals/load-data-footer.js +55 -0
- package/dist/cjs/modals/tilesets-modals/load-tileset.js +168 -0
- package/dist/cjs/modals/tilesets-modals/tileset-bitmap-form.js +283 -0
- package/dist/cjs/modals/tilesets-modals/tileset-icon.js +39 -0
- package/dist/cjs/modals/tilesets-modals/tileset-raster-form.js +287 -0
- package/dist/cjs/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
- package/dist/cjs/modals/tilesets-modals/tileset-vector-form.js +261 -0
- package/dist/cjs/modals/tilesets-modals/tileset-wms-form.js +206 -0
- package/dist/cjs/notification-panel/notification-item.js +119 -0
- package/dist/cjs/notification-panel.js +39 -0
- package/dist/cjs/plot-container.js +311 -0
- package/dist/cjs/side-panel/add-by-dataset-button.js +128 -0
- package/dist/cjs/side-panel/cloud-storage-dropdown.js +40 -0
- package/dist/cjs/side-panel/common/dataset-info.js +34 -0
- package/dist/cjs/side-panel/common/dataset-tag.js +62 -0
- package/dist/cjs/side-panel/common/dataset-title.js +143 -0
- package/dist/cjs/side-panel/common/source-data-catalog.js +49 -0
- package/dist/cjs/side-panel/common/source-data-selector-content.js +64 -0
- package/dist/cjs/side-panel/common/source-data-selector.js +41 -0
- package/dist/cjs/side-panel/common/source-selector.js +56 -0
- package/dist/cjs/side-panel/common/types.js +6 -0
- package/dist/cjs/side-panel/custom-panel.js +39 -0
- package/dist/cjs/side-panel/filter-manager.js +202 -0
- package/dist/cjs/side-panel/filter-panel/add-filter-button.js +27 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel-header.js +67 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +92 -0
- package/dist/cjs/side-panel/interaction-manager.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/brush-config.js +41 -0
- package/dist/cjs/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/interaction-panel.js +121 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +164 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config.js +149 -0
- package/dist/cjs/side-panel/layer-manager.js +224 -0
- package/dist/cjs/side-panel/layer-panel/add-layer-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/aggr-scale-selector.js +37 -0
- package/dist/cjs/side-panel/layer-panel/channel-by-value-selector.js +71 -0
- package/dist/cjs/side-panel/layer-panel/color-breaks-panel.js +193 -0
- package/dist/cjs/side-panel/layer-panel/color-palette-preset.js +45 -0
- package/dist/cjs/side-panel/layer-panel/color-palette.js +74 -0
- package/dist/cjs/side-panel/layer-panel/color-range-selector.js +242 -0
- package/dist/cjs/side-panel/layer-panel/color-scale-selector.js +295 -0
- package/dist/cjs/side-panel/layer-panel/color-selector.js +186 -0
- package/dist/cjs/side-panel/layer-panel/column-selector.js +59 -0
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +787 -0
- package/dist/cjs/side-panel/layer-panel/custom-picker.js +83 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-group.js +68 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +101 -0
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +74 -0
- package/dist/cjs/side-panel/layer-panel/dimension-scale-selector.js +91 -0
- package/dist/cjs/side-panel/layer-panel/how-to-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/layer-color-selector.js +105 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-config.js +85 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-mode-config.js +192 -0
- package/dist/cjs/side-panel/layer-panel/layer-config-group.js +143 -0
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +1073 -0
- package/dist/cjs/side-panel/layer-panel/layer-error-message.js +29 -0
- package/dist/cjs/side-panel/layer-panel/layer-group-header.js +178 -0
- package/dist/cjs/side-panel/layer-panel/layer-list.js +330 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel-header.js +311 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel.js +171 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-dropdown-list.js +77 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-list-item.js +71 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-selector.js +57 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-colormap-list-item.js +60 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-layer-configurator.js +457 -0
- package/dist/cjs/side-panel/layer-panel/scenegraph-model-selector.js +122 -0
- package/dist/cjs/side-panel/layer-panel/single-color-palette.js +85 -0
- package/dist/cjs/side-panel/layer-panel/text-label-panel.js +173 -0
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +93 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-slider.js +167 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-switch.js +55 -0
- package/dist/cjs/side-panel/map-manager.js +108 -0
- package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +269 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-color-picker.js +76 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-item.js +94 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-selector.js +74 -0
- package/dist/cjs/side-panel/map-style-panel/map-style-selector.js +97 -0
- package/dist/cjs/side-panel/panel-header-action.js +73 -0
- package/dist/cjs/side-panel/panel-header.js +309 -0
- package/dist/cjs/side-panel/panel-tab.js +55 -0
- package/dist/cjs/side-panel/panel-title.js +40 -0
- package/dist/cjs/side-panel/panel-toggle.js +47 -0
- package/dist/cjs/side-panel/panel-view-list-toggle.js +97 -0
- package/dist/cjs/side-panel/side-bar.js +126 -0
- package/dist/cjs/side-panel.js +235 -0
- package/dist/cjs/types.js +6 -0
- package/dist/esm/annotations/annotation-node.js +138 -0
- package/dist/esm/annotations/annotation-overlay.js +161 -0
- package/dist/esm/annotations/annotation-panel.js +355 -0
- package/dist/esm/annotations/annotation-text.js +142 -0
- package/dist/esm/annotations/annotation-utils.js +185 -0
- package/dist/esm/annotations/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/clickable-link-plugin.js +64 -0
- package/dist/esm/annotations/lexical-editor/floating-link-editor.js +186 -0
- package/dist/esm/annotations/lexical-editor/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/lexical-constants.js +16 -0
- package/dist/esm/annotations/lexical-editor/lexical-nodes.js +7 -0
- package/dist/esm/annotations/lexical-editor/lexical-rich-text-editor.js +114 -0
- package/dist/esm/annotations/lexical-editor/lexical-theme.js +19 -0
- package/dist/esm/annotations/lexical-editor/lexical-toolbar.js +285 -0
- package/dist/esm/annotations/lexical-editor/lexical-utils.js +37 -0
- package/dist/esm/annotations/lexical-editor/use-lexical-toolbar.js +248 -0
- package/dist/esm/bottom-widget.js +176 -0
- package/dist/esm/common/action-panel.js +126 -0
- package/dist/esm/common/animation-control/animation-control.js +95 -0
- package/dist/esm/common/animation-control/animation-controller.js +266 -0
- package/dist/esm/common/animation-control/animation-speed-slider.js +56 -0
- package/dist/esm/common/animation-control/animation-window-control.js +50 -0
- package/dist/esm/common/animation-control/export-video-control.js +36 -0
- package/dist/esm/common/animation-control/floating-time-display.js +124 -0
- package/dist/esm/common/animation-control/play-control.js +43 -0
- package/dist/esm/common/animation-control/playback-controls.js +157 -0
- package/dist/esm/common/animation-control/reset-control.js +34 -0
- package/dist/esm/common/animation-control/speed-control.js +46 -0
- package/dist/esm/common/animation-control/window-action-control.js +48 -0
- package/dist/esm/common/checkbox.js +94 -0
- package/dist/esm/common/color-legend.js +261 -0
- package/dist/esm/common/column-stats-chart.js +305 -0
- package/dist/esm/common/data-table/button.js +33 -0
- package/dist/esm/common/data-table/canvas.js +22 -0
- package/dist/esm/common/data-table/cell-size.js +177 -0
- package/dist/esm/common/data-table/display-format.js +118 -0
- package/dist/esm/common/data-table/grid.js +100 -0
- package/dist/esm/common/data-table/header-cell.js +141 -0
- package/dist/esm/common/data-table/index.js +463 -0
- package/dist/esm/common/data-table/option-dropdown.js +152 -0
- package/dist/esm/common/dataset-label.js +22 -0
- package/dist/esm/common/dnd-layer-items.js +16 -0
- package/dist/esm/common/error-boundary.js +55 -0
- package/dist/esm/common/field-selector.js +164 -0
- package/dist/esm/common/field-token.js +38 -0
- package/dist/esm/common/file-uploader/file-drop.js +170 -0
- package/dist/esm/common/file-uploader/file-upload-progress.js +77 -0
- package/dist/esm/common/file-uploader/file-upload.js +234 -0
- package/dist/esm/common/file-uploader/upload-button.js +51 -0
- package/dist/esm/common/flex-container.js +10 -0
- package/dist/esm/common/histogram-plot.js +275 -0
- package/dist/esm/common/icon-button.js +20 -0
- package/dist/esm/common/icons/3d-models/airplane.js +97 -0
- package/dist/esm/common/icons/3d-models/bicycle.js +419 -0
- package/dist/esm/common/icons/3d-models/boeing.js +112 -0
- package/dist/esm/common/icons/3d-models/car.js +103 -0
- package/dist/esm/common/icons/3d-models/cargoship.js +239 -0
- package/dist/esm/common/icons/3d-models/evtol.js +127 -0
- package/dist/esm/common/icons/3d-models/glider.js +55 -0
- package/dist/esm/common/icons/3d-models/helicopter.js +103 -0
- package/dist/esm/common/icons/3d-models/scooter.js +152 -0
- package/dist/esm/common/icons/3d-models/semitruck.js +170 -0
- package/dist/esm/common/icons/3d-models/truck.js +115 -0
- package/dist/esm/common/icons/add.js +34 -0
- package/dist/esm/common/icons/anchor_window.js +36 -0
- package/dist/esm/common/icons/annotation-text.js +49 -0
- package/dist/esm/common/icons/arrow-down-alt.js +34 -0
- package/dist/esm/common/icons/arrow-down-full.js +43 -0
- package/dist/esm/common/icons/arrow-down-small.js +47 -0
- package/dist/esm/common/icons/arrow-down-solid.js +34 -0
- package/dist/esm/common/icons/arrow-down.js +44 -0
- package/dist/esm/common/icons/arrow-left.js +37 -0
- package/dist/esm/common/icons/arrow-right.js +34 -0
- package/dist/esm/common/icons/arrow-up-alt.js +35 -0
- package/dist/esm/common/icons/arrow-up-solid.js +34 -0
- package/dist/esm/common/icons/arrow-up.js +34 -0
- package/dist/esm/common/icons/base-map.js +49 -0
- package/dist/esm/common/icons/base.js +72 -0
- package/dist/esm/common/icons/bug.js +64 -0
- package/dist/esm/common/icons/calendar.js +42 -0
- package/dist/esm/common/icons/cancel.js +34 -0
- package/dist/esm/common/icons/checkmark.js +40 -0
- package/dist/esm/common/icons/clipboard.js +35 -0
- package/dist/esm/common/icons/clock.js +36 -0
- package/dist/esm/common/icons/close.js +40 -0
- package/dist/esm/common/icons/cloud.js +44 -0
- package/dist/esm/common/icons/code-alt.js +37 -0
- package/dist/esm/common/icons/copy.js +45 -0
- package/dist/esm/common/icons/crosshairs.js +37 -0
- package/dist/esm/common/icons/cube-3d.js +48 -0
- package/dist/esm/common/icons/cursor-click.js +38 -0
- package/dist/esm/common/icons/cursor-point.js +44 -0
- package/dist/esm/common/icons/data-table.js +70 -0
- package/dist/esm/common/icons/db.js +52 -0
- package/dist/esm/common/icons/delete.js +46 -0
- package/dist/esm/common/icons/docs.js +50 -0
- package/dist/esm/common/icons/docs2.js +44 -0
- package/dist/esm/common/icons/drag-n-drop.js +36 -0
- package/dist/esm/common/icons/draggable-dots.js +78 -0
- package/dist/esm/common/icons/draw-polygon.js +54 -0
- package/dist/esm/common/icons/edit.js +42 -0
- package/dist/esm/common/icons/effects/brightness-contrast.js +63 -0
- package/dist/esm/common/icons/effects/color-halftone.js +102 -0
- package/dist/esm/common/icons/effects/distance-fog.js +72 -0
- package/dist/esm/common/icons/effects/dot-screen.js +97 -0
- package/dist/esm/common/icons/effects/edge-work.js +56 -0
- package/dist/esm/common/icons/effects/hexagonal-pixelate.js +123 -0
- package/dist/esm/common/icons/effects/hue-saturation.js +54 -0
- package/dist/esm/common/icons/effects/ink.js +53 -0
- package/dist/esm/common/icons/effects/light-and-shadow.js +42 -0
- package/dist/esm/common/icons/effects/magic-wand.js +54 -0
- package/dist/esm/common/icons/effects/magnify.js +61 -0
- package/dist/esm/common/icons/effects/noise.js +107 -0
- package/dist/esm/common/icons/effects/sepia.js +54 -0
- package/dist/esm/common/icons/effects/surface-fog.js +79 -0
- package/dist/esm/common/icons/effects/tilt-shift.js +63 -0
- package/dist/esm/common/icons/effects/triangle-blur.js +58 -0
- package/dist/esm/common/icons/effects/vibrance.js +54 -0
- package/dist/esm/common/icons/effects/vignette.js +47 -0
- package/dist/esm/common/icons/effects/zoom-blur.js +82 -0
- package/dist/esm/common/icons/email.js +38 -0
- package/dist/esm/common/icons/expand.js +36 -0
- package/dist/esm/common/icons/eye-seen.js +43 -0
- package/dist/esm/common/icons/eye-unseen.js +41 -0
- package/dist/esm/common/icons/file-type.js +30 -0
- package/dist/esm/common/icons/file.js +34 -0
- package/dist/esm/common/icons/files.js +37 -0
- package/dist/esm/common/icons/filter-funnel.js +44 -0
- package/dist/esm/common/icons/folder.js +44 -0
- package/dist/esm/common/icons/free-window.js +39 -0
- package/dist/esm/common/icons/gear.js +36 -0
- package/dist/esm/common/icons/globe.js +47 -0
- package/dist/esm/common/icons/hash.js +34 -0
- package/dist/esm/common/icons/help.js +44 -0
- package/dist/esm/common/icons/histogram.js +37 -0
- package/dist/esm/common/icons/horizontal-resize-handle.js +52 -0
- package/dist/esm/common/icons/index.js +124 -0
- package/dist/esm/common/icons/info.js +47 -0
- package/dist/esm/common/icons/layers.js +48 -0
- package/dist/esm/common/icons/left-arrow.js +37 -0
- package/dist/esm/common/icons/legend.js +62 -0
- package/dist/esm/common/icons/line-chart.js +34 -0
- package/dist/esm/common/icons/location-marker.js +52 -0
- package/dist/esm/common/icons/login.js +37 -0
- package/dist/esm/common/icons/logout.js +36 -0
- package/dist/esm/common/icons/map-icon.js +40 -0
- package/dist/esm/common/icons/map-pin.js +50 -0
- package/dist/esm/common/icons/messages.js +48 -0
- package/dist/esm/common/icons/minus.js +34 -0
- package/dist/esm/common/icons/moon.js +52 -0
- package/dist/esm/common/icons/order-by-dataset.js +41 -0
- package/dist/esm/common/icons/order-by-list.js +33 -0
- package/dist/esm/common/icons/pause.js +54 -0
- package/dist/esm/common/icons/picture.js +55 -0
- package/dist/esm/common/icons/pin.js +46 -0
- package/dist/esm/common/icons/play.js +44 -0
- package/dist/esm/common/icons/pointer-click.js +52 -0
- package/dist/esm/common/icons/polygon.js +56 -0
- package/dist/esm/common/icons/rectangle.js +57 -0
- package/dist/esm/common/icons/reduce.js +37 -0
- package/dist/esm/common/icons/reset.js +50 -0
- package/dist/esm/common/icons/save.js +51 -0
- package/dist/esm/common/icons/save2.js +48 -0
- package/dist/esm/common/icons/search.js +36 -0
- package/dist/esm/common/icons/settings.js +54 -0
- package/dist/esm/common/icons/share.js +64 -0
- package/dist/esm/common/icons/speed.js +46 -0
- package/dist/esm/common/icons/split.js +62 -0
- package/dist/esm/common/icons/square-select.js +36 -0
- package/dist/esm/common/icons/sun.js +68 -0
- package/dist/esm/common/icons/sunrise.js +64 -0
- package/dist/esm/common/icons/sunset.js +64 -0
- package/dist/esm/common/icons/timeline-marker.js +49 -0
- package/dist/esm/common/icons/trash.js +48 -0
- package/dist/esm/common/icons/vert-dots.js +72 -0
- package/dist/esm/common/icons/vert-three-dots.js +47 -0
- package/dist/esm/common/icons/warning-sign.js +54 -0
- package/dist/esm/common/icons/warning.js +48 -0
- package/dist/esm/common/icons/zoom-in.js +41 -0
- package/dist/esm/common/icons/zoom-out.js +41 -0
- package/dist/esm/common/image-preview.js +59 -0
- package/dist/esm/common/index.js +8 -0
- package/dist/esm/common/info-helper.js +56 -0
- package/dist/esm/common/item-selector/accessor.js +31 -0
- package/dist/esm/common/item-selector/chickleted-input.js +150 -0
- package/dist/esm/common/item-selector/dropdown-list.js +251 -0
- package/dist/esm/common/item-selector/dropdown-select.js +79 -0
- package/dist/esm/common/item-selector/item-selector.js +247 -0
- package/dist/esm/common/item-selector/typeahead.js +428 -0
- package/dist/esm/common/layout-splitter.js +224 -0
- package/dist/esm/common/line-chart.js +279 -0
- package/dist/esm/common/link-renderer.js +13 -0
- package/dist/esm/common/loading-spinner.js +43 -0
- package/dist/esm/common/logo.js +63 -0
- package/dist/esm/common/map-layer-selector.js +33 -0
- package/dist/esm/common/modal.js +163 -0
- package/dist/esm/common/portaled.js +280 -0
- package/dist/esm/common/progress-bar.js +43 -0
- package/dist/esm/common/radius-legend.js +124 -0
- package/dist/esm/common/range-brush.js +258 -0
- package/dist/esm/common/range-plot.js +210 -0
- package/dist/esm/common/range-slider-timeline-panel.js +35 -0
- package/dist/esm/common/range-slider-timeline.js +105 -0
- package/dist/esm/common/range-slider.js +364 -0
- package/dist/esm/common/slider/mouse-event.js +98 -0
- package/dist/esm/common/slider/slider-bar-handle.js +84 -0
- package/dist/esm/common/slider/slider-handle.js +130 -0
- package/dist/esm/common/slider/slider.js +245 -0
- package/dist/esm/common/styled-components.js +441 -0
- package/dist/esm/common/switch.js +16 -0
- package/dist/esm/common/sync-timeline-control.js +54 -0
- package/dist/esm/common/time-range-slider-time-title.js +57 -0
- package/dist/esm/common/time-range-slider.js +135 -0
- package/dist/esm/common/time-slider-marker.js +105 -0
- package/dist/esm/common/timeline-helpers.js +48 -0
- package/dist/esm/common/timeline-slider.js +133 -0
- package/dist/esm/common/tippy-tooltip.js +127 -0
- package/dist/esm/common/toolbar-item.js +55 -0
- package/dist/esm/common/toolbar.js +22 -0
- package/dist/esm/common/vertical-toolbar.js +11 -0
- package/dist/esm/connect/keplergl-connect.js +38 -0
- package/dist/esm/connect/with-local-selector.js +78 -0
- package/dist/esm/container.js +171 -0
- package/dist/esm/context.js +35 -0
- package/dist/esm/dnd-context.js +167 -0
- package/dist/esm/editor/editor.js +193 -0
- package/dist/esm/editor/feature-action-panel.js +139 -0
- package/dist/esm/effects/compact-color-picker.js +103 -0
- package/dist/esm/effects/effect-configurator.js +465 -0
- package/dist/esm/effects/effect-list.js +122 -0
- package/dist/esm/effects/effect-manager.js +119 -0
- package/dist/esm/effects/effect-panel-header.js +188 -0
- package/dist/esm/effects/effect-panel.js +79 -0
- package/dist/esm/effects/effect-time-configurator.js +306 -0
- package/dist/esm/effects/effect-time-selector.js +145 -0
- package/dist/esm/effects/effect-time-slider.js +190 -0
- package/dist/esm/effects/effect-type-dropdown-list.js +57 -0
- package/dist/esm/effects/effect-type-list-item.js +89 -0
- package/dist/esm/effects/effect-type-selector.js +69 -0
- package/dist/esm/effects/side-panel-title.js +32 -0
- package/dist/esm/effects/surface-fog-section.js +254 -0
- package/dist/esm/effects/timezone-selector.js +50 -0
- package/dist/esm/filter-animation-controller.js +67 -0
- package/dist/esm/filters/components.js +9 -0
- package/dist/esm/filters/filter-panels/filter-panel-with-field-select.js +68 -0
- package/dist/esm/filters/filter-panels/filter-synced-dataset-panel.js +253 -0
- package/dist/esm/filters/filter-panels/multi-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/new-filter-panel.js +56 -0
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +58 -0
- package/dist/esm/filters/filter-panels/range-filter-panel.js +44 -0
- package/dist/esm/filters/filter-panels/single-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/time-range-filter-panel.js +120 -0
- package/dist/esm/filters/filter-panels/time-synced-field-selector.js +23 -0
- package/dist/esm/filters/filter-panels/types.js +3 -0
- package/dist/esm/filters/index.js +12 -0
- package/dist/esm/filters/multi-select-filter.js +24 -0
- package/dist/esm/filters/polygon-filter.js +67 -0
- package/dist/esm/filters/range-filter.js +28 -0
- package/dist/esm/filters/single-select-filter.js +33 -0
- package/dist/esm/filters/time-range-filter.js +61 -0
- package/dist/esm/filters/time-widget-settings.js +304 -0
- package/dist/esm/filters/time-widget-top.js +73 -0
- package/dist/esm/filters/time-widget.js +369 -0
- package/dist/esm/filters/types.js +3 -0
- package/dist/esm/geocoder/geocoder.js +318 -0
- package/dist/esm/geocoder-panel.js +164 -0
- package/dist/esm/hooks/use-cloud-list-provider.js +37 -0
- package/dist/esm/hooks/use-dnd-effects.js +62 -0
- package/dist/esm/hooks/use-dnd-layers.js +136 -0
- package/dist/esm/hooks/use-feature-flags.js +11 -0
- package/dist/esm/hooks/use-fetch-raster-tile-metadata.js +113 -0
- package/dist/esm/hooks/use-fetch-vector-tile-metadata.js +128 -0
- package/dist/esm/hooks/use-legend-position.js +170 -0
- package/dist/esm/hooks/use-on-click-outside.js +29 -0
- package/dist/esm/index.js +278 -0
- package/dist/esm/injector.js +141 -0
- package/dist/esm/kepler-gl.js +651 -0
- package/dist/esm/layer-animation-controller.js +44 -0
- package/dist/esm/loading-indicator.js +69 -0
- package/dist/esm/map/annotations/annotation-control.js +46 -0
- package/dist/esm/map/attribution.js +382 -0
- package/dist/esm/map/coordinate-info.js +36 -0
- package/dist/esm/map/effects/effect-control.js +42 -0
- package/dist/esm/map/layer-hover-info.js +312 -0
- package/dist/esm/map/lazy-tippy.js +53 -0
- package/dist/esm/map/locale-panel.js +67 -0
- package/dist/esm/map/map-control-panel.js +133 -0
- package/dist/esm/map/map-control-toolbar.js +13 -0
- package/dist/esm/map/map-control-tooltip.js +27 -0
- package/dist/esm/map/map-control.js +77 -0
- package/dist/esm/map/map-draw-panel.js +91 -0
- package/dist/esm/map/map-legend-panel.js +282 -0
- package/dist/esm/map/map-legend.js +496 -0
- package/dist/esm/map/map-navigation-control.js +152 -0
- package/dist/esm/map/map-popover-content.js +21 -0
- package/dist/esm/map/map-popover.js +181 -0
- package/dist/esm/map/map-scale.js +155 -0
- package/dist/esm/map/split-map-button.js +167 -0
- package/dist/esm/map/toggle-3d-button.js +113 -0
- package/dist/esm/map-container.js +1292 -0
- package/dist/esm/map-view-state-context.js +89 -0
- package/dist/esm/maps-layout.js +95 -0
- package/dist/esm/modal-container.js +453 -0
- package/dist/esm/modals/add-map-style-modal.js +256 -0
- package/dist/esm/modals/cloud-components/cloud-header.js +52 -0
- package/dist/esm/modals/cloud-components/cloud-item.js +54 -0
- package/dist/esm/modals/cloud-components/cloud-item.spec.js +91 -0
- package/dist/esm/modals/cloud-components/cloud-maps.js +42 -0
- package/dist/esm/modals/cloud-components/cloud-maps.spec.js +94 -0
- package/dist/esm/modals/cloud-components/provider-loading.js +15 -0
- package/dist/esm/modals/cloud-components/provider-select.js +25 -0
- package/dist/esm/modals/cloud-tile.js +195 -0
- package/dist/esm/modals/data-table-modal.js +208 -0
- package/dist/esm/modals/delete-data-modal.js +36 -0
- package/dist/esm/modals/error-display.js +23 -0
- package/dist/esm/modals/export-data-modal.js +155 -0
- package/dist/esm/modals/export-image-modal.js +181 -0
- package/dist/esm/modals/export-map-modal/components.js +29 -0
- package/dist/esm/modals/export-map-modal/export-html-map.js +123 -0
- package/dist/esm/modals/export-map-modal/export-json-map.js +74 -0
- package/dist/esm/modals/export-map-modal/export-map-modal.js +77 -0
- package/dist/esm/modals/export-video-modal.js +400 -0
- package/dist/esm/modals/export-video-modal.spec.js +685 -0
- package/dist/esm/modals/fog-height-animation.js +90 -0
- package/dist/esm/modals/globe-export-video-container.js +620 -0
- package/dist/esm/modals/globe-export-video-preview.js +141 -0
- package/dist/esm/modals/hubble-utils.js +429 -0
- package/dist/esm/modals/hubble-utils.spec.js +396 -0
- package/dist/esm/modals/image-modal-container.js +48 -0
- package/dist/esm/modals/load-data-modal.js +89 -0
- package/dist/esm/modals/load-storage-map.js +70 -0
- package/dist/esm/modals/load-storage-map.spec.js +212 -0
- package/dist/esm/modals/loading-dialog.js +32 -0
- package/dist/esm/modals/modal-dialog.js +9 -0
- package/dist/esm/modals/modal-tabs.js +67 -0
- package/dist/esm/modals/overwrite-map-modal.js +76 -0
- package/dist/esm/modals/save-map-modal.js +172 -0
- package/dist/esm/modals/save-map-modal.spec.js +196 -0
- package/dist/esm/modals/share-map-modal.js +160 -0
- package/dist/esm/modals/share-map-modal.spec.js +172 -0
- package/dist/esm/modals/status-panel.js +60 -0
- package/dist/esm/modals/storage-map-viewer.js +93 -0
- package/dist/esm/modals/swipe-composite-utils.js +111 -0
- package/dist/esm/modals/swipe-export-settings.js +366 -0
- package/dist/esm/modals/swipe-export-video-container.js +646 -0
- package/dist/esm/modals/swipe-export-video-preview.js +384 -0
- package/dist/esm/modals/tilesets-modals/common.js +3 -0
- package/dist/esm/modals/tilesets-modals/load-data-footer.js +48 -0
- package/dist/esm/modals/tilesets-modals/load-tileset.js +161 -0
- package/dist/esm/modals/tilesets-modals/tileset-bitmap-form.js +275 -0
- package/dist/esm/modals/tilesets-modals/tileset-icon.js +34 -0
- package/dist/esm/modals/tilesets-modals/tileset-raster-form.js +279 -0
- package/dist/esm/modals/tilesets-modals/tileset-tile3d-form.js +380 -0
- package/dist/esm/modals/tilesets-modals/tileset-vector-form.js +253 -0
- package/dist/esm/modals/tilesets-modals/tileset-wms-form.js +199 -0
- package/dist/esm/notification-panel/notification-item.js +112 -0
- package/dist/esm/notification-panel.js +34 -0
- package/dist/esm/plot-container.js +304 -0
- package/dist/esm/side-panel/add-by-dataset-button.js +121 -0
- package/dist/esm/side-panel/cloud-storage-dropdown.js +33 -0
- package/dist/esm/side-panel/common/dataset-info.js +29 -0
- package/dist/esm/side-panel/common/dataset-tag.js +57 -0
- package/dist/esm/side-panel/common/dataset-title.js +136 -0
- package/dist/esm/side-panel/common/source-data-catalog.js +44 -0
- package/dist/esm/side-panel/common/source-data-selector-content.js +55 -0
- package/dist/esm/side-panel/common/source-data-selector.js +34 -0
- package/dist/esm/side-panel/common/source-selector.js +49 -0
- package/dist/esm/side-panel/common/types.js +3 -0
- package/dist/esm/side-panel/custom-panel.js +32 -0
- package/dist/esm/side-panel/filter-manager.js +195 -0
- package/dist/esm/side-panel/filter-panel/add-filter-button.js +20 -0
- package/dist/esm/side-panel/filter-panel/filter-panel-header.js +60 -0
- package/dist/esm/side-panel/filter-panel/filter-panel.js +85 -0
- package/dist/esm/side-panel/interaction-manager.js +38 -0
- package/dist/esm/side-panel/interaction-panel/brush-config.js +36 -0
- package/dist/esm/side-panel/interaction-panel/geocoder-config.js +40 -0
- package/dist/esm/side-panel/interaction-panel/interaction-panel.js +114 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +157 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config.js +142 -0
- package/dist/esm/side-panel/layer-manager.js +217 -0
- package/dist/esm/side-panel/layer-panel/add-layer-button.js +20 -0
- package/dist/esm/side-panel/layer-panel/aggr-scale-selector.js +29 -0
- package/dist/esm/side-panel/layer-panel/channel-by-value-selector.js +61 -0
- package/dist/esm/side-panel/layer-panel/color-breaks-panel.js +186 -0
- package/dist/esm/side-panel/layer-panel/color-palette-preset.js +40 -0
- package/dist/esm/side-panel/layer-panel/color-palette.js +67 -0
- package/dist/esm/side-panel/layer-panel/color-range-selector.js +236 -0
- package/dist/esm/side-panel/layer-panel/color-scale-selector.js +288 -0
- package/dist/esm/side-panel/layer-panel/color-selector.js +179 -0
- package/dist/esm/side-panel/layer-panel/column-selector.js +52 -0
- package/dist/esm/side-panel/layer-panel/custom-palette.js +783 -0
- package/dist/esm/side-panel/layer-panel/custom-picker.js +77 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-group.js +59 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +94 -0
- package/dist/esm/side-panel/layer-panel/dataset-section.js +68 -0
- package/dist/esm/side-panel/layer-panel/dimension-scale-selector.js +82 -0
- package/dist/esm/side-panel/layer-panel/how-to-button.js +22 -0
- package/dist/esm/side-panel/layer-panel/layer-color-selector.js +94 -0
- package/dist/esm/side-panel/layer-panel/layer-column-config.js +76 -0
- package/dist/esm/side-panel/layer-panel/layer-column-mode-config.js +184 -0
- package/dist/esm/side-panel/layer-panel/layer-config-group.js +134 -0
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +1064 -0
- package/dist/esm/side-panel/layer-panel/layer-error-message.js +24 -0
- package/dist/esm/side-panel/layer-panel/layer-group-header.js +171 -0
- package/dist/esm/side-panel/layer-panel/layer-list.js +323 -0
- package/dist/esm/side-panel/layer-panel/layer-panel-header.js +302 -0
- package/dist/esm/side-panel/layer-panel/layer-panel.js +164 -0
- package/dist/esm/side-panel/layer-panel/layer-type-dropdown-list.js +69 -0
- package/dist/esm/side-panel/layer-panel/layer-type-list-item.js +63 -0
- package/dist/esm/side-panel/layer-panel/layer-type-selector.js +50 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-colormap-list-item.js +55 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-layer-configurator.js +450 -0
- package/dist/esm/side-panel/layer-panel/scenegraph-model-selector.js +115 -0
- package/dist/esm/side-panel/layer-panel/single-color-palette.js +78 -0
- package/dist/esm/side-panel/layer-panel/text-label-panel.js +166 -0
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
- package/dist/esm/side-panel/layer-panel/vis-config-by-field-selector.js +53 -0
- package/dist/esm/side-panel/layer-panel/vis-config-slider.js +160 -0
- package/dist/esm/side-panel/layer-panel/vis-config-switch.js +50 -0
- package/dist/esm/side-panel/map-manager.js +99 -0
- package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +262 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-color-picker.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-item.js +87 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-selector.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-style-selector.js +92 -0
- package/dist/esm/side-panel/panel-header-action.js +68 -0
- package/dist/esm/side-panel/panel-header.js +303 -0
- package/dist/esm/side-panel/panel-tab.js +49 -0
- package/dist/esm/side-panel/panel-title.js +35 -0
- package/dist/esm/side-panel/panel-toggle.js +40 -0
- package/dist/esm/side-panel/panel-view-list-toggle.js +90 -0
- package/dist/esm/side-panel/side-bar.js +119 -0
- package/dist/esm/side-panel.js +227 -0
- package/dist/esm/types.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/modals/hubble-utils.d.ts +16 -0
- package/package.json +35 -20
- package/dist/annotations/annotation-node.js +0 -145
- package/dist/annotations/annotation-overlay.js +0 -168
- package/dist/annotations/annotation-panel.js +0 -361
- package/dist/annotations/annotation-text.js +0 -149
- package/dist/annotations/annotation-utils.js +0 -197
- package/dist/annotations/index.js +0 -53
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +0 -71
- package/dist/annotations/lexical-editor/floating-link-editor.js +0 -193
- package/dist/annotations/lexical-editor/index.js +0 -78
- package/dist/annotations/lexical-editor/lexical-constants.js +0 -22
- package/dist/annotations/lexical-editor/lexical-nodes.js +0 -13
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +0 -121
- package/dist/annotations/lexical-editor/lexical-theme.js +0 -25
- package/dist/annotations/lexical-editor/lexical-toolbar.js +0 -292
- package/dist/annotations/lexical-editor/lexical-utils.js +0 -45
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +0 -253
- package/dist/bottom-widget.js +0 -183
- package/dist/common/action-panel.js +0 -133
- package/dist/common/animation-control/animation-control.js +0 -100
- package/dist/common/animation-control/animation-controller.js +0 -271
- package/dist/common/animation-control/animation-speed-slider.js +0 -63
- package/dist/common/animation-control/animation-window-control.js +0 -59
- package/dist/common/animation-control/export-video-control.js +0 -43
- package/dist/common/animation-control/floating-time-display.js +0 -131
- package/dist/common/animation-control/play-control.js +0 -50
- package/dist/common/animation-control/playback-controls.js +0 -164
- package/dist/common/animation-control/reset-control.js +0 -41
- package/dist/common/animation-control/speed-control.js +0 -51
- package/dist/common/animation-control/window-action-control.js +0 -57
- package/dist/common/checkbox.js +0 -101
- package/dist/common/color-legend.js +0 -272
- package/dist/common/column-stats-chart.js +0 -312
- package/dist/common/data-table/button.js +0 -38
- package/dist/common/data-table/canvas.js +0 -26
- package/dist/common/data-table/cell-size.js +0 -183
- package/dist/common/data-table/display-format.js +0 -125
- package/dist/common/data-table/grid.js +0 -106
- package/dist/common/data-table/header-cell.js +0 -148
- package/dist/common/data-table/index.js +0 -470
- package/dist/common/data-table/option-dropdown.js +0 -159
- package/dist/common/dataset-label.js +0 -27
- package/dist/common/dnd-layer-items.js +0 -22
- package/dist/common/error-boundary.js +0 -59
- package/dist/common/field-selector.js +0 -172
- package/dist/common/field-token.js +0 -43
- package/dist/common/file-uploader/file-drop.js +0 -180
- package/dist/common/file-uploader/file-upload-progress.js +0 -84
- package/dist/common/file-uploader/file-upload.js +0 -241
- package/dist/common/file-uploader/upload-button.js +0 -58
- package/dist/common/flex-container.js +0 -15
- package/dist/common/histogram-plot.js +0 -282
- package/dist/common/icon-button.js +0 -25
- package/dist/common/icons/3d-models/airplane.js +0 -103
- package/dist/common/icons/3d-models/bicycle.js +0 -425
- package/dist/common/icons/3d-models/boeing.js +0 -118
- package/dist/common/icons/3d-models/car.js +0 -109
- package/dist/common/icons/3d-models/cargoship.js +0 -245
- package/dist/common/icons/3d-models/evtol.js +0 -133
- package/dist/common/icons/3d-models/glider.js +0 -61
- package/dist/common/icons/3d-models/helicopter.js +0 -109
- package/dist/common/icons/3d-models/scooter.js +0 -158
- package/dist/common/icons/3d-models/semitruck.js +0 -176
- package/dist/common/icons/3d-models/truck.js +0 -121
- package/dist/common/icons/add.js +0 -40
- package/dist/common/icons/anchor_window.js +0 -41
- package/dist/common/icons/annotation-text.js +0 -55
- package/dist/common/icons/arrow-down-alt.js +0 -40
- package/dist/common/icons/arrow-down-full.js +0 -49
- package/dist/common/icons/arrow-down-small.js +0 -53
- package/dist/common/icons/arrow-down-solid.js +0 -40
- package/dist/common/icons/arrow-down.js +0 -50
- package/dist/common/icons/arrow-left.js +0 -43
- package/dist/common/icons/arrow-right.js +0 -40
- package/dist/common/icons/arrow-up-alt.js +0 -41
- package/dist/common/icons/arrow-up-solid.js +0 -40
- package/dist/common/icons/arrow-up.js +0 -40
- package/dist/common/icons/base-map.js +0 -56
- package/dist/common/icons/base.js +0 -78
- package/dist/common/icons/bug.js +0 -70
- package/dist/common/icons/calendar.js +0 -48
- package/dist/common/icons/cancel.js +0 -40
- package/dist/common/icons/checkmark.js +0 -46
- package/dist/common/icons/clipboard.js +0 -41
- package/dist/common/icons/clock.js +0 -42
- package/dist/common/icons/close.js +0 -46
- package/dist/common/icons/cloud.js +0 -50
- package/dist/common/icons/code-alt.js +0 -43
- package/dist/common/icons/copy.js +0 -51
- package/dist/common/icons/crosshairs.js +0 -43
- package/dist/common/icons/cube-3d.js +0 -54
- package/dist/common/icons/cursor-click.js +0 -44
- package/dist/common/icons/cursor-point.js +0 -50
- package/dist/common/icons/data-table.js +0 -76
- package/dist/common/icons/db.js +0 -58
- package/dist/common/icons/delete.js +0 -52
- package/dist/common/icons/docs.js +0 -56
- package/dist/common/icons/docs2.js +0 -50
- package/dist/common/icons/drag-n-drop.js +0 -42
- package/dist/common/icons/draggable-dots.js +0 -84
- package/dist/common/icons/draw-polygon.js +0 -60
- package/dist/common/icons/edit.js +0 -48
- package/dist/common/icons/effects/brightness-contrast.js +0 -69
- package/dist/common/icons/effects/color-halftone.js +0 -108
- package/dist/common/icons/effects/distance-fog.js +0 -78
- package/dist/common/icons/effects/dot-screen.js +0 -103
- package/dist/common/icons/effects/edge-work.js +0 -62
- package/dist/common/icons/effects/hexagonal-pixelate.js +0 -129
- package/dist/common/icons/effects/hue-saturation.js +0 -60
- package/dist/common/icons/effects/ink.js +0 -59
- package/dist/common/icons/effects/light-and-shadow.js +0 -48
- package/dist/common/icons/effects/magic-wand.js +0 -60
- package/dist/common/icons/effects/magnify.js +0 -67
- package/dist/common/icons/effects/noise.js +0 -113
- package/dist/common/icons/effects/sepia.js +0 -60
- package/dist/common/icons/effects/surface-fog.js +0 -85
- package/dist/common/icons/effects/tilt-shift.js +0 -69
- package/dist/common/icons/effects/triangle-blur.js +0 -64
- package/dist/common/icons/effects/vibrance.js +0 -60
- package/dist/common/icons/effects/vignette.js +0 -53
- package/dist/common/icons/effects/zoom-blur.js +0 -88
- package/dist/common/icons/email.js +0 -44
- package/dist/common/icons/expand.js +0 -42
- package/dist/common/icons/eye-seen.js +0 -49
- package/dist/common/icons/eye-unseen.js +0 -47
- package/dist/common/icons/file-type.js +0 -35
- package/dist/common/icons/file.js +0 -40
- package/dist/common/icons/files.js +0 -41
- package/dist/common/icons/filter-funnel.js +0 -50
- package/dist/common/icons/folder.js +0 -50
- package/dist/common/icons/free-window.js +0 -44
- package/dist/common/icons/gear.js +0 -42
- package/dist/common/icons/globe.js +0 -53
- package/dist/common/icons/hash.js +0 -40
- package/dist/common/icons/help.js +0 -50
- package/dist/common/icons/histogram.js +0 -41
- package/dist/common/icons/horizontal-resize-handle.js +0 -58
- package/dist/common/icons/index.js +0 -824
- package/dist/common/icons/info.js +0 -53
- package/dist/common/icons/layers.js +0 -54
- package/dist/common/icons/left-arrow.js +0 -43
- package/dist/common/icons/legend.js +0 -68
- package/dist/common/icons/line-chart.js +0 -40
- package/dist/common/icons/location-marker.js +0 -58
- package/dist/common/icons/login.js +0 -43
- package/dist/common/icons/logout.js +0 -42
- package/dist/common/icons/map-icon.js +0 -47
- package/dist/common/icons/map-pin.js +0 -56
- package/dist/common/icons/messages.js +0 -54
- package/dist/common/icons/minus.js +0 -40
- package/dist/common/icons/moon.js +0 -58
- package/dist/common/icons/order-by-dataset.js +0 -46
- package/dist/common/icons/order-by-list.js +0 -38
- package/dist/common/icons/pause.js +0 -60
- package/dist/common/icons/picture.js +0 -59
- package/dist/common/icons/pin.js +0 -52
- package/dist/common/icons/play.js +0 -50
- package/dist/common/icons/pointer-click.js +0 -58
- package/dist/common/icons/polygon.js +0 -62
- package/dist/common/icons/rectangle.js +0 -63
- package/dist/common/icons/reduce.js +0 -43
- package/dist/common/icons/reset.js +0 -56
- package/dist/common/icons/save.js +0 -57
- package/dist/common/icons/save2.js +0 -54
- package/dist/common/icons/search.js +0 -42
- package/dist/common/icons/settings.js +0 -60
- package/dist/common/icons/share.js +0 -70
- package/dist/common/icons/speed.js +0 -52
- package/dist/common/icons/split.js +0 -68
- package/dist/common/icons/square-select.js +0 -42
- package/dist/common/icons/sun.js +0 -74
- package/dist/common/icons/sunrise.js +0 -70
- package/dist/common/icons/sunset.js +0 -70
- package/dist/common/icons/timeline-marker.js +0 -55
- package/dist/common/icons/trash.js +0 -54
- package/dist/common/icons/vert-dots.js +0 -78
- package/dist/common/icons/vert-three-dots.js +0 -53
- package/dist/common/icons/warning-sign.js +0 -60
- package/dist/common/icons/warning.js +0 -54
- package/dist/common/icons/zoom-in.js +0 -47
- package/dist/common/icons/zoom-out.js +0 -47
- package/dist/common/image-preview.js +0 -64
- package/dist/common/index.js +0 -282
- package/dist/common/info-helper.js +0 -61
- package/dist/common/item-selector/accessor.js +0 -37
- package/dist/common/item-selector/chickleted-input.js +0 -157
- package/dist/common/item-selector/dropdown-list.js +0 -257
- package/dist/common/item-selector/dropdown-select.js +0 -84
- package/dist/common/item-selector/item-selector.js +0 -254
- package/dist/common/item-selector/typeahead.js +0 -435
- package/dist/common/layout-splitter.js +0 -230
- package/dist/common/line-chart.js +0 -286
- package/dist/common/link-renderer.js +0 -20
- package/dist/common/loading-spinner.js +0 -50
- package/dist/common/logo.js +0 -68
- package/dist/common/map-layer-selector.js +0 -38
- package/dist/common/modal.js +0 -170
- package/dist/common/portaled.js +0 -287
- package/dist/common/progress-bar.js +0 -47
- package/dist/common/radius-legend.js +0 -131
- package/dist/common/range-brush.js +0 -265
- package/dist/common/range-plot.js +0 -217
- package/dist/common/range-slider-timeline-panel.js +0 -42
- package/dist/common/range-slider-timeline.js +0 -112
- package/dist/common/range-slider.js +0 -371
- package/dist/common/slider/mouse-event.js +0 -104
- package/dist/common/slider/slider-bar-handle.js +0 -90
- package/dist/common/slider/slider-handle.js +0 -136
- package/dist/common/slider/slider.js +0 -251
- package/dist/common/styled-components.js +0 -447
- package/dist/common/switch.js +0 -21
- package/dist/common/sync-timeline-control.js +0 -61
- package/dist/common/time-range-slider-time-title.js +0 -62
- package/dist/common/time-range-slider.js +0 -143
- package/dist/common/time-slider-marker.js +0 -115
- package/dist/common/timeline-helpers.js +0 -57
- package/dist/common/timeline-slider.js +0 -140
- package/dist/common/tippy-tooltip.js +0 -134
- package/dist/common/toolbar-item.js +0 -60
- package/dist/common/toolbar.js +0 -27
- package/dist/common/vertical-toolbar.js +0 -16
- package/dist/connect/keplergl-connect.js +0 -44
- package/dist/connect/with-local-selector.js +0 -85
- package/dist/container.js +0 -180
- package/dist/context.js +0 -43
- package/dist/dnd-context.js +0 -174
- package/dist/editor/editor.js +0 -200
- package/dist/editor/feature-action-panel.js +0 -147
- package/dist/effects/compact-color-picker.js +0 -110
- package/dist/effects/effect-configurator.js +0 -473
- package/dist/effects/effect-list.js +0 -129
- package/dist/effects/effect-manager.js +0 -126
- package/dist/effects/effect-panel-header.js +0 -196
- package/dist/effects/effect-panel.js +0 -86
- package/dist/effects/effect-time-configurator.js +0 -313
- package/dist/effects/effect-time-selector.js +0 -152
- package/dist/effects/effect-time-slider.js +0 -198
- package/dist/effects/effect-type-dropdown-list.js +0 -65
- package/dist/effects/effect-type-list-item.js +0 -98
- package/dist/effects/effect-type-selector.js +0 -76
- package/dist/effects/side-panel-title.js +0 -37
- package/dist/effects/surface-fog-section.js +0 -262
- package/dist/effects/timezone-selector.js +0 -57
- package/dist/filter-animation-controller.js +0 -76
- package/dist/filters/components.js +0 -14
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +0 -77
- package/dist/filters/filter-panels/filter-synced-dataset-panel.js +0 -260
- package/dist/filters/filter-panels/multi-select-filter-panel.js +0 -48
- package/dist/filters/filter-panels/new-filter-panel.js +0 -66
- package/dist/filters/filter-panels/polygon-filter-panel.js +0 -67
- package/dist/filters/filter-panels/range-filter-panel.js +0 -53
- package/dist/filters/filter-panels/single-select-filter-panel.js +0 -48
- package/dist/filters/filter-panels/time-range-filter-panel.js +0 -129
- package/dist/filters/filter-panels/time-synced-field-selector.js +0 -28
- package/dist/filters/filter-panels/types.js +0 -6
- package/dist/filters/index.js +0 -63
- package/dist/filters/multi-select-filter.js +0 -31
- package/dist/filters/polygon-filter.js +0 -76
- package/dist/filters/range-filter.js +0 -35
- package/dist/filters/single-select-filter.js +0 -40
- package/dist/filters/time-range-filter.js +0 -69
- package/dist/filters/time-widget-settings.js +0 -311
- package/dist/filters/time-widget-top.js +0 -80
- package/dist/filters/time-widget.js +0 -376
- package/dist/filters/types.js +0 -6
- package/dist/geocoder/geocoder.js +0 -327
- package/dist/geocoder-panel.js +0 -172
- package/dist/hooks/use-cloud-list-provider.js +0 -46
- package/dist/hooks/use-dnd-effects.js +0 -69
- package/dist/hooks/use-dnd-layers.js +0 -141
- package/dist/hooks/use-feature-flags.js +0 -17
- package/dist/hooks/use-fetch-raster-tile-metadata.js +0 -120
- package/dist/hooks/use-fetch-vector-tile-metadata.js +0 -133
- package/dist/hooks/use-legend-position.js +0 -176
- package/dist/hooks/use-on-click-outside.js +0 -36
- package/dist/index.js +0 -2890
- package/dist/injector.js +0 -151
- package/dist/kepler-gl.js +0 -664
- package/dist/layer-animation-controller.js +0 -53
- package/dist/loading-indicator.js +0 -76
- package/dist/map/annotations/annotation-control.js +0 -55
- package/dist/map/attribution.js +0 -391
- package/dist/map/coordinate-info.js +0 -42
- package/dist/map/effects/effect-control.js +0 -51
- package/dist/map/layer-hover-info.js +0 -318
- package/dist/map/lazy-tippy.js +0 -60
- package/dist/map/locale-panel.js +0 -76
- package/dist/map/map-control-panel.js +0 -140
- package/dist/map/map-control-toolbar.js +0 -18
- package/dist/map/map-control-tooltip.js +0 -34
- package/dist/map/map-control.js +0 -81
- package/dist/map/map-draw-panel.js +0 -100
- package/dist/map/map-legend-panel.js +0 -289
- package/dist/map/map-legend.js +0 -509
- package/dist/map/map-navigation-control.js +0 -159
- package/dist/map/map-popover-content.js +0 -28
- package/dist/map/map-popover.js +0 -189
- package/dist/map/map-scale.js +0 -162
- package/dist/map/split-map-button.js +0 -176
- package/dist/map/toggle-3d-button.js +0 -122
- package/dist/map-container.js +0 -1322
- package/dist/map-view-state-context.js +0 -98
- package/dist/maps-layout.js +0 -102
- package/dist/modal-container.js +0 -456
- package/dist/modals/add-map-style-modal.js +0 -262
- package/dist/modals/cloud-components/cloud-header.js +0 -59
- package/dist/modals/cloud-components/cloud-item.js +0 -59
- package/dist/modals/cloud-components/cloud-item.spec.js +0 -92
- package/dist/modals/cloud-components/cloud-maps.js +0 -47
- package/dist/modals/cloud-components/cloud-maps.spec.js +0 -98
- package/dist/modals/cloud-components/provider-loading.js +0 -20
- package/dist/modals/cloud-components/provider-select.js +0 -30
- package/dist/modals/cloud-tile.js +0 -202
- package/dist/modals/data-table-modal.js +0 -215
- package/dist/modals/delete-data-modal.js +0 -41
- package/dist/modals/error-display.js +0 -32
- package/dist/modals/export-data-modal.js +0 -163
- package/dist/modals/export-image-modal.js +0 -188
- package/dist/modals/export-map-modal/components.js +0 -34
- package/dist/modals/export-map-modal/export-html-map.js +0 -128
- package/dist/modals/export-map-modal/export-json-map.js +0 -81
- package/dist/modals/export-map-modal/export-map-modal.js +0 -84
- package/dist/modals/export-video-modal.js +0 -413
- package/dist/modals/export-video-modal.spec.js +0 -686
- package/dist/modals/fog-height-animation.js +0 -97
- package/dist/modals/globe-export-video-container.js +0 -626
- package/dist/modals/globe-export-video-preview.js +0 -152
- package/dist/modals/hubble-utils.js +0 -422
- package/dist/modals/hubble-utils.spec.js +0 -397
- package/dist/modals/image-modal-container.js +0 -57
- package/dist/modals/load-data-modal.js +0 -97
- package/dist/modals/load-storage-map.js +0 -79
- package/dist/modals/load-storage-map.spec.js +0 -216
- package/dist/modals/loading-dialog.js +0 -37
- package/dist/modals/modal-dialog.js +0 -16
- package/dist/modals/modal-tabs.js +0 -74
- package/dist/modals/overwrite-map-modal.js +0 -83
- package/dist/modals/save-map-modal.js +0 -179
- package/dist/modals/save-map-modal.spec.js +0 -195
- package/dist/modals/share-map-modal.js +0 -168
- package/dist/modals/share-map-modal.spec.js +0 -173
- package/dist/modals/status-panel.js +0 -65
- package/dist/modals/storage-map-viewer.js +0 -98
- package/dist/modals/swipe-composite-utils.js +0 -118
- package/dist/modals/swipe-export-settings.js +0 -372
- package/dist/modals/swipe-export-video-container.js +0 -653
- package/dist/modals/swipe-export-video-preview.js +0 -401
- package/dist/modals/tilesets-modals/common.js +0 -6
- package/dist/modals/tilesets-modals/load-data-footer.js +0 -55
- package/dist/modals/tilesets-modals/load-tileset.js +0 -168
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +0 -283
- package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
- package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -287
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -388
- package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -261
- package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -206
- package/dist/notification-panel/notification-item.js +0 -119
- package/dist/notification-panel.js +0 -39
- package/dist/plot-container.js +0 -311
- package/dist/side-panel/add-by-dataset-button.js +0 -128
- package/dist/side-panel/cloud-storage-dropdown.js +0 -40
- package/dist/side-panel/common/dataset-info.js +0 -34
- package/dist/side-panel/common/dataset-tag.js +0 -62
- package/dist/side-panel/common/dataset-title.js +0 -143
- package/dist/side-panel/common/source-data-catalog.js +0 -49
- package/dist/side-panel/common/source-data-selector-content.js +0 -64
- package/dist/side-panel/common/source-data-selector.js +0 -41
- package/dist/side-panel/common/source-selector.js +0 -56
- package/dist/side-panel/common/types.js +0 -6
- package/dist/side-panel/custom-panel.js +0 -39
- package/dist/side-panel/filter-manager.js +0 -202
- package/dist/side-panel/filter-panel/add-filter-button.js +0 -27
- package/dist/side-panel/filter-panel/filter-panel-header.js +0 -67
- package/dist/side-panel/filter-panel/filter-panel.js +0 -92
- package/dist/side-panel/interaction-manager.js +0 -45
- package/dist/side-panel/interaction-panel/brush-config.js +0 -41
- package/dist/side-panel/interaction-panel/geocoder-config.js +0 -45
- package/dist/side-panel/interaction-panel/interaction-panel.js +0 -121
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -164
- package/dist/side-panel/interaction-panel/tooltip-config.js +0 -149
- package/dist/side-panel/layer-manager.js +0 -224
- package/dist/side-panel/layer-panel/add-layer-button.js +0 -27
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +0 -37
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +0 -71
- package/dist/side-panel/layer-panel/color-breaks-panel.js +0 -193
- package/dist/side-panel/layer-panel/color-palette-preset.js +0 -45
- package/dist/side-panel/layer-panel/color-palette.js +0 -74
- package/dist/side-panel/layer-panel/color-range-selector.js +0 -242
- package/dist/side-panel/layer-panel/color-scale-selector.js +0 -295
- package/dist/side-panel/layer-panel/color-selector.js +0 -186
- package/dist/side-panel/layer-panel/column-selector.js +0 -59
- package/dist/side-panel/layer-panel/custom-palette.js +0 -787
- package/dist/side-panel/layer-panel/custom-picker.js +0 -83
- package/dist/side-panel/layer-panel/dataset-layer-group.js +0 -68
- package/dist/side-panel/layer-panel/dataset-layer-section.js +0 -101
- package/dist/side-panel/layer-panel/dataset-section.js +0 -74
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +0 -91
- package/dist/side-panel/layer-panel/how-to-button.js +0 -27
- package/dist/side-panel/layer-panel/layer-color-selector.js +0 -105
- package/dist/side-panel/layer-panel/layer-column-config.js +0 -85
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +0 -192
- package/dist/side-panel/layer-panel/layer-config-group.js +0 -143
- package/dist/side-panel/layer-panel/layer-configurator.js +0 -1073
- package/dist/side-panel/layer-panel/layer-error-message.js +0 -29
- package/dist/side-panel/layer-panel/layer-group-header.js +0 -178
- package/dist/side-panel/layer-panel/layer-list.js +0 -330
- package/dist/side-panel/layer-panel/layer-panel-header.js +0 -311
- package/dist/side-panel/layer-panel/layer-panel.js +0 -171
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +0 -77
- package/dist/side-panel/layer-panel/layer-type-list-item.js +0 -71
- package/dist/side-panel/layer-panel/layer-type-selector.js +0 -57
- package/dist/side-panel/layer-panel/raster-tile-colormap-list-item.js +0 -60
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +0 -457
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +0 -122
- package/dist/side-panel/layer-panel/single-color-palette.js +0 -85
- package/dist/side-panel/layer-panel/text-label-panel.js +0 -173
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +0 -93
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +0 -60
- package/dist/side-panel/layer-panel/vis-config-slider.js +0 -167
- package/dist/side-panel/layer-panel/vis-config-switch.js +0 -55
- package/dist/side-panel/map-manager.js +0 -108
- package/dist/side-panel/map-style-panel/globe-config-panel.js +0 -269
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +0 -76
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +0 -94
- package/dist/side-panel/map-style-panel/map-layer-selector.js +0 -74
- package/dist/side-panel/map-style-panel/map-style-selector.js +0 -97
- package/dist/side-panel/panel-header-action.js +0 -73
- package/dist/side-panel/panel-header.js +0 -309
- package/dist/side-panel/panel-tab.js +0 -55
- package/dist/side-panel/panel-title.js +0 -40
- package/dist/side-panel/panel-toggle.js +0 -47
- package/dist/side-panel/panel-view-list-toggle.js +0 -97
- package/dist/side-panel/side-bar.js +0 -126
- package/dist/side-panel.js +0 -235
- package/dist/types.js +0 -6
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
2
|
+
var _templateObject;
|
|
3
|
+
// SPDX-License-Identifier: MIT
|
|
4
|
+
// Copyright contributors to the kepler.gl project
|
|
5
|
+
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { FormattedMessage } from '@kepler.gl/localization';
|
|
9
|
+
var LayerErrorMessageContent = styled.div.attrs({
|
|
10
|
+
className: 'layer-error-message-content'
|
|
11
|
+
})(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: ", ";\n color: #fff;\n display: block;\n width: 100%;\n font-size: 11px;\n padding: 1em;\n border-radius: 4px;\n"])), function (props) {
|
|
12
|
+
return props.theme.notificationColors.error || '#000';
|
|
13
|
+
});
|
|
14
|
+
var LayerErrorMessage = function LayerErrorMessage(_ref) {
|
|
15
|
+
var errorMessage = _ref.errorMessage;
|
|
16
|
+
return /*#__PURE__*/React.createElement(LayerErrorMessageContent, null, /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
17
|
+
id: 'layer.layerUpdateError',
|
|
18
|
+
values: {
|
|
19
|
+
errorMessage: errorMessage
|
|
20
|
+
}
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
export default LayerErrorMessage;
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInN0eWxlZCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJMYXllckVycm9yTWVzc2FnZUNvbnRlbnQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJwcm9wcyIsInRoZW1lIiwibm90aWZpY2F0aW9uQ29sb3JzIiwiZXJyb3IiLCJMYXllckVycm9yTWVzc2FnZSIsIl9yZWYiLCJlcnJvck1lc3NhZ2UiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJ2YWx1ZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1lcnJvci1tZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuXG5jb25zdCBMYXllckVycm9yTWVzc2FnZUNvbnRlbnQgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItZXJyb3ItbWVzc2FnZS1jb250ZW50J1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLmVycm9yIHx8ICcjMDAwJ307XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5gO1xuXG50eXBlIExheWVyRXJyb3JNZXNzYWdlUHJvcHMgPSB7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xufTtcblxuY29uc3QgTGF5ZXJFcnJvck1lc3NhZ2U6IFJlYWN0LkZDPExheWVyRXJyb3JNZXNzYWdlUHJvcHM+ID0gKHtlcnJvck1lc3NhZ2V9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPExheWVyRXJyb3JNZXNzYWdlQ29udGVudD5cbiAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbGF5ZXIubGF5ZXJVcGRhdGVFcnJvcid9IHZhbHVlcz17e2Vycm9yTWVzc2FnZX19IC8+XG4gICAgPC9MYXllckVycm9yTWVzc2FnZUNvbnRlbnQ+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBMYXllckVycm9yTWVzc2FnZTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsU0FBUUMsZ0JBQWdCLFFBQU8seUJBQXlCO0FBRXhELElBQU1DLHdCQUF3QixHQUFHRixNQUFNLENBQUNHLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDO0VBQ2hEQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUMsQ0FBQUMsZUFBQSxLQUFBQSxlQUFBLEdBQUFDLHNCQUFBLHFKQUNvQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGtCQUFrQixDQUFDQyxLQUFLLElBQUksTUFBTTtBQUFBLEVBTzVFO0FBTUQsSUFBTUMsaUJBQW1ELEdBQUcsU0FBdERBLGlCQUFtREEsQ0FBQUMsSUFBQSxFQUF1QjtFQUFBLElBQWxCQyxZQUFZLEdBQUFELElBQUEsQ0FBWkMsWUFBWTtFQUN4RSxvQkFDRWYsS0FBQSxDQUFBZ0IsYUFBQSxDQUFDYix3QkFBd0IscUJBQ3ZCSCxLQUFBLENBQUFnQixhQUFBLENBQUNkLGdCQUFnQjtJQUFDZSxFQUFFLEVBQUUsd0JBQXlCO0lBQUNDLE1BQU0sRUFBRTtNQUFDSCxZQUFZLEVBQVpBO0lBQVk7RUFBRSxDQUFFLENBQ2pELENBQUM7QUFFL0IsQ0FBQztBQUVELGVBQWVGLGlCQUFpQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
|
|
4
|
+
// SPDX-License-Identifier: MIT
|
|
5
|
+
// Copyright contributors to the kepler.gl project
|
|
6
|
+
|
|
7
|
+
import React, { useCallback, useState, useEffect, useRef } from 'react';
|
|
8
|
+
import { useDispatch } from 'react-redux';
|
|
9
|
+
import styled from 'styled-components';
|
|
10
|
+
import { updateLayerGroup, removeLayerGroup } from '@kepler.gl/actions';
|
|
11
|
+
import { getFlatLayerOrder } from '@kepler.gl/reducers';
|
|
12
|
+
import { StyledPanelHeader, InlineInput } from '../../common/styled-components';
|
|
13
|
+
import { DragHandle } from './layer-panel-header';
|
|
14
|
+
import { VertDots, EyeSeen, EyeUnseen, Trash, ArrowDown, ArrowRight } from '../../common/icons';
|
|
15
|
+
import PanelHeaderActionFactory from '../panel-header-action';
|
|
16
|
+
var GROUP_COLORS = ['#4BA9C9', '#E8A838', '#8BC58B', '#D67AB1', '#7B8FF7', '#F2726F', '#56C4A0', '#C9A84B'];
|
|
17
|
+
function getGroupColor(id) {
|
|
18
|
+
var hash = 0;
|
|
19
|
+
for (var i = 0; i < id.length; i++) {
|
|
20
|
+
hash = (hash << 5) - hash + id.charCodeAt(i) | 0;
|
|
21
|
+
}
|
|
22
|
+
return GROUP_COLORS[Math.abs(hash) % GROUP_COLORS.length];
|
|
23
|
+
}
|
|
24
|
+
var RemoveAction = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n opacity: 0;\n transition: opacity 0.15s ease;\n .panel--header__action {\n height: 16px;\n }\n"])));
|
|
25
|
+
var Container = styled(StyledPanelHeader)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n height: ", "px;\n justify-content: space-between;\n color: ", ";\n padding-right: 10px;\n align-items: center;\n overflow: hidden;\n\n border: 1px solid ", ";\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n .layer__drag-handle {\n opacity: 1;\n }\n ", " {\n opacity: 1;\n }\n }\n"])), function (props) {
|
|
26
|
+
return props.theme.layerPanelHeaderHeight;
|
|
27
|
+
}, function (props) {
|
|
28
|
+
return props.theme.textColor;
|
|
29
|
+
}, function (props) {
|
|
30
|
+
return props.theme.panelBackgroundHover;
|
|
31
|
+
}, function (props) {
|
|
32
|
+
return props.theme.panelBackgroundHover;
|
|
33
|
+
}, RemoveAction);
|
|
34
|
+
var CornerTriangle = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: ", "px\n ", "px 0 0;\n border-color: ", " transparent transparent transparent;\n"])), function (props) {
|
|
35
|
+
return Math.round(props.theme.layerPanelHeaderHeight / 3);
|
|
36
|
+
}, function (props) {
|
|
37
|
+
return Math.round(props.theme.layerPanelHeaderHeight / 3);
|
|
38
|
+
}, function (props) {
|
|
39
|
+
return props.$color;
|
|
40
|
+
});
|
|
41
|
+
var Actions = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n gap: 0;\n height: 16px;\n .panel--header__action {\n height: 16px;\n }\n"])));
|
|
42
|
+
var LeftSection = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n overflow: hidden;\n"])));
|
|
43
|
+
var GroupLabelInput = styled(InlineInput)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-left: 4px;\n font-weight: 500;\n"])));
|
|
44
|
+
var ConfirmationBar = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n background-color: ", ";\n border: 1px solid ", ";\n border-top: none;\n font-size: 11px;\n color: ", ";\n gap: 8px;\n"])), function (props) {
|
|
45
|
+
return props.theme.panelBackgroundHover;
|
|
46
|
+
}, function (props) {
|
|
47
|
+
return props.theme.panelBackgroundHover;
|
|
48
|
+
}, function (props) {
|
|
49
|
+
return props.theme.textColor;
|
|
50
|
+
});
|
|
51
|
+
var ConfirmButton = styled.button(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n background: ", ";\n color: ", ";\n border: none;\n border-radius: 2px;\n padding: 3px 8px;\n font-size: 11px;\n cursor: pointer;\n &:hover {\n background: ", ";\n }\n"])), function (props) {
|
|
52
|
+
return props.theme.secondaryBtnBgd;
|
|
53
|
+
}, function (props) {
|
|
54
|
+
return props.theme.secondaryBtnColor;
|
|
55
|
+
}, function (props) {
|
|
56
|
+
return props.theme.secondaryBtnBgdHover;
|
|
57
|
+
});
|
|
58
|
+
LayerGroupHeaderFactory.deps = [PanelHeaderActionFactory];
|
|
59
|
+
function LayerGroupHeaderFactory(PanelHeaderAction) {
|
|
60
|
+
var LayerGroupHeader = function LayerGroupHeader(_ref) {
|
|
61
|
+
var layerGroup = _ref.layerGroup,
|
|
62
|
+
onToggleLayerGroupContent = _ref.onToggleLayerGroupContent,
|
|
63
|
+
isLayerGroupContentOpen = _ref.isLayerGroupContentOpen,
|
|
64
|
+
listeners = _ref.listeners,
|
|
65
|
+
className = _ref.className;
|
|
66
|
+
var id = layerGroup.id,
|
|
67
|
+
label = layerGroup.label;
|
|
68
|
+
var dispatch = useDispatch();
|
|
69
|
+
var _useState = useState(false),
|
|
70
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
71
|
+
showConfirmation = _useState2[0],
|
|
72
|
+
setShowConfirmation = _useState2[1];
|
|
73
|
+
var confirmRef = useRef(null);
|
|
74
|
+
var layerCount = getFlatLayerOrder(layerGroup.layerOrder).length;
|
|
75
|
+
useEffect(function () {
|
|
76
|
+
if (!showConfirmation) return;
|
|
77
|
+
var handleClickOutside = function handleClickOutside(e) {
|
|
78
|
+
if (confirmRef.current && !confirmRef.current.contains(e.target)) {
|
|
79
|
+
setShowConfirmation(false);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
document.addEventListener('mousedown', handleClickOutside);
|
|
83
|
+
return function () {
|
|
84
|
+
return document.removeEventListener('mousedown', handleClickOutside);
|
|
85
|
+
};
|
|
86
|
+
}, [showConfirmation]);
|
|
87
|
+
var onUpdateLabel = useCallback(function (event) {
|
|
88
|
+
dispatch(updateLayerGroup({
|
|
89
|
+
id: id,
|
|
90
|
+
options: {
|
|
91
|
+
label: event.target.value
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
}, [dispatch, id]);
|
|
95
|
+
var onToggleVisibility = useCallback(function () {
|
|
96
|
+
dispatch(updateLayerGroup({
|
|
97
|
+
id: id,
|
|
98
|
+
options: {
|
|
99
|
+
isVisible: !layerGroup.isVisible
|
|
100
|
+
}
|
|
101
|
+
}));
|
|
102
|
+
}, [dispatch, id, layerGroup.isVisible]);
|
|
103
|
+
var onDelete = useCallback(function (e) {
|
|
104
|
+
e.stopPropagation();
|
|
105
|
+
if (layerCount > 0) {
|
|
106
|
+
setShowConfirmation(true);
|
|
107
|
+
} else {
|
|
108
|
+
dispatch(removeLayerGroup({
|
|
109
|
+
id: id
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
}, [dispatch, id, layerCount]);
|
|
113
|
+
var onConfirmDelete = useCallback(function (e) {
|
|
114
|
+
e.stopPropagation();
|
|
115
|
+
dispatch(removeLayerGroup({
|
|
116
|
+
id: id
|
|
117
|
+
}));
|
|
118
|
+
setShowConfirmation(false);
|
|
119
|
+
}, [dispatch, id]);
|
|
120
|
+
var VisibilityIcon = layerGroup.isVisible ? EyeSeen : EyeUnseen;
|
|
121
|
+
var CollapseIcon = isLayerGroupContentOpen ? ArrowDown : ArrowRight;
|
|
122
|
+
var stopPropagation = useCallback(function (e) {
|
|
123
|
+
e.stopPropagation();
|
|
124
|
+
}, []);
|
|
125
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Container, {
|
|
126
|
+
className: className,
|
|
127
|
+
onClick: onToggleLayerGroupContent
|
|
128
|
+
}, /*#__PURE__*/React.createElement(CornerTriangle, {
|
|
129
|
+
$color: getGroupColor(id)
|
|
130
|
+
}), /*#__PURE__*/React.createElement(LeftSection, null, /*#__PURE__*/React.createElement(DragHandle, {
|
|
131
|
+
className: "layer__drag-handle",
|
|
132
|
+
listeners: listeners
|
|
133
|
+
}, /*#__PURE__*/React.createElement(VertDots, {
|
|
134
|
+
height: "20px"
|
|
135
|
+
})), /*#__PURE__*/React.createElement(GroupLabelInput, {
|
|
136
|
+
type: "text",
|
|
137
|
+
value: label,
|
|
138
|
+
onClick: stopPropagation,
|
|
139
|
+
onChange: onUpdateLabel,
|
|
140
|
+
id: "".concat(id, ":input-group-label")
|
|
141
|
+
})), /*#__PURE__*/React.createElement(Actions, {
|
|
142
|
+
onClick: stopPropagation
|
|
143
|
+
}, /*#__PURE__*/React.createElement(RemoveAction, null, /*#__PURE__*/React.createElement(PanelHeaderAction, {
|
|
144
|
+
className: "layer-group__delete",
|
|
145
|
+
id: "".concat(id, "-delete"),
|
|
146
|
+
tooltip: "Remove group",
|
|
147
|
+
onClick: onDelete,
|
|
148
|
+
IconComponent: Trash
|
|
149
|
+
})), /*#__PURE__*/React.createElement(PanelHeaderAction, {
|
|
150
|
+
className: "layer-group__visibility-toggle",
|
|
151
|
+
id: "".concat(id, "-visibility"),
|
|
152
|
+
tooltip: "Toggle group visibility",
|
|
153
|
+
onClick: onToggleVisibility,
|
|
154
|
+
IconComponent: VisibilityIcon
|
|
155
|
+
}), /*#__PURE__*/React.createElement(PanelHeaderAction, {
|
|
156
|
+
className: "layer-group__section-toggle",
|
|
157
|
+
id: "".concat(id, "-collapse"),
|
|
158
|
+
tooltip: "Toggle group content",
|
|
159
|
+
onClick: onToggleLayerGroupContent,
|
|
160
|
+
IconComponent: CollapseIcon
|
|
161
|
+
}))), showConfirmation ? /*#__PURE__*/React.createElement(ConfirmationBar, {
|
|
162
|
+
ref: confirmRef,
|
|
163
|
+
onClick: stopPropagation
|
|
164
|
+
}, /*#__PURE__*/React.createElement("span", null, "Remove group with layers?"), /*#__PURE__*/React.createElement(ConfirmButton, {
|
|
165
|
+
onClick: onConfirmDelete
|
|
166
|
+
}, "Remove")) : null);
|
|
167
|
+
};
|
|
168
|
+
return LayerGroupHeader;
|
|
169
|
+
}
|
|
170
|
+
export default LayerGroupHeaderFactory;
|
|
171
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VEaXNwYXRjaCIsInN0eWxlZCIsInVwZGF0ZUxheWVyR3JvdXAiLCJyZW1vdmVMYXllckdyb3VwIiwiZ2V0RmxhdExheWVyT3JkZXIiLCJTdHlsZWRQYW5lbEhlYWRlciIsIklubGluZUlucHV0IiwiRHJhZ0hhbmRsZSIsIlZlcnREb3RzIiwiRXllU2VlbiIsIkV5ZVVuc2VlbiIsIlRyYXNoIiwiQXJyb3dEb3duIiwiQXJyb3dSaWdodCIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkdST1VQX0NPTE9SUyIsImdldEdyb3VwQ29sb3IiLCJpZCIsImhhc2giLCJpIiwibGVuZ3RoIiwiY2hhckNvZGVBdCIsIk1hdGgiLCJhYnMiLCJSZW1vdmVBY3Rpb24iLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiQ29udGFpbmVyIiwiX3RlbXBsYXRlT2JqZWN0MiIsInByb3BzIiwidGhlbWUiLCJsYXllclBhbmVsSGVhZGVySGVpZ2h0IiwidGV4dENvbG9yIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJDb3JuZXJUcmlhbmdsZSIsIl90ZW1wbGF0ZU9iamVjdDMiLCJyb3VuZCIsIiRjb2xvciIsIkFjdGlvbnMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiTGVmdFNlY3Rpb24iLCJfdGVtcGxhdGVPYmplY3Q1IiwiR3JvdXBMYWJlbElucHV0IiwiX3RlbXBsYXRlT2JqZWN0NiIsIkNvbmZpcm1hdGlvbkJhciIsIl90ZW1wbGF0ZU9iamVjdDciLCJDb25maXJtQnV0dG9uIiwiYnV0dG9uIiwiX3RlbXBsYXRlT2JqZWN0OCIsInNlY29uZGFyeUJ0bkJnZCIsInNlY29uZGFyeUJ0bkNvbG9yIiwic2Vjb25kYXJ5QnRuQmdkSG92ZXIiLCJMYXllckdyb3VwSGVhZGVyRmFjdG9yeSIsImRlcHMiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkxheWVyR3JvdXBIZWFkZXIiLCJfcmVmIiwibGF5ZXJHcm91cCIsIm9uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnQiLCJpc0xheWVyR3JvdXBDb250ZW50T3BlbiIsImxpc3RlbmVycyIsImNsYXNzTmFtZSIsImxhYmVsIiwiZGlzcGF0Y2giLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzaG93Q29uZmlybWF0aW9uIiwic2V0U2hvd0NvbmZpcm1hdGlvbiIsImNvbmZpcm1SZWYiLCJsYXllckNvdW50IiwibGF5ZXJPcmRlciIsImhhbmRsZUNsaWNrT3V0c2lkZSIsImUiLCJjdXJyZW50IiwiY29udGFpbnMiLCJ0YXJnZXQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25VcGRhdGVMYWJlbCIsImV2ZW50Iiwib3B0aW9ucyIsInZhbHVlIiwib25Ub2dnbGVWaXNpYmlsaXR5IiwiaXNWaXNpYmxlIiwib25EZWxldGUiLCJzdG9wUHJvcGFnYXRpb24iLCJvbkNvbmZpcm1EZWxldGUiLCJWaXNpYmlsaXR5SWNvbiIsIkNvbGxhcHNlSWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiaGVpZ2h0IiwidHlwZSIsIm9uQ2hhbmdlIiwiY29uY2F0IiwidG9vbHRpcCIsIkljb25Db21wb25lbnQiLCJyZWYiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9sYXllci1ncm91cC1oZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge3VwZGF0ZUxheWVyR3JvdXAsIHJlbW92ZUxheWVyR3JvdXB9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0xheWVyT3JkZXJHcm91cH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2dldEZsYXRMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuaW1wb3J0IHtTdHlsZWRQYW5lbEhlYWRlciwgSW5saW5lSW5wdXR9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0RyYWdIYW5kbGV9IGZyb20gJy4vbGF5ZXItcGFuZWwtaGVhZGVyJztcbmltcG9ydCB7VmVydERvdHMsIEV5ZVNlZW4sIEV5ZVVuc2VlbiwgVHJhc2gsIEFycm93RG93biwgQXJyb3dSaWdodH0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5cbmNvbnN0IEdST1VQX0NPTE9SUyA9IFtcbiAgJyM0QkE5QzknLFxuICAnI0U4QTgzOCcsXG4gICcjOEJDNThCJyxcbiAgJyNENjdBQjEnLFxuICAnIzdCOEZGNycsXG4gICcjRjI3MjZGJyxcbiAgJyM1NkM0QTAnLFxuICAnI0M5QTg0Qidcbl07XG5cbmZ1bmN0aW9uIGdldEdyb3VwQ29sb3IoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBoYXNoID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZC5sZW5ndGg7IGkrKykge1xuICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoICsgaWQuY2hhckNvZGVBdChpKSkgfCAwO1xuICB9XG4gIHJldHVybiBHUk9VUF9DT0xPUlNbTWF0aC5hYnMoaGFzaCkgJSBHUk9VUF9DT0xPUlMubGVuZ3RoXTtcbn1cblxuY29uc3QgUmVtb3ZlQWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAucGFuZWwtLWhlYWRlcl9fYWN0aW9uIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZChTdHlsZWRQYW5lbEhlYWRlcilgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHR9cHg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBib3JkZXI6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgLmxheWVyX19kcmFnLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAke1JlbW92ZUFjdGlvbn0ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IENvcm5lclRyaWFuZ2xlID0gc3R5bGVkLmRpdjx7JGNvbG9yOiBzdHJpbmd9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHtwcm9wcyA9PiBNYXRoLnJvdW5kKHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHQgLyAzKX1weFxuICAgICR7cHJvcHMgPT4gTWF0aC5yb3VuZChwcm9wcy50aGVtZS5sYXllclBhbmVsSGVhZGVySGVpZ2h0IC8gMyl9cHggMCAwO1xuICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuJGNvbG9yfSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbmA7XG5cbmNvbnN0IEFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDA7XG4gIGhlaWdodDogMTZweDtcbiAgLnBhbmVsLS1oZWFkZXJfX2FjdGlvbiB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG5gO1xuXG5jb25zdCBMZWZ0U2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmA7XG5cbmNvbnN0IEdyb3VwTGFiZWxJbnB1dCA9IHN0eWxlZChJbmxpbmVJbnB1dClgXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5gO1xuXG5jb25zdCBDb25maXJtYXRpb25CYXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgZ2FwOiA4cHg7XG5gO1xuXG5jb25zdCBDb25maXJtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2R9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5Db2xvcn07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2RIb3Zlcn07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIExheWVyR3JvdXBIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXJHcm91cDogTGF5ZXJPcmRlckdyb3VwO1xuICBpc0xheWVyR3JvdXBDb250ZW50T3Blbj86IGJvb2xlYW47XG4gIG9uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnQ/OiAoKSA9PiB2b2lkO1xuICBsaXN0ZW5lcnM/OiBhbnk7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbkxheWVyR3JvdXBIZWFkZXJGYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gTGF5ZXJHcm91cEhlYWRlckZhY3RvcnkoXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxMYXllckdyb3VwSGVhZGVyUHJvcHM+IHtcbiAgY29uc3QgTGF5ZXJHcm91cEhlYWRlcjogUmVhY3QuRkM8TGF5ZXJHcm91cEhlYWRlclByb3BzPiA9ICh7XG4gICAgbGF5ZXJHcm91cCxcbiAgICBvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50LFxuICAgIGlzTGF5ZXJHcm91cENvbnRlbnRPcGVuLFxuICAgIGxpc3RlbmVycyxcbiAgICBjbGFzc05hbWVcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtpZCwgbGFiZWx9ID0gbGF5ZXJHcm91cDtcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gICAgY29uc3QgW3Nob3dDb25maXJtYXRpb24sIHNldFNob3dDb25maXJtYXRpb25dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNvbmZpcm1SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gICAgY29uc3QgbGF5ZXJDb3VudCA9IGdldEZsYXRMYXllck9yZGVyKGxheWVyR3JvdXAubGF5ZXJPcmRlcikubGVuZ3RoO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghc2hvd0NvbmZpcm1hdGlvbikgcmV0dXJuO1xuICAgICAgY29uc3QgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpcm1SZWYuY3VycmVudCAmJiAhY29uZmlybVJlZi5jdXJyZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgc2V0U2hvd0NvbmZpcm1hdGlvbihmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgfSwgW3Nob3dDb25maXJtYXRpb25dKTtcblxuICAgIGNvbnN0IG9uVXBkYXRlTGFiZWwgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZGlzcGF0Y2godXBkYXRlTGF5ZXJHcm91cCh7aWQsIG9wdGlvbnM6IHtsYWJlbDogZXZlbnQudGFyZ2V0LnZhbHVlfX0pKTtcbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkXVxuICAgICk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVZpc2liaWxpdHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVMYXllckdyb3VwKHtpZCwgb3B0aW9uczoge2lzVmlzaWJsZTogIWxheWVyR3JvdXAuaXNWaXNpYmxlfX0pKTtcbiAgICB9LCBbZGlzcGF0Y2gsIGlkLCBsYXllckdyb3VwLmlzVmlzaWJsZV0pO1xuXG4gICAgY29uc3Qgb25EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChsYXllckNvdW50ID4gMCkge1xuICAgICAgICAgIHNldFNob3dDb25maXJtYXRpb24odHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlzcGF0Y2gocmVtb3ZlTGF5ZXJHcm91cCh7aWR9KSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkLCBsYXllckNvdW50XVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNvbmZpcm1EZWxldGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGRpc3BhdGNoKHJlbW92ZUxheWVyR3JvdXAoe2lkfSkpO1xuICAgICAgICBzZXRTaG93Q29uZmlybWF0aW9uKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBbZGlzcGF0Y2gsIGlkXVxuICAgICk7XG5cbiAgICBjb25zdCBWaXNpYmlsaXR5SWNvbiA9IGxheWVyR3JvdXAuaXNWaXNpYmxlID8gRXllU2VlbiA6IEV5ZVVuc2VlbjtcbiAgICBjb25zdCBDb2xsYXBzZUljb24gPSBpc0xheWVyR3JvdXBDb250ZW50T3BlbiA/IEFycm93RG93biA6IEFycm93UmlnaHQ7XG5cbiAgICBjb25zdCBzdG9wUHJvcGFnYXRpb24gPSB1c2VDYWxsYmFjaygoZTogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gb25DbGljaz17b25Ub2dnbGVMYXllckdyb3VwQ29udGVudH0+XG4gICAgICAgICAgPENvcm5lclRyaWFuZ2xlICRjb2xvcj17Z2V0R3JvdXBDb2xvcihpZCl9IC8+XG4gICAgICAgICAgPExlZnRTZWN0aW9uPlxuICAgICAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCIgbGlzdGVuZXJzPXtsaXN0ZW5lcnN9PlxuICAgICAgICAgICAgICA8VmVydERvdHMgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgICAgICA8L0RyYWdIYW5kbGU+XG4gICAgICAgICAgICA8R3JvdXBMYWJlbElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblVwZGF0ZUxhYmVsfVxuICAgICAgICAgICAgICBpZD17YCR7aWR9OmlucHV0LWdyb3VwLWxhYmVsYH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MZWZ0U2VjdGlvbj5cbiAgICAgICAgICA8QWN0aW9ucyBvbkNsaWNrPXtzdG9wUHJvcGFnYXRpb259PlxuICAgICAgICAgICAgPFJlbW92ZUFjdGlvbj5cbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX2RlbGV0ZVwiXG4gICAgICAgICAgICAgICAgaWQ9e2Ake2lkfS1kZWxldGVgfVxuICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJSZW1vdmUgZ3JvdXBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e1RyYXNofVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9SZW1vdmVBY3Rpb24+XG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3Zpc2liaWxpdHktdG9nZ2xlXCJcbiAgICAgICAgICAgICAgaWQ9e2Ake2lkfS12aXNpYmlsaXR5YH1cbiAgICAgICAgICAgICAgdG9vbHRpcD1cIlRvZ2dsZSBncm91cCB2aXNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25Ub2dnbGVWaXNpYmlsaXR5fVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtWaXNpYmlsaXR5SWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3NlY3Rpb24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgaWQ9e2Ake2lkfS1jb2xsYXBzZWB9XG4gICAgICAgICAgICAgIHRvb2x0aXA9XCJUb2dnbGUgZ3JvdXAgY29udGVudFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnR9XG4gICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e0NvbGxhcHNlSWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9BY3Rpb25zPlxuICAgICAgICA8L0NvbnRhaW5lcj5cbiAgICAgICAge3Nob3dDb25maXJtYXRpb24gPyAoXG4gICAgICAgICAgPENvbmZpcm1hdGlvbkJhciByZWY9e2NvbmZpcm1SZWZ9IG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn0+XG4gICAgICAgICAgICA8c3Bhbj5SZW1vdmUgZ3JvdXAgd2l0aCBsYXllcnM/PC9zcGFuPlxuICAgICAgICAgICAgPENvbmZpcm1CdXR0b24gb25DbGljaz17b25Db25maXJtRGVsZXRlfT5SZW1vdmU8L0NvbmZpcm1CdXR0b24+XG4gICAgICAgICAgPC9Db25maXJtYXRpb25CYXI+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJHcm91cEhlYWRlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJHcm91cEhlYWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLFFBQU8sT0FBTztBQUNyRSxTQUFRQyxXQUFXLFFBQU8sYUFBYTtBQUN2QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLFNBQVFDLGdCQUFnQixFQUFFQyxnQkFBZ0IsUUFBTyxvQkFBb0I7QUFFckUsU0FBUUMsaUJBQWlCLFFBQU8scUJBQXFCO0FBRXJELFNBQVFDLGlCQUFpQixFQUFFQyxXQUFXLFFBQU8sZ0NBQWdDO0FBQzdFLFNBQVFDLFVBQVUsUUFBTyxzQkFBc0I7QUFDL0MsU0FBUUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUVDLFVBQVUsUUFBTyxvQkFBb0I7QUFDN0YsT0FBT0Msd0JBQXdCLE1BQU0sd0JBQXdCO0FBRTdELElBQU1DLFlBQVksR0FBRyxDQUNuQixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxDQUNWO0FBRUQsU0FBU0MsYUFBYUEsQ0FBQ0MsRUFBVSxFQUFVO0VBQ3pDLElBQUlDLElBQUksR0FBRyxDQUFDO0VB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
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
|
+
import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
|
|
5
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0;
|
|
6
|
+
// SPDX-License-Identifier: MIT
|
|
7
|
+
// Copyright contributors to the kepler.gl project
|
|
8
|
+
|
|
9
|
+
import React, { useMemo, useCallback, useState } from 'react';
|
|
10
|
+
import styled from 'styled-components';
|
|
11
|
+
import classnames from 'classnames';
|
|
12
|
+
import { useDroppable } from '@dnd-kit/core';
|
|
13
|
+
import { useSortable, SortableContext, verticalListSortingStrategy, defaultAnimateLayoutChanges } from '@dnd-kit/sortable';
|
|
14
|
+
import { CSS } from '@dnd-kit/utilities';
|
|
15
|
+
import LayerPanelFactory from './layer-panel';
|
|
16
|
+
import LayerGroupHeaderFactory from './layer-group-header';
|
|
17
|
+
import { buildLayerOrderHierarchy } from '@kepler.gl/reducers';
|
|
18
|
+
import { dataTestIds } from '@kepler.gl/constants';
|
|
19
|
+
import { SORTABLE_LAYER_TYPE, SORTABLE_SIDE_PANEL_TYPE, SORTABLE_LAYER_GROUP_TYPE, SORTABLE_LAYER_GROUP_DROPPABLE_TYPE, SORTABLE_LAYER_END_PLACEHOLDER, SORTABLE_LAYER_END_TYPE } from '../../common/dnd-layer-items';
|
|
20
|
+
var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"])));
|
|
21
|
+
var animateLayoutChanges = function animateLayoutChanges(args) {
|
|
22
|
+
var isSorting = args.isSorting,
|
|
23
|
+
wasDragging = args.wasDragging;
|
|
24
|
+
if (isSorting || wasDragging) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return defaultAnimateLayoutChanges(args);
|
|
28
|
+
};
|
|
29
|
+
var EndPlaceholder = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 4px;\n"])));
|
|
30
|
+
var SortableStyledItem = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n transition: ", ";\n transform: ", ";\n &.sorting {\n opacity: 0.3;\n pointer-events: none;\n }\n &.sorting-layers .layer-panel__header {\n background-color: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n .layer__drag-handle {\n opacity: 1;\n color: ", ";\n }\n }\n"])), function (props) {
|
|
31
|
+
return props.$transition;
|
|
32
|
+
}, function (props) {
|
|
33
|
+
return props.$transform;
|
|
34
|
+
}, function (props) {
|
|
35
|
+
return props.theme.panelBackgroundHover;
|
|
36
|
+
}, function (props) {
|
|
37
|
+
return props.theme.fontFamily;
|
|
38
|
+
}, function (props) {
|
|
39
|
+
return props.theme.fontWeight;
|
|
40
|
+
}, function (props) {
|
|
41
|
+
return props.theme.fontSize;
|
|
42
|
+
}, function (props) {
|
|
43
|
+
return props.theme.lineHeight;
|
|
44
|
+
}, function (props) {
|
|
45
|
+
return props.theme.textColorHl;
|
|
46
|
+
});
|
|
47
|
+
var CollapsibleGroupContent = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 4px 0;\n min-height: 32px;\n background-color: ", ";\n transition: background-color 0.15s ease;\n"])), function (props) {
|
|
48
|
+
return props.$isOver ? props.theme.panelBackgroundHover : 'transparent';
|
|
49
|
+
});
|
|
50
|
+
var CollapsedDropZone = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n min-height: 4px;\n background-color: ", ";\n transition: background-color 0.15s ease, min-height 0.15s ease;\n ", "\n"])), function (props) {
|
|
51
|
+
return props.$isOver ? props.theme.activeColor : 'transparent';
|
|
52
|
+
}, function (props) {
|
|
53
|
+
return props.$isOver && 'min-height: 24px;';
|
|
54
|
+
});
|
|
55
|
+
var EmptyLayerGroup = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n font-size: 11px;\n align-items: center;\n justify-content: center;\n min-height: 28px;\n border: 1px dashed ", ";\n border-radius: 4px;\n margin-top: 4px;\n color: ", ";\n"])), function (props) {
|
|
56
|
+
return props.theme.labelColor;
|
|
57
|
+
}, function (props) {
|
|
58
|
+
return props.theme.subtextColor;
|
|
59
|
+
});
|
|
60
|
+
var TREE_TILE_WIDTH = 10;
|
|
61
|
+
var TREE_TILE_BORDER_WIDTH = 1;
|
|
62
|
+
var StyledColumn = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n border-left: ", "px dashed ", ";\n"])), function (props) {
|
|
63
|
+
return props.$isLast ? 0 : 1;
|
|
64
|
+
}, function (props) {
|
|
65
|
+
return props.theme.labelColor;
|
|
66
|
+
});
|
|
67
|
+
var TreeTile = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: ", "px;\n border-bottom: 1px dashed ", ";\n height: ", "px;\n margin-top: 2px;\n border-left: ", "px dashed ", ";\n"])), TREE_TILE_WIDTH, function (props) {
|
|
68
|
+
return props.theme.labelColor;
|
|
69
|
+
}, function (props) {
|
|
70
|
+
return (props.theme.layerPanelHeaderHeight || 32) / 2;
|
|
71
|
+
}, function (props) {
|
|
72
|
+
return props.$isLast ? 1 : 0;
|
|
73
|
+
}, function (props) {
|
|
74
|
+
return props.theme.labelColor;
|
|
75
|
+
});
|
|
76
|
+
var NestedLayerContainer = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: flex;\n"])));
|
|
77
|
+
var NestedLayerContent = styled.div(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["\n width: calc(100% - ", "px);\n padding-top: 8px;\n"])), TREE_TILE_WIDTH + TREE_TILE_BORDER_WIDTH);
|
|
78
|
+
LayerListFactory.deps = [LayerPanelFactory, LayerGroupHeaderFactory];
|
|
79
|
+
function LayerListFactory(LayerPanel, LayerGroupHeader) {
|
|
80
|
+
var NestedLayer = function NestedLayer(_ref) {
|
|
81
|
+
var children = _ref.children,
|
|
82
|
+
isLast = _ref.isLast;
|
|
83
|
+
return /*#__PURE__*/React.createElement(NestedLayerContainer, null, /*#__PURE__*/React.createElement(StyledColumn, {
|
|
84
|
+
$isLast: isLast
|
|
85
|
+
}, /*#__PURE__*/React.createElement(TreeTile, {
|
|
86
|
+
$isLast: isLast
|
|
87
|
+
})), /*#__PURE__*/React.createElement(NestedLayerContent, null, children));
|
|
88
|
+
};
|
|
89
|
+
var SortableLayerItem = function SortableLayerItem(_ref2) {
|
|
90
|
+
var layer = _ref2.layer,
|
|
91
|
+
idx = _ref2.idx,
|
|
92
|
+
panelProps = _ref2.panelProps,
|
|
93
|
+
layerActions = _ref2.layerActions,
|
|
94
|
+
disabled = _ref2.disabled,
|
|
95
|
+
parent = _ref2.parent;
|
|
96
|
+
var _useSortable = useSortable({
|
|
97
|
+
id: layer.id,
|
|
98
|
+
data: {
|
|
99
|
+
type: SORTABLE_LAYER_TYPE,
|
|
100
|
+
parent: parent
|
|
101
|
+
},
|
|
102
|
+
disabled: disabled,
|
|
103
|
+
animateLayoutChanges: animateLayoutChanges
|
|
104
|
+
}),
|
|
105
|
+
attributes = _useSortable.attributes,
|
|
106
|
+
listeners = _useSortable.listeners,
|
|
107
|
+
setNodeRef = _useSortable.setNodeRef,
|
|
108
|
+
isDragging = _useSortable.isDragging,
|
|
109
|
+
transform = _useSortable.transform,
|
|
110
|
+
transition = _useSortable.transition;
|
|
111
|
+
return /*#__PURE__*/React.createElement(SortableStyledItem, _extends({
|
|
112
|
+
ref: setNodeRef,
|
|
113
|
+
className: classnames(_defineProperty({}, dataTestIds.sortableLayerItem, !disabled), _defineProperty({}, dataTestIds.staticLayerItem, disabled), {
|
|
114
|
+
sorting: isDragging
|
|
115
|
+
}),
|
|
116
|
+
"data-testid": disabled ? dataTestIds.staticLayerItem : dataTestIds.sortableLayerItem,
|
|
117
|
+
$transform: CSS.Transform.toString(transform),
|
|
118
|
+
$transition: transition
|
|
119
|
+
}, attributes), /*#__PURE__*/React.createElement(LayerPanel, _extends({}, panelProps, layerActions, {
|
|
120
|
+
key: layer.id,
|
|
121
|
+
idx: idx,
|
|
122
|
+
layer: layer,
|
|
123
|
+
listeners: listeners,
|
|
124
|
+
isDraggable: !disabled
|
|
125
|
+
})));
|
|
126
|
+
};
|
|
127
|
+
var SortableGroupItem = function SortableGroupItem(_ref3) {
|
|
128
|
+
var layerGroup = _ref3.layerGroup,
|
|
129
|
+
layers = _ref3.layers,
|
|
130
|
+
panelProps = _ref3.panelProps,
|
|
131
|
+
layerActions = _ref3.layerActions,
|
|
132
|
+
disabled = _ref3.disabled;
|
|
133
|
+
var _useSortable2 = useSortable({
|
|
134
|
+
id: layerGroup.id,
|
|
135
|
+
data: {
|
|
136
|
+
type: SORTABLE_LAYER_GROUP_TYPE
|
|
137
|
+
},
|
|
138
|
+
disabled: disabled,
|
|
139
|
+
animateLayoutChanges: animateLayoutChanges
|
|
140
|
+
}),
|
|
141
|
+
attributes = _useSortable2.attributes,
|
|
142
|
+
isDragging = _useSortable2.isDragging,
|
|
143
|
+
listeners = _useSortable2.listeners,
|
|
144
|
+
setNodeRef = _useSortable2.setNodeRef,
|
|
145
|
+
transform = _useSortable2.transform,
|
|
146
|
+
transition = _useSortable2.transition;
|
|
147
|
+
var layerEntriesToShow = buildLayerOrderHierarchy(layerGroup.layerOrder, layers);
|
|
148
|
+
var dndItems = layerEntriesToShow.map(function (entry) {
|
|
149
|
+
var _entry$1$id;
|
|
150
|
+
return (_entry$1$id = entry[1].id) !== null && _entry$1$id !== void 0 ? _entry$1$id : entry[1];
|
|
151
|
+
});
|
|
152
|
+
var _useState = useState(true),
|
|
153
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
154
|
+
isSectionOpen = _useState2[0],
|
|
155
|
+
setIsSectionOpen = _useState2[1];
|
|
156
|
+
var onToggle = useCallback(function () {
|
|
157
|
+
return setIsSectionOpen(function (prev) {
|
|
158
|
+
return !prev;
|
|
159
|
+
});
|
|
160
|
+
}, []);
|
|
161
|
+
var style = useMemo(function () {
|
|
162
|
+
return {
|
|
163
|
+
transform: CSS.Transform.toString(transform),
|
|
164
|
+
transition: transition,
|
|
165
|
+
opacity: isDragging ? 0.5 : 1
|
|
166
|
+
};
|
|
167
|
+
}, [isDragging, transform, transition]);
|
|
168
|
+
var _useDroppable = useDroppable({
|
|
169
|
+
id: "droppable-layer-group-content-".concat(layerGroup.id),
|
|
170
|
+
data: {
|
|
171
|
+
type: SORTABLE_LAYER_GROUP_DROPPABLE_TYPE,
|
|
172
|
+
parent: layerGroup
|
|
173
|
+
}
|
|
174
|
+
}),
|
|
175
|
+
isOver = _useDroppable.isOver,
|
|
176
|
+
droppableSetNodeRef = _useDroppable.setNodeRef;
|
|
177
|
+
var isOpen = useMemo(function () {
|
|
178
|
+
return isSectionOpen && !isDragging;
|
|
179
|
+
}, [isSectionOpen, isDragging]);
|
|
180
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
181
|
+
style: style
|
|
182
|
+
}, /*#__PURE__*/React.createElement("div", _extends({
|
|
183
|
+
ref: setNodeRef
|
|
184
|
+
}, attributes), /*#__PURE__*/React.createElement(LayerGroupHeader, {
|
|
185
|
+
layerGroup: layerGroup,
|
|
186
|
+
onToggleLayerGroupContent: onToggle,
|
|
187
|
+
isLayerGroupContentOpen: isSectionOpen,
|
|
188
|
+
listeners: listeners
|
|
189
|
+
})), isOpen ? /*#__PURE__*/React.createElement(CollapsibleGroupContent, {
|
|
190
|
+
ref: droppableSetNodeRef,
|
|
191
|
+
$isOver: isOver
|
|
192
|
+
}, layerEntriesToShow.length ? /*#__PURE__*/React.createElement(SortableContext, {
|
|
193
|
+
id: "sortable-group-".concat(layerGroup.id),
|
|
194
|
+
items: dndItems,
|
|
195
|
+
strategy: verticalListSortingStrategy
|
|
196
|
+
}, layerEntriesToShow.map(function (_ref4, index) {
|
|
197
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
198
|
+
type = _ref5[0],
|
|
199
|
+
nestedEntry = _ref5[1];
|
|
200
|
+
return type === 'layer' ? /*#__PURE__*/React.createElement(NestedLayer, {
|
|
201
|
+
key: nestedEntry.id,
|
|
202
|
+
isLast: index === layerEntriesToShow.length - 1
|
|
203
|
+
}, /*#__PURE__*/React.createElement(SortableLayerItem, {
|
|
204
|
+
layer: nestedEntry,
|
|
205
|
+
idx: layers.findIndex(function (l) {
|
|
206
|
+
return (l === null || l === void 0 ? void 0 : l.id) === nestedEntry.id;
|
|
207
|
+
}),
|
|
208
|
+
panelProps: panelProps,
|
|
209
|
+
layerActions: layerActions,
|
|
210
|
+
disabled: disabled,
|
|
211
|
+
parent: layerGroup
|
|
212
|
+
})) : null;
|
|
213
|
+
})) : /*#__PURE__*/React.createElement(EmptyLayerGroup, null, "Drag layer here")) : /*#__PURE__*/React.createElement(CollapsedDropZone, {
|
|
214
|
+
ref: droppableSetNodeRef,
|
|
215
|
+
$isOver: isOver
|
|
216
|
+
}));
|
|
217
|
+
};
|
|
218
|
+
var SortableEndPlaceholder = function SortableEndPlaceholder() {
|
|
219
|
+
var _useSortable3 = useSortable({
|
|
220
|
+
id: SORTABLE_LAYER_END_PLACEHOLDER,
|
|
221
|
+
data: {
|
|
222
|
+
type: SORTABLE_LAYER_END_TYPE
|
|
223
|
+
},
|
|
224
|
+
animateLayoutChanges: animateLayoutChanges
|
|
225
|
+
}),
|
|
226
|
+
setNodeRef = _useSortable3.setNodeRef;
|
|
227
|
+
return /*#__PURE__*/React.createElement(EndPlaceholder, {
|
|
228
|
+
ref: setNodeRef
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
var LayerList = function LayerList(props) {
|
|
232
|
+
var layers = props.layers,
|
|
233
|
+
datasets = props.datasets,
|
|
234
|
+
layerOrder = props.layerOrder,
|
|
235
|
+
uiStateActions = props.uiStateActions,
|
|
236
|
+
visStateActions = props.visStateActions,
|
|
237
|
+
mapStateActions = props.mapStateActions,
|
|
238
|
+
mapState = props.mapState,
|
|
239
|
+
layerClasses = props.layerClasses,
|
|
240
|
+
_props$isSortable = props.isSortable,
|
|
241
|
+
isSortable = _props$isSortable === void 0 ? true : _props$isSortable,
|
|
242
|
+
splitMap = props.splitMap;
|
|
243
|
+
var openModal = uiStateActions.toggleModal;
|
|
244
|
+
var layerEntriesToShow = useMemo(function () {
|
|
245
|
+
return buildLayerOrderHierarchy(layerOrder, layers);
|
|
246
|
+
}, [layerOrder, layers]);
|
|
247
|
+
var sidePanelDndItems = useMemo(function () {
|
|
248
|
+
var items = layerEntriesToShow.map(function (entry) {
|
|
249
|
+
var _entry$1$id2;
|
|
250
|
+
return (_entry$1$id2 = entry[1].id) !== null && _entry$1$id2 !== void 0 ? _entry$1$id2 : entry[1];
|
|
251
|
+
});
|
|
252
|
+
items.push(SORTABLE_LAYER_END_PLACEHOLDER);
|
|
253
|
+
return items;
|
|
254
|
+
}, [layerEntriesToShow]);
|
|
255
|
+
var layerTypeOptions = useMemo(function () {
|
|
256
|
+
return Object.keys(layerClasses).map(function (key) {
|
|
257
|
+
var layer = new layerClasses[key]({
|
|
258
|
+
dataId: ''
|
|
259
|
+
});
|
|
260
|
+
return {
|
|
261
|
+
id: key,
|
|
262
|
+
label: layer.name,
|
|
263
|
+
icon: layer.layerIcon,
|
|
264
|
+
requireData: layer.requireData
|
|
265
|
+
};
|
|
266
|
+
});
|
|
267
|
+
}, [layerClasses]);
|
|
268
|
+
var layerActions = useMemo(function () {
|
|
269
|
+
return {
|
|
270
|
+
layerColorUIChange: visStateActions.layerColorUIChange,
|
|
271
|
+
layerConfigChange: visStateActions.layerConfigChange,
|
|
272
|
+
layerVisualChannelConfigChange: visStateActions.layerVisualChannelConfigChange,
|
|
273
|
+
layerToggleVisibility: visStateActions.layerToggleVisibility,
|
|
274
|
+
layerTypeChange: visStateActions.layerTypeChange,
|
|
275
|
+
layerVisConfigChange: visStateActions.layerVisConfigChange,
|
|
276
|
+
layerTextLabelChange: visStateActions.layerTextLabelChange,
|
|
277
|
+
removeLayer: visStateActions.removeLayer,
|
|
278
|
+
zoomToLayer: mapStateActions.fitBounds,
|
|
279
|
+
duplicateLayer: visStateActions.duplicateLayer,
|
|
280
|
+
layerSetIsValid: visStateActions.layerSetIsValid
|
|
281
|
+
};
|
|
282
|
+
}, [visStateActions, mapStateActions]);
|
|
283
|
+
var panelProps = useMemo(function () {
|
|
284
|
+
return {
|
|
285
|
+
datasets: datasets,
|
|
286
|
+
openModal: openModal,
|
|
287
|
+
layerTypeOptions: layerTypeOptions,
|
|
288
|
+
splitMap: splitMap,
|
|
289
|
+
mapState: mapState
|
|
290
|
+
};
|
|
291
|
+
}, [datasets, openModal, layerTypeOptions, splitMap, mapState]);
|
|
292
|
+
return /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(SortableContext, {
|
|
293
|
+
id: SORTABLE_SIDE_PANEL_TYPE,
|
|
294
|
+
items: sidePanelDndItems,
|
|
295
|
+
strategy: verticalListSortingStrategy,
|
|
296
|
+
disabled: !isSortable
|
|
297
|
+
}, layerEntriesToShow.map(function (_ref6) {
|
|
298
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
299
|
+
type = _ref7[0],
|
|
300
|
+
item = _ref7[1];
|
|
301
|
+
return type === 'layer' ? /*#__PURE__*/React.createElement(SortableLayerItem, {
|
|
302
|
+
key: item.id,
|
|
303
|
+
layer: item,
|
|
304
|
+
idx: layers.findIndex(function (l) {
|
|
305
|
+
return (l === null || l === void 0 ? void 0 : l.id) === item.id;
|
|
306
|
+
}),
|
|
307
|
+
panelProps: panelProps,
|
|
308
|
+
layerActions: layerActions,
|
|
309
|
+
disabled: !isSortable
|
|
310
|
+
}) : /*#__PURE__*/React.createElement(SortableGroupItem, {
|
|
311
|
+
key: item.id,
|
|
312
|
+
layerGroup: item,
|
|
313
|
+
layers: layers,
|
|
314
|
+
panelProps: panelProps,
|
|
315
|
+
layerActions: layerActions,
|
|
316
|
+
disabled: !isSortable
|
|
317
|
+
});
|
|
318
|
+
}), /*#__PURE__*/React.createElement(SortableEndPlaceholder, null)));
|
|
319
|
+
};
|
|
320
|
+
return LayerList;
|
|
321
|
+
}
|
|
322
|
+
export default LayerListFactory;
|
|
323
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwic3R5bGVkIiwiY2xhc3NuYW1lcyIsInVzZURyb3BwYWJsZSIsInVzZVNvcnRhYmxlIiwiU29ydGFibGVDb250ZXh0IiwidmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5IiwiZGVmYXVsdEFuaW1hdGVMYXlvdXRDaGFuZ2VzIiwiQ1NTIiwiTGF5ZXJQYW5lbEZhY3RvcnkiLCJMYXllckdyb3VwSGVhZGVyRmFjdG9yeSIsImJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeSIsImRhdGFUZXN0SWRzIiwiU09SVEFCTEVfTEFZRVJfVFlQRSIsIlNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSIsIlNPUlRBQkxFX0xBWUVSX0dST1VQX1RZUEUiLCJTT1JUQUJMRV9MQVlFUl9HUk9VUF9EUk9QUEFCTEVfVFlQRSIsIlNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUiIsIlNPUlRBQkxFX0xBWUVSX0VORF9UWVBFIiwiQ29udGFpbmVyIiwiZGl2IiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsImFuaW1hdGVMYXlvdXRDaGFuZ2VzIiwiYXJncyIsImlzU29ydGluZyIsIndhc0RyYWdnaW5nIiwiRW5kUGxhY2Vob2xkZXIiLCJfdGVtcGxhdGVPYmplY3QyIiwiU29ydGFibGVTdHlsZWRJdGVtIiwiX3RlbXBsYXRlT2JqZWN0MyIsInByb3BzIiwiJHRyYW5zaXRpb24iLCIkdHJhbnNmb3JtIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwidGV4dENvbG9ySGwiLCJDb2xsYXBzaWJsZUdyb3VwQ29udGVudCIsIl90ZW1wbGF0ZU9iamVjdDQiLCIkaXNPdmVyIiwiQ29sbGFwc2VkRHJvcFpvbmUiLCJfdGVtcGxhdGVPYmplY3Q1IiwiYWN0aXZlQ29sb3IiLCJFbXB0eUxheWVyR3JvdXAiLCJfdGVtcGxhdGVPYmplY3Q2IiwibGFiZWxDb2xvciIsInN1YnRleHRDb2xvciIsIlRSRUVfVElMRV9XSURUSCIsIlRSRUVfVElMRV9CT1JERVJfV0lEVEgiLCJTdHlsZWRDb2x1bW4iLCJfdGVtcGxhdGVPYmplY3Q3IiwiJGlzTGFzdCIsIlRyZWVUaWxlIiwiX3RlbXBsYXRlT2JqZWN0OCIsImxheWVyUGFuZWxIZWFkZXJIZWlnaHQiLCJOZXN0ZWRMYXllckNvbnRhaW5lciIsIl90ZW1wbGF0ZU9iamVjdDkiLCJOZXN0ZWRMYXllckNvbnRlbnQiLCJfdGVtcGxhdGVPYmplY3QwIiwiTGF5ZXJMaXN0RmFjdG9yeSIsImRlcHMiLCJMYXllclBhbmVsIiwiTGF5ZXJHcm91cEhlYWRlciIsIk5lc3RlZExheWVyIiwiX3JlZiIsImNoaWxkcmVuIiwiaXNMYXN0IiwiY3JlYXRlRWxlbWVudCIsIlNvcnRhYmxlTGF5ZXJJdGVtIiwiX3JlZjIiLCJsYXllciIsImlkeCIsInBhbmVsUHJvcHMiLCJsYXllckFjdGlvbnMiLCJkaXNhYmxlZCIsInBhcmVudCIsIl91c2VTb3J0YWJsZSIsImlkIiwiZGF0YSIsInR5cGUiLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiX2V4dGVuZHMiLCJyZWYiLCJjbGFzc05hbWUiLCJfZGVmaW5lUHJvcGVydHkiLCJzb3J0YWJsZUxheWVySXRlbSIsInN0YXRpY0xheWVySXRlbSIsInNvcnRpbmciLCJUcmFuc2Zvcm0iLCJ0b1N0cmluZyIsImtleSIsImlzRHJhZ2dhYmxlIiwiU29ydGFibGVHcm91cEl0ZW0iLCJfcmVmMyIsImxheWVyR3JvdXAiLCJsYXllcnMiLCJfdXNlU29ydGFibGUyIiwibGF5ZXJFbnRyaWVzVG9TaG93IiwibGF5ZXJPcmRlciIsImRuZEl0ZW1zIiwibWFwIiwiZW50cnkiLCJfZW50cnkkMSRpZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzU2VjdGlvbk9wZW4iLCJzZXRJc1NlY3Rpb25PcGVuIiwib25Ub2dnbGUiLCJwcmV2Iiwic3R5bGUiLCJvcGFjaXR5IiwiX3VzZURyb3BwYWJsZSIsImNvbmNhdCIsImlzT3ZlciIsImRyb3BwYWJsZVNldE5vZGVSZWYiLCJpc09wZW4iLCJvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50IiwiaXNMYXllckdyb3VwQ29udGVudE9wZW4iLCJsZW5ndGgiLCJpdGVtcyIsInN0cmF0ZWd5IiwiX3JlZjQiLCJpbmRleCIsIl9yZWY1IiwibmVzdGVkRW50cnkiLCJmaW5kSW5kZXgiLCJsIiwiU29ydGFibGVFbmRQbGFjZWhvbGRlciIsIl91c2VTb3J0YWJsZTMiLCJMYXllckxpc3QiLCJkYXRhc2V0cyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwibWFwU3RhdGUiLCJsYXllckNsYXNzZXMiLCJfcHJvcHMkaXNTb3J0YWJsZSIsImlzU29ydGFibGUiLCJzcGxpdE1hcCIsIm9wZW5Nb2RhbCIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsRG5kSXRlbXMiLCJfZW50cnkkMSRpZDIiLCJwdXNoIiwibGF5ZXJUeXBlT3B0aW9ucyIsIk9iamVjdCIsImtleXMiLCJkYXRhSWQiLCJsYWJlbCIsIm5hbWUiLCJpY29uIiwibGF5ZXJJY29uIiwicmVxdWlyZURhdGEiLCJsYXllckNvbG9yVUlDaGFuZ2UiLCJsYXllckNvbmZpZ0NoYW5nZSIsImxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZ0NoYW5nZSIsImxheWVyVG9nZ2xlVmlzaWJpbGl0eSIsImxheWVyVHlwZUNoYW5nZSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2UiLCJyZW1vdmVMYXllciIsInpvb21Ub0xheWVyIiwiZml0Qm91bmRzIiwiZHVwbGljYXRlTGF5ZXIiLCJsYXllclNldElzVmFsaWQiLCJfcmVmNiIsIl9yZWY3IiwiaXRlbSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW8sIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHtMYXllciwgTGF5ZXJDbGFzc2VzVHlwZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge1VJU3RhdGVBY3Rpb25zLCBWaXNTdGF0ZUFjdGlvbnMsIE1hcFN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TGF5ZXJPcmRlckdyb3VwLCBMYXllck9yZGVyLCBMYXllck9yZGVySGllcmFyY2h5LCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7dXNlRHJvcHBhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7XG4gIHVzZVNvcnRhYmxlLFxuICBTb3J0YWJsZUNvbnRleHQsXG4gIHZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneSxcbiAgZGVmYXVsdEFuaW1hdGVMYXlvdXRDaGFuZ2VzXG59IGZyb20gJ0BkbmQta2l0L3NvcnRhYmxlJztcbmltcG9ydCB7Q1NTfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IExheWVyUGFuZWxGYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwnO1xuaW1wb3J0IExheWVyR3JvdXBIZWFkZXJGYWN0b3J5IGZyb20gJy4vbGF5ZXItZ3JvdXAtaGVhZGVyJztcbmltcG9ydCB7YnVpbGRMYXllck9yZGVySGllcmFyY2h5fSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7ZGF0YVRlc3RJZHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7U3BsaXRNYXB9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgU09SVEFCTEVfTEFZRVJfVFlQRSxcbiAgU09SVEFCTEVfU0lERV9QQU5FTF9UWVBFLFxuICBTT1JUQUJMRV9MQVlFUl9HUk9VUF9UWVBFLFxuICBTT1JUQUJMRV9MQVlFUl9HUk9VUF9EUk9QUEFCTEVfVFlQRSxcbiAgU09SVEFCTEVfTEFZRVJfRU5EX1BMQUNFSE9MREVSLFxuICBTT1JUQUJMRV9MQVlFUl9FTkRfVFlQRVxufSBmcm9tICcuLi8uLi9jb21tb24vZG5kLWxheWVyLWl0ZW1zJztcblxuZXhwb3J0IHR5cGUgTGF5ZXJMaXN0UHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xuICBzcGxpdE1hcD86IFNwbGl0TWFwO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyTGlzdEZhY3RvcnlEZXBzID0gW1xuICB0eXBlb2YgTGF5ZXJQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBMYXllckdyb3VwSGVhZGVyRmFjdG9yeVxuXTtcblxuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG5gO1xuXG5jb25zdCBhbmltYXRlTGF5b3V0Q2hhbmdlcyA9IGFyZ3MgPT4ge1xuICBjb25zdCB7aXNTb3J0aW5nLCB3YXNEcmFnZ2luZ30gPSBhcmdzO1xuICBpZiAoaXNTb3J0aW5nIHx8IHdhc0RyYWdnaW5nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBkZWZhdWx0QW5pbWF0ZUxheW91dENoYW5nZXMoYXJncyk7XG59O1xuXG5jb25zdCBFbmRQbGFjZWhvbGRlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogNHB4O1xuYDtcblxuaW50ZXJmYWNlIFNvcnRhYmxlU3R5bGVkSXRlbVByb3BzIHtcbiAgJHRyYW5zaXRpb24/OiBzdHJpbmc7XG4gICR0cmFuc2Zvcm0/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNvcnRhYmxlU3R5bGVkSXRlbSA9IHN0eWxlZC5kaXY8U29ydGFibGVTdHlsZWRJdGVtUHJvcHM+YFxuICB0cmFuc2l0aW9uOiAke3Byb3BzID0+IHByb3BzLiR0cmFuc2l0aW9ufTtcbiAgdHJhbnNmb3JtOiAke3Byb3BzID0+IHByb3BzLiR0cmFuc2Zvcm19O1xuICAmLnNvcnRpbmcge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAmLnNvcnRpbmctbGF5ZXJzIC5sYXllci1wYW5lbF9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICAgIGxpbmUtaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmVIZWlnaHR9O1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgICAubGF5ZXJfX2RyYWctaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBDb2xsYXBzaWJsZUdyb3VwQ29udGVudCA9IHN0eWxlZC5kaXY8eyRpc092ZXI/OiBib29sZWFufT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi1oZWlnaHQ6IDMycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRpc092ZXIgPyBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3ZlciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xuYDtcblxuY29uc3QgQ29sbGFwc2VkRHJvcFpvbmUgPSBzdHlsZWQuZGl2PHskaXNPdmVyPzogYm9vbGVhbn0+YFxuICBtaW4taGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRpc092ZXIgPyBwcm9wcy50aGVtZS5hY3RpdmVDb2xvciA6ICd0cmFuc3BhcmVudCcpfTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBtaW4taGVpZ2h0IDAuMTVzIGVhc2U7XG4gICR7cHJvcHMgPT4gcHJvcHMuJGlzT3ZlciAmJiAnbWluLWhlaWdodDogMjRweDsnfVxuYDtcblxuY29uc3QgRW1wdHlMYXllckdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgVFJFRV9USUxFX1dJRFRIID0gMTA7XG5jb25zdCBUUkVFX1RJTEVfQk9SREVSX1dJRFRIID0gMTtcblxuY29uc3QgU3R5bGVkQ29sdW1uID0gc3R5bGVkLmRpdjx7JGlzTGFzdD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLWxlZnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRpc0xhc3QgPyAwIDogMSl9cHggZGFzaGVkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG5gO1xuXG5jb25zdCBUcmVlVGlsZSA9IHN0eWxlZC5kaXY8eyRpc0xhc3Q/OiBib29sZWFufT5gXG4gIHdpZHRoOiAke1RSRUVfVElMRV9XSURUSH1weDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gKHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHQgfHwgMzIpIC8gMn1weDtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBib3JkZXItbGVmdDogJHtwcm9wcyA9PiAocHJvcHMuJGlzTGFzdCA/IDEgOiAwKX1weCBkYXNoZWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbmA7XG5cbmNvbnN0IE5lc3RlZExheWVyQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IE5lc3RlZExheWVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAke1RSRUVfVElMRV9XSURUSCArIFRSRUVfVElMRV9CT1JERVJfV0lEVEh9cHgpO1xuICBwYWRkaW5nLXRvcDogOHB4O1xuYDtcblxuTGF5ZXJMaXN0RmFjdG9yeS5kZXBzID0gW0xheWVyUGFuZWxGYWN0b3J5LCBMYXllckdyb3VwSGVhZGVyRmFjdG9yeV07XG5cbmZ1bmN0aW9uIExheWVyTGlzdEZhY3RvcnkoXG4gIExheWVyUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIExheWVyUGFuZWxGYWN0b3J5PixcbiAgTGF5ZXJHcm91cEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJHcm91cEhlYWRlckZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTmVzdGVkTGF5ZXI6IFJlYWN0LkZDPHtjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlOyBpc0xhc3Q/OiBib29sZWFufT4gPSAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGlzTGFzdFxuICB9KSA9PiAoXG4gICAgPE5lc3RlZExheWVyQ29udGFpbmVyPlxuICAgICAgPFN0eWxlZENvbHVtbiAkaXNMYXN0PXtpc0xhc3R9PlxuICAgICAgICA8VHJlZVRpbGUgJGlzTGFzdD17aXNMYXN0fSAvPlxuICAgICAgPC9TdHlsZWRDb2x1bW4+XG4gICAgICA8TmVzdGVkTGF5ZXJDb250ZW50PntjaGlsZHJlbn08L05lc3RlZExheWVyQ29udGVudD5cbiAgICA8L05lc3RlZExheWVyQ29udGFpbmVyPlxuICApO1xuXG4gIGNvbnN0IFNvcnRhYmxlTGF5ZXJJdGVtID0gKHtsYXllciwgaWR4LCBwYW5lbFByb3BzLCBsYXllckFjdGlvbnMsIGRpc2FibGVkLCBwYXJlbnR9OiB7XG4gICAgbGF5ZXI6IExheWVyO1xuICAgIGlkeDogbnVtYmVyO1xuICAgIHBhbmVsUHJvcHM6IGFueTtcbiAgICBsYXllckFjdGlvbnM6IGFueTtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgcGFyZW50PzogTGF5ZXJPcmRlckdyb3VwO1xuICB9KSA9PiB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgaXNEcmFnZ2luZywgdHJhbnNmb3JtLCB0cmFuc2l0aW9ufSA9IHVzZVNvcnRhYmxlKHtcbiAgICAgIGlkOiBsYXllci5pZCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdHlwZTogU09SVEFCTEVfTEFZRVJfVFlQRSxcbiAgICAgICAgcGFyZW50XG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBhbmltYXRlTGF5b3V0Q2hhbmdlc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTb3J0YWJsZVN0eWxlZEl0ZW1cbiAgICAgICAgcmVmPXtzZXROb2RlUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoXG4gICAgICAgICAge1tkYXRhVGVzdElkcy5zb3J0YWJsZUxheWVySXRlbV06ICFkaXNhYmxlZH0sXG4gICAgICAgICAge1tkYXRhVGVzdElkcy5zdGF0aWNMYXllckl0ZW1dOiBkaXNhYmxlZH0sXG4gICAgICAgICAge3NvcnRpbmc6IGlzRHJhZ2dpbmd9XG4gICAgICAgICl9XG4gICAgICAgIGRhdGEtdGVzdGlkPXtkaXNhYmxlZCA/IGRhdGFUZXN0SWRzLnN0YXRpY0xheWVySXRlbSA6IGRhdGFUZXN0SWRzLnNvcnRhYmxlTGF5ZXJJdGVtfVxuICAgICAgICAkdHJhbnNmb3JtPXtDU1MuVHJhbnNmb3JtLnRvU3RyaW5nKHRyYW5zZm9ybSl9XG4gICAgICAgICR0cmFuc2l0aW9uPXt0cmFuc2l0aW9ufVxuICAgICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgID5cbiAgICAgICAgPExheWVyUGFuZWxcbiAgICAgICAgICB7Li4ucGFuZWxQcm9wc31cbiAgICAgICAgICB7Li4ubGF5ZXJBY3Rpb25zfVxuICAgICAgICAgIGtleT17bGF5ZXIuaWR9XG4gICAgICAgICAgaWR4PXtpZHh9XG4gICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgIGxpc3RlbmVycz17bGlzdGVuZXJzfVxuICAgICAgICAgIGlzRHJhZ2dhYmxlPXshZGlzYWJsZWR9XG4gICAgICAgIC8+XG4gICAgICA8L1NvcnRhYmxlU3R5bGVkSXRlbT5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IFNvcnRhYmxlR3JvdXBJdGVtOiBSZWFjdC5GQzx7XG4gICAgbGF5ZXJHcm91cDogTGF5ZXJPcmRlckdyb3VwO1xuICAgIGxheWVyczogTGF5ZXJbXTtcbiAgICBwYW5lbFByb3BzOiBhbnk7XG4gICAgbGF5ZXJBY3Rpb25zOiBhbnk7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB9PiA9ICh7bGF5ZXJHcm91cCwgbGF5ZXJzLCBwYW5lbFByb3BzLCBsYXllckFjdGlvbnMsIGRpc2FibGVkfSkgPT4ge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBpc0RyYWdnaW5nLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogbGF5ZXJHcm91cC5pZCxcbiAgICAgIGRhdGE6IHt0eXBlOiBTT1JUQUJMRV9MQVlFUl9HUk9VUF9UWVBFfSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgYW5pbWF0ZUxheW91dENoYW5nZXNcbiAgICB9KTtcblxuICAgIGNvbnN0IGxheWVyRW50cmllc1RvU2hvdyA9IGJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeShsYXllckdyb3VwLmxheWVyT3JkZXIsIGxheWVycyk7XG4gICAgY29uc3QgZG5kSXRlbXMgPSBsYXllckVudHJpZXNUb1Nob3cubWFwKGVudHJ5ID0+IGVudHJ5WzFdLmlkID8/IGVudHJ5WzFdKTtcblxuICAgIGNvbnN0IFtpc1NlY3Rpb25PcGVuLCBzZXRJc1NlY3Rpb25PcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0SXNTZWN0aW9uT3BlbihwcmV2ID0+ICFwcmV2KSwgW10pO1xuXG4gICAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNmb3JtLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICAgIHRyYW5zaXRpb24sXG4gICAgICAgIG9wYWNpdHk6IGlzRHJhZ2dpbmcgPyAwLjUgOiAxXG4gICAgICB9KSxcbiAgICAgIFtpc0RyYWdnaW5nLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb25dXG4gICAgKTtcblxuICAgIGNvbnN0IHtpc092ZXIsIHNldE5vZGVSZWY6IGRyb3BwYWJsZVNldE5vZGVSZWZ9ID0gdXNlRHJvcHBhYmxlKHtcbiAgICAgIGlkOiBgZHJvcHBhYmxlLWxheWVyLWdyb3VwLWNvbnRlbnQtJHtsYXllckdyb3VwLmlkfWAsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6IFNPUlRBQkxFX0xBWUVSX0dST1VQX0RST1BQQUJMRV9UWVBFLFxuICAgICAgICBwYXJlbnQ6IGxheWVyR3JvdXBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGlzT3BlbiA9IHVzZU1lbW8oKCkgPT4gaXNTZWN0aW9uT3BlbiAmJiAhaXNEcmFnZ2luZywgW2lzU2VjdGlvbk9wZW4sIGlzRHJhZ2dpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIDxkaXYgcmVmPXtzZXROb2RlUmVmfSB7Li4uYXR0cmlidXRlc30+XG4gICAgICAgICAgPExheWVyR3JvdXBIZWFkZXJcbiAgICAgICAgICAgIGxheWVyR3JvdXA9e2xheWVyR3JvdXB9XG4gICAgICAgICAgICBvblRvZ2dsZUxheWVyR3JvdXBDb250ZW50PXtvblRvZ2dsZX1cbiAgICAgICAgICAgIGlzTGF5ZXJHcm91cENvbnRlbnRPcGVuPXtpc1NlY3Rpb25PcGVufVxuICAgICAgICAgICAgbGlzdGVuZXJzPXtsaXN0ZW5lcnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtpc09wZW4gPyAoXG4gICAgICAgICAgPENvbGxhcHNpYmxlR3JvdXBDb250ZW50IHJlZj17ZHJvcHBhYmxlU2V0Tm9kZVJlZn0gJGlzT3Zlcj17aXNPdmVyfT5cbiAgICAgICAgICAgIHtsYXllckVudHJpZXNUb1Nob3cubGVuZ3RoID8gKFxuICAgICAgICAgICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgICAgICAgICAgaWQ9e2Bzb3J0YWJsZS1ncm91cC0ke2xheWVyR3JvdXAuaWR9YH1cbiAgICAgICAgICAgICAgICBpdGVtcz17ZG5kSXRlbXN9XG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtsYXllckVudHJpZXNUb1Nob3cubWFwKChbdHlwZSwgbmVzdGVkRW50cnldLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdsYXllcicgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxOZXN0ZWRMYXllclxuICAgICAgICAgICAgICAgICAgICAgIGtleT17bmVzdGVkRW50cnkuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gbGF5ZXJFbnRyaWVzVG9TaG93Lmxlbmd0aCAtIDF9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U29ydGFibGVMYXllckl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyPXtuZXN0ZWRFbnRyeSBhcyBMYXllcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBuZXN0ZWRFbnRyeS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJBY3Rpb25zPXtsYXllckFjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ9e2xheWVyR3JvdXB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9OZXN0ZWRMYXllcj5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Tb3J0YWJsZUNvbnRleHQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8RW1wdHlMYXllckdyb3VwPkRyYWcgbGF5ZXIgaGVyZTwvRW1wdHlMYXllckdyb3VwPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0NvbGxhcHNpYmxlR3JvdXBDb250ZW50PlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxDb2xsYXBzZWREcm9wWm9uZSByZWY9e2Ryb3BwYWJsZVNldE5vZGVSZWZ9ICRpc092ZXI9e2lzT3Zlcn0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgU29ydGFibGVFbmRQbGFjZWhvbGRlciA9ICgpID0+IHtcbiAgICBjb25zdCB7c2V0Tm9kZVJlZn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogU09SVEFCTEVfTEFZRVJfRU5EX1BMQUNFSE9MREVSLFxuICAgICAgZGF0YToge3R5cGU6IFNPUlRBQkxFX0xBWUVSX0VORF9UWVBFfSxcbiAgICAgIGFuaW1hdGVMYXlvdXRDaGFuZ2VzXG4gICAgfSk7XG4gICAgcmV0dXJuIDxFbmRQbGFjZWhvbGRlciByZWY9e3NldE5vZGVSZWZ9IC8+O1xuICB9O1xuXG4gIGNvbnN0IExheWVyTGlzdDogUmVhY3QuRkM8TGF5ZXJMaXN0UHJvcHM+ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGxheWVycyxcbiAgICAgIGRhdGFzZXRzLFxuICAgICAgbGF5ZXJPcmRlcixcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGUsXG4gICAgICBsYXllckNsYXNzZXMsXG4gICAgICBpc1NvcnRhYmxlID0gdHJ1ZSxcbiAgICAgIHNwbGl0TWFwXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IHt0b2dnbGVNb2RhbDogb3Blbk1vZGFsfSA9IHVpU3RhdGVBY3Rpb25zO1xuXG4gICAgY29uc3QgbGF5ZXJFbnRyaWVzVG9TaG93OiBMYXllck9yZGVySGllcmFyY2h5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+IGJ1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeShsYXllck9yZGVyLCBsYXllcnMpLFxuICAgICAgW2xheWVyT3JkZXIsIGxheWVyc11cbiAgICApO1xuXG4gICAgY29uc3Qgc2lkZVBhbmVsRG5kSXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gbGF5ZXJFbnRyaWVzVG9TaG93Lm1hcChlbnRyeSA9PiBlbnRyeVsxXS5pZCA/PyBlbnRyeVsxXSk7XG4gICAgICBpdGVtcy5wdXNoKFNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUik7XG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfSwgW2xheWVyRW50cmllc1RvU2hvd10pO1xuXG4gICAgY29uc3QgbGF5ZXJUeXBlT3B0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhsYXllckNsYXNzZXMpLm1hcChrZXkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxheWVyID0gbmV3IGxheWVyQ2xhc3Nlc1trZXldKHtkYXRhSWQ6ICcnfSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBrZXksXG4gICAgICAgICAgICBsYWJlbDogbGF5ZXIubmFtZSxcbiAgICAgICAgICAgIGljb246IGxheWVyLmxheWVySWNvbixcbiAgICAgICAgICAgIHJlcXVpcmVEYXRhOiBsYXllci5yZXF1aXJlRGF0YVxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgW2xheWVyQ2xhc3Nlc11cbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXJBY3Rpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGxheWVyQ29sb3JVSUNoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyQ29sb3JVSUNoYW5nZSxcbiAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSxcbiAgICAgICAgbGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnQ2hhbmdlLFxuICAgICAgICBsYXllclRvZ2dsZVZpc2liaWxpdHk6IHZpc1N0YXRlQWN0aW9ucy5sYXllclRvZ2dsZVZpc2liaWxpdHksXG4gICAgICAgIGxheWVyVHlwZUNoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVHlwZUNoYW5nZSxcbiAgICAgICAgbGF5ZXJWaXNDb25maWdDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICAgICAgbGF5ZXJUZXh0TGFiZWxDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclRleHRMYWJlbENoYW5nZSxcbiAgICAgICAgcmVtb3ZlTGF5ZXI6IHZpc1N0YXRlQWN0aW9ucy5yZW1vdmVMYXllcixcbiAgICAgICAgem9vbVRvTGF5ZXI6IG1hcFN0YXRlQWN0aW9ucy5maXRCb3VuZHMsXG4gICAgICAgIGR1cGxpY2F0ZUxheWVyOiB2aXNTdGF0ZUFjdGlvbnMuZHVwbGljYXRlTGF5ZXIsXG4gICAgICAgIGxheWVyU2V0SXNWYWxpZDogdmlzU3RhdGVBY3Rpb25zLmxheWVyU2V0SXNWYWxpZFxuICAgICAgfSksXG4gICAgICBbdmlzU3RhdGVBY3Rpb25zLCBtYXBTdGF0ZUFjdGlvbnNdXG4gICAgKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG9wZW5Nb2RhbCxcbiAgICAgICAgbGF5ZXJUeXBlT3B0aW9ucyxcbiAgICAgICAgc3BsaXRNYXAsXG4gICAgICAgIG1hcFN0YXRlXG4gICAgICB9KSxcbiAgICAgIFtkYXRhc2V0cywgb3Blbk1vZGFsLCBsYXllclR5cGVPcHRpb25zLCBzcGxpdE1hcCwgbWFwU3RhdGVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29udGFpbmVyPlxuICAgICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgICAgaWQ9e1NPUlRBQkxFX1NJREVfUEFORUxfVFlQRX1cbiAgICAgICAgICBpdGVtcz17c2lkZVBhbmVsRG5kSXRlbXN9XG4gICAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgICAgICBkaXNhYmxlZD17IWlzU29ydGFibGV9XG4gICAgICAgID5cbiAgICAgICAgICB7bGF5ZXJFbnRyaWVzVG9TaG93Lm1hcCgoW3R5cGUsIGl0ZW1dKSA9PlxuICAgICAgICAgICAgdHlwZSA9PT0gJ2xheWVyJyA/IChcbiAgICAgICAgICAgICAgPFNvcnRhYmxlTGF5ZXJJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgIGxheWVyPXtpdGVtIGFzIExheWVyfVxuICAgICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBpdGVtLmlkKX1cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxTb3J0YWJsZUdyb3VwSXRlbVxuICAgICAgICAgICAgICAgIGtleT17KGl0ZW0gYXMgTGF5ZXJPcmRlckdyb3VwKS5pZH1cbiAgICAgICAgICAgICAgICBsYXllckdyb3VwPXtpdGVtIGFzIExheWVyT3JkZXJHcm91cH1cbiAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIClcbiAgICAgICAgICApfVxuICAgICAgICAgIDxTb3J0YWJsZUVuZFBsYWNlaG9sZGVyIC8+XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9Db250YWluZXI+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIExheWVyTGlzdDtcbn1cbmV4cG9ydCBkZWZhdWx0IExheWVyTGlzdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLFFBQU8sT0FBTztBQUMzRCxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLFVBQVUsTUFBTSxZQUFZO0FBT25DLFNBQVFDLFlBQVksUUFBTyxlQUFlO0FBQzFDLFNBQ0VDLFdBQVcsRUFDWEMsZUFBZSxFQUNmQywyQkFBMkIsRUFDM0JDLDJCQUEyQixRQUN0QixtQkFBbUI7QUFDMUIsU0FBUUMsR0FBRyxRQUFPLG9CQUFvQjtBQUN0QyxPQUFPQyxpQkFBaUIsTUFBTSxlQUFlO0FBQzdDLE9BQU9DLHVCQUF1QixNQUFNLHNCQUFzQjtBQUMxRCxTQUFRQyx3QkFBd0IsUUFBTyxxQkFBcUI7QUFDNUQsU0FBUUMsV0FBVyxRQUFPLHNCQUFzQjtBQUVoRCxT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
|