@kepler.gl/components 3.1.0-alpha.0 → 3.1.0-alpha.2
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/bottom-widget.d.ts +19 -0
- package/dist/bottom-widget.js +184 -0
- package/dist/common/action-panel.d.ts +29 -0
- package/dist/common/action-panel.js +136 -0
- package/dist/common/animation-control/animation-control.d.ts +25 -0
- package/dist/common/animation-control/animation-control.js +96 -0
- package/dist/common/animation-control/animation-controller.d.ts +19 -0
- package/dist/common/animation-control/animation-controller.js +269 -0
- package/dist/common/animation-control/animation-speed-slider.d.ts +12 -0
- package/dist/common/animation-control/animation-speed-slider.js +50 -0
- package/dist/common/animation-control/animation-window-control.d.ts +20 -0
- package/dist/common/animation-control/animation-window-control.js +60 -0
- package/dist/common/animation-control/floating-time-display.d.ts +9 -0
- package/dist/common/animation-control/floating-time-display.js +132 -0
- package/dist/common/animation-control/play-control.d.ts +12 -0
- package/dist/common/animation-control/play-control.js +52 -0
- package/dist/common/animation-control/playback-controls.d.ts +48 -0
- package/dist/common/animation-control/playback-controls.js +156 -0
- package/dist/common/animation-control/reset-control.d.ts +9 -0
- package/dist/common/animation-control/reset-control.js +43 -0
- package/dist/common/animation-control/speed-control.d.ts +12 -0
- package/dist/common/animation-control/speed-control.js +53 -0
- package/dist/common/animation-control/window-action-control.d.ts +11 -0
- package/dist/common/animation-control/window-action-control.js +58 -0
- package/dist/common/checkbox.d.ts +36 -0
- package/dist/common/checkbox.js +105 -0
- package/dist/common/color-legend.d.ts +57 -0
- package/dist/common/color-legend.js +262 -0
- package/dist/common/column-stats-chart.d.ts +37 -0
- package/dist/common/column-stats-chart.js +359 -0
- package/dist/common/data-table/button.d.ts +8 -0
- package/dist/common/data-table/button.js +38 -0
- package/dist/common/data-table/canvas.d.ts +2 -0
- package/dist/common/data-table/canvas.js +26 -0
- package/dist/common/data-table/cell-size.d.ts +43 -0
- package/dist/common/data-table/cell-size.js +183 -0
- package/dist/common/data-table/display-format.d.ts +25 -0
- package/dist/common/data-table/display-format.js +126 -0
- package/dist/common/data-table/grid.d.ts +10 -0
- package/dist/common/data-table/grid.js +107 -0
- package/dist/common/data-table/header-cell.d.ts +28 -0
- package/dist/common/data-table/header-cell.js +149 -0
- package/dist/common/data-table/index.d.ts +101 -0
- package/dist/common/data-table/index.js +464 -0
- package/dist/common/data-table/option-dropdown.d.ts +28 -0
- package/dist/common/data-table/option-dropdown.js +160 -0
- package/dist/common/dataset-label.d.ts +10 -0
- package/dist/common/dataset-label.js +27 -0
- package/dist/common/error-boundary.d.ts +16 -0
- package/dist/common/error-boundary.js +59 -0
- package/dist/common/field-selector.d.ts +49 -0
- package/dist/common/field-selector.js +173 -0
- package/dist/common/field-token.d.ts +62 -0
- package/dist/common/field-token.js +43 -0
- package/dist/common/file-uploader/file-drop.d.ts +54 -0
- package/dist/common/file-uploader/file-drop.js +196 -0
- package/dist/common/file-uploader/file-upload-progress.d.ts +8 -0
- package/dist/common/file-uploader/file-upload-progress.js +86 -0
- package/dist/common/file-uploader/file-upload.d.ts +23 -0
- package/dist/common/file-uploader/file-upload.js +244 -0
- package/dist/common/file-uploader/upload-button.d.ts +8 -0
- package/dist/common/file-uploader/upload-button.js +59 -0
- package/dist/common/flex-container.d.ts +3 -0
- package/dist/common/flex-container.js +15 -0
- package/dist/common/histogram-plot.d.ts +13 -0
- package/dist/common/histogram-plot.js +232 -0
- package/dist/common/icon-button.d.ts +27 -0
- package/dist/common/icon-button.js +25 -0
- package/dist/common/icons/add.d.ts +9 -0
- package/dist/common/icons/add.js +41 -0
- package/dist/common/icons/anchor_window.d.ts +11 -0
- package/dist/common/icons/anchor_window.js +34 -0
- package/dist/common/icons/arrow-down-alt.d.ts +9 -0
- package/dist/common/icons/arrow-down-alt.js +41 -0
- package/dist/common/icons/arrow-down-full.d.ts +16 -0
- package/dist/common/icons/arrow-down-full.js +50 -0
- package/dist/common/icons/arrow-down-small.d.ts +14 -0
- package/dist/common/icons/arrow-down-small.js +54 -0
- package/dist/common/icons/arrow-down-solid.d.ts +9 -0
- package/dist/common/icons/arrow-down-solid.js +41 -0
- package/dist/common/icons/arrow-down.d.ts +9 -0
- package/dist/common/icons/arrow-down.js +41 -0
- package/dist/common/icons/arrow-left.d.ts +9 -0
- package/dist/common/icons/arrow-left.js +44 -0
- package/dist/common/icons/arrow-right.d.ts +9 -0
- package/dist/common/icons/arrow-right.js +41 -0
- package/dist/common/icons/arrow-up-alt.d.ts +9 -0
- package/dist/common/icons/arrow-up-alt.js +42 -0
- package/dist/common/icons/arrow-up-solid.d.ts +9 -0
- package/dist/common/icons/arrow-up-solid.js +41 -0
- package/dist/common/icons/arrow-up.d.ts +9 -0
- package/dist/common/icons/arrow-up.js +41 -0
- package/dist/common/icons/base.d.ts +29 -0
- package/dist/common/icons/base.js +79 -0
- package/dist/common/icons/bug.d.ts +9 -0
- package/dist/common/icons/bug.js +43 -0
- package/dist/common/icons/calendar.d.ts +10 -0
- package/dist/common/icons/calendar.js +49 -0
- package/dist/common/icons/cancel.d.ts +9 -0
- package/dist/common/icons/cancel.js +41 -0
- package/dist/common/icons/checkmark.d.ts +10 -0
- package/dist/common/icons/checkmark.js +47 -0
- package/dist/common/icons/clipboard.d.ts +9 -0
- package/dist/common/icons/clipboard.js +42 -0
- package/dist/common/icons/clock.d.ts +9 -0
- package/dist/common/icons/clock.js +43 -0
- package/dist/common/icons/close.d.ts +9 -0
- package/dist/common/icons/close.js +46 -0
- package/dist/common/icons/code-alt.d.ts +9 -0
- package/dist/common/icons/code-alt.js +44 -0
- package/dist/common/icons/copy.d.ts +9 -0
- package/dist/common/icons/copy.js +46 -0
- package/dist/common/icons/crosshairs.d.ts +9 -0
- package/dist/common/icons/crosshairs.js +44 -0
- package/dist/common/icons/cube-3d.d.ts +9 -0
- package/dist/common/icons/cube-3d.js +45 -0
- package/dist/common/icons/cursor-click.d.ts +9 -0
- package/dist/common/icons/cursor-click.js +45 -0
- package/dist/common/icons/cursor-point.d.ts +14 -0
- package/dist/common/icons/cursor-point.js +51 -0
- package/dist/common/icons/data-table.d.ts +10 -0
- package/dist/common/icons/data-table.js +42 -0
- package/dist/common/icons/db.d.ts +10 -0
- package/dist/common/icons/db.js +42 -0
- package/dist/common/icons/delete.d.ts +9 -0
- package/dist/common/icons/delete.js +43 -0
- package/dist/common/icons/docs.d.ts +9 -0
- package/dist/common/icons/docs.js +57 -0
- package/dist/common/icons/drag-n-drop.d.ts +9 -0
- package/dist/common/icons/drag-n-drop.js +43 -0
- package/dist/common/icons/draw-polygon.d.ts +10 -0
- package/dist/common/icons/draw-polygon.js +61 -0
- package/dist/common/icons/edit.d.ts +14 -0
- package/dist/common/icons/edit.js +49 -0
- package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
- package/dist/common/icons/effects/brightness-contrast.js +70 -0
- package/dist/common/icons/effects/color-halftone.d.ts +14 -0
- package/dist/common/icons/effects/color-halftone.js +109 -0
- package/dist/common/icons/effects/dot-screen.d.ts +14 -0
- package/dist/common/icons/effects/dot-screen.js +104 -0
- package/dist/common/icons/effects/edge-work.d.ts +14 -0
- package/dist/common/icons/effects/edge-work.js +63 -0
- package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
- package/dist/common/icons/effects/hexagonal-pixelate.js +130 -0
- package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
- package/dist/common/icons/effects/hue-saturation.js +61 -0
- package/dist/common/icons/effects/ink.d.ts +14 -0
- package/dist/common/icons/effects/ink.js +60 -0
- package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
- package/dist/common/icons/effects/light-and-shadow.js +49 -0
- package/dist/common/icons/effects/magic-wand.d.ts +14 -0
- package/dist/common/icons/effects/magic-wand.js +61 -0
- package/dist/common/icons/effects/magnify.d.ts +14 -0
- package/dist/common/icons/effects/magnify.js +68 -0
- package/dist/common/icons/effects/noise.d.ts +14 -0
- package/dist/common/icons/effects/noise.js +114 -0
- package/dist/common/icons/effects/sepia.d.ts +14 -0
- package/dist/common/icons/effects/sepia.js +61 -0
- package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
- package/dist/common/icons/effects/tilt-shift.js +70 -0
- package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
- package/dist/common/icons/effects/triangle-blur.js +65 -0
- package/dist/common/icons/effects/vibrance.d.ts +14 -0
- package/dist/common/icons/effects/vibrance.js +61 -0
- package/dist/common/icons/effects/vignette.d.ts +14 -0
- package/dist/common/icons/effects/vignette.js +54 -0
- package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
- package/dist/common/icons/effects/zoom-blur.js +89 -0
- package/dist/common/icons/email.d.ts +9 -0
- package/dist/common/icons/email.js +45 -0
- package/dist/common/icons/expand.d.ts +9 -0
- package/dist/common/icons/expand.js +43 -0
- package/dist/common/icons/eye-seen.d.ts +9 -0
- package/dist/common/icons/eye-seen.js +43 -0
- package/dist/common/icons/eye-unseen.d.ts +9 -0
- package/dist/common/icons/eye-unseen.js +43 -0
- package/dist/common/icons/file-type.d.ts +8 -0
- package/dist/common/icons/file-type.js +35 -0
- package/dist/common/icons/file.d.ts +9 -0
- package/dist/common/icons/file.js +41 -0
- package/dist/common/icons/files.d.ts +9 -0
- package/dist/common/icons/files.js +41 -0
- package/dist/common/icons/filter-funnel.d.ts +9 -0
- package/dist/common/icons/filter-funnel.js +41 -0
- package/dist/common/icons/free-window.d.ts +4 -0
- package/dist/common/icons/free-window.js +44 -0
- package/dist/common/icons/gear.d.ts +9 -0
- package/dist/common/icons/gear.js +43 -0
- package/dist/common/icons/globe.d.ts +15 -0
- package/dist/common/icons/globe.js +54 -0
- package/dist/common/icons/hash.d.ts +9 -0
- package/dist/common/icons/hash.js +41 -0
- package/dist/common/icons/help.d.ts +13 -0
- package/dist/common/icons/help.js +51 -0
- package/dist/common/icons/histogram.d.ts +9 -0
- package/dist/common/icons/histogram.js +41 -0
- package/dist/common/icons/index.d.ts +106 -0
- package/dist/common/icons/index.js +740 -0
- package/dist/common/icons/info.d.ts +12 -0
- package/dist/common/icons/info.js +54 -0
- package/dist/common/icons/layers.d.ts +9 -0
- package/dist/common/icons/layers.js +41 -0
- package/dist/common/icons/left-arrow.d.ts +9 -0
- package/dist/common/icons/left-arrow.js +44 -0
- package/dist/common/icons/legend.d.ts +9 -0
- package/dist/common/icons/legend.js +41 -0
- package/dist/common/icons/line-chart.d.ts +9 -0
- package/dist/common/icons/line-chart.js +41 -0
- package/dist/common/icons/location-marker.d.ts +14 -0
- package/dist/common/icons/location-marker.js +59 -0
- package/dist/common/icons/login.d.ts +9 -0
- package/dist/common/icons/login.js +44 -0
- package/dist/common/icons/logout.d.ts +9 -0
- package/dist/common/icons/logout.js +43 -0
- package/dist/common/icons/map-icon.d.ts +11 -0
- package/dist/common/icons/map-icon.js +48 -0
- package/dist/common/icons/map.d.ts +11 -0
- package/dist/common/icons/map.js +48 -0
- package/dist/common/icons/messages.d.ts +9 -0
- package/dist/common/icons/messages.js +41 -0
- package/dist/common/icons/minus.d.ts +9 -0
- package/dist/common/icons/minus.js +41 -0
- package/dist/common/icons/moon.d.ts +14 -0
- package/dist/common/icons/moon.js +59 -0
- package/dist/common/icons/order-by-dataset.d.ts +4 -0
- package/dist/common/icons/order-by-dataset.js +46 -0
- package/dist/common/icons/order-by-list.d.ts +4 -0
- package/dist/common/icons/order-by-list.js +38 -0
- package/dist/common/icons/pause.d.ts +9 -0
- package/dist/common/icons/pause.js +41 -0
- package/dist/common/icons/picture.d.ts +9 -0
- package/dist/common/icons/picture.js +41 -0
- package/dist/common/icons/pin.d.ts +9 -0
- package/dist/common/icons/pin.js +45 -0
- package/dist/common/icons/play.d.ts +9 -0
- package/dist/common/icons/play.js +41 -0
- package/dist/common/icons/polygon.d.ts +10 -0
- package/dist/common/icons/polygon.js +63 -0
- package/dist/common/icons/rectangle.d.ts +10 -0
- package/dist/common/icons/rectangle.js +64 -0
- package/dist/common/icons/reduce.d.ts +9 -0
- package/dist/common/icons/reduce.js +44 -0
- package/dist/common/icons/reset.d.ts +9 -0
- package/dist/common/icons/reset.js +41 -0
- package/dist/common/icons/rocket.d.ts +9 -0
- package/dist/common/icons/rocket.js +41 -0
- package/dist/common/icons/save.d.ts +9 -0
- package/dist/common/icons/save.js +43 -0
- package/dist/common/icons/save2.d.ts +9 -0
- package/dist/common/icons/save2.js +47 -0
- package/dist/common/icons/search.d.ts +9 -0
- package/dist/common/icons/search.js +43 -0
- package/dist/common/icons/settings.d.ts +9 -0
- package/dist/common/icons/settings.js +43 -0
- package/dist/common/icons/share.d.ts +9 -0
- package/dist/common/icons/share.js +41 -0
- package/dist/common/icons/split.d.ts +9 -0
- package/dist/common/icons/split.js +69 -0
- package/dist/common/icons/square-select.d.ts +9 -0
- package/dist/common/icons/square-select.js +43 -0
- package/dist/common/icons/sun.d.ts +14 -0
- package/dist/common/icons/sun.js +75 -0
- package/dist/common/icons/sunrise.d.ts +14 -0
- package/dist/common/icons/sunrise.js +71 -0
- package/dist/common/icons/sunset.d.ts +14 -0
- package/dist/common/icons/sunset.js +71 -0
- package/dist/common/icons/timeline-marker.d.ts +17 -0
- package/dist/common/icons/timeline-marker.js +56 -0
- package/dist/common/icons/trash.d.ts +10 -0
- package/dist/common/icons/trash.js +44 -0
- package/dist/common/icons/vert-dots.d.ts +9 -0
- package/dist/common/icons/vert-dots.js +79 -0
- package/dist/common/icons/vert-three-dots.d.ts +9 -0
- package/dist/common/icons/vert-three-dots.js +54 -0
- package/dist/common/icons/warning-sign.d.ts +15 -0
- package/dist/common/icons/warning-sign.js +61 -0
- package/dist/common/icons/warning.d.ts +10 -0
- package/dist/common/icons/warning.js +55 -0
- package/dist/common/image-preview.d.ts +15 -0
- package/dist/common/image-preview.js +60 -0
- package/dist/common/index.d.ts +4 -0
- package/dist/common/index.js +277 -0
- package/dist/common/info-helper.d.ts +10 -0
- package/dist/common/info-helper.js +61 -0
- package/dist/common/item-selector/accessor.d.ts +7 -0
- package/dist/common/item-selector/accessor.js +37 -0
- package/dist/common/item-selector/chickleted-input.d.ts +23 -0
- package/dist/common/item-selector/chickleted-input.js +153 -0
- package/dist/common/item-selector/dropdown-list.d.ts +74 -0
- package/dist/common/item-selector/dropdown-list.js +260 -0
- package/dist/common/item-selector/dropdown-select.d.ts +33 -0
- package/dist/common/item-selector/dropdown-select.js +79 -0
- package/dist/common/item-selector/item-selector.d.ts +82 -0
- package/dist/common/item-selector/item-selector.js +252 -0
- package/dist/common/item-selector/typeahead.d.ts +126 -0
- package/dist/common/item-selector/typeahead.js +433 -0
- package/dist/common/line-chart.d.ts +34 -0
- package/dist/common/line-chart.js +120 -0
- package/dist/common/loading-spinner.d.ts +10 -0
- package/dist/common/loading-spinner.js +51 -0
- package/dist/common/logo.d.ts +8 -0
- package/dist/common/logo.js +68 -0
- package/dist/common/map-layer-selector.d.ts +13 -0
- package/dist/common/map-layer-selector.js +38 -0
- package/dist/common/modal.d.ts +64 -0
- package/dist/common/modal.js +171 -0
- package/dist/common/portaled.d.ts +583 -0
- package/dist/common/portaled.js +285 -0
- package/dist/common/progress-bar.d.ts +12 -0
- package/dist/common/progress-bar.js +47 -0
- package/dist/common/radius-legend.d.ts +10 -0
- package/dist/common/radius-legend.js +132 -0
- package/dist/common/range-brush.d.ts +19 -0
- package/dist/common/range-brush.js +266 -0
- package/dist/common/range-plot.d.ts +41 -0
- package/dist/common/range-plot.js +207 -0
- package/dist/common/range-slider-timeline-panel.d.ts +11 -0
- package/dist/common/range-slider-timeline-panel.js +43 -0
- package/dist/common/range-slider-timeline.d.ts +7 -0
- package/dist/common/range-slider-timeline.js +114 -0
- package/dist/common/range-slider.d.ts +42 -0
- package/dist/common/range-slider.js +309 -0
- package/dist/common/slider/mouse-event.d.ts +27 -0
- package/dist/common/slider/mouse-event.js +105 -0
- package/dist/common/slider/slider-bar-handle.d.ts +29 -0
- package/dist/common/slider/slider-bar-handle.js +91 -0
- package/dist/common/slider/slider-handle.d.ts +33 -0
- package/dist/common/slider/slider-handle.js +137 -0
- package/dist/common/slider/slider.d.ts +72 -0
- package/dist/common/slider/slider.js +209 -0
- package/dist/common/styled-components.d.ts +159 -0
- package/dist/common/styled-components.js +398 -0
- package/dist/common/switch.d.ts +16 -0
- package/dist/common/switch.js +21 -0
- package/dist/common/sync-timeline-control.d.ts +28 -0
- package/dist/common/sync-timeline-control.js +61 -0
- package/dist/common/time-range-slider-time-title.d.ts +9 -0
- package/dist/common/time-range-slider-time-title.js +62 -0
- package/dist/common/time-range-slider.d.ts +42 -0
- package/dist/common/time-range-slider.js +132 -0
- package/dist/common/time-slider-marker.d.ts +14 -0
- package/dist/common/time-slider-marker.js +116 -0
- package/dist/common/timeline-slider.d.ts +13 -0
- package/dist/common/timeline-slider.js +132 -0
- package/dist/common/tippy-tooltip.d.ts +6 -0
- package/dist/common/tippy-tooltip.js +135 -0
- package/dist/common/toolbar-item.d.ts +14 -0
- package/dist/common/toolbar-item.js +60 -0
- package/dist/common/toolbar.d.ts +5 -0
- package/dist/common/toolbar.js +27 -0
- package/dist/common/vertical-toolbar.d.ts +3 -0
- package/dist/common/vertical-toolbar.js +16 -0
- package/dist/connect/keplergl-connect.d.ts +9 -0
- package/dist/connect/keplergl-connect.js +44 -0
- package/dist/connect/with-local-selector.d.ts +6 -0
- package/dist/connect/with-local-selector.js +86 -0
- package/dist/container.d.ts +39 -0
- package/dist/container.js +181 -0
- package/dist/context.d.ts +27 -0
- package/dist/context.js +44 -0
- package/dist/dnd-context.d.ts +13 -0
- package/dist/dnd-context.js +124 -0
- package/dist/editor/editor.d.ts +31 -0
- package/dist/editor/editor.js +201 -0
- package/dist/editor/feature-action-panel.d.ts +32 -0
- package/dist/editor/feature-action-panel.js +148 -0
- package/dist/effects/compact-color-picker.d.ts +10 -0
- package/dist/effects/compact-color-picker.js +111 -0
- package/dist/effects/effect-configurator.d.ts +17 -0
- package/dist/effects/effect-configurator.js +275 -0
- package/dist/effects/effect-list.d.ts +20 -0
- package/dist/effects/effect-list.js +129 -0
- package/dist/effects/effect-manager.d.ts +27 -0
- package/dist/effects/effect-manager.js +120 -0
- package/dist/effects/effect-panel-header.d.ts +45 -0
- package/dist/effects/effect-panel-header.js +180 -0
- package/dist/effects/effect-panel.d.ts +24 -0
- package/dist/effects/effect-panel.js +112 -0
- package/dist/effects/effect-time-configurator.d.ts +20 -0
- package/dist/effects/effect-time-configurator.js +302 -0
- package/dist/effects/effect-time-selector.d.ts +16 -0
- package/dist/effects/effect-time-selector.js +153 -0
- package/dist/effects/effect-time-slider.d.ts +34 -0
- package/dist/effects/effect-time-slider.js +199 -0
- package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
- package/dist/effects/effect-type-dropdown-list.js +66 -0
- package/dist/effects/effect-type-list-item.d.ts +22 -0
- package/dist/effects/effect-type-list-item.js +87 -0
- package/dist/effects/effect-type-selector.d.ts +30 -0
- package/dist/effects/effect-type-selector.js +77 -0
- package/dist/effects/side-panel-title.d.ts +7 -0
- package/dist/effects/side-panel-title.js +37 -0
- package/dist/effects/timezone-selector.d.ts +19 -0
- package/dist/effects/timezone-selector.js +58 -0
- package/dist/filter-animation-controller.d.ts +17 -0
- package/dist/filter-animation-controller.js +77 -0
- package/dist/filters/components.d.ts +3 -0
- package/dist/filters/components.js +14 -0
- package/dist/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +78 -0
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +54 -0
- package/dist/filters/filter-panels/filter-synced-dataset-panel.js +261 -0
- package/dist/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
- package/dist/filters/filter-panels/multi-select-filter-panel.js +49 -0
- package/dist/filters/filter-panels/new-filter-panel.d.ts +12 -0
- package/dist/filters/filter-panels/new-filter-panel.js +67 -0
- package/dist/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
- package/dist/filters/filter-panels/polygon-filter-panel.js +68 -0
- package/dist/filters/filter-panels/range-filter-panel.d.ts +9 -0
- package/dist/filters/filter-panels/range-filter-panel.js +54 -0
- package/dist/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
- package/dist/filters/filter-panels/single-select-filter-panel.js +49 -0
- package/dist/filters/filter-panels/time-range-filter-panel.d.ts +12 -0
- package/dist/filters/filter-panels/time-range-filter-panel.js +130 -0
- package/dist/filters/filter-panels/time-synced-field-selector.d.ts +7 -0
- package/dist/filters/filter-panels/time-synced-field-selector.js +28 -0
- package/dist/filters/filter-panels/types.d.ts +40 -0
- package/dist/filters/filter-panels/types.js +6 -0
- package/dist/filters/index.d.ts +7 -0
- package/dist/filters/index.js +56 -0
- package/dist/filters/multi-select-filter.d.ts +3 -0
- package/dist/filters/multi-select-filter.js +31 -0
- package/dist/filters/polygon-filter.d.ts +4 -0
- package/dist/filters/polygon-filter.js +77 -0
- package/dist/filters/range-filter.d.ts +8 -0
- package/dist/filters/range-filter.js +35 -0
- package/dist/filters/single-select-filter.d.ts +3 -0
- package/dist/filters/single-select-filter.js +40 -0
- package/dist/filters/time-range-filter.d.ts +35 -0
- package/dist/filters/time-range-filter.js +67 -0
- package/dist/filters/time-widget-top.d.ts +8 -0
- package/dist/filters/time-widget-top.js +88 -0
- package/dist/filters/time-widget.d.ts +10 -0
- package/dist/filters/time-widget.js +101 -0
- package/dist/filters/types.d.ts +67 -0
- package/dist/filters/types.js +6 -0
- package/dist/geocoder/geocoder.d.ts +31 -0
- package/dist/geocoder/geocoder.js +269 -0
- package/dist/geocoder-panel.d.ts +22 -0
- package/dist/geocoder-panel.js +197 -0
- package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
- package/dist/hooks/use-cloud-list-provider.js +47 -0
- package/dist/hooks/use-dnd-effects.d.ts +9 -0
- package/dist/hooks/use-dnd-effects.js +69 -0
- package/dist/hooks/use-dnd-layers.d.ts +9 -0
- package/dist/hooks/use-dnd-layers.js +80 -0
- package/dist/hooks/use-feature-flags.d.ts +5 -0
- package/dist/hooks/use-feature-flags.js +17 -0
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +16 -0
- package/dist/hooks/use-fetch-vector-tile-metadata.js +109 -0
- package/dist/hooks/use-on-click-outside.d.ts +2 -0
- package/dist/hooks/use-on-click-outside.js +36 -0
- package/dist/index.d.ts +253 -0
- package/dist/index.js +2608 -0
- package/dist/injector.d.ts +29 -0
- package/dist/injector.js +151 -0
- package/dist/kepler-gl.d.ts +325 -0
- package/dist/kepler-gl.js +504 -0
- package/dist/layer-animation-controller.d.ts +13 -0
- package/dist/layer-animation-controller.js +54 -0
- package/dist/map/coordinate-info.d.ts +7 -0
- package/dist/map/coordinate-info.js +42 -0
- package/dist/map/effects/effect-control.d.ts +16 -0
- package/dist/map/effects/effect-control.js +52 -0
- package/dist/map/layer-hover-info.d.ts +29 -0
- package/dist/map/layer-hover-info.js +222 -0
- package/dist/map/layer-selector-panel.d.ts +21 -0
- package/dist/map/layer-selector-panel.js +85 -0
- package/dist/map/lazy-tippy.d.ts +8 -0
- package/dist/map/lazy-tippy.js +61 -0
- package/dist/map/locale-panel.d.ts +16 -0
- package/dist/map/locale-panel.js +77 -0
- package/dist/map/map-control-panel.d.ts +20 -0
- package/dist/map/map-control-panel.js +139 -0
- package/dist/map/map-control-toolbar.d.ts +2 -0
- package/dist/map/map-control-toolbar.js +18 -0
- package/dist/map/map-control-tooltip.d.ts +8 -0
- package/dist/map/map-control-tooltip.js +34 -0
- package/dist/map/map-control.d.ts +56 -0
- package/dist/map/map-control.js +71 -0
- package/dist/map/map-draw-panel.d.ts +20 -0
- package/dist/map/map-draw-panel.js +98 -0
- package/dist/map/map-legend-panel.d.ts +65 -0
- package/dist/map/map-legend-panel.js +155 -0
- package/dist/map/map-legend.d.ts +90 -0
- package/dist/map/map-legend.js +369 -0
- package/dist/map/map-popover-content.d.ts +28 -0
- package/dist/map/map-popover-content.js +28 -0
- package/dist/map/map-popover.d.ts +33 -0
- package/dist/map/map-popover.js +185 -0
- package/dist/map/split-map-button.d.ts +20 -0
- package/dist/map/split-map-button.js +65 -0
- package/dist/map/toggle-3d-button.d.ts +17 -0
- package/dist/map/toggle-3d-button.js +55 -0
- package/dist/map-container.d.ts +73 -0
- package/dist/map-container.js +903 -0
- package/dist/map-view-state-context.d.ts +17 -0
- package/dist/map-view-state-context.js +99 -0
- package/dist/maps-layout.d.ts +12 -0
- package/dist/maps-layout.js +43 -0
- package/dist/modal-container.d.ts +59 -0
- package/dist/modal-container.js +434 -0
- package/dist/modals/add-map-style-modal.d.ts +17 -0
- package/dist/modals/add-map-style-modal.js +198 -0
- package/dist/modals/cloud-components/cloud-header.d.ts +12 -0
- package/dist/modals/cloud-components/cloud-header.js +60 -0
- package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
- package/dist/modals/cloud-components/cloud-item.js +59 -0
- package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-item.spec.js +92 -0
- package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
- package/dist/modals/cloud-components/cloud-maps.js +47 -0
- package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-maps.spec.js +98 -0
- package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
- package/dist/modals/cloud-components/provider-loading.js +20 -0
- package/dist/modals/cloud-components/provider-select.d.ts +7 -0
- package/dist/modals/cloud-components/provider-select.js +30 -0
- package/dist/modals/cloud-tile.d.ts +15 -0
- package/dist/modals/cloud-tile.js +203 -0
- package/dist/modals/data-table-modal.d.ts +37 -0
- package/dist/modals/data-table-modal.js +264 -0
- package/dist/modals/delete-data-modal.d.ts +10 -0
- package/dist/modals/delete-data-modal.js +41 -0
- package/dist/modals/error-display.d.ts +6 -0
- package/dist/modals/error-display.js +33 -0
- package/dist/modals/export-data-modal.d.ts +23 -0
- package/dist/modals/export-data-modal.js +187 -0
- package/dist/modals/export-image-modal.d.ts +16 -0
- package/dist/modals/export-image-modal.js +122 -0
- package/dist/modals/export-map-modal/components.d.ts +8 -0
- package/dist/modals/export-map-modal/components.js +34 -0
- package/dist/modals/export-map-modal/export-html-map.d.ts +12 -0
- package/dist/modals/export-map-modal/export-html-map.js +126 -0
- package/dist/modals/export-map-modal/export-json-map.d.ts +9 -0
- package/dist/modals/export-map-modal/export-json-map.js +81 -0
- package/dist/modals/export-map-modal/export-map-modal.d.ts +27 -0
- package/dist/modals/export-map-modal/export-map-modal.js +84 -0
- package/dist/modals/image-modal-container.d.ts +16 -0
- package/dist/modals/image-modal-container.js +58 -0
- package/dist/modals/load-data-modal.d.ts +44 -0
- package/dist/modals/load-data-modal.js +98 -0
- package/dist/modals/load-storage-map.d.ts +9 -0
- package/dist/modals/load-storage-map.js +80 -0
- package/dist/modals/load-storage-map.spec.d.ts +1 -0
- package/dist/modals/load-storage-map.spec.js +216 -0
- package/dist/modals/loading-dialog.d.ts +7 -0
- package/dist/modals/loading-dialog.js +37 -0
- package/dist/modals/modal-dialog.d.ts +2 -0
- package/dist/modals/modal-dialog.js +16 -0
- package/dist/modals/modal-tabs.d.ts +15 -0
- package/dist/modals/modal-tabs.js +75 -0
- package/dist/modals/overwrite-map-modal.d.ts +16 -0
- package/dist/modals/overwrite-map-modal.js +84 -0
- package/dist/modals/save-map-modal.d.ts +28 -0
- package/dist/modals/save-map-modal.js +179 -0
- package/dist/modals/save-map-modal.spec.d.ts +1 -0
- package/dist/modals/save-map-modal.spec.js +195 -0
- package/dist/modals/share-map-modal.d.ts +26 -0
- package/dist/modals/share-map-modal.js +169 -0
- package/dist/modals/share-map-modal.spec.d.ts +1 -0
- package/dist/modals/share-map-modal.spec.js +173 -0
- package/dist/modals/status-panel.d.ts +13 -0
- package/dist/modals/status-panel.js +65 -0
- package/dist/modals/storage-map-viewer.d.ts +21 -0
- package/dist/modals/storage-map-viewer.js +98 -0
- package/dist/modals/tilesets-modals/common.d.ts +12 -0
- package/dist/modals/tilesets-modals/common.js +6 -0
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +11 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +41 -0
- package/dist/modals/tilesets-modals/load-tileset.d.ts +16 -0
- package/dist/modals/tilesets-modals/load-tileset.js +114 -0
- package/dist/modals/tilesets-modals/tileset-icon.d.ts +9 -0
- package/dist/modals/tilesets-modals/tileset-icon.js +32 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +13 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.js +165 -0
- package/dist/notification-panel/notification-item.d.ts +67 -0
- package/dist/notification-panel/notification-item.js +150 -0
- package/dist/notification-panel.d.ts +13 -0
- package/dist/notification-panel.js +61 -0
- package/dist/plot-container.d.ts +24 -0
- package/dist/plot-container.js +223 -0
- package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
- package/dist/side-panel/add-by-dataset-button.js +128 -0
- package/dist/side-panel/cloud-storage-dropdown.d.ts +6 -0
- package/dist/side-panel/cloud-storage-dropdown.js +40 -0
- package/dist/side-panel/common/dataset-info.d.ts +11 -0
- package/dist/side-panel/common/dataset-info.js +34 -0
- package/dist/side-panel/common/dataset-tag.d.ts +17 -0
- package/dist/side-panel/common/dataset-tag.js +62 -0
- package/dist/side-panel/common/dataset-title.d.ts +22 -0
- package/dist/side-panel/common/dataset-title.js +143 -0
- package/dist/side-panel/common/source-data-catalog.d.ts +29 -0
- package/dist/side-panel/common/source-data-catalog.js +49 -0
- package/dist/side-panel/common/source-data-selector-content.d.ts +8 -0
- package/dist/side-panel/common/source-data-selector-content.js +65 -0
- package/dist/side-panel/common/source-data-selector.d.ts +8 -0
- package/dist/side-panel/common/source-data-selector.js +41 -0
- package/dist/side-panel/common/source-selector.d.ts +21 -0
- package/dist/side-panel/common/source-selector.js +57 -0
- package/dist/side-panel/common/types.d.ts +44 -0
- package/dist/side-panel/common/types.js +6 -0
- package/dist/side-panel/custom-panel.d.ts +13 -0
- package/dist/side-panel/custom-panel.js +39 -0
- package/dist/side-panel/filter-manager.d.ts +32 -0
- package/dist/side-panel/filter-manager.js +203 -0
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
- package/dist/side-panel/filter-panel/add-filter-button.js +28 -0
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +26 -0
- package/dist/side-panel/filter-panel/filter-panel-header.js +53 -0
- package/dist/side-panel/filter-panel/filter-panel.d.ts +23 -0
- package/dist/side-panel/filter-panel/filter-panel.js +93 -0
- package/dist/side-panel/interaction-manager.d.ts +18 -0
- package/dist/side-panel/interaction-manager.js +45 -0
- package/dist/side-panel/interaction-panel/brush-config.d.ts +15 -0
- package/dist/side-panel/interaction-panel/brush-config.js +41 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +20 -0
- package/dist/side-panel/interaction-panel/interaction-panel.js +115 -0
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +30 -0
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +162 -0
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +37 -0
- package/dist/side-panel/interaction-panel/tooltip-config.js +150 -0
- package/dist/side-panel/layer-manager.d.ts +44 -0
- package/dist/side-panel/layer-manager.js +200 -0
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +8 -0
- package/dist/side-panel/layer-panel/add-layer-button.js +28 -0
- package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +13 -0
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +35 -0
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +26 -0
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +68 -0
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +33 -0
- package/dist/side-panel/layer-panel/color-breaks-panel.js +153 -0
- package/dist/side-panel/layer-panel/color-palette-preset.d.ts +9 -0
- package/dist/side-panel/layer-panel/color-palette-preset.js +45 -0
- package/dist/side-panel/layer-panel/color-palette.d.ts +12 -0
- package/dist/side-panel/layer-panel/color-palette.js +69 -0
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +39 -0
- package/dist/side-panel/layer-panel/color-range-selector.js +244 -0
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +36 -0
- package/dist/side-panel/layer-panel/color-scale-selector.js +186 -0
- package/dist/side-panel/layer-panel/color-selector.d.ts +34 -0
- package/dist/side-panel/layer-panel/color-selector.js +167 -0
- package/dist/side-panel/layer-panel/column-selector.d.ts +18 -0
- package/dist/side-panel/layer-panel/column-selector.js +60 -0
- package/dist/side-panel/layer-panel/custom-palette.d.ts +77 -0
- package/dist/side-panel/layer-panel/custom-palette.js +427 -0
- package/dist/side-panel/layer-panel/custom-picker.d.ts +8 -0
- package/dist/side-panel/layer-panel/custom-picker.js +71 -0
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +23 -0
- package/dist/side-panel/layer-panel/dataset-layer-group.js +67 -0
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
- package/dist/side-panel/layer-panel/dataset-layer-section.js +60 -0
- package/dist/side-panel/layer-panel/dataset-section.d.ts +23 -0
- package/dist/side-panel/layer-panel/dataset-section.js +74 -0
- package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +23 -0
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +90 -0
- package/dist/side-panel/layer-panel/how-to-button.d.ts +6 -0
- package/dist/side-panel/layer-panel/how-to-button.js +27 -0
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
- package/dist/side-panel/layer-panel/layer-color-selector.js +106 -0
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +24 -0
- package/dist/side-panel/layer-panel/layer-column-config.js +86 -0
- package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +47 -0
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +193 -0
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +44 -0
- package/dist/side-panel/layer-panel/layer-config-group.js +141 -0
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +67 -0
- package/dist/side-panel/layer-panel/layer-configurator.js +644 -0
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
- package/dist/side-panel/layer-panel/layer-error-message.js +29 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +21 -0
- package/dist/side-panel/layer-panel/layer-list.js +170 -0
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +73 -0
- package/dist/side-panel/layer-panel/layer-panel-header.js +274 -0
- package/dist/side-panel/layer-panel/layer-panel.d.ts +39 -0
- package/dist/side-panel/layer-panel/layer-panel.js +162 -0
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +22 -0
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +78 -0
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +22 -0
- package/dist/side-panel/layer-panel/layer-type-list-item.js +67 -0
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +22 -0
- package/dist/side-panel/layer-panel/layer-type-selector.js +58 -0
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +11 -0
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +220 -0
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +9 -0
- package/dist/side-panel/layer-panel/single-color-palette.js +86 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +17 -0
- package/dist/side-panel/layer-panel/text-label-panel.js +165 -0
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +22 -0
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +159 -0
- package/dist/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
- package/dist/side-panel/layer-panel/vis-config-switch.js +55 -0
- package/dist/side-panel/map-manager.d.ts +27 -0
- package/dist/side-panel/map-manager.js +127 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +77 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +95 -0
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +23 -0
- package/dist/side-panel/map-style-panel/map-layer-selector.js +74 -0
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +23 -0
- package/dist/side-panel/map-style-panel/map-style-selector.js +96 -0
- package/dist/side-panel/panel-header-action.d.ts +22 -0
- package/dist/side-panel/panel-header-action.js +73 -0
- package/dist/side-panel/panel-header.d.ts +91 -0
- package/dist/side-panel/panel-header.js +303 -0
- package/dist/side-panel/panel-tab.d.ts +20 -0
- package/dist/side-panel/panel-tab.js +55 -0
- package/dist/side-panel/panel-title.d.ts +7 -0
- package/dist/side-panel/panel-title.js +40 -0
- package/dist/side-panel/panel-toggle.d.ts +13 -0
- package/dist/side-panel/panel-toggle.js +48 -0
- package/dist/side-panel/panel-view-list-toggle.d.ts +31 -0
- package/dist/side-panel/panel-view-list-toggle.js +98 -0
- package/dist/side-panel/side-bar.d.ts +78 -0
- package/dist/side-panel/side-bar.js +127 -0
- package/dist/side-panel.d.ts +21 -0
- package/dist/side-panel.js +214 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.js +6 -0
- package/package.json +16 -16
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.PaletteConfig = exports.ColorPaletteItem = exports.ALL_TYPES = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
var _constants = require("@kepler.gl/constants");
|
|
14
|
+
var _localization = require("@kepler.gl/localization");
|
|
15
|
+
var _utils = require("@kepler.gl/utils");
|
|
16
|
+
var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector"));
|
|
17
|
+
var _styledComponents2 = require("../../common/styled-components");
|
|
18
|
+
var _switch = _interopRequireDefault(require("../../common/switch"));
|
|
19
|
+
var _colorPalette = _interopRequireDefault(require("./color-palette"));
|
|
20
|
+
var _customPalette = _interopRequireDefault(require("./custom-palette"));
|
|
21
|
+
var _d3Array = require("d3-array");
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; // SPDX-License-Identifier: MIT
|
|
23
|
+
// Copyright contributors to the kepler.gl project
|
|
24
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
26
|
+
// @ts-ignore cant concat 'all' to PALETTE_TYPES values
|
|
27
|
+
var ALL_TYPES = exports.ALL_TYPES = Object.values(_constants.PALETTE_TYPES).concat(['all']);
|
|
28
|
+
var MAX_STEPS = 20;
|
|
29
|
+
var ALL_STEPS = (0, _d3Array.range)(2, MAX_STEPS + 1, 1);
|
|
30
|
+
var StyledColorConfig = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 12px 12px 0 12px;\n"])));
|
|
31
|
+
var StyledColorRangeSelector = _styledComponents["default"].div.attrs({
|
|
32
|
+
className: 'color-range-selector'
|
|
33
|
+
})(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding-bottom: 12px;\n"])));
|
|
34
|
+
var StyledColorPalette = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 8px 8px 8px;\n"])));
|
|
35
|
+
var StyledPaletteConfig = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 8px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .color-palette__config__select {\n width: 40%;\n display: flex;\n flex-direction: row-reverse;\n\n .item-selector {\n width: 100%;\n }\n }\n"])));
|
|
36
|
+
var CONFIG_SETTINGS = {
|
|
37
|
+
type: {
|
|
38
|
+
type: 'select',
|
|
39
|
+
options: ALL_TYPES
|
|
40
|
+
},
|
|
41
|
+
steps: {
|
|
42
|
+
type: 'select',
|
|
43
|
+
options: ALL_STEPS,
|
|
44
|
+
disabled: function disabled(colorRange) {
|
|
45
|
+
return (0, _utils.hasColorMap)(colorRange);
|
|
46
|
+
},
|
|
47
|
+
reason: 'color.disableStepReason'
|
|
48
|
+
},
|
|
49
|
+
reversed: {
|
|
50
|
+
type: 'switch',
|
|
51
|
+
options: [true, false]
|
|
52
|
+
},
|
|
53
|
+
colorBlindSafe: {
|
|
54
|
+
type: 'switch',
|
|
55
|
+
options: [true, false]
|
|
56
|
+
},
|
|
57
|
+
custom: {
|
|
58
|
+
label: 'customPalette',
|
|
59
|
+
type: 'switch',
|
|
60
|
+
options: [true, false]
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var displayOption = function displayOption(d) {
|
|
64
|
+
return (0, _utils.capitalizeFirstLetter)(d);
|
|
65
|
+
};
|
|
66
|
+
var getOptionValue = function getOptionValue(d) {
|
|
67
|
+
return d;
|
|
68
|
+
};
|
|
69
|
+
ColorRangeSelectorFactory.deps = [_customPalette["default"]];
|
|
70
|
+
function ColorRangeSelectorFactory(CustomPalette) {
|
|
71
|
+
var ColorRangeSelector = function ColorRangeSelector(_ref) {
|
|
72
|
+
var colorPalettes = _ref.colorPalettes,
|
|
73
|
+
colorPaletteUI = _ref.colorPaletteUI,
|
|
74
|
+
setColorPaletteUI = _ref.setColorPaletteUI,
|
|
75
|
+
onSelectColorRange = _ref.onSelectColorRange,
|
|
76
|
+
selectedColorRange = _ref.selectedColorRange;
|
|
77
|
+
var customPalette = colorPaletteUI.customPalette,
|
|
78
|
+
showSketcher = colorPaletteUI.showSketcher,
|
|
79
|
+
colorRangeConfig = colorPaletteUI.colorRangeConfig;
|
|
80
|
+
var type = colorRangeConfig.type,
|
|
81
|
+
steps = colorRangeConfig.steps,
|
|
82
|
+
colorBlindSafe = colorRangeConfig.colorBlindSafe,
|
|
83
|
+
reversed = colorRangeConfig.reversed;
|
|
84
|
+
var filteredColorPalettes = (0, _react.useMemo)(function () {
|
|
85
|
+
var _colorPalettes$filter;
|
|
86
|
+
return (_colorPalettes$filter = colorPalettes === null || colorPalettes === void 0 ? void 0 : colorPalettes.filter(function (palette) {
|
|
87
|
+
return (0, _utils.paletteIsType)(palette, type) && (0, _utils.paletteIsSteps)(palette, steps) && (0, _utils.paletteIsColorBlindSafe)(palette, colorBlindSafe);
|
|
88
|
+
})) !== null && _colorPalettes$filter !== void 0 ? _colorPalettes$filter : [];
|
|
89
|
+
}, [colorPalettes, colorBlindSafe, steps, type]);
|
|
90
|
+
var _updateConfig = (0, _react.useCallback)(function (_ref2) {
|
|
91
|
+
var key = _ref2.key,
|
|
92
|
+
value = _ref2.value;
|
|
93
|
+
setColorPaletteUI({
|
|
94
|
+
colorRangeConfig: (0, _defineProperty2["default"])({}, key, value)
|
|
95
|
+
});
|
|
96
|
+
}, [setColorPaletteUI]);
|
|
97
|
+
var _onCustomPaletteCancel = (0, _react.useCallback)(function () {
|
|
98
|
+
setColorPaletteUI({
|
|
99
|
+
showSketcher: false,
|
|
100
|
+
colorRangeConfig: {
|
|
101
|
+
custom: false
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}, [setColorPaletteUI]);
|
|
105
|
+
var _onApply = (0, _react.useCallback)(function (e) {
|
|
106
|
+
return onSelectColorRange(customPalette, e);
|
|
107
|
+
}, [customPalette, onSelectColorRange]);
|
|
108
|
+
var _onSelectPalette = (0, _react.useCallback)(function (colorPalette, e) {
|
|
109
|
+
var newColorRange = (0, _utils.updateColorRangeBySelectedPalette)(selectedColorRange, colorPalette, {
|
|
110
|
+
steps: steps,
|
|
111
|
+
reversed: reversed
|
|
112
|
+
});
|
|
113
|
+
onSelectColorRange(newColorRange, e);
|
|
114
|
+
}, [selectedColorRange, reversed, steps, onSelectColorRange]);
|
|
115
|
+
return /*#__PURE__*/_react["default"].createElement(StyledColorRangeSelector, null, /*#__PURE__*/_react["default"].createElement(StyledColorConfig, null, (colorRangeConfig.custom ? ['custom'] : Object.keys(colorRangeConfig)).map(function (key) {
|
|
116
|
+
return CONFIG_SETTINGS[key] ? /*#__PURE__*/_react["default"].createElement(PaletteConfig, {
|
|
117
|
+
key: key,
|
|
118
|
+
prop: key,
|
|
119
|
+
label: CONFIG_SETTINGS[key].label || key,
|
|
120
|
+
config: CONFIG_SETTINGS[key],
|
|
121
|
+
value: colorRangeConfig[key],
|
|
122
|
+
onChange: _updateConfig,
|
|
123
|
+
disabled: CONFIG_SETTINGS[key].disabled ? CONFIG_SETTINGS[key].disabled(selectedColorRange) : false,
|
|
124
|
+
reason: CONFIG_SETTINGS[key].reason
|
|
125
|
+
}) : null;
|
|
126
|
+
})), colorRangeConfig.custom ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledColorPalette, null, /*#__PURE__*/_react["default"].createElement(_colorPalette["default"], {
|
|
127
|
+
colors: customPalette.colors
|
|
128
|
+
})), /*#__PURE__*/_react["default"].createElement(CustomPalette, {
|
|
129
|
+
customPalette: customPalette,
|
|
130
|
+
showSketcher: showSketcher,
|
|
131
|
+
onApply: _onApply,
|
|
132
|
+
setColorPaletteUI: setColorPaletteUI,
|
|
133
|
+
onCancel: _onCustomPaletteCancel
|
|
134
|
+
})) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
135
|
+
className: "color-palette__group"
|
|
136
|
+
}, filteredColorPalettes.map(function (colorPalette, i) {
|
|
137
|
+
return /*#__PURE__*/_react["default"].createElement(ColorPaletteItem, {
|
|
138
|
+
key: "".concat(colorPalette.name, "-").concat(i),
|
|
139
|
+
colorPalette: colorPalette,
|
|
140
|
+
selectedColorRange: selectedColorRange,
|
|
141
|
+
onSelect: _onSelectPalette,
|
|
142
|
+
reversed: reversed,
|
|
143
|
+
steps: steps
|
|
144
|
+
});
|
|
145
|
+
})));
|
|
146
|
+
};
|
|
147
|
+
ColorRangeSelector.defaultProps = {
|
|
148
|
+
colorPalettes: _constants.KEPLER_COLOR_PALETTES,
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
150
|
+
onSelectColorRange: function onSelectColorRange() {},
|
|
151
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
152
|
+
setColorPaletteUI: function setColorPaletteUI() {}
|
|
153
|
+
};
|
|
154
|
+
return ColorRangeSelector;
|
|
155
|
+
}
|
|
156
|
+
var PaletteConfig = exports.PaletteConfig = function PaletteConfig(_ref3) {
|
|
157
|
+
var prop = _ref3.prop,
|
|
158
|
+
label = _ref3.label,
|
|
159
|
+
value = _ref3.value,
|
|
160
|
+
_ref3$config = _ref3.config,
|
|
161
|
+
type = _ref3$config.type,
|
|
162
|
+
options = _ref3$config.options,
|
|
163
|
+
onChange = _ref3.onChange,
|
|
164
|
+
disabled = _ref3.disabled,
|
|
165
|
+
reason = _ref3.reason;
|
|
166
|
+
var updateSelect = (0, _react.useCallback)(function (val) {
|
|
167
|
+
return onChange({
|
|
168
|
+
key: prop,
|
|
169
|
+
value: val
|
|
170
|
+
});
|
|
171
|
+
}, [onChange, prop]);
|
|
172
|
+
var updateSwitch = (0, _react.useCallback)(function () {
|
|
173
|
+
return onChange({
|
|
174
|
+
key: prop,
|
|
175
|
+
value: !value
|
|
176
|
+
});
|
|
177
|
+
}, [onChange, prop, value]);
|
|
178
|
+
return /*#__PURE__*/_react["default"].createElement(StyledPaletteConfig, {
|
|
179
|
+
className: "color-palette__config",
|
|
180
|
+
onClick: function onClick(e) {
|
|
181
|
+
return e.stopPropagation();
|
|
182
|
+
}
|
|
183
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
184
|
+
className: "color-palette__config__label"
|
|
185
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
186
|
+
id: "color.".concat(label)
|
|
187
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
188
|
+
className: "color-palette__config__select",
|
|
189
|
+
"data-tip": true,
|
|
190
|
+
"data-for": "color-range-config-".concat(prop)
|
|
191
|
+
}, type === 'select' && /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], {
|
|
192
|
+
selectedItems: value,
|
|
193
|
+
options: options,
|
|
194
|
+
multiSelect: false,
|
|
195
|
+
searchable: false,
|
|
196
|
+
onChange: updateSelect,
|
|
197
|
+
disabled: disabled,
|
|
198
|
+
inputTheme: "secondary",
|
|
199
|
+
displayOption: displayOption,
|
|
200
|
+
getOptionValue: getOptionValue
|
|
201
|
+
}), type === 'switch' && /*#__PURE__*/_react["default"].createElement(_switch["default"], {
|
|
202
|
+
checked: Boolean(value),
|
|
203
|
+
id: "".concat(label, "-toggle"),
|
|
204
|
+
onChange: updateSwitch,
|
|
205
|
+
disabled: disabled,
|
|
206
|
+
secondary: true
|
|
207
|
+
}), disabled && reason ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
208
|
+
id: "color-range-config-".concat(prop),
|
|
209
|
+
place: "right"
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
211
|
+
style: {
|
|
212
|
+
maxWidth: '214px'
|
|
213
|
+
}
|
|
214
|
+
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
215
|
+
id: reason
|
|
216
|
+
}))) : null));
|
|
217
|
+
};
|
|
218
|
+
var StyledColorRange = _styledComponents["default"].div.attrs({
|
|
219
|
+
className: 'color-palette-outer'
|
|
220
|
+
})(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 8px;\n :hover {\n background-color: ", ";\n cursor: pointer;\n }\n"])), function (props) {
|
|
221
|
+
return props.theme.panelBackgroundHover;
|
|
222
|
+
});
|
|
223
|
+
var ColorPaletteItem = exports.ColorPaletteItem = function ColorPaletteItem(_ref4) {
|
|
224
|
+
var colorPalette = _ref4.colorPalette,
|
|
225
|
+
steps = _ref4.steps,
|
|
226
|
+
selectedColorRange = _ref4.selectedColorRange,
|
|
227
|
+
onSelect = _ref4.onSelect,
|
|
228
|
+
reversed = _ref4.reversed;
|
|
229
|
+
var colors = (0, _react.useMemo)(function () {
|
|
230
|
+
return colorPalette.colors(steps);
|
|
231
|
+
}, [colorPalette, steps]);
|
|
232
|
+
var onClick = (0, _react.useCallback)(function (e) {
|
|
233
|
+
return onSelect(colorPalette, e);
|
|
234
|
+
}, [colorPalette, onSelect]);
|
|
235
|
+
return /*#__PURE__*/_react["default"].createElement(StyledColorRange, {
|
|
236
|
+
onClick: onClick
|
|
237
|
+
}, /*#__PURE__*/_react["default"].createElement(_colorPalette["default"], {
|
|
238
|
+
colors: colors,
|
|
239
|
+
isReversed: reversed,
|
|
240
|
+
isSelected: colorPalette.name === selectedColorRange.name
|
|
241
|
+
}));
|
|
242
|
+
};
|
|
243
|
+
var _default = exports["default"] = ColorRangeSelectorFactory;
|
|
244
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2xvY2FsaXphdGlvbiIsIl91dGlscyIsIl9pdGVtU2VsZWN0b3IiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfc3dpdGNoIiwiX2NvbG9yUGFsZXR0ZSIsIl9jdXN0b21QYWxldHRlIiwiX2QzQXJyYXkiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiQUxMX1RZUEVTIiwiZXhwb3J0cyIsInZhbHVlcyIsIlBBTEVUVEVfVFlQRVMiLCJjb25jYXQiLCJNQVhfU1RFUFMiLCJBTExfU1RFUFMiLCJyYW5nZSIsIlN0eWxlZENvbG9yQ29uZmlnIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3IiLCJhdHRycyIsImNsYXNzTmFtZSIsIlN0eWxlZENvbG9yUGFsZXR0ZSIsIlN0eWxlZFBhbGV0dGVDb25maWciLCJDT05GSUdfU0VUVElOR1MiLCJ0eXBlIiwib3B0aW9ucyIsInN0ZXBzIiwiZGlzYWJsZWQiLCJjb2xvclJhbmdlIiwiaGFzQ29sb3JNYXAiLCJyZWFzb24iLCJyZXZlcnNlZCIsImNvbG9yQmxpbmRTYWZlIiwiY3VzdG9tIiwibGFiZWwiLCJkaXNwbGF5T3B0aW9uIiwiZCIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImdldE9wdGlvblZhbHVlIiwiQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeSIsImRlcHMiLCJDdXN0b21QYWxldHRlRmFjdG9yeSIsIkN1c3RvbVBhbGV0dGUiLCJDb2xvclJhbmdlU2VsZWN0b3IiLCJfcmVmIiwiY29sb3JQYWxldHRlcyIsImNvbG9yUGFsZXR0ZVVJIiwic2V0Q29sb3JQYWxldHRlVUkiLCJvblNlbGVjdENvbG9yUmFuZ2UiLCJzZWxlY3RlZENvbG9yUmFuZ2UiLCJjdXN0b21QYWxldHRlIiwic2hvd1NrZXRjaGVyIiwiY29sb3JSYW5nZUNvbmZpZyIsImZpbHRlcmVkQ29sb3JQYWxldHRlcyIsInVzZU1lbW8iLCJfY29sb3JQYWxldHRlcyRmaWx0ZXIiLCJmaWx0ZXIiLCJwYWxldHRlIiwicGFsZXR0ZUlzVHlwZSIsInBhbGV0dGVJc1N0ZXBzIiwicGFsZXR0ZUlzQ29sb3JCbGluZFNhZmUiLCJfdXBkYXRlQ29uZmlnIiwidXNlQ2FsbGJhY2siLCJfcmVmMiIsImtleSIsInZhbHVlIiwiX2RlZmluZVByb3BlcnR5MiIsIl9vbkN1c3RvbVBhbGV0dGVDYW5jZWwiLCJfb25BcHBseSIsIl9vblNlbGVjdFBhbGV0dGUiLCJjb2xvclBhbGV0dGUiLCJuZXdDb2xvclJhbmdlIiwidXBkYXRlQ29sb3JSYW5nZUJ5U2VsZWN0ZWRQYWxldHRlIiwiY3JlYXRlRWxlbWVudCIsImtleXMiLCJtYXAiLCJQYWxldHRlQ29uZmlnIiwicHJvcCIsImNvbmZpZyIsIm9uQ2hhbmdlIiwiRnJhZ21lbnQiLCJjb2xvcnMiLCJvbkFwcGx5Iiwib25DYW5jZWwiLCJDb2xvclBhbGV0dGVJdGVtIiwibmFtZSIsIm9uU2VsZWN0IiwiZGVmYXVsdFByb3BzIiwiS0VQTEVSX0NPTE9SX1BBTEVUVEVTIiwiX3JlZjMiLCJfcmVmMyRjb25maWciLCJ1cGRhdGVTZWxlY3QiLCJ2YWwiLCJ1cGRhdGVTd2l0Y2giLCJvbkNsaWNrIiwic3RvcFByb3BhZ2F0aW9uIiwiUGFuZWxMYWJlbCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJpZCIsInNlbGVjdGVkSXRlbXMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJpbnB1dFRoZW1lIiwiY2hlY2tlZCIsIkJvb2xlYW4iLCJzZWNvbmRhcnkiLCJUb29sdGlwIiwicGxhY2UiLCJzdHlsZSIsIm1heFdpZHRoIiwiU3R5bGVkQ29sb3JSYW5nZSIsInByb3BzIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIl9yZWY0IiwiaXNSZXZlcnNlZCIsImlzU2VsZWN0ZWQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2NvbG9yLXJhbmdlLXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtNb3VzZUV2ZW50LCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0tFUExFUl9DT0xPUl9QQUxFVFRFUywgUEFMRVRURV9UWVBFUywgQ29sb3JSYW5nZSwgQ29sb3JQYWxldHRlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Q29sb3JVSSwgTmVzdGVkUGFydGlhbH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBoYXNDb2xvck1hcCxcbiAgdXBkYXRlQ29sb3JSYW5nZUJ5U2VsZWN0ZWRQYWxldHRlLFxuICBwYWxldHRlSXNTdGVwcyxcbiAgcGFsZXR0ZUlzVHlwZSxcbiAgcGFsZXR0ZUlzQ29sb3JCbGluZFNhZmVcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtQYW5lbExhYmVsLCBUb29sdGlwfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuLi8uLi9jb21tb24vc3dpdGNoJztcbmltcG9ydCBDb2xvclBhbGV0dGVQYW5lbCBmcm9tICcuL2NvbG9yLXBhbGV0dGUnO1xuaW1wb3J0IEN1c3RvbVBhbGV0dGVGYWN0b3J5IGZyb20gJy4vY3VzdG9tLXBhbGV0dGUnO1xuXG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge3JhbmdlfSBmcm9tICdkMy1hcnJheSc7XG5cbnR5cGUgQ29sb3JSYW5nZVNlbGVjdG9yUHJvcHMgPSB7XG4gIGNvbG9yUGFsZXR0ZXM/OiBDb2xvclBhbGV0dGVbXTtcbiAgY29sb3JQYWxldHRlVUk6IENvbG9yVUk7XG4gIHNlbGVjdGVkQ29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgb25TZWxlY3RDb2xvclJhbmdlOiAocDogQ29sb3JSYW5nZSwgZTogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgc2V0Q29sb3JQYWxldHRlVUk6IChuZXdDb25maWc6IE5lc3RlZFBhcnRpYWw8Q29sb3JVST4pID0+IHZvaWQ7XG59O1xuXG50eXBlIFBhbGV0dGVDb25maWdQcm9wcyA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG4gIGNvbmZpZzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBvcHRpb25zOiAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbilbXTtcbiAgfTtcbiAgb25DaGFuZ2U6ICh2OiBhbnkpID0+IHZvaWQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcHJvcDogc3RyaW5nO1xuICByZWFzb24/OiBzdHJpbmc7XG59O1xuXG4vLyBAdHMtaWdub3JlIGNhbnQgY29uY2F0ICdhbGwnIHRvIFBBTEVUVEVfVFlQRVMgdmFsdWVzXG5leHBvcnQgY29uc3QgQUxMX1RZUEVTID0gT2JqZWN0LnZhbHVlcyhQQUxFVFRFX1RZUEVTKS5jb25jYXQoWydhbGwnXSk7XG5jb25zdCBNQVhfU1RFUFMgPSAyMDtcbmNvbnN0IEFMTF9TVEVQUyA9IHJhbmdlKDIsIE1BWF9TVEVQUyArIDEsIDEpO1xuXG5jb25zdCBTdHlsZWRDb2xvckNvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDEycHggMTJweCAwIDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItcmFuZ2Utc2VsZWN0b3InXG59KWBcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG5gO1xuY29uc3QgU3R5bGVkQ29sb3JQYWxldHRlID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMCA4cHggOHB4IDhweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFBhbGV0dGVDb25maWcgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAuY29sb3ItcGFsZXR0ZV9fY29uZmlnX19zZWxlY3Qge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAuaXRlbS1zZWxlY3RvciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IENPTkZJR19TRVRUSU5HUyA9IHtcbiAgdHlwZToge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IEFMTF9UWVBFU1xuICB9LFxuICBzdGVwczoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IEFMTF9TVEVQUyxcbiAgICBkaXNhYmxlZDogY29sb3JSYW5nZSA9PiBoYXNDb2xvck1hcChjb2xvclJhbmdlKSxcbiAgICByZWFzb246ICdjb2xvci5kaXNhYmxlU3RlcFJlYXNvbidcbiAgfSxcbiAgcmV2ZXJzZWQ6IHtcbiAgICB0eXBlOiAnc3dpdGNoJyxcbiAgICBvcHRpb25zOiBbdHJ1ZSwgZmFsc2VdXG4gIH0sXG4gIGNvbG9yQmxpbmRTYWZlOiB7XG4gICAgdHlwZTogJ3N3aXRjaCcsXG4gICAgb3B0aW9uczogW3RydWUsIGZhbHNlXVxuICB9LFxuICBjdXN0b206IHtcbiAgICBsYWJlbDogJ2N1c3RvbVBhbGV0dGUnLFxuICAgIHR5cGU6ICdzd2l0Y2gnLFxuICAgIG9wdGlvbnM6IFt0cnVlLCBmYWxzZV1cbiAgfVxufTtcbmNvbnN0IGRpc3BsYXlPcHRpb24gPSBkID0+IGNhcGl0YWxpemVGaXJzdExldHRlcihkKTtcbmNvbnN0IGdldE9wdGlvblZhbHVlID0gZCA9PiBkO1xuXG5Db2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbQ3VzdG9tUGFsZXR0ZUZhY3RvcnldO1xuZnVuY3Rpb24gQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeShcbiAgQ3VzdG9tUGFsZXR0ZTogUmV0dXJuVHlwZTx0eXBlb2YgQ3VzdG9tUGFsZXR0ZUZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxDb2xvclJhbmdlU2VsZWN0b3JQcm9wcz4ge1xuICBjb25zdCBDb2xvclJhbmdlU2VsZWN0b3I6IFJlYWN0LkZDPENvbG9yUmFuZ2VTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgY29sb3JQYWxldHRlcyxcbiAgICBjb2xvclBhbGV0dGVVSSxcbiAgICBzZXRDb2xvclBhbGV0dGVVSSxcbiAgICBvblNlbGVjdENvbG9yUmFuZ2UsXG4gICAgc2VsZWN0ZWRDb2xvclJhbmdlXG4gIH0pID0+IHtcbiAgICBjb25zdCB7Y3VzdG9tUGFsZXR0ZSwgc2hvd1NrZXRjaGVyLCBjb2xvclJhbmdlQ29uZmlnfSA9IGNvbG9yUGFsZXR0ZVVJO1xuICAgIGNvbnN0IHt0eXBlLCBzdGVwcywgY29sb3JCbGluZFNhZmUsIHJldmVyc2VkfSA9IGNvbG9yUmFuZ2VDb25maWc7XG5cbiAgICBjb25zdCBmaWx0ZXJlZENvbG9yUGFsZXR0ZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvbG9yUGFsZXR0ZXM/LmZpbHRlcihcbiAgICAgICAgICBwYWxldHRlID0+XG4gICAgICAgICAgICBwYWxldHRlSXNUeXBlKHBhbGV0dGUsIHR5cGUpICYmXG4gICAgICAgICAgICBwYWxldHRlSXNTdGVwcyhwYWxldHRlLCBzdGVwcykgJiZcbiAgICAgICAgICAgIHBhbGV0dGVJc0NvbG9yQmxpbmRTYWZlKHBhbGV0dGUsIGNvbG9yQmxpbmRTYWZlKVxuICAgICAgICApID8/IFtdXG4gICAgICApO1xuICAgIH0sIFtjb2xvclBhbGV0dGVzLCBjb2xvckJsaW5kU2FmZSwgc3RlcHMsIHR5cGVdKTtcblxuICAgIGNvbnN0IF91cGRhdGVDb25maWcgPSB1c2VDYWxsYmFjayhcbiAgICAgICh7a2V5LCB2YWx1ZX0pID0+IHtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe2NvbG9yUmFuZ2VDb25maWc6IHtba2V5XTogdmFsdWV9fSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG5cbiAgICBjb25zdCBfb25DdXN0b21QYWxldHRlQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7Y3VzdG9tOiBmYWxzZX1cbiAgICAgIH0pO1xuICAgIH0sIFtzZXRDb2xvclBhbGV0dGVVSV0pO1xuXG4gICAgY29uc3QgX29uQXBwbHkgPSB1c2VDYWxsYmFjayhcbiAgICAgIGUgPT4gb25TZWxlY3RDb2xvclJhbmdlKGN1c3RvbVBhbGV0dGUsIGUpLFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIG9uU2VsZWN0Q29sb3JSYW5nZV1cbiAgICApO1xuXG4gICAgY29uc3QgX29uU2VsZWN0UGFsZXR0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGNvbG9yUGFsZXR0ZSwgZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDb2xvclJhbmdlID0gdXBkYXRlQ29sb3JSYW5nZUJ5U2VsZWN0ZWRQYWxldHRlKHNlbGVjdGVkQ29sb3JSYW5nZSwgY29sb3JQYWxldHRlLCB7XG4gICAgICAgICAgc3RlcHMsXG4gICAgICAgICAgcmV2ZXJzZWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb25TZWxlY3RDb2xvclJhbmdlKG5ld0NvbG9yUmFuZ2UsIGUpO1xuICAgICAgfSxcbiAgICAgIFtzZWxlY3RlZENvbG9yUmFuZ2UsIHJldmVyc2VkLCBzdGVwcywgb25TZWxlY3RDb2xvclJhbmdlXVxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3I+XG4gICAgICAgIDxTdHlsZWRDb2xvckNvbmZpZz5cbiAgICAgICAgICB7KGNvbG9yUmFuZ2VDb25maWcuY3VzdG9tID8gWydjdXN0b20nXSA6IE9iamVjdC5rZXlzKGNvbG9yUmFuZ2VDb25maWcpKS5tYXAoa2V5ID0+XG4gICAgICAgICAgICBDT05GSUdfU0VUVElOR1Nba2V5XSA/IChcbiAgICAgICAgICAgICAgPFBhbGV0dGVDb25maWdcbiAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICBwcm9wPXtrZXl9XG4gICAgICAgICAgICAgICAgbGFiZWw9e0NPTkZJR19TRVRUSU5HU1trZXldLmxhYmVsIHx8IGtleX1cbiAgICAgICAgICAgICAgICBjb25maWc9e0NPTkZJR19TRVRUSU5HU1trZXldfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtjb2xvclJhbmdlQ29uZmlnW2tleV19XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e191cGRhdGVDb25maWd9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e1xuICAgICAgICAgICAgICAgICAgQ09ORklHX1NFVFRJTkdTW2tleV0uZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgPyBDT05GSUdfU0VUVElOR1Nba2V5XS5kaXNhYmxlZChzZWxlY3RlZENvbG9yUmFuZ2UpXG4gICAgICAgICAgICAgICAgICAgIDogZmFsc2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVhc29uPXtDT05GSUdfU0VUVElOR1Nba2V5XS5yZWFzb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkQ29sb3JDb25maWc+XG4gICAgICAgIHtjb2xvclJhbmdlQ29uZmlnLmN1c3RvbSA/IChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFN0eWxlZENvbG9yUGFsZXR0ZT5cbiAgICAgICAgICAgICAgPENvbG9yUGFsZXR0ZVBhbmVsIGNvbG9ycz17Y3VzdG9tUGFsZXR0ZS5jb2xvcnN9IC8+XG4gICAgICAgICAgICA8L1N0eWxlZENvbG9yUGFsZXR0ZT5cbiAgICAgICAgICAgIDxDdXN0b21QYWxldHRlXG4gICAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU9e2N1c3RvbVBhbGV0dGV9XG4gICAgICAgICAgICAgIHNob3dTa2V0Y2hlcj17c2hvd1NrZXRjaGVyfVxuICAgICAgICAgICAgICBvbkFwcGx5PXtfb25BcHBseX1cbiAgICAgICAgICAgICAgc2V0Q29sb3JQYWxldHRlVUk9e3NldENvbG9yUGFsZXR0ZVVJfVxuICAgICAgICAgICAgICBvbkNhbmNlbD17X29uQ3VzdG9tUGFsZXR0ZUNhbmNlbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19ncm91cFwiPlxuICAgICAgICAgICAge2ZpbHRlcmVkQ29sb3JQYWxldHRlcy5tYXAoKGNvbG9yUGFsZXR0ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICA8Q29sb3JQYWxldHRlSXRlbVxuICAgICAgICAgICAgICAgIGtleT17YCR7Y29sb3JQYWxldHRlLm5hbWV9LSR7aX1gfVxuICAgICAgICAgICAgICAgIGNvbG9yUGFsZXR0ZT17Y29sb3JQYWxldHRlfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3JSYW5nZT17c2VsZWN0ZWRDb2xvclJhbmdlfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtfb25TZWxlY3RQYWxldHRlfVxuICAgICAgICAgICAgICAgIHJldmVyc2VkPXtyZXZlcnNlZH1cbiAgICAgICAgICAgICAgICBzdGVwcz17c3RlcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yPlxuICAgICk7XG4gIH07XG5cbiAgQ29sb3JSYW5nZVNlbGVjdG9yLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb2xvclBhbGV0dGVzOiBLRVBMRVJfQ09MT1JfUEFMRVRURVMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIG9uU2VsZWN0Q29sb3JSYW5nZTogKCkgPT4ge30sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHNldENvbG9yUGFsZXR0ZVVJOiAoKSA9PiB7fVxuICB9O1xuXG4gIHJldHVybiBDb2xvclJhbmdlU2VsZWN0b3I7XG59XG5cbmV4cG9ydCBjb25zdCBQYWxldHRlQ29uZmlnOiBSZWFjdC5GQzxQYWxldHRlQ29uZmlnUHJvcHM+ID0gKHtcbiAgcHJvcCxcbiAgbGFiZWwsXG4gIHZhbHVlLFxuICBjb25maWc6IHt0eXBlLCBvcHRpb25zfSxcbiAgb25DaGFuZ2UsXG4gIGRpc2FibGVkLFxuICByZWFzb25cbn0pID0+IHtcbiAgY29uc3QgdXBkYXRlU2VsZWN0ID0gdXNlQ2FsbGJhY2sodmFsID0+IG9uQ2hhbmdlKHtrZXk6IHByb3AsIHZhbHVlOiB2YWx9KSwgW29uQ2hhbmdlLCBwcm9wXSk7XG4gIGNvbnN0IHVwZGF0ZVN3aXRjaCA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IG9uQ2hhbmdlKHtrZXk6IHByb3AsIHZhbHVlOiAhdmFsdWV9KSxcbiAgICBbb25DaGFuZ2UsIHByb3AsIHZhbHVlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFBhbGV0dGVDb25maWcgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fY29uZmlnXCIgb25DbGljaz17ZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbFwiPlxuICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YGNvbG9yLiR7bGFiZWx9YH0gLz5cbiAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fc2VsZWN0XCJcbiAgICAgICAgZGF0YS10aXBcbiAgICAgICAgZGF0YS1mb3I9e2Bjb2xvci1yYW5nZS1jb25maWctJHtwcm9wfWB9XG4gICAgICA+XG4gICAgICAgIHt0eXBlID09PSAnc2VsZWN0JyAmJiAoXG4gICAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dmFsdWV9XG4gICAgICAgICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICBvbkNoYW5nZT17dXBkYXRlU2VsZWN0fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgaW5wdXRUaGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHt0eXBlID09PSAnc3dpdGNoJyAmJiAoXG4gICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgY2hlY2tlZD17Qm9vbGVhbih2YWx1ZSl9XG4gICAgICAgICAgICBpZD17YCR7bGFiZWx9LXRvZ2dsZWB9XG4gICAgICAgICAgICBvbkNoYW5nZT17dXBkYXRlU3dpdGNofVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge2Rpc2FibGVkICYmIHJlYXNvbiA/IChcbiAgICAgICAgICA8VG9vbHRpcCBpZD17YGNvbG9yLXJhbmdlLWNvbmZpZy0ke3Byb3B9YH0gcGxhY2U9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e21heFdpZHRoOiAnMjE0cHgnfX0+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtyZWFzb259IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgPC9TdHlsZWRQYWxldHRlQ29uZmlnPlxuICApO1xufTtcbmNvbnN0IFN0eWxlZENvbG9yUmFuZ2UgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY29sb3ItcGFsZXR0ZS1vdXRlcidcbn0pYFxuICBwYWRkaW5nOiAwIDhweDtcbiAgOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbnR5cGUgQ29sb3JQYWxldHRlSXRlbVByb3BzID0ge1xuICByZXZlcnNlZD86IGJvb2xlYW47XG4gIHNlbGVjdGVkPzogQ29sb3JSYW5nZTtcbiAgY29sb3JQYWxldHRlOiBDb2xvclBhbGV0dGU7XG4gIHNlbGVjdGVkQ29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgb25TZWxlY3Q6IChjb2xvclBhbGV0dGU6IENvbG9yUGFsZXR0ZSwgZTogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgc3RlcHM6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb2xvclBhbGV0dGVJdGVtOiBSZWFjdC5GQzxDb2xvclBhbGV0dGVJdGVtUHJvcHM+ID0gKHtcbiAgY29sb3JQYWxldHRlLFxuICBzdGVwcyxcbiAgc2VsZWN0ZWRDb2xvclJhbmdlLFxuICBvblNlbGVjdCxcbiAgcmV2ZXJzZWRcbn0pID0+IHtcbiAgY29uc3QgY29sb3JzID0gdXNlTWVtbygoKSA9PiBjb2xvclBhbGV0dGUuY29sb3JzKHN0ZXBzKSwgW2NvbG9yUGFsZXR0ZSwgc3RlcHNdKTtcbiAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKGUgPT4gb25TZWxlY3QoY29sb3JQYWxldHRlLCBlKSwgW2NvbG9yUGFsZXR0ZSwgb25TZWxlY3RdKTtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29sb3JSYW5nZSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxDb2xvclBhbGV0dGVQYW5lbFxuICAgICAgICBjb2xvcnM9e2NvbG9yc31cbiAgICAgICAgaXNSZXZlcnNlZD17cmV2ZXJzZWR9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2NvbG9yUGFsZXR0ZS5uYW1lID09PSBzZWxlY3RlZENvbG9yUmFuZ2UubmFtZX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRDb2xvclJhbmdlPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFPQSxJQUFBTSxhQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxrQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsY0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQVcsUUFBQSxHQUFBWCxPQUFBO0FBQStCLElBQUFZLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUF0Qi9CO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQW5CLHdCQUFBbUIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxH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
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ColorRange } from '@kepler.gl/constants';
|
|
3
|
+
import { Layer, VisualChannelDomain } from '@kepler.gl/layers';
|
|
4
|
+
import { ColorUI, Field } from '@kepler.gl/types';
|
|
5
|
+
import ColorBreaksPanelFactory, { ColorBreaksPanelProps } from './color-breaks-panel';
|
|
6
|
+
import { SetColorUIFunc } from './custom-palette';
|
|
7
|
+
import { KeplerTable } from '@kepler.gl/table';
|
|
8
|
+
export declare type ScaleOption = {
|
|
9
|
+
label: string;
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
export declare type OnSelectFunc = (v: string, visConfg?: Record<string, any>) => void;
|
|
13
|
+
export declare type ContextProps = ColorBreaksPanelProps;
|
|
14
|
+
export declare type ColorScaleSelectorProps = {
|
|
15
|
+
layer: Layer;
|
|
16
|
+
field: Field;
|
|
17
|
+
dataset: KeplerTable;
|
|
18
|
+
scaleType: string;
|
|
19
|
+
domain: VisualChannelDomain;
|
|
20
|
+
range: ColorRange;
|
|
21
|
+
onSelect: OnSelectFunc;
|
|
22
|
+
setColorUI: SetColorUIFunc;
|
|
23
|
+
colorUIConfig: ColorUI;
|
|
24
|
+
options: ScaleOption[];
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
selectedItems: ScaleOption[];
|
|
27
|
+
multiSelect: boolean;
|
|
28
|
+
searchable: boolean;
|
|
29
|
+
displayOption: string;
|
|
30
|
+
getOptionValue: string;
|
|
31
|
+
};
|
|
32
|
+
declare function ColorScaleSelectorFactory(ColorBreaksPanel: ReturnType<typeof ColorBreaksPanelFactory>): React.FC<ColorScaleSelectorProps>;
|
|
33
|
+
declare namespace ColorScaleSelectorFactory {
|
|
34
|
+
var deps: (typeof ColorBreaksPanelFactory)[];
|
|
35
|
+
}
|
|
36
|
+
export default ColorScaleSelectorFactory;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
var _components = require("@kepler.gl/components");
|
|
16
|
+
var _constants = require("@kepler.gl/constants");
|
|
17
|
+
var _utils = require("@kepler.gl/utils");
|
|
18
|
+
var _colorBreaksPanel = _interopRequireDefault(require("./color-breaks-panel"));
|
|
19
|
+
var _dropdownSelect = _interopRequireDefault(require("../../common/item-selector/dropdown-select"));
|
|
20
|
+
var _excluded = ["layer", "field", "dataset", "onSelect", "scaleType", "domain", "range", "setColorUI", "colorUIConfig"],
|
|
21
|
+
_excluded2 = ["colorMap"];
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
23
|
+
// Copyright contributors to the kepler.gl project
|
|
24
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
25
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
26
|
+
var DropdownPropContext = /*#__PURE__*/_react["default"].createContext({});
|
|
27
|
+
var POPPER_OPTIONS = {
|
|
28
|
+
modifiers: [
|
|
29
|
+
// zero offsets since they are already added in VerticalToolbar
|
|
30
|
+
{
|
|
31
|
+
name: 'offset',
|
|
32
|
+
options: {
|
|
33
|
+
offset: [0, 0]
|
|
34
|
+
}
|
|
35
|
+
}]
|
|
36
|
+
};
|
|
37
|
+
var DropdownBottom = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border-top: 1px solid\n ", ";\n"])), function (props) {
|
|
38
|
+
return props.light ? props.theme.dropdownListBorderTopLT : props.theme.dropdownListBorderTop;
|
|
39
|
+
});
|
|
40
|
+
var StyledScaleSelectDropdown = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-shadow: ", ";\n .list-selector {\n box-shadow: none;\n border-top: 0;\n }\n .list__item {\n padding: 4px 9px;\n }\n"])), function (props) {
|
|
41
|
+
return props.theme.dropdownListShadow;
|
|
42
|
+
});
|
|
43
|
+
var DropdownWrapper = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: 100%;\n left: 0;\n z-index: ", ";\n position: absolute;\n margin-top: ", "px;\n"])), function (props) {
|
|
44
|
+
return props.theme.dropdownWrapperZ;
|
|
45
|
+
}, function (props) {
|
|
46
|
+
return props.theme.dropdownWapperMargin;
|
|
47
|
+
});
|
|
48
|
+
var StyledColorScaleSelector = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n .typeahead {\n // adds padding to bottom of dropdown\n margin-bottom: 40px;\n }\n [data-tippy-root] {\n width: 100%;\n }\n"])));
|
|
49
|
+
function hideTippy(tippyInstance) {
|
|
50
|
+
if (tippyInstance) {
|
|
51
|
+
tippyInstance.hide();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
ColorScaleSelectorFactory.deps = [_colorBreaksPanel["default"]];
|
|
55
|
+
function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
56
|
+
var ColorScaleSelectDropdown = function ColorScaleSelectDropdown(props) {
|
|
57
|
+
return /*#__PURE__*/_react["default"].createElement(StyledScaleSelectDropdown, null, /*#__PURE__*/_react["default"].createElement(_components.DropdownList, props), /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Consumer, null, function (context) {
|
|
58
|
+
return /*#__PURE__*/_react["default"].createElement(DropdownBottom, null, /*#__PURE__*/_react["default"].createElement(ColorBreaksPanel, context));
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
var ColorScaleSelector = function ColorScaleSelector(_ref) {
|
|
62
|
+
var _colorUIConfig$colorR;
|
|
63
|
+
var layer = _ref.layer,
|
|
64
|
+
field = _ref.field,
|
|
65
|
+
dataset = _ref.dataset,
|
|
66
|
+
onSelect = _ref.onSelect,
|
|
67
|
+
scaleType = _ref.scaleType,
|
|
68
|
+
domain = _ref.domain,
|
|
69
|
+
range = _ref.range,
|
|
70
|
+
setColorUI = _ref.setColorUI,
|
|
71
|
+
colorUIConfig = _ref.colorUIConfig,
|
|
72
|
+
dropdownSelectProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
73
|
+
var displayOption = _components.Accessor.generateOptionToStringFor(dropdownSelectProps.displayOption);
|
|
74
|
+
var getOptionValue = (0, _react.useMemo)(function () {
|
|
75
|
+
return _components.Accessor.generateOptionToStringFor(dropdownSelectProps.getOptionValue);
|
|
76
|
+
}, [dropdownSelectProps.getOptionValue]);
|
|
77
|
+
var _useState = (0, _react.useState)(),
|
|
78
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
79
|
+
tippyInstance = _useState2[0],
|
|
80
|
+
setTippyInstance = _useState2[1];
|
|
81
|
+
var isEditingColorBreaks = colorUIConfig === null || colorUIConfig === void 0 || (_colorUIConfig$colorR = colorUIConfig.colorRangeConfig) === null || _colorUIConfig$colorR === void 0 ? void 0 : _colorUIConfig$colorR.customBreaks;
|
|
82
|
+
var colorScale = (0, _react.useMemo)(function () {
|
|
83
|
+
return (0, _utils.getLayerColorScale)({
|
|
84
|
+
range: range,
|
|
85
|
+
domain: domain,
|
|
86
|
+
scaleType: scaleType,
|
|
87
|
+
layer: layer
|
|
88
|
+
});
|
|
89
|
+
}, [range, domain, scaleType, layer]);
|
|
90
|
+
var colorBreaks = (0, _react.useMemo)(function () {
|
|
91
|
+
return colorScale ? (0, _utils.getLegendOfScale)({
|
|
92
|
+
scale: colorScale,
|
|
93
|
+
scaleType: scaleType,
|
|
94
|
+
fieldType: field.type
|
|
95
|
+
}) : null;
|
|
96
|
+
}, [colorScale, scaleType, field.type]);
|
|
97
|
+
var onSelectScale = (0, _react.useCallback)(function (val) {
|
|
98
|
+
// highlight selected option
|
|
99
|
+
if (getOptionValue(val) === _constants.SCALE_TYPES.custom) {
|
|
100
|
+
// update custom breaks
|
|
101
|
+
var customPalette = {
|
|
102
|
+
name: 'color.customPalette',
|
|
103
|
+
type: 'custom',
|
|
104
|
+
category: 'Custom',
|
|
105
|
+
colors: range.colors,
|
|
106
|
+
colorMap: range.colorMap ? range.colorMap : colorBreaks ? (0, _utils.colorBreaksToColorMap)(colorBreaks) : undefined
|
|
107
|
+
};
|
|
108
|
+
setColorUI({
|
|
109
|
+
showColorChart: true,
|
|
110
|
+
colorRangeConfig: {
|
|
111
|
+
customBreaks: true
|
|
112
|
+
},
|
|
113
|
+
customPalette: customPalette
|
|
114
|
+
});
|
|
115
|
+
onSelect(_constants.SCALE_TYPES.custom, customPalette);
|
|
116
|
+
} else {
|
|
117
|
+
// not custom
|
|
118
|
+
if (isEditingColorBreaks) {
|
|
119
|
+
setColorUI({
|
|
120
|
+
colorRangeConfig: {
|
|
121
|
+
customBreaks: false
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if ((0, _utils.hasColorMap)(range)) {
|
|
126
|
+
// remove custom breaks
|
|
127
|
+
// eslint-disable-next-line no-unused-vars
|
|
128
|
+
var _ = range.colorMap,
|
|
129
|
+
newRange = (0, _objectWithoutProperties2["default"])(range, _excluded2);
|
|
130
|
+
onSelect(getOptionValue(val), newRange);
|
|
131
|
+
} else {
|
|
132
|
+
onSelect(getOptionValue(val));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}, [setColorUI, onSelect, range, getOptionValue, isEditingColorBreaks, colorBreaks]);
|
|
136
|
+
var onApply = (0, _react.useCallback)(function () {
|
|
137
|
+
onSelect(_constants.SCALE_TYPES.custom, colorUIConfig.customPalette);
|
|
138
|
+
hideTippy(tippyInstance);
|
|
139
|
+
}, [onSelect, colorUIConfig.customPalette, tippyInstance]);
|
|
140
|
+
var onCancel = (0, _react.useCallback)(function () {
|
|
141
|
+
hideTippy(tippyInstance);
|
|
142
|
+
}, [tippyInstance]);
|
|
143
|
+
var isCustomBreaks = scaleType === _constants.SCALE_TYPES.custom;
|
|
144
|
+
return /*#__PURE__*/_react["default"].createElement(DropdownPropContext.Provider, {
|
|
145
|
+
value: {
|
|
146
|
+
setColorUI: setColorUI,
|
|
147
|
+
colorField: field,
|
|
148
|
+
dataset: dataset,
|
|
149
|
+
colorUIConfig: colorUIConfig,
|
|
150
|
+
colorBreaks: colorBreaks,
|
|
151
|
+
isCustomBreaks: isCustomBreaks,
|
|
152
|
+
onScaleChange: onSelect,
|
|
153
|
+
onApply: onApply,
|
|
154
|
+
onCancel: onCancel
|
|
155
|
+
}
|
|
156
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledColorScaleSelector, null, /*#__PURE__*/_react["default"].createElement(_components.LazyTippy, {
|
|
157
|
+
trigger: "click",
|
|
158
|
+
placement: "bottom-start",
|
|
159
|
+
appendTo: "parent",
|
|
160
|
+
interactive: true,
|
|
161
|
+
hideOnClick: !isEditingColorBreaks,
|
|
162
|
+
onCreate: setTippyInstance,
|
|
163
|
+
popperOptions: POPPER_OPTIONS,
|
|
164
|
+
render: function render(attrs) {
|
|
165
|
+
return /*#__PURE__*/_react["default"].createElement(DropdownWrapper, attrs, !dropdownSelectProps.disabled && /*#__PURE__*/_react["default"].createElement(_components.Typeahead, (0, _extends2["default"])({}, dropdownSelectProps, {
|
|
166
|
+
displayOption: displayOption
|
|
167
|
+
// @ts-ignore
|
|
168
|
+
,
|
|
169
|
+
getOptionValue: getOptionValue,
|
|
170
|
+
onOptionSelected: onSelectScale,
|
|
171
|
+
customListComponent: ColorScaleSelectDropdown,
|
|
172
|
+
searchable: false,
|
|
173
|
+
showOptionsWhenEmpty: true
|
|
174
|
+
})));
|
|
175
|
+
}
|
|
176
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
177
|
+
className: "dropdown-select"
|
|
178
|
+
}, /*#__PURE__*/_react["default"].createElement(_dropdownSelect["default"], (0, _extends2["default"])({}, dropdownSelectProps, {
|
|
179
|
+
displayOption: displayOption,
|
|
180
|
+
value: dropdownSelectProps.selectedItems[0]
|
|
181
|
+
}))))));
|
|
182
|
+
};
|
|
183
|
+
return ColorScaleSelector;
|
|
184
|
+
}
|
|
185
|
+
var _default = exports["default"] = ColorScaleSelectorFactory;
|
|
186
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfY29sb3JCcmVha3NQYW5lbCIsIl9kcm9wZG93blNlbGVjdCIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkRyb3Bkb3duTGlzdCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwicmFuZ2UiLCJzZXRDb2xvclVJIiwiY29sb3JVSUNvbmZpZyIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJnZXRMZWdlbmRPZlNjYWxlIiwic2NhbGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwib25TZWxlY3RTY2FsZSIsInVzZUNhbGxiYWNrIiwidmFsIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJjb2xvck1hcCIsImNvbG9yQnJlYWtzVG9Db2xvck1hcCIsInVuZGVmaW5lZCIsInNob3dDb2xvckNoYXJ0IiwiaGFzQ29sb3JNYXAiLCJfIiwibmV3UmFuZ2UiLCJvbkFwcGx5Iiwib25DYW5jZWwiLCJpc0N1c3RvbUJyZWFrcyIsIlByb3ZpZGVyIiwidmFsdWUiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsIkxhenlUaXBweSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiVHlwZWFoZWFkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QWNjZXNzb3IsIERyb3Bkb3duTGlzdCwgTGF6eVRpcHB5LCBUeXBlYWhlYWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIFNDQUxFX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyLCBWaXN1YWxDaGFubmVsRG9tYWlufSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0NvbG9yVUksIEZpZWxkLCBOZXN0ZWRQYXJ0aWFsfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Y29sb3JCcmVha3NUb0NvbG9yTWFwLCBnZXRMYXllckNvbG9yU2NhbGUsIGdldExlZ2VuZE9mU2NhbGUsIGhhc0NvbG9yTWFwfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCBDb2xvckJyZWFrc1BhbmVsRmFjdG9yeSwge0NvbG9yQnJlYWtzUGFuZWxQcm9wc30gZnJvbSAnLi9jb2xvci1icmVha3MtcGFuZWwnO1xuaW1wb3J0IHtTZXRDb2xvclVJRnVuY30gZnJvbSAnLi9jdXN0b20tcGFsZXR0ZSc7XG5pbXBvcnQgRHJvcGRvd25TZWxlY3QgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tc2VsZWN0JztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHR5cGUge0luc3RhbmNlIGFzIFRpcHB5SW5zdGFuY2V9IGZyb20gJ3RpcHB5LmpzJztcblxuZXhwb3J0IHR5cGUgU2NhbGVPcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT25TZWxlY3RGdW5jID0gKHY6IHN0cmluZywgdmlzQ29uZmc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0UHJvcHMgPSBDb2xvckJyZWFrc1BhbmVsUHJvcHM7XG5cbmV4cG9ydCB0eXBlIENvbG9yU2NhbGVTZWxlY3RvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGZpZWxkOiBGaWVsZDtcbiAgZGF0YXNldDogS2VwbGVyVGFibGU7XG4gIHNjYWxlVHlwZTogc3RyaW5nO1xuICBkb21haW46IFZpc3VhbENoYW5uZWxEb21haW47XG4gIHJhbmdlOiBDb2xvclJhbmdlO1xuICBvblNlbGVjdDogT25TZWxlY3RGdW5jO1xuICBzZXRDb2xvclVJOiBTZXRDb2xvclVJRnVuYztcbiAgY29sb3JVSUNvbmZpZzogQ29sb3JVSTtcbiAgb3B0aW9uczogU2NhbGVPcHRpb25bXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZEl0ZW1zOiBTY2FsZU9wdGlvbltdO1xuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbjogc3RyaW5nO1xuICBnZXRPcHRpb25WYWx1ZTogc3RyaW5nO1xufTtcblxuY29uc3QgRHJvcGRvd25Qcm9wQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuY29uc3QgUE9QUEVSX09QVElPTlMgPSB7XG4gIG1vZGlmaWVyczogW1xuICAgIC8vIHplcm8gb2Zmc2V0cyBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IGFkZGVkIGluIFZlcnRpY2FsVG9vbGJhclxuICAgIHtuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczoge29mZnNldDogWzAsIDBdfX1cbiAgXVxufTtcblxuY29uc3QgRHJvcGRvd25Cb3R0b20gPSBzdHlsZWQuZGl2PHtsaWdodD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG5gO1xuXG5jb25zdCBTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RTaGFkb3d9O1xuICAubGlzdC1zZWxlY3RvciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gIC5saXN0X19pdGVtIHtcbiAgICBwYWRkaW5nOiA0cHggOXB4O1xuICB9XG5gO1xuY29uc3QgRHJvcGRvd25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAudHlwZWFoZWFkIHtcbiAgICAvLyBhZGRzIHBhZGRpbmcgdG8gYm90dG9tIG9mIGRyb3Bkb3duXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuICBbZGF0YS10aXBweS1yb290XSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmA7XG5cbmZ1bmN0aW9uIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKSB7XG4gIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gIH1cbn1cbkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtDb2xvckJyZWFrc1BhbmVsRmFjdG9yeV07XG5cbmZ1bmN0aW9uIENvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkoXG4gIENvbG9yQnJlYWtzUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5PlxuKTogUmVhY3QuRkM8Q29sb3JTY2FsZVNlbGVjdG9yUHJvcHM+IHtcbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duID0gcHJvcHMgPT4gKFxuICAgIDxTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duPlxuICAgICAgPERyb3Bkb3duTGlzdCB7Li4ucHJvcHN9IC8+XG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyhjb250ZXh0OiBhbnkpID0+IChcbiAgICAgICAgICA8RHJvcGRvd25Cb3R0b20+XG4gICAgICAgICAgICA8Q29sb3JCcmVha3NQYW5lbCB7Li4uY29udGV4dH0gLz5cbiAgICAgICAgICA8L0Ryb3Bkb3duQm90dG9tPlxuICAgICAgICApfVxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LkNvbnN1bWVyPlxuICAgIDwvU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgKTtcblxuICBjb25zdCBDb2xvclNjYWxlU2VsZWN0b3I6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgZmllbGQsXG4gICAgZGF0YXNldCxcbiAgICBvblNlbGVjdCxcbiAgICBzY2FsZVR5cGUsXG4gICAgZG9tYWluLFxuICAgIHJhbmdlLFxuICAgIHNldENvbG9yVUksXG4gICAgY29sb3JVSUNvbmZpZyxcbiAgICAuLi5kcm9wZG93blNlbGVjdFByb3BzXG4gIH0pID0+IHtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IGdldE9wdGlvblZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZSksXG4gICAgICBbZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZV1cbiAgICApO1xuICAgIGNvbnN0IFt0aXBweUluc3RhbmNlLCBzZXRUaXBweUluc3RhbmNlXSA9IHVzZVN0YXRlPFRpcHB5SW5zdGFuY2U+KCk7XG4gICAgY29uc3QgaXNFZGl0aW5nQ29sb3JCcmVha3MgPSBjb2xvclVJQ29uZmlnPy5jb2xvclJhbmdlQ29uZmlnPy5jdXN0b21CcmVha3M7XG4gICAgY29uc3QgY29sb3JTY2FsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBnZXRMYXllckNvbG9yU2NhbGUoe1xuICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBzY2FsZVR5cGUsXG4gICAgICAgICAgbGF5ZXJcbiAgICAgICAgfSksXG4gICAgICBbcmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBsYXllcl1cbiAgICApO1xuXG4gICAgY29uc3QgY29sb3JCcmVha3MgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgY29sb3JTY2FsZSA/IGdldExlZ2VuZE9mU2NhbGUoe3NjYWxlOiBjb2xvclNjYWxlLCBzY2FsZVR5cGUsIGZpZWxkVHlwZTogZmllbGQudHlwZX0pIDogbnVsbCxcbiAgICAgIFtjb2xvclNjYWxlLCBzY2FsZVR5cGUsIGZpZWxkLnR5cGVdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0U2NhbGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBvcHRpb25cbiAgICAgICAgaWYgKGdldE9wdGlvblZhbHVlKHZhbCkgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSkge1xuICAgICAgICAgIC8vIHVwZGF0ZSBjdXN0b20gYnJlYWtzXG4gICAgICAgICAgY29uc3QgY3VzdG9tUGFsZXR0ZTogTmVzdGVkUGFydGlhbDxDb2xvclJhbmdlPiA9IHtcbiAgICAgICAgICAgIG5hbWU6ICdjb2xvci5jdXN0b21QYWxldHRlJyxcbiAgICAgICAgICAgIHR5cGU6ICdjdXN0b20nLFxuICAgICAgICAgICAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICAgICAgICAgICAgY29sb3JzOiByYW5nZS5jb2xvcnMsXG4gICAgICAgICAgICBjb2xvck1hcDogcmFuZ2UuY29sb3JNYXBcbiAgICAgICAgICAgICAgPyByYW5nZS5jb2xvck1hcFxuICAgICAgICAgICAgICA6IGNvbG9yQnJlYWtzXG4gICAgICAgICAgICAgID8gY29sb3JCcmVha3NUb0NvbG9yTWFwKGNvbG9yQnJlYWtzKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG9uU2VsZWN0KFNDQUxFX1RZUEVTLmN1c3RvbSwgY3VzdG9tUGFsZXR0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gbm90IGN1c3RvbVxuICAgICAgICAgIGlmIChpc0VkaXRpbmdDb2xvckJyZWFrcykge1xuICAgICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgICBjdXN0b21CcmVha3M6IGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGFzQ29sb3JNYXAocmFuZ2UpKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgY3VzdG9tIGJyZWFrc1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICAgICAgICBjb25zdCB7Y29sb3JNYXA6IF8sIC4uLm5ld1JhbmdlfSA9IHJhbmdlO1xuICAgICAgICAgICAgb25TZWxlY3QoZ2V0T3B0aW9uVmFsdWUodmFsKSwgbmV3UmFuZ2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvblNlbGVjdChnZXRPcHRpb25WYWx1ZSh2YWwpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JVSSwgb25TZWxlY3QsIHJhbmdlLCBnZXRPcHRpb25WYWx1ZSwgaXNFZGl0aW5nQ29sb3JCcmVha3MsIGNvbG9yQnJlYWtzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFwcGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25TZWxlY3QoU0NBTEVfVFlQRVMuY3VzdG9tLCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUpO1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFtvblNlbGVjdCwgY29sb3JVSUNvbmZpZy5jdXN0b21QYWxldHRlLCB0aXBweUluc3RhbmNlXSk7XG5cbiAgICBjb25zdCBvbkNhbmNlbCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKTtcbiAgICB9LCBbdGlwcHlJbnN0YW5jZV0pO1xuXG4gICAgY29uc3QgaXNDdXN0b21CcmVha3MgPSBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlclxuICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgIHNldENvbG9yVUksXG4gICAgICAgICAgY29sb3JGaWVsZDogZmllbGQsXG4gICAgICAgICAgZGF0YXNldCxcbiAgICAgICAgICBjb2xvclVJQ29uZmlnLFxuICAgICAgICAgIGNvbG9yQnJlYWtzLFxuICAgICAgICAgIGlzQ3VzdG9tQnJlYWtzLFxuICAgICAgICAgIG9uU2NhbGVDaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgICAgIG9uQXBwbHksXG4gICAgICAgICAgb25DYW5jZWxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgICAgICA8TGF6eVRpcHB5XG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwicGFyZW50XCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAgICAgaGlkZU9uQ2xpY2s9eyFpc0VkaXRpbmdDb2xvckJyZWFrc31cbiAgICAgICAgICAgIG9uQ3JlYXRlPXtzZXRUaXBweUluc3RhbmNlfVxuICAgICAgICAgICAgcG9wcGVyT3B0aW9ucz17UE9QUEVSX09QVElPTlN9XG4gICAgICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICAgICAgPERyb3Bkb3duV3JhcHBlciB7Li4uYXR0cnN9PlxuICAgICAgICAgICAgICAgIHsvKkB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgICB7IWRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uU2VsZWN0U2NhbGV9XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e0NvbG9yU2NhbGVTZWxlY3REcm9wZG93bn1cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25XcmFwcGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLXNlbGVjdFwiPlxuICAgICAgICAgICAgICB7LypAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdFxuICAgICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgdmFsdWU9e2Ryb3Bkb3duU2VsZWN0UHJvcHMuc2VsZWN0ZWRJdGVtc1swXX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvTGF6eVRpcHB5PlxuICAgICAgICA8L1N0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgIDwvRHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlcj5cbiAgICApO1xuICB9O1xuICByZXR1cm4gQ29sb3JTY2FsZVNlbGVjdG9yO1xufVxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTY2FsZVNlbGVjdG9yRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUdBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTyxlQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFBd0UsSUFBQVEsU0FBQTtFQUFBQyxVQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWJ4RTtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFoQix3QkFBQWdCLENB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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ColorRange } from '@kepler.gl/constants';
|
|
2
|
+
import { ColorUI, NestedPartial, RGBAColor, RGBColor } from '@kepler.gl/types';
|
|
3
|
+
import { ComponentType } from 'react';
|
|
4
|
+
import RangeSliderFactory from '../../common/range-slider';
|
|
5
|
+
import ColorRangeSelectorFactory from './color-range-selector';
|
|
6
|
+
declare type ColorSelectorInputProps = {
|
|
7
|
+
active: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
inputTheme?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare type ColorSet = {
|
|
12
|
+
selectedColor: RGBColor | RGBAColor | ColorRange;
|
|
13
|
+
setColor: (v: RGBColor | RGBAColor | ColorRange) => void;
|
|
14
|
+
isRange?: boolean;
|
|
15
|
+
label?: string;
|
|
16
|
+
};
|
|
17
|
+
declare type ColorSelectorProps = {
|
|
18
|
+
colorSets: ColorSet[];
|
|
19
|
+
colorUI?: ColorUI;
|
|
20
|
+
inputTheme?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
useOpacity?: boolean;
|
|
23
|
+
setColorUI?: (newConfig: NestedPartial<ColorUI>) => void;
|
|
24
|
+
};
|
|
25
|
+
export declare const ColorBlock: import("styled-components").StyledComponent<"div", any, {
|
|
26
|
+
backgroundcolor: RGBColor;
|
|
27
|
+
}, never>;
|
|
28
|
+
export declare const ColorSelectorInput: import("styled-components").StyledComponent<"div", any, ColorSelectorInputProps, never>;
|
|
29
|
+
export declare const InputBoxContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
30
|
+
declare function ColorSelectorFactory(ColorRangeSelector: any, RangeSlider: any): ComponentType<ColorSelectorProps>;
|
|
31
|
+
declare namespace ColorSelectorFactory {
|
|
32
|
+
var deps: (typeof RangeSliderFactory | typeof ColorRangeSelectorFactory)[];
|
|
33
|
+
}
|
|
34
|
+
export default ColorSelectorFactory;
|