@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.10
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/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-overlay.d.ts +17 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-utils.d.ts +53 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/cjs/annotations/annotation-node.js +145 -0
- package/dist/cjs/annotations/annotation-overlay.js +168 -0
- package/dist/cjs/annotations/annotation-panel.js +361 -0
- package/dist/cjs/annotations/annotation-text.js +149 -0
- package/dist/cjs/annotations/annotation-utils.js +197 -0
- package/dist/cjs/annotations/index.js +53 -0
- package/dist/cjs/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/cjs/annotations/lexical-editor/floating-link-editor.js +193 -0
- package/dist/cjs/annotations/lexical-editor/index.js +78 -0
- package/dist/cjs/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/cjs/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/cjs/annotations/lexical-editor/lexical-rich-text-editor.js +121 -0
- package/dist/cjs/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/cjs/annotations/lexical-editor/lexical-toolbar.js +292 -0
- package/dist/cjs/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/cjs/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/cjs/bottom-widget.js +183 -0
- package/dist/cjs/common/action-panel.js +133 -0
- package/dist/cjs/common/animation-control/animation-control.js +100 -0
- package/dist/cjs/common/animation-control/animation-controller.js +271 -0
- package/dist/cjs/common/animation-control/animation-speed-slider.js +63 -0
- package/dist/cjs/common/animation-control/animation-window-control.js +59 -0
- package/dist/cjs/common/animation-control/export-video-control.js +43 -0
- package/dist/cjs/common/animation-control/floating-time-display.js +131 -0
- package/dist/cjs/common/animation-control/play-control.js +50 -0
- package/dist/cjs/common/animation-control/playback-controls.js +164 -0
- package/dist/cjs/common/animation-control/reset-control.js +41 -0
- package/dist/cjs/common/animation-control/speed-control.js +51 -0
- package/dist/cjs/common/animation-control/window-action-control.js +57 -0
- package/dist/cjs/common/checkbox.js +101 -0
- package/dist/cjs/common/color-legend.js +272 -0
- package/dist/cjs/common/column-stats-chart.js +312 -0
- package/dist/cjs/common/data-table/button.js +38 -0
- package/dist/cjs/common/data-table/canvas.js +26 -0
- package/dist/cjs/common/data-table/cell-size.js +200 -0
- package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
- package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
- package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
- package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
- package/dist/cjs/common/data-table/display-format.js +125 -0
- package/dist/cjs/common/data-table/grid.js +106 -0
- package/dist/cjs/common/data-table/header-cell.js +227 -0
- package/dist/cjs/common/data-table/index.js +543 -0
- package/dist/cjs/common/data-table/option-dropdown.js +159 -0
- package/dist/cjs/common/dataset-label.js +27 -0
- package/dist/cjs/common/dnd-layer-items.js +22 -0
- package/dist/cjs/common/error-boundary.js +59 -0
- package/dist/cjs/common/field-selector.js +172 -0
- package/dist/cjs/common/field-token.js +43 -0
- package/dist/cjs/common/file-uploader/file-drop.js +180 -0
- package/dist/cjs/common/file-uploader/file-upload-progress.js +84 -0
- package/dist/cjs/common/file-uploader/file-upload.js +452 -0
- package/dist/cjs/common/file-uploader/upload-button.js +58 -0
- package/dist/cjs/common/flex-container.js +15 -0
- package/dist/cjs/common/histogram-plot.js +282 -0
- package/dist/cjs/common/icon-button.js +25 -0
- package/dist/cjs/common/icons/3d-models/airplane.js +103 -0
- package/dist/cjs/common/icons/3d-models/bicycle.js +425 -0
- package/dist/cjs/common/icons/3d-models/boeing.js +118 -0
- package/dist/cjs/common/icons/3d-models/car.js +109 -0
- package/dist/cjs/common/icons/3d-models/cargoship.js +245 -0
- package/dist/cjs/common/icons/3d-models/evtol.js +133 -0
- package/dist/cjs/common/icons/3d-models/glider.js +61 -0
- package/dist/cjs/common/icons/3d-models/helicopter.js +109 -0
- package/dist/cjs/common/icons/3d-models/scooter.js +158 -0
- package/dist/cjs/common/icons/3d-models/semitruck.js +176 -0
- package/dist/cjs/common/icons/3d-models/truck.js +121 -0
- package/dist/cjs/common/icons/add.js +40 -0
- package/dist/cjs/common/icons/anchor_window.js +41 -0
- package/dist/cjs/common/icons/annotation-text.js +55 -0
- package/dist/cjs/common/icons/arrow-down-alt.js +40 -0
- package/dist/cjs/common/icons/arrow-down-full.js +49 -0
- package/dist/cjs/common/icons/arrow-down-small.js +53 -0
- package/dist/cjs/common/icons/arrow-down.js +50 -0
- package/dist/cjs/common/icons/arrow-left.js +43 -0
- package/dist/cjs/common/icons/arrow-right.js +40 -0
- package/dist/cjs/common/icons/arrow-up-alt.js +41 -0
- package/dist/cjs/common/icons/arrow-up-solid.js +40 -0
- package/dist/cjs/common/icons/arrow-up.js +40 -0
- package/dist/cjs/common/icons/base-map.js +56 -0
- package/dist/cjs/common/icons/base.js +78 -0
- package/dist/cjs/common/icons/bug.js +70 -0
- package/dist/cjs/common/icons/calendar.js +48 -0
- package/dist/cjs/common/icons/cancel.js +40 -0
- package/dist/cjs/common/icons/checkmark.js +46 -0
- package/dist/cjs/common/icons/circle.js +54 -0
- package/dist/cjs/common/icons/clipboard.js +41 -0
- package/dist/cjs/common/icons/clock.js +42 -0
- package/dist/cjs/common/icons/close.js +46 -0
- package/dist/cjs/common/icons/cloud.js +50 -0
- package/dist/cjs/common/icons/code-alt.js +43 -0
- package/dist/cjs/common/icons/copy.js +51 -0
- package/dist/cjs/common/icons/crosshairs.js +43 -0
- package/dist/cjs/common/icons/cube-3d.js +54 -0
- package/dist/cjs/common/icons/cursor-click.js +44 -0
- package/dist/cjs/common/icons/cursor-point.js +50 -0
- package/dist/cjs/common/icons/data-table.js +76 -0
- package/dist/cjs/common/icons/db.js +58 -0
- package/dist/cjs/common/icons/delete.js +52 -0
- package/dist/cjs/common/icons/docs.js +56 -0
- package/dist/cjs/common/icons/docs2.js +50 -0
- package/dist/cjs/common/icons/drag-n-drop.js +42 -0
- package/dist/cjs/common/icons/draggable-dots.js +84 -0
- package/dist/cjs/common/icons/draw-point.js +50 -0
- package/dist/cjs/common/icons/draw-polygon.js +60 -0
- package/dist/cjs/common/icons/edit.js +48 -0
- package/dist/cjs/common/icons/effects/brightness-contrast.js +69 -0
- package/dist/cjs/common/icons/effects/color-halftone.js +108 -0
- package/dist/cjs/common/icons/effects/distance-fog.js +78 -0
- package/dist/cjs/common/icons/effects/dot-screen.js +103 -0
- package/dist/cjs/common/icons/effects/edge-work.js +62 -0
- package/dist/cjs/common/icons/effects/hexagonal-pixelate.js +129 -0
- package/dist/cjs/common/icons/effects/hue-saturation.js +60 -0
- package/dist/cjs/common/icons/effects/ink.js +59 -0
- package/dist/cjs/common/icons/effects/light-and-shadow.js +48 -0
- package/dist/cjs/common/icons/effects/magic-wand.js +60 -0
- package/dist/cjs/common/icons/effects/magnify.js +67 -0
- package/dist/cjs/common/icons/effects/noise.js +113 -0
- package/dist/cjs/common/icons/effects/sepia.js +60 -0
- package/dist/cjs/common/icons/effects/surface-fog.js +85 -0
- package/dist/cjs/common/icons/effects/tilt-shift.js +69 -0
- package/dist/cjs/common/icons/effects/triangle-blur.js +64 -0
- package/dist/cjs/common/icons/effects/vibrance.js +60 -0
- package/dist/cjs/common/icons/effects/vignette.js +53 -0
- package/dist/cjs/common/icons/effects/zoom-blur.js +88 -0
- package/dist/cjs/common/icons/email.js +44 -0
- package/dist/cjs/common/icons/expand.js +42 -0
- package/dist/cjs/common/icons/eye-seen.js +49 -0
- package/dist/cjs/common/icons/eye-unseen.js +47 -0
- package/dist/cjs/common/icons/file-type.js +35 -0
- package/dist/cjs/common/icons/file.js +40 -0
- package/dist/cjs/common/icons/files.js +41 -0
- package/dist/cjs/common/icons/filter-funnel.js +50 -0
- package/dist/cjs/common/icons/folder.js +50 -0
- package/dist/cjs/common/icons/free-window.js +44 -0
- package/dist/cjs/common/icons/gear.js +42 -0
- package/dist/cjs/common/icons/globe.js +53 -0
- package/dist/cjs/common/icons/hash.js +40 -0
- package/dist/cjs/common/icons/help.js +50 -0
- package/dist/cjs/common/icons/histogram.js +41 -0
- package/dist/cjs/common/icons/horizontal-resize-handle.js +58 -0
- package/dist/cjs/common/icons/index.js +845 -0
- package/dist/cjs/common/icons/info.js +53 -0
- package/dist/cjs/common/icons/layers.js +54 -0
- package/dist/cjs/common/icons/left-arrow.js +43 -0
- package/dist/cjs/common/icons/legend.js +68 -0
- package/dist/cjs/common/icons/line-chart.js +40 -0
- package/dist/cjs/common/icons/line-string.js +60 -0
- package/dist/cjs/common/icons/location-marker.js +58 -0
- package/dist/cjs/common/icons/login.js +43 -0
- package/dist/cjs/common/icons/logout.js +42 -0
- package/dist/cjs/common/icons/map-icon.js +47 -0
- package/dist/cjs/common/icons/map-pin.js +56 -0
- package/dist/cjs/common/icons/messages.js +54 -0
- package/dist/cjs/common/icons/minus.js +40 -0
- package/dist/cjs/common/icons/moon.js +58 -0
- package/dist/cjs/common/icons/order-by-dataset.js +46 -0
- package/dist/cjs/common/icons/order-by-list.js +38 -0
- package/dist/cjs/common/icons/pause.js +60 -0
- package/dist/cjs/common/icons/picture.js +59 -0
- package/dist/cjs/common/icons/pin.js +52 -0
- package/dist/cjs/common/icons/play.js +50 -0
- package/dist/cjs/common/icons/pointer-click.js +58 -0
- package/dist/cjs/common/icons/polygon.js +62 -0
- package/dist/cjs/common/icons/rectangle.js +63 -0
- package/dist/cjs/common/icons/reduce.js +43 -0
- package/dist/cjs/common/icons/reset.js +56 -0
- package/dist/cjs/common/icons/save.js +57 -0
- package/dist/cjs/common/icons/save2.js +54 -0
- package/dist/cjs/common/icons/search.js +42 -0
- package/dist/cjs/common/icons/settings.js +60 -0
- package/dist/cjs/common/icons/share.js +70 -0
- package/dist/cjs/common/icons/speed.js +52 -0
- package/dist/cjs/common/icons/split.js +68 -0
- package/dist/cjs/common/icons/square-select.js +42 -0
- package/dist/cjs/common/icons/sun.js +74 -0
- package/dist/cjs/common/icons/sunrise.js +70 -0
- package/dist/cjs/common/icons/sunset.js +70 -0
- package/dist/cjs/common/icons/timeline-marker.js +55 -0
- package/dist/cjs/common/icons/trash.js +54 -0
- package/dist/cjs/common/icons/vert-dots.js +78 -0
- package/dist/cjs/common/icons/vert-three-dots.js +53 -0
- package/dist/cjs/common/icons/warning-sign.js +60 -0
- package/dist/cjs/common/icons/warning.js +54 -0
- package/dist/cjs/common/icons/zoom-in.js +47 -0
- package/dist/cjs/common/icons/zoom-out.js +47 -0
- package/dist/cjs/common/image-preview.js +64 -0
- package/dist/cjs/common/index.js +282 -0
- package/dist/cjs/common/info-helper.js +61 -0
- package/dist/cjs/common/item-selector/accessor.js +37 -0
- package/dist/cjs/common/item-selector/chickleted-input.js +157 -0
- package/dist/cjs/common/item-selector/dropdown-list.js +257 -0
- package/dist/cjs/common/item-selector/dropdown-select.js +84 -0
- package/dist/cjs/common/item-selector/item-selector.js +254 -0
- package/dist/cjs/common/item-selector/typeahead.js +435 -0
- package/dist/cjs/common/layout-splitter.js +230 -0
- package/dist/cjs/common/line-chart.js +286 -0
- package/dist/cjs/common/link-renderer.js +20 -0
- package/dist/cjs/common/loading-spinner.js +50 -0
- package/dist/cjs/common/logo.js +68 -0
- package/dist/cjs/common/map-layer-selector.js +38 -0
- package/dist/cjs/common/modal.js +170 -0
- package/dist/cjs/common/portaled.js +287 -0
- package/dist/cjs/common/progress-bar.js +47 -0
- package/dist/cjs/common/radius-legend.js +131 -0
- package/dist/cjs/common/range-brush.js +265 -0
- package/dist/cjs/common/range-plot.js +217 -0
- package/dist/cjs/common/range-slider-timeline-panel.js +42 -0
- package/dist/cjs/common/range-slider-timeline.js +112 -0
- package/dist/cjs/common/range-slider.js +371 -0
- package/dist/cjs/common/slider/mouse-event.js +104 -0
- package/dist/cjs/common/slider/slider-bar-handle.js +90 -0
- package/dist/cjs/common/slider/slider-handle.js +136 -0
- package/dist/cjs/common/slider/slider.js +251 -0
- package/dist/cjs/common/styled-components.js +447 -0
- package/dist/cjs/common/switch.js +21 -0
- package/dist/cjs/common/sync-timeline-control.js +61 -0
- package/dist/cjs/common/time-range-slider-time-title.js +62 -0
- package/dist/cjs/common/time-range-slider.js +143 -0
- package/dist/cjs/common/time-slider-marker.js +115 -0
- package/dist/cjs/common/timeline-helpers.js +57 -0
- package/dist/cjs/common/timeline-slider.js +140 -0
- package/dist/cjs/common/tippy-tooltip.js +134 -0
- package/dist/cjs/common/toolbar-item.js +81 -0
- package/dist/cjs/common/toolbar.js +27 -0
- package/dist/cjs/common/vertical-toolbar.js +16 -0
- package/dist/cjs/connect/keplergl-connect.js +44 -0
- package/dist/cjs/connect/with-local-selector.js +85 -0
- package/dist/cjs/container.js +180 -0
- package/dist/cjs/context.js +43 -0
- package/dist/cjs/dnd-context.js +174 -0
- package/dist/cjs/editor/editor.js +218 -0
- package/dist/cjs/editor/feature-action-panel.js +169 -0
- package/dist/cjs/editor/feature-properties-editor.js +215 -0
- package/dist/cjs/editor/filter-feature-badges.js +92 -0
- package/dist/cjs/effects/compact-color-picker.js +110 -0
- package/dist/cjs/effects/effect-configurator.js +473 -0
- package/dist/cjs/effects/effect-list.js +129 -0
- package/dist/cjs/effects/effect-manager.js +141 -0
- package/dist/cjs/effects/effect-panel-header.js +196 -0
- package/dist/cjs/effects/effect-panel.js +86 -0
- package/dist/cjs/effects/effect-time-configurator.js +381 -0
- package/dist/cjs/effects/effect-time-selector.js +152 -0
- package/dist/cjs/effects/effect-time-slider.js +198 -0
- package/dist/cjs/effects/effect-type-dropdown-list.js +65 -0
- package/dist/cjs/effects/effect-type-list-item.js +98 -0
- package/dist/cjs/effects/effect-type-selector.js +76 -0
- package/dist/cjs/effects/side-panel-title.js +37 -0
- package/dist/cjs/effects/surface-fog-section.js +262 -0
- package/dist/cjs/effects/timezone-selector.js +57 -0
- package/dist/cjs/filter-animation-controller.js +76 -0
- package/dist/cjs/filters/components.js +14 -0
- package/dist/cjs/filters/filter-panels/filter-panel-with-field-select.js +77 -0
- package/dist/cjs/filters/filter-panels/filter-synced-dataset-panel.js +260 -0
- package/dist/cjs/filters/filter-panels/multi-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/new-filter-panel.js +66 -0
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +67 -0
- package/dist/cjs/filters/filter-panels/range-filter-panel.js +53 -0
- package/dist/cjs/filters/filter-panels/single-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/time-range-filter-panel.js +129 -0
- package/dist/cjs/filters/filter-panels/time-synced-field-selector.js +28 -0
- package/dist/cjs/filters/filter-panels/types.js +6 -0
- package/dist/cjs/filters/index.js +63 -0
- package/dist/cjs/filters/multi-select-filter.js +31 -0
- package/dist/cjs/filters/polygon-filter.js +76 -0
- package/dist/cjs/filters/range-filter.js +35 -0
- package/dist/cjs/filters/single-select-filter.js +40 -0
- package/dist/cjs/filters/time-range-filter.js +69 -0
- package/dist/cjs/filters/time-widget-settings.js +311 -0
- package/dist/cjs/filters/time-widget-top.js +80 -0
- package/dist/cjs/filters/time-widget.js +376 -0
- package/dist/cjs/filters/types.js +6 -0
- package/dist/cjs/geocoder/geocoder.js +327 -0
- package/dist/cjs/geocoder-panel.js +172 -0
- package/dist/cjs/hooks/use-cloud-list-provider.js +46 -0
- package/dist/cjs/hooks/use-dnd-effects.js +69 -0
- package/dist/cjs/hooks/use-dnd-layers.js +141 -0
- package/dist/cjs/hooks/use-feature-flags.js +17 -0
- package/dist/cjs/hooks/use-fetch-raster-tile-metadata.js +120 -0
- package/dist/cjs/hooks/use-fetch-vector-tile-metadata.js +133 -0
- package/dist/cjs/hooks/use-legend-position.js +176 -0
- package/dist/cjs/hooks/use-on-click-outside.js +36 -0
- package/dist/cjs/index.js +2929 -0
- package/dist/cjs/injector.js +151 -0
- package/dist/cjs/kepler-gl.js +685 -0
- package/dist/cjs/layer-animation-controller.js +53 -0
- package/dist/cjs/loading-indicator.js +76 -0
- package/dist/cjs/map/annotations/annotation-control.js +55 -0
- package/dist/cjs/map/attribution.js +391 -0
- package/dist/cjs/map/coordinate-info.js +42 -0
- package/dist/cjs/map/effects/effect-control.js +51 -0
- package/dist/cjs/map/layer-hover-info.js +318 -0
- package/dist/cjs/map/lazy-tippy.js +60 -0
- package/dist/cjs/map/locale-panel.js +76 -0
- package/dist/cjs/map/map-control-panel.js +140 -0
- package/dist/cjs/map/map-control-toolbar.js +18 -0
- package/dist/cjs/map/map-control-tooltip.js +34 -0
- package/dist/cjs/map/map-control.js +87 -0
- package/dist/cjs/map/map-draw-panel.js +159 -0
- package/dist/cjs/map/map-legend-panel.js +289 -0
- package/dist/cjs/map/map-legend.js +509 -0
- package/dist/cjs/map/map-navigation-control.js +159 -0
- package/dist/cjs/map/map-popover-content.js +28 -0
- package/dist/cjs/map/map-popover.js +189 -0
- package/dist/cjs/map/map-scale.js +162 -0
- package/dist/cjs/map/split-map-button.js +176 -0
- package/dist/cjs/map/theme-toggle-button.js +64 -0
- package/dist/cjs/map/toggle-3d-button.js +122 -0
- package/dist/cjs/map-container.js +1333 -0
- package/dist/cjs/map-view-state-context.js +98 -0
- package/dist/cjs/maps-layout.js +102 -0
- package/dist/cjs/modal-container.js +457 -0
- package/dist/cjs/modals/add-map-style-modal.js +262 -0
- package/dist/cjs/modals/cloud-components/cloud-header.js +59 -0
- package/dist/cjs/modals/cloud-components/cloud-item.js +107 -0
- package/dist/cjs/modals/cloud-components/cloud-item.spec.js +164 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.js +48 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.spec.js +98 -0
- package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
- package/dist/cjs/modals/cloud-components/provider-select.js +30 -0
- package/dist/cjs/modals/cloud-tile.js +245 -0
- package/dist/cjs/modals/data-table-modal.js +227 -0
- package/dist/cjs/modals/delete-data-modal.js +41 -0
- package/dist/cjs/modals/error-display.js +32 -0
- package/dist/cjs/modals/export-data-modal.js +163 -0
- package/dist/cjs/modals/export-image-modal.js +188 -0
- package/dist/cjs/modals/export-map-modal/components.js +43 -0
- package/dist/cjs/modals/export-map-modal/export-html-map.js +124 -0
- package/dist/cjs/modals/export-map-modal/export-json-map.js +77 -0
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +89 -0
- package/dist/cjs/modals/export-video-modal.js +440 -0
- package/dist/cjs/modals/export-video-modal.spec.js +732 -0
- package/dist/cjs/modals/fog-height-animation.js +97 -0
- package/dist/cjs/modals/globe-export-video-container.js +642 -0
- package/dist/cjs/modals/globe-export-video-preview.js +166 -0
- package/dist/cjs/modals/hubble-utils.js +452 -0
- package/dist/cjs/modals/hubble-utils.spec.js +397 -0
- package/dist/cjs/modals/image-modal-container.js +57 -0
- package/dist/cjs/modals/load-data-modal.js +97 -0
- package/dist/cjs/modals/load-storage-map.js +82 -0
- package/dist/cjs/modals/load-storage-map.spec.js +216 -0
- package/dist/cjs/modals/loading-dialog.js +37 -0
- package/dist/cjs/modals/modal-dialog.js +16 -0
- package/dist/cjs/modals/modal-tabs.js +74 -0
- package/dist/cjs/modals/overwrite-map-modal.js +83 -0
- package/dist/cjs/modals/save-map-modal.js +180 -0
- package/dist/cjs/modals/save-map-modal.spec.js +195 -0
- package/dist/cjs/modals/share-map-modal.js +169 -0
- package/dist/cjs/modals/share-map-modal.spec.js +173 -0
- package/dist/cjs/modals/status-panel.js +65 -0
- package/dist/cjs/modals/swipe-composite-utils.js +126 -0
- package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
- package/dist/cjs/modals/swipe-export-settings.js +372 -0
- package/dist/cjs/modals/swipe-export-video-container.js +653 -0
- package/dist/cjs/modals/swipe-export-video-preview.js +395 -0
- package/dist/cjs/modals/tilesets-modals/common.js +6 -0
- package/dist/cjs/modals/tilesets-modals/load-data-footer.js +55 -0
- package/dist/cjs/modals/tilesets-modals/load-tileset.js +168 -0
- package/dist/cjs/modals/tilesets-modals/tileset-bitmap-form.js +283 -0
- package/dist/cjs/modals/tilesets-modals/tileset-icon.js +39 -0
- package/dist/cjs/modals/tilesets-modals/tileset-raster-form.js +287 -0
- package/dist/cjs/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
- package/dist/cjs/modals/tilesets-modals/tileset-vector-form.js +261 -0
- package/dist/cjs/modals/tilesets-modals/tileset-wms-form.js +206 -0
- package/dist/cjs/notification-panel/notification-item.js +165 -0
- package/dist/cjs/notification-panel.js +39 -0
- package/dist/cjs/plot-container.js +318 -0
- package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
- package/dist/cjs/side-panel/add-by-dataset-button.js +128 -0
- package/dist/cjs/side-panel/common/dataset-info.js +213 -0
- package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
- package/dist/cjs/side-panel/common/dataset-tag.js +62 -0
- package/dist/cjs/side-panel/common/dataset-title.js +206 -0
- package/dist/cjs/side-panel/common/source-data-catalog.js +74 -0
- package/dist/cjs/side-panel/common/source-data-selector-content.js +64 -0
- package/dist/cjs/side-panel/common/source-data-selector.js +41 -0
- package/dist/cjs/side-panel/common/source-selector.js +56 -0
- package/dist/cjs/side-panel/common/types.js +6 -0
- package/dist/cjs/side-panel/custom-panel.js +39 -0
- package/dist/cjs/side-panel/filter-manager.js +206 -0
- package/dist/cjs/side-panel/filter-panel/add-filter-button.js +27 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel-header.js +67 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +92 -0
- package/dist/cjs/side-panel/interaction-manager.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/brush-config.js +41 -0
- package/dist/cjs/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/interaction-panel.js +121 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +164 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config.js +149 -0
- package/dist/cjs/side-panel/layer-manager.js +242 -0
- package/dist/cjs/side-panel/layer-panel/add-layer-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/aggr-scale-selector.js +37 -0
- package/dist/cjs/side-panel/layer-panel/channel-by-value-selector.js +71 -0
- package/dist/cjs/side-panel/layer-panel/color-breaks-panel.js +193 -0
- package/dist/cjs/side-panel/layer-panel/color-palette-preset.js +45 -0
- package/dist/cjs/side-panel/layer-panel/color-palette.js +74 -0
- package/dist/cjs/side-panel/layer-panel/color-range-selector.js +242 -0
- package/dist/cjs/side-panel/layer-panel/color-scale-selector.js +295 -0
- package/dist/cjs/side-panel/layer-panel/color-selector.js +186 -0
- package/dist/cjs/side-panel/layer-panel/column-selector.js +59 -0
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +787 -0
- package/dist/cjs/side-panel/layer-panel/custom-picker.js +83 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-group.js +68 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +119 -0
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +78 -0
- package/dist/cjs/side-panel/layer-panel/dimension-scale-selector.js +91 -0
- package/dist/cjs/side-panel/layer-panel/how-to-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/layer-color-selector.js +105 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-config.js +85 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-mode-config.js +192 -0
- package/dist/cjs/side-panel/layer-panel/layer-config-group.js +143 -0
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +1130 -0
- package/dist/cjs/side-panel/layer-panel/layer-error-message.js +29 -0
- package/dist/cjs/side-panel/layer-panel/layer-group-header.js +178 -0
- package/dist/cjs/side-panel/layer-panel/layer-list.js +330 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel-header.js +311 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel.js +171 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-dropdown-list.js +77 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-list-item.js +71 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-selector.js +57 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-colormap-list-item.js +60 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-layer-configurator.js +457 -0
- package/dist/cjs/side-panel/layer-panel/scenegraph-model-selector.js +122 -0
- package/dist/cjs/side-panel/layer-panel/single-color-palette.js +85 -0
- package/dist/cjs/side-panel/layer-panel/text-label-panel.js +173 -0
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +94 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-slider.js +167 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-switch.js +55 -0
- package/dist/cjs/side-panel/map-manager.js +108 -0
- package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +334 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-color-picker.js +76 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-item.js +94 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-selector.js +74 -0
- package/dist/cjs/side-panel/map-style-panel/map-style-selector.js +97 -0
- package/dist/cjs/side-panel/panel-header-action.js +73 -0
- package/dist/cjs/side-panel/panel-header.js +309 -0
- package/dist/cjs/side-panel/panel-tab.js +55 -0
- package/dist/cjs/side-panel/panel-title.js +40 -0
- package/dist/cjs/side-panel/panel-toggle.js +47 -0
- package/dist/cjs/side-panel/panel-view-list-toggle.js +97 -0
- package/dist/cjs/side-panel/side-bar.js +126 -0
- package/dist/cjs/side-panel.js +235 -0
- package/dist/cjs/types.js +6 -0
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
- package/dist/common/data-table/column-statistics-components.d.ts +31 -0
- package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
- package/dist/common/data-table/column-statistics-time.d.ts +19 -0
- package/dist/common/data-table/header-cell.d.ts +7 -5
- package/dist/common/data-table/index.d.ts +8 -25
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/histogram-plot.d.ts +24 -1
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/circle.d.ts +10 -0
- package/dist/common/icons/draw-point.d.ts +10 -0
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/index.d.ts +5 -0
- package/dist/common/icons/line-string.d.ts +10 -0
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/line-chart.d.ts +10 -3
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider.d.ts +8 -4
- package/dist/common/styled-components.d.ts +643 -190
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/toolbar-item.d.ts +2 -0
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/vertical-toolbar.d.ts +13 -3
- package/dist/container.d.ts +3 -2
- package/dist/context.d.ts +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/editor/editor.d.ts +1 -0
- package/dist/editor/feature-action-panel.d.ts +1 -0
- package/dist/editor/feature-properties-editor.d.ts +8 -0
- package/dist/editor/filter-feature-badges.d.ts +12 -0
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -6
- package/dist/effects/effect-manager.d.ts +1 -1
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/esm/annotations/annotation-node.js +138 -0
- package/dist/esm/annotations/annotation-overlay.js +161 -0
- package/dist/esm/annotations/annotation-panel.js +355 -0
- package/dist/esm/annotations/annotation-text.js +142 -0
- package/dist/esm/annotations/annotation-utils.js +185 -0
- package/dist/esm/annotations/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/clickable-link-plugin.js +64 -0
- package/dist/esm/annotations/lexical-editor/floating-link-editor.js +186 -0
- package/dist/esm/annotations/lexical-editor/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/lexical-constants.js +16 -0
- package/dist/esm/annotations/lexical-editor/lexical-nodes.js +7 -0
- package/dist/esm/annotations/lexical-editor/lexical-rich-text-editor.js +114 -0
- package/dist/esm/annotations/lexical-editor/lexical-theme.js +19 -0
- package/dist/esm/annotations/lexical-editor/lexical-toolbar.js +285 -0
- package/dist/esm/annotations/lexical-editor/lexical-utils.js +37 -0
- package/dist/esm/annotations/lexical-editor/use-lexical-toolbar.js +248 -0
- package/dist/esm/bottom-widget.js +176 -0
- package/dist/esm/common/action-panel.js +126 -0
- package/dist/esm/common/animation-control/animation-control.js +95 -0
- package/dist/esm/common/animation-control/animation-controller.js +266 -0
- package/dist/esm/common/animation-control/animation-speed-slider.js +56 -0
- package/dist/esm/common/animation-control/animation-window-control.js +50 -0
- package/dist/esm/common/animation-control/export-video-control.js +36 -0
- package/dist/esm/common/animation-control/floating-time-display.js +124 -0
- package/dist/esm/common/animation-control/play-control.js +43 -0
- package/dist/esm/common/animation-control/playback-controls.js +157 -0
- package/dist/esm/common/animation-control/reset-control.js +34 -0
- package/dist/esm/common/animation-control/speed-control.js +46 -0
- package/dist/esm/common/animation-control/window-action-control.js +48 -0
- package/dist/esm/common/checkbox.js +94 -0
- package/dist/esm/common/color-legend.js +261 -0
- package/dist/esm/common/column-stats-chart.js +305 -0
- package/dist/esm/common/data-table/button.js +33 -0
- package/dist/esm/common/data-table/canvas.js +22 -0
- package/dist/esm/common/data-table/cell-size.js +194 -0
- package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
- package/dist/esm/common/data-table/column-statistics-components.js +59 -0
- package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
- package/dist/esm/common/data-table/column-statistics-time.js +60 -0
- package/dist/esm/common/data-table/display-format.js +118 -0
- package/dist/esm/common/data-table/grid.js +100 -0
- package/dist/esm/common/data-table/header-cell.js +220 -0
- package/dist/esm/common/data-table/index.js +536 -0
- package/dist/esm/common/data-table/option-dropdown.js +152 -0
- package/dist/esm/common/dataset-label.js +22 -0
- package/dist/esm/common/dnd-layer-items.js +16 -0
- package/dist/esm/common/error-boundary.js +55 -0
- package/dist/esm/common/field-selector.js +164 -0
- package/dist/esm/common/field-token.js +38 -0
- package/dist/esm/common/file-uploader/file-drop.js +170 -0
- package/dist/esm/common/file-uploader/file-upload-progress.js +77 -0
- package/dist/esm/common/file-uploader/file-upload.js +445 -0
- package/dist/esm/common/file-uploader/upload-button.js +51 -0
- package/dist/esm/common/flex-container.js +10 -0
- package/dist/esm/common/histogram-plot.js +275 -0
- package/dist/esm/common/icon-button.js +20 -0
- package/dist/esm/common/icons/3d-models/airplane.js +97 -0
- package/dist/esm/common/icons/3d-models/bicycle.js +419 -0
- package/dist/esm/common/icons/3d-models/boeing.js +112 -0
- package/dist/esm/common/icons/3d-models/car.js +103 -0
- package/dist/esm/common/icons/3d-models/cargoship.js +239 -0
- package/dist/esm/common/icons/3d-models/evtol.js +127 -0
- package/dist/esm/common/icons/3d-models/glider.js +55 -0
- package/dist/esm/common/icons/3d-models/helicopter.js +103 -0
- package/dist/esm/common/icons/3d-models/scooter.js +152 -0
- package/dist/esm/common/icons/3d-models/semitruck.js +170 -0
- package/dist/esm/common/icons/3d-models/truck.js +115 -0
- package/dist/esm/common/icons/add.js +34 -0
- package/dist/esm/common/icons/anchor_window.js +36 -0
- package/dist/esm/common/icons/annotation-text.js +49 -0
- package/dist/esm/common/icons/arrow-down-alt.js +34 -0
- package/dist/esm/common/icons/arrow-down-full.js +43 -0
- package/dist/esm/common/icons/arrow-down-small.js +47 -0
- package/dist/esm/common/icons/arrow-down.js +44 -0
- package/dist/esm/common/icons/arrow-left.js +37 -0
- package/dist/esm/common/icons/arrow-right.js +34 -0
- package/dist/esm/common/icons/arrow-up-alt.js +35 -0
- package/dist/esm/common/icons/arrow-up-solid.js +34 -0
- package/dist/esm/common/icons/arrow-up.js +34 -0
- package/dist/esm/common/icons/base-map.js +49 -0
- package/dist/esm/common/icons/base.js +72 -0
- package/dist/esm/common/icons/bug.js +64 -0
- package/dist/esm/common/icons/calendar.js +42 -0
- package/dist/esm/common/icons/cancel.js +34 -0
- package/dist/esm/common/icons/checkmark.js +40 -0
- package/dist/esm/common/icons/circle.js +48 -0
- package/dist/esm/common/icons/clipboard.js +35 -0
- package/dist/esm/common/icons/clock.js +36 -0
- package/dist/esm/common/icons/close.js +40 -0
- package/dist/esm/common/icons/cloud.js +44 -0
- package/dist/esm/common/icons/code-alt.js +37 -0
- package/dist/esm/common/icons/copy.js +45 -0
- package/dist/esm/common/icons/crosshairs.js +37 -0
- package/dist/esm/common/icons/cube-3d.js +48 -0
- package/dist/esm/common/icons/cursor-click.js +38 -0
- package/dist/esm/common/icons/cursor-point.js +44 -0
- package/dist/esm/common/icons/data-table.js +70 -0
- package/dist/esm/common/icons/db.js +52 -0
- package/dist/esm/common/icons/delete.js +46 -0
- package/dist/esm/common/icons/docs.js +50 -0
- package/dist/esm/common/icons/docs2.js +44 -0
- package/dist/esm/common/icons/drag-n-drop.js +36 -0
- package/dist/esm/common/icons/draggable-dots.js +78 -0
- package/dist/esm/common/icons/draw-point.js +44 -0
- package/dist/esm/common/icons/draw-polygon.js +54 -0
- package/dist/esm/common/icons/edit.js +42 -0
- package/dist/esm/common/icons/effects/brightness-contrast.js +63 -0
- package/dist/esm/common/icons/effects/color-halftone.js +102 -0
- package/dist/esm/common/icons/effects/distance-fog.js +72 -0
- package/dist/esm/common/icons/effects/dot-screen.js +97 -0
- package/dist/esm/common/icons/effects/edge-work.js +56 -0
- package/dist/esm/common/icons/effects/hexagonal-pixelate.js +123 -0
- package/dist/esm/common/icons/effects/hue-saturation.js +54 -0
- package/dist/esm/common/icons/effects/ink.js +53 -0
- package/dist/esm/common/icons/effects/light-and-shadow.js +42 -0
- package/dist/esm/common/icons/effects/magic-wand.js +54 -0
- package/dist/esm/common/icons/effects/magnify.js +61 -0
- package/dist/esm/common/icons/effects/noise.js +107 -0
- package/dist/esm/common/icons/effects/sepia.js +54 -0
- package/dist/esm/common/icons/effects/surface-fog.js +79 -0
- package/dist/esm/common/icons/effects/tilt-shift.js +63 -0
- package/dist/esm/common/icons/effects/triangle-blur.js +58 -0
- package/dist/esm/common/icons/effects/vibrance.js +54 -0
- package/dist/esm/common/icons/effects/vignette.js +47 -0
- package/dist/esm/common/icons/effects/zoom-blur.js +82 -0
- package/dist/esm/common/icons/email.js +38 -0
- package/dist/esm/common/icons/expand.js +36 -0
- package/dist/esm/common/icons/eye-seen.js +43 -0
- package/dist/esm/common/icons/eye-unseen.js +41 -0
- package/dist/esm/common/icons/file-type.js +30 -0
- package/dist/esm/common/icons/file.js +34 -0
- package/dist/esm/common/icons/files.js +37 -0
- package/dist/esm/common/icons/filter-funnel.js +44 -0
- package/dist/esm/common/icons/folder.js +44 -0
- package/dist/esm/common/icons/free-window.js +39 -0
- package/dist/esm/common/icons/gear.js +36 -0
- package/dist/esm/common/icons/globe.js +47 -0
- package/dist/esm/common/icons/hash.js +34 -0
- package/dist/esm/common/icons/help.js +44 -0
- package/dist/esm/common/icons/histogram.js +37 -0
- package/dist/esm/common/icons/horizontal-resize-handle.js +52 -0
- package/dist/esm/common/icons/index.js +127 -0
- package/dist/esm/common/icons/info.js +47 -0
- package/dist/esm/common/icons/layers.js +48 -0
- package/dist/esm/common/icons/left-arrow.js +37 -0
- package/dist/esm/common/icons/legend.js +62 -0
- package/dist/esm/common/icons/line-chart.js +34 -0
- package/dist/esm/common/icons/line-string.js +54 -0
- package/dist/esm/common/icons/location-marker.js +52 -0
- package/dist/esm/common/icons/login.js +37 -0
- package/dist/esm/common/icons/logout.js +36 -0
- package/dist/esm/common/icons/map-icon.js +40 -0
- package/dist/esm/common/icons/map-pin.js +50 -0
- package/dist/esm/common/icons/messages.js +48 -0
- package/dist/esm/common/icons/minus.js +34 -0
- package/dist/esm/common/icons/moon.js +52 -0
- package/dist/esm/common/icons/order-by-dataset.js +41 -0
- package/dist/esm/common/icons/order-by-list.js +33 -0
- package/dist/esm/common/icons/pause.js +54 -0
- package/dist/esm/common/icons/picture.js +55 -0
- package/dist/esm/common/icons/pin.js +46 -0
- package/dist/esm/common/icons/play.js +44 -0
- package/dist/esm/common/icons/pointer-click.js +52 -0
- package/dist/esm/common/icons/polygon.js +56 -0
- package/dist/esm/common/icons/rectangle.js +57 -0
- package/dist/esm/common/icons/reduce.js +37 -0
- package/dist/esm/common/icons/reset.js +50 -0
- package/dist/esm/common/icons/save.js +51 -0
- package/dist/esm/common/icons/save2.js +48 -0
- package/dist/esm/common/icons/search.js +36 -0
- package/dist/esm/common/icons/settings.js +54 -0
- package/dist/esm/common/icons/share.js +64 -0
- package/dist/esm/common/icons/speed.js +46 -0
- package/dist/esm/common/icons/split.js +62 -0
- package/dist/esm/common/icons/square-select.js +36 -0
- package/dist/esm/common/icons/sun.js +68 -0
- package/dist/esm/common/icons/sunrise.js +64 -0
- package/dist/esm/common/icons/sunset.js +64 -0
- package/dist/esm/common/icons/timeline-marker.js +49 -0
- package/dist/esm/common/icons/trash.js +48 -0
- package/dist/esm/common/icons/vert-dots.js +72 -0
- package/dist/esm/common/icons/vert-three-dots.js +47 -0
- package/dist/esm/common/icons/warning-sign.js +54 -0
- package/dist/esm/common/icons/warning.js +48 -0
- package/dist/esm/common/icons/zoom-in.js +41 -0
- package/dist/esm/common/icons/zoom-out.js +41 -0
- package/dist/esm/common/image-preview.js +59 -0
- package/dist/esm/common/index.js +8 -0
- package/dist/esm/common/info-helper.js +56 -0
- package/dist/esm/common/item-selector/accessor.js +31 -0
- package/dist/esm/common/item-selector/chickleted-input.js +150 -0
- package/dist/esm/common/item-selector/dropdown-list.js +251 -0
- package/dist/esm/common/item-selector/dropdown-select.js +79 -0
- package/dist/esm/common/item-selector/item-selector.js +247 -0
- package/dist/esm/common/item-selector/typeahead.js +428 -0
- package/dist/esm/common/layout-splitter.js +224 -0
- package/dist/esm/common/line-chart.js +279 -0
- package/dist/esm/common/link-renderer.js +13 -0
- package/dist/esm/common/loading-spinner.js +43 -0
- package/dist/esm/common/logo.js +63 -0
- package/dist/esm/common/map-layer-selector.js +33 -0
- package/dist/esm/common/modal.js +163 -0
- package/dist/esm/common/portaled.js +280 -0
- package/dist/esm/common/progress-bar.js +43 -0
- package/dist/esm/common/radius-legend.js +124 -0
- package/dist/esm/common/range-brush.js +258 -0
- package/dist/esm/common/range-plot.js +210 -0
- package/dist/esm/common/range-slider-timeline-panel.js +35 -0
- package/dist/esm/common/range-slider-timeline.js +105 -0
- package/dist/esm/common/range-slider.js +364 -0
- package/dist/esm/common/slider/mouse-event.js +98 -0
- package/dist/esm/common/slider/slider-bar-handle.js +84 -0
- package/dist/esm/common/slider/slider-handle.js +130 -0
- package/dist/esm/common/slider/slider.js +245 -0
- package/dist/esm/common/styled-components.js +441 -0
- package/dist/esm/common/switch.js +16 -0
- package/dist/esm/common/sync-timeline-control.js +54 -0
- package/dist/esm/common/time-range-slider-time-title.js +57 -0
- package/dist/esm/common/time-range-slider.js +135 -0
- package/dist/esm/common/time-slider-marker.js +105 -0
- package/dist/esm/common/timeline-helpers.js +48 -0
- package/dist/esm/common/timeline-slider.js +133 -0
- package/dist/esm/common/tippy-tooltip.js +127 -0
- package/dist/esm/common/toolbar-item.js +76 -0
- package/dist/esm/common/toolbar.js +22 -0
- package/dist/esm/common/vertical-toolbar.js +11 -0
- package/dist/esm/connect/keplergl-connect.js +38 -0
- package/dist/esm/connect/with-local-selector.js +78 -0
- package/dist/esm/container.js +171 -0
- package/dist/esm/context.js +35 -0
- package/dist/esm/dnd-context.js +167 -0
- package/dist/esm/editor/editor.js +211 -0
- package/dist/esm/editor/feature-action-panel.js +161 -0
- package/dist/esm/editor/feature-properties-editor.js +208 -0
- package/dist/esm/editor/filter-feature-badges.js +85 -0
- package/dist/esm/effects/compact-color-picker.js +103 -0
- package/dist/esm/effects/effect-configurator.js +465 -0
- package/dist/esm/effects/effect-list.js +122 -0
- package/dist/esm/effects/effect-manager.js +134 -0
- package/dist/esm/effects/effect-panel-header.js +188 -0
- package/dist/esm/effects/effect-panel.js +79 -0
- package/dist/esm/effects/effect-time-configurator.js +374 -0
- package/dist/esm/effects/effect-time-selector.js +145 -0
- package/dist/esm/effects/effect-time-slider.js +190 -0
- package/dist/esm/effects/effect-type-dropdown-list.js +57 -0
- package/dist/esm/effects/effect-type-list-item.js +89 -0
- package/dist/esm/effects/effect-type-selector.js +69 -0
- package/dist/esm/effects/side-panel-title.js +32 -0
- package/dist/esm/effects/surface-fog-section.js +254 -0
- package/dist/esm/effects/timezone-selector.js +50 -0
- package/dist/esm/filter-animation-controller.js +67 -0
- package/dist/esm/filters/components.js +9 -0
- package/dist/esm/filters/filter-panels/filter-panel-with-field-select.js +68 -0
- package/dist/esm/filters/filter-panels/filter-synced-dataset-panel.js +253 -0
- package/dist/esm/filters/filter-panels/multi-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/new-filter-panel.js +56 -0
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +58 -0
- package/dist/esm/filters/filter-panels/range-filter-panel.js +44 -0
- package/dist/esm/filters/filter-panels/single-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/time-range-filter-panel.js +120 -0
- package/dist/esm/filters/filter-panels/time-synced-field-selector.js +23 -0
- package/dist/esm/filters/filter-panels/types.js +3 -0
- package/dist/esm/filters/index.js +12 -0
- package/dist/esm/filters/multi-select-filter.js +24 -0
- package/dist/esm/filters/polygon-filter.js +67 -0
- package/dist/esm/filters/range-filter.js +28 -0
- package/dist/esm/filters/single-select-filter.js +33 -0
- package/dist/esm/filters/time-range-filter.js +61 -0
- package/dist/esm/filters/time-widget-settings.js +304 -0
- package/dist/esm/filters/time-widget-top.js +73 -0
- package/dist/esm/filters/time-widget.js +369 -0
- package/dist/esm/filters/types.js +3 -0
- package/dist/esm/geocoder/geocoder.js +318 -0
- package/dist/esm/geocoder-panel.js +164 -0
- package/dist/esm/hooks/use-cloud-list-provider.js +37 -0
- package/dist/esm/hooks/use-dnd-effects.js +62 -0
- package/dist/esm/hooks/use-dnd-layers.js +136 -0
- package/dist/esm/hooks/use-feature-flags.js +11 -0
- package/dist/esm/hooks/use-fetch-raster-tile-metadata.js +113 -0
- package/dist/esm/hooks/use-fetch-vector-tile-metadata.js +128 -0
- package/dist/esm/hooks/use-legend-position.js +170 -0
- package/dist/esm/hooks/use-on-click-outside.js +29 -0
- package/dist/esm/index.js +282 -0
- package/dist/esm/injector.js +141 -0
- package/dist/esm/kepler-gl.js +672 -0
- package/dist/esm/layer-animation-controller.js +44 -0
- package/dist/esm/loading-indicator.js +69 -0
- package/dist/esm/map/annotations/annotation-control.js +46 -0
- package/dist/esm/map/attribution.js +382 -0
- package/dist/esm/map/coordinate-info.js +36 -0
- package/dist/esm/map/effects/effect-control.js +42 -0
- package/dist/esm/map/layer-hover-info.js +312 -0
- package/dist/esm/map/lazy-tippy.js +53 -0
- package/dist/esm/map/locale-panel.js +67 -0
- package/dist/esm/map/map-control-panel.js +133 -0
- package/dist/esm/map/map-control-toolbar.js +13 -0
- package/dist/esm/map/map-control-tooltip.js +27 -0
- package/dist/esm/map/map-control.js +83 -0
- package/dist/esm/map/map-draw-panel.js +152 -0
- package/dist/esm/map/map-legend-panel.js +282 -0
- package/dist/esm/map/map-legend.js +496 -0
- package/dist/esm/map/map-navigation-control.js +152 -0
- package/dist/esm/map/map-popover-content.js +21 -0
- package/dist/esm/map/map-popover.js +181 -0
- package/dist/esm/map/map-scale.js +155 -0
- package/dist/esm/map/split-map-button.js +167 -0
- package/dist/esm/map/theme-toggle-button.js +55 -0
- package/dist/esm/map/toggle-3d-button.js +113 -0
- package/dist/esm/map-container.js +1303 -0
- package/dist/esm/map-view-state-context.js +89 -0
- package/dist/esm/maps-layout.js +95 -0
- package/dist/esm/modal-container.js +454 -0
- package/dist/esm/modals/add-map-style-modal.js +256 -0
- package/dist/esm/modals/cloud-components/cloud-header.js +52 -0
- package/dist/esm/modals/cloud-components/cloud-item.js +100 -0
- package/dist/esm/modals/cloud-components/cloud-item.spec.js +163 -0
- package/dist/esm/modals/cloud-components/cloud-maps.js +43 -0
- package/dist/esm/modals/cloud-components/cloud-maps.spec.js +94 -0
- package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
- package/dist/esm/modals/cloud-components/provider-select.js +25 -0
- package/dist/esm/modals/cloud-tile.js +238 -0
- package/dist/esm/modals/data-table-modal.js +220 -0
- package/dist/esm/modals/delete-data-modal.js +36 -0
- package/dist/esm/modals/error-display.js +23 -0
- package/dist/esm/modals/export-data-modal.js +155 -0
- package/dist/esm/modals/export-image-modal.js +181 -0
- package/dist/esm/modals/export-map-modal/components.js +38 -0
- package/dist/esm/modals/export-map-modal/export-html-map.js +119 -0
- package/dist/esm/modals/export-map-modal/export-json-map.js +70 -0
- package/dist/esm/modals/export-map-modal/export-map-modal.js +84 -0
- package/dist/esm/modals/export-video-modal.js +427 -0
- package/dist/esm/modals/export-video-modal.spec.js +731 -0
- package/dist/esm/modals/fog-height-animation.js +90 -0
- package/dist/esm/modals/globe-export-video-container.js +636 -0
- package/dist/esm/modals/globe-export-video-preview.js +159 -0
- package/dist/esm/modals/hubble-utils.js +434 -0
- package/dist/esm/modals/hubble-utils.spec.js +396 -0
- package/dist/esm/modals/image-modal-container.js +48 -0
- package/dist/esm/modals/load-data-modal.js +89 -0
- package/dist/esm/modals/load-storage-map.js +75 -0
- package/dist/esm/modals/load-storage-map.spec.js +212 -0
- package/dist/esm/modals/loading-dialog.js +32 -0
- package/dist/esm/modals/modal-dialog.js +9 -0
- package/dist/esm/modals/modal-tabs.js +67 -0
- package/dist/esm/modals/overwrite-map-modal.js +76 -0
- package/dist/esm/modals/save-map-modal.js +173 -0
- package/dist/esm/modals/save-map-modal.spec.js +196 -0
- package/dist/esm/modals/share-map-modal.js +161 -0
- package/dist/esm/modals/share-map-modal.spec.js +172 -0
- package/dist/esm/modals/status-panel.js +60 -0
- package/dist/esm/modals/swipe-composite-utils.js +119 -0
- package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
- package/dist/esm/modals/swipe-export-settings.js +366 -0
- package/dist/esm/modals/swipe-export-video-container.js +646 -0
- package/dist/esm/modals/swipe-export-video-preview.js +388 -0
- package/dist/esm/modals/tilesets-modals/common.js +3 -0
- package/dist/esm/modals/tilesets-modals/load-data-footer.js +48 -0
- package/dist/esm/modals/tilesets-modals/load-tileset.js +161 -0
- package/dist/esm/modals/tilesets-modals/tileset-bitmap-form.js +275 -0
- package/dist/esm/modals/tilesets-modals/tileset-icon.js +34 -0
- package/dist/esm/modals/tilesets-modals/tileset-raster-form.js +279 -0
- package/dist/esm/modals/tilesets-modals/tileset-tile3d-form.js +380 -0
- package/dist/esm/modals/tilesets-modals/tileset-vector-form.js +253 -0
- package/dist/esm/modals/tilesets-modals/tileset-wms-form.js +199 -0
- package/dist/esm/notification-panel/notification-item.js +158 -0
- package/dist/esm/notification-panel.js +34 -0
- package/dist/esm/plot-container.js +311 -0
- package/dist/esm/remote-dataset-refresh-controller.js +44 -0
- package/dist/esm/side-panel/add-by-dataset-button.js +121 -0
- package/dist/esm/side-panel/common/dataset-info.js +206 -0
- package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
- package/dist/esm/side-panel/common/dataset-tag.js +57 -0
- package/dist/esm/side-panel/common/dataset-title.js +199 -0
- package/dist/esm/side-panel/common/source-data-catalog.js +67 -0
- package/dist/esm/side-panel/common/source-data-selector-content.js +55 -0
- package/dist/esm/side-panel/common/source-data-selector.js +34 -0
- package/dist/esm/side-panel/common/source-selector.js +49 -0
- package/dist/esm/side-panel/common/types.js +3 -0
- package/dist/esm/side-panel/custom-panel.js +32 -0
- package/dist/esm/side-panel/filter-manager.js +199 -0
- package/dist/esm/side-panel/filter-panel/add-filter-button.js +20 -0
- package/dist/esm/side-panel/filter-panel/filter-panel-header.js +60 -0
- package/dist/esm/side-panel/filter-panel/filter-panel.js +85 -0
- package/dist/esm/side-panel/interaction-manager.js +38 -0
- package/dist/esm/side-panel/interaction-panel/brush-config.js +36 -0
- package/dist/esm/side-panel/interaction-panel/geocoder-config.js +40 -0
- package/dist/esm/side-panel/interaction-panel/interaction-panel.js +114 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +157 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config.js +142 -0
- package/dist/esm/side-panel/layer-manager.js +235 -0
- package/dist/esm/side-panel/layer-panel/add-layer-button.js +20 -0
- package/dist/esm/side-panel/layer-panel/aggr-scale-selector.js +29 -0
- package/dist/esm/side-panel/layer-panel/channel-by-value-selector.js +61 -0
- package/dist/esm/side-panel/layer-panel/color-breaks-panel.js +186 -0
- package/dist/esm/side-panel/layer-panel/color-palette-preset.js +40 -0
- package/dist/esm/side-panel/layer-panel/color-palette.js +67 -0
- package/dist/esm/side-panel/layer-panel/color-range-selector.js +236 -0
- package/dist/esm/side-panel/layer-panel/color-scale-selector.js +288 -0
- package/dist/esm/side-panel/layer-panel/color-selector.js +179 -0
- package/dist/esm/side-panel/layer-panel/column-selector.js +52 -0
- package/dist/esm/side-panel/layer-panel/custom-palette.js +783 -0
- package/dist/esm/side-panel/layer-panel/custom-picker.js +77 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-group.js +59 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +112 -0
- package/dist/esm/side-panel/layer-panel/dataset-section.js +72 -0
- package/dist/esm/side-panel/layer-panel/dimension-scale-selector.js +82 -0
- package/dist/esm/side-panel/layer-panel/how-to-button.js +22 -0
- package/dist/esm/side-panel/layer-panel/layer-color-selector.js +94 -0
- package/dist/esm/side-panel/layer-panel/layer-column-config.js +76 -0
- package/dist/esm/side-panel/layer-panel/layer-column-mode-config.js +184 -0
- package/dist/esm/side-panel/layer-panel/layer-config-group.js +134 -0
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +1121 -0
- package/dist/esm/side-panel/layer-panel/layer-error-message.js +24 -0
- package/dist/esm/side-panel/layer-panel/layer-group-header.js +171 -0
- package/dist/esm/side-panel/layer-panel/layer-list.js +323 -0
- package/dist/esm/side-panel/layer-panel/layer-panel-header.js +302 -0
- package/dist/esm/side-panel/layer-panel/layer-panel.js +164 -0
- package/dist/esm/side-panel/layer-panel/layer-type-dropdown-list.js +69 -0
- package/dist/esm/side-panel/layer-panel/layer-type-list-item.js +63 -0
- package/dist/esm/side-panel/layer-panel/layer-type-selector.js +50 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-colormap-list-item.js +55 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-layer-configurator.js +450 -0
- package/dist/esm/side-panel/layer-panel/scenegraph-model-selector.js +115 -0
- package/dist/esm/side-panel/layer-panel/single-color-palette.js +78 -0
- package/dist/esm/side-panel/layer-panel/text-label-panel.js +166 -0
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +87 -0
- package/dist/esm/side-panel/layer-panel/vis-config-by-field-selector.js +53 -0
- package/dist/esm/side-panel/layer-panel/vis-config-slider.js +160 -0
- package/dist/esm/side-panel/layer-panel/vis-config-switch.js +50 -0
- package/dist/esm/side-panel/map-manager.js +99 -0
- package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +327 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-color-picker.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-item.js +87 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-selector.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-style-selector.js +92 -0
- package/dist/esm/side-panel/panel-header-action.js +68 -0
- package/dist/esm/side-panel/panel-header.js +303 -0
- package/dist/esm/side-panel/panel-tab.js +49 -0
- package/dist/esm/side-panel/panel-title.js +35 -0
- package/dist/esm/side-panel/panel-toggle.js +40 -0
- package/dist/esm/side-panel/panel-view-list-toggle.js +90 -0
- package/dist/esm/side-panel/side-bar.js +119 -0
- package/dist/esm/side-panel.js +227 -0
- package/dist/esm/types.js +3 -0
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/types.d.ts +3 -3
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder-panel.d.ts +3 -2
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/index.d.ts +27 -3
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +184 -27
- package/dist/loading-indicator.d.ts +4 -1
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/attribution.d.ts +52 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/map-control-toolbar.d.ts +33 -8
- package/dist/map/map-control.d.ts +21 -4
- package/dist/map/map-draw-panel.d.ts +1 -0
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend.d.ts +20 -3
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-scale.d.ts +11 -0
- package/dist/map/split-map-button.d.ts +10 -3
- package/dist/map/theme-toggle-button.d.ts +18 -0
- package/dist/map/toggle-3d-button.d.ts +8 -2
- package/dist/map-container.d.ts +14 -13
- package/dist/map-view-state-context.d.ts +3 -0
- package/dist/maps-layout.d.ts +3 -0
- package/dist/modal-container.d.ts +3 -2
- package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
- package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/data-table-modal.d.ts +2 -1
- package/dist/modals/export-map-modal/components.d.ts +23 -5
- package/dist/modals/export-video-modal.d.ts +28 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/globe-export-video-container.d.ts +119 -0
- package/dist/modals/globe-export-video-preview.d.ts +44 -0
- package/dist/modals/hubble-utils.d.ts +70 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
- package/dist/modals/swipe-export-settings.d.ts +25 -0
- package/dist/modals/swipe-export-video-container.d.ts +128 -0
- package/dist/modals/swipe-export-video-preview.d.ts +70 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel.d.ts +1 -1
- package/dist/remote-dataset-refresh-controller.d.ts +11 -0
- package/dist/side-panel/common/dataset-info.d.ts +10 -0
- package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
- package/dist/side-panel/common/dataset-title.d.ts +5 -0
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/layer-manager.d.ts +6 -4
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +3 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -1
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +10 -4
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-panel.d.ts +2 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/map-manager.d.ts +9 -3
- package/dist/side-panel/map-style-panel/globe-config-panel.d.ts +15 -0
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-tab.d.ts +2 -4
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +3 -2
- package/package.json +82 -61
- package/dist/bottom-widget.js +0 -178
- package/dist/common/action-panel.js +0 -134
- package/dist/common/animation-control/animation-control.js +0 -98
- package/dist/common/animation-control/animation-controller.js +0 -269
- package/dist/common/animation-control/animation-speed-slider.js +0 -64
- package/dist/common/animation-control/animation-window-control.js +0 -60
- package/dist/common/animation-control/floating-time-display.js +0 -132
- package/dist/common/animation-control/play-control.js +0 -50
- package/dist/common/animation-control/playback-controls.js +0 -162
- package/dist/common/animation-control/reset-control.js +0 -41
- package/dist/common/animation-control/speed-control.js +0 -51
- package/dist/common/animation-control/window-action-control.js +0 -58
- package/dist/common/checkbox.js +0 -114
- package/dist/common/color-legend.js +0 -273
- package/dist/common/column-stats-chart.js +0 -313
- package/dist/common/data-table/button.js +0 -38
- package/dist/common/data-table/canvas.js +0 -26
- package/dist/common/data-table/cell-size.js +0 -183
- package/dist/common/data-table/display-format.js +0 -126
- package/dist/common/data-table/grid.js +0 -107
- package/dist/common/data-table/header-cell.js +0 -149
- package/dist/common/data-table/index.js +0 -471
- package/dist/common/data-table/option-dropdown.js +0 -160
- package/dist/common/dataset-label.js +0 -27
- package/dist/common/dnd-layer-items.js +0 -18
- package/dist/common/error-boundary.js +0 -59
- package/dist/common/field-selector.js +0 -173
- package/dist/common/field-token.js +0 -43
- package/dist/common/file-uploader/file-drop.js +0 -181
- package/dist/common/file-uploader/file-upload-progress.js +0 -85
- package/dist/common/file-uploader/file-upload.js +0 -242
- package/dist/common/file-uploader/upload-button.js +0 -59
- package/dist/common/flex-container.js +0 -15
- package/dist/common/histogram-plot.js +0 -234
- package/dist/common/icon-button.js +0 -25
- package/dist/common/icons/add.js +0 -41
- package/dist/common/icons/anchor_window.js +0 -34
- package/dist/common/icons/arrow-down-alt.js +0 -41
- package/dist/common/icons/arrow-down-full.js +0 -50
- package/dist/common/icons/arrow-down-small.js +0 -54
- package/dist/common/icons/arrow-down-solid.d.ts +0 -9
- package/dist/common/icons/arrow-down-solid.js +0 -41
- package/dist/common/icons/arrow-down.js +0 -51
- package/dist/common/icons/arrow-left.js +0 -44
- package/dist/common/icons/arrow-right.js +0 -41
- package/dist/common/icons/arrow-up-alt.js +0 -42
- package/dist/common/icons/arrow-up-solid.js +0 -41
- package/dist/common/icons/arrow-up.js +0 -41
- package/dist/common/icons/base-map.js +0 -57
- package/dist/common/icons/base.js +0 -79
- package/dist/common/icons/bug.js +0 -71
- package/dist/common/icons/calendar.js +0 -49
- package/dist/common/icons/cancel.js +0 -41
- package/dist/common/icons/checkmark.js +0 -47
- package/dist/common/icons/clipboard.js +0 -42
- package/dist/common/icons/clock.js +0 -43
- package/dist/common/icons/close.js +0 -47
- package/dist/common/icons/cloud.js +0 -51
- package/dist/common/icons/code-alt.js +0 -44
- package/dist/common/icons/copy.js +0 -52
- package/dist/common/icons/crosshairs.js +0 -44
- package/dist/common/icons/cube-3d.js +0 -55
- package/dist/common/icons/cursor-click.js +0 -45
- package/dist/common/icons/cursor-point.js +0 -51
- package/dist/common/icons/data-table.js +0 -77
- package/dist/common/icons/db.js +0 -59
- package/dist/common/icons/delete.js +0 -53
- package/dist/common/icons/docs.js +0 -57
- package/dist/common/icons/docs2.js +0 -51
- package/dist/common/icons/drag-n-drop.js +0 -43
- package/dist/common/icons/draggable-dots.js +0 -85
- package/dist/common/icons/draw-polygon.js +0 -61
- package/dist/common/icons/edit.js +0 -49
- package/dist/common/icons/effects/brightness-contrast.js +0 -70
- package/dist/common/icons/effects/color-halftone.js +0 -109
- package/dist/common/icons/effects/distance-fog.js +0 -79
- package/dist/common/icons/effects/dot-screen.js +0 -104
- package/dist/common/icons/effects/edge-work.js +0 -63
- package/dist/common/icons/effects/hexagonal-pixelate.js +0 -130
- package/dist/common/icons/effects/hue-saturation.js +0 -61
- package/dist/common/icons/effects/ink.js +0 -60
- package/dist/common/icons/effects/light-and-shadow.js +0 -49
- package/dist/common/icons/effects/magic-wand.js +0 -61
- package/dist/common/icons/effects/magnify.js +0 -68
- package/dist/common/icons/effects/noise.js +0 -114
- package/dist/common/icons/effects/sepia.js +0 -61
- package/dist/common/icons/effects/surface-fog.js +0 -86
- package/dist/common/icons/effects/tilt-shift.js +0 -70
- package/dist/common/icons/effects/triangle-blur.js +0 -65
- package/dist/common/icons/effects/vibrance.js +0 -61
- package/dist/common/icons/effects/vignette.js +0 -54
- package/dist/common/icons/effects/zoom-blur.js +0 -89
- package/dist/common/icons/email.js +0 -45
- package/dist/common/icons/expand.js +0 -43
- package/dist/common/icons/eye-seen.js +0 -50
- package/dist/common/icons/eye-unseen.js +0 -48
- package/dist/common/icons/file-type.js +0 -35
- package/dist/common/icons/file.js +0 -41
- package/dist/common/icons/files.js +0 -41
- package/dist/common/icons/filter-funnel.js +0 -51
- package/dist/common/icons/free-window.js +0 -44
- package/dist/common/icons/gear.js +0 -43
- package/dist/common/icons/globe.js +0 -54
- package/dist/common/icons/hash.js +0 -41
- package/dist/common/icons/help.js +0 -51
- package/dist/common/icons/histogram.js +0 -41
- package/dist/common/icons/horizontal-resize-handle.js +0 -59
- package/dist/common/icons/index.js +0 -810
- package/dist/common/icons/info.js +0 -54
- package/dist/common/icons/layers.js +0 -55
- package/dist/common/icons/left-arrow.js +0 -44
- package/dist/common/icons/legend.js +0 -69
- package/dist/common/icons/line-chart.js +0 -41
- package/dist/common/icons/location-marker.js +0 -59
- package/dist/common/icons/login.js +0 -44
- package/dist/common/icons/logout.js +0 -43
- package/dist/common/icons/map-icon.js +0 -48
- package/dist/common/icons/map-pin.js +0 -57
- package/dist/common/icons/messages.js +0 -55
- package/dist/common/icons/minus.js +0 -41
- package/dist/common/icons/moon.js +0 -59
- package/dist/common/icons/order-by-dataset.js +0 -46
- package/dist/common/icons/order-by-list.js +0 -38
- package/dist/common/icons/pause.js +0 -61
- package/dist/common/icons/picture.js +0 -59
- package/dist/common/icons/pin.js +0 -53
- package/dist/common/icons/play.js +0 -51
- package/dist/common/icons/pointer-click.js +0 -59
- package/dist/common/icons/polygon.js +0 -63
- package/dist/common/icons/rectangle.js +0 -64
- package/dist/common/icons/reduce.js +0 -44
- package/dist/common/icons/reset.js +0 -57
- package/dist/common/icons/save.js +0 -58
- package/dist/common/icons/save2.js +0 -55
- package/dist/common/icons/search.js +0 -43
- package/dist/common/icons/settings.js +0 -61
- package/dist/common/icons/share.js +0 -71
- package/dist/common/icons/speed.js +0 -53
- package/dist/common/icons/split.js +0 -69
- package/dist/common/icons/square-select.js +0 -43
- package/dist/common/icons/sun.js +0 -75
- package/dist/common/icons/sunrise.js +0 -71
- package/dist/common/icons/sunset.js +0 -71
- package/dist/common/icons/timeline-marker.js +0 -56
- package/dist/common/icons/trash.js +0 -55
- package/dist/common/icons/vert-dots.js +0 -79
- package/dist/common/icons/vert-three-dots.js +0 -54
- package/dist/common/icons/warning-sign.js +0 -61
- package/dist/common/icons/warning.js +0 -55
- package/dist/common/icons/zoom-in.js +0 -48
- package/dist/common/icons/zoom-out.js +0 -48
- package/dist/common/image-preview.js +0 -64
- package/dist/common/index.js +0 -283
- package/dist/common/info-helper.js +0 -61
- package/dist/common/item-selector/accessor.js +0 -37
- package/dist/common/item-selector/chickleted-input.js +0 -158
- package/dist/common/item-selector/dropdown-list.js +0 -258
- package/dist/common/item-selector/dropdown-select.js +0 -84
- package/dist/common/item-selector/item-selector.js +0 -255
- package/dist/common/item-selector/typeahead.js +0 -438
- package/dist/common/line-chart.js +0 -120
- package/dist/common/link-renderer.js +0 -20
- package/dist/common/loading-spinner.js +0 -51
- package/dist/common/logo.js +0 -68
- package/dist/common/map-layer-selector.js +0 -38
- package/dist/common/modal.js +0 -171
- package/dist/common/portaled.js +0 -288
- package/dist/common/progress-bar.js +0 -47
- package/dist/common/radius-legend.js +0 -132
- package/dist/common/range-brush.js +0 -266
- package/dist/common/range-plot.js +0 -216
- package/dist/common/range-slider-timeline-panel.js +0 -43
- package/dist/common/range-slider-timeline.js +0 -113
- package/dist/common/range-slider.js +0 -309
- package/dist/common/slider/mouse-event.js +0 -105
- package/dist/common/slider/slider-bar-handle.js +0 -91
- package/dist/common/slider/slider-handle.js +0 -137
- package/dist/common/slider/slider.js +0 -209
- package/dist/common/styled-components.js +0 -439
- package/dist/common/switch.js +0 -21
- package/dist/common/sync-timeline-control.js +0 -61
- package/dist/common/time-range-slider-time-title.js +0 -62
- package/dist/common/time-range-slider.js +0 -132
- package/dist/common/time-slider-marker.js +0 -116
- package/dist/common/timeline-slider.js +0 -132
- package/dist/common/tippy-tooltip.js +0 -135
- package/dist/common/toolbar-item.js +0 -60
- package/dist/common/toolbar.js +0 -27
- package/dist/common/vertical-toolbar.js +0 -16
- package/dist/connect/keplergl-connect.js +0 -44
- package/dist/connect/with-local-selector.js +0 -86
- package/dist/container.js +0 -181
- package/dist/context.js +0 -44
- package/dist/dnd-context.js +0 -120
- package/dist/editor/editor.js +0 -201
- package/dist/editor/feature-action-panel.js +0 -148
- package/dist/effects/compact-color-picker.js +0 -111
- package/dist/effects/effect-configurator.js +0 -313
- package/dist/effects/effect-list.js +0 -130
- package/dist/effects/effect-manager.js +0 -127
- package/dist/effects/effect-panel-header.js +0 -180
- package/dist/effects/effect-panel.js +0 -112
- package/dist/effects/effect-time-configurator.js +0 -302
- package/dist/effects/effect-time-selector.js +0 -153
- package/dist/effects/effect-time-slider.js +0 -199
- package/dist/effects/effect-type-dropdown-list.js +0 -66
- package/dist/effects/effect-type-list-item.js +0 -83
- package/dist/effects/effect-type-selector.js +0 -77
- package/dist/effects/side-panel-title.js +0 -37
- package/dist/effects/timezone-selector.js +0 -58
- package/dist/filter-animation-controller.js +0 -77
- package/dist/filters/components.js +0 -14
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +0 -78
- package/dist/filters/filter-panels/filter-synced-dataset-panel.js +0 -261
- package/dist/filters/filter-panels/multi-select-filter-panel.js +0 -49
- package/dist/filters/filter-panels/new-filter-panel.js +0 -67
- package/dist/filters/filter-panels/polygon-filter-panel.js +0 -68
- package/dist/filters/filter-panels/range-filter-panel.js +0 -54
- package/dist/filters/filter-panels/single-select-filter-panel.js +0 -49
- package/dist/filters/filter-panels/time-range-filter-panel.js +0 -130
- package/dist/filters/filter-panels/time-synced-field-selector.js +0 -28
- package/dist/filters/filter-panels/types.js +0 -6
- package/dist/filters/index.js +0 -56
- package/dist/filters/multi-select-filter.js +0 -31
- package/dist/filters/polygon-filter.js +0 -77
- package/dist/filters/range-filter.js +0 -35
- package/dist/filters/single-select-filter.js +0 -40
- package/dist/filters/time-range-filter.js +0 -67
- package/dist/filters/time-widget-top.js +0 -88
- package/dist/filters/time-widget.js +0 -101
- package/dist/filters/types.js +0 -6
- package/dist/geocoder/geocoder.js +0 -281
- package/dist/geocoder-panel.js +0 -170
- package/dist/hooks/use-cloud-list-provider.js +0 -47
- package/dist/hooks/use-dnd-effects.js +0 -69
- package/dist/hooks/use-dnd-layers.js +0 -80
- package/dist/hooks/use-feature-flags.js +0 -17
- package/dist/hooks/use-fetch-raster-tile-metadata.js +0 -120
- package/dist/hooks/use-fetch-vector-tile-metadata.js +0 -133
- package/dist/hooks/use-legend-position.js +0 -176
- package/dist/hooks/use-on-click-outside.js +0 -36
- package/dist/index.js +0 -2710
- package/dist/injector.js +0 -151
- package/dist/kepler-gl.js +0 -585
- package/dist/layer-animation-controller.js +0 -54
- package/dist/loading-indicator.js +0 -71
- package/dist/map/coordinate-info.js +0 -42
- package/dist/map/effects/effect-control.js +0 -52
- package/dist/map/layer-hover-info.js +0 -250
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/map/lazy-tippy.js +0 -61
- package/dist/map/locale-panel.js +0 -77
- package/dist/map/map-control-panel.js +0 -140
- package/dist/map/map-control-toolbar.js +0 -18
- package/dist/map/map-control-tooltip.js +0 -34
- package/dist/map/map-control.js +0 -71
- package/dist/map/map-draw-panel.js +0 -98
- package/dist/map/map-legend-panel.js +0 -277
- package/dist/map/map-legend.js +0 -396
- package/dist/map/map-popover-content.js +0 -28
- package/dist/map/map-popover.js +0 -190
- package/dist/map/split-map-button.js +0 -65
- package/dist/map/toggle-3d-button.js +0 -60
- package/dist/map-container.js +0 -998
- package/dist/map-view-state-context.js +0 -99
- package/dist/maps-layout.js +0 -43
- package/dist/modal-container.js +0 -435
- package/dist/modals/add-map-style-modal.js +0 -252
- package/dist/modals/cloud-components/cloud-header.js +0 -60
- package/dist/modals/cloud-components/cloud-item.js +0 -59
- package/dist/modals/cloud-components/cloud-item.spec.js +0 -92
- package/dist/modals/cloud-components/cloud-maps.js +0 -47
- package/dist/modals/cloud-components/cloud-maps.spec.js +0 -98
- package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
- package/dist/modals/cloud-components/provider-loading.js +0 -20
- package/dist/modals/cloud-components/provider-select.js +0 -30
- package/dist/modals/cloud-tile.js +0 -203
- package/dist/modals/data-table-modal.js +0 -264
- package/dist/modals/delete-data-modal.js +0 -41
- package/dist/modals/error-display.js +0 -33
- package/dist/modals/export-data-modal.js +0 -186
- package/dist/modals/export-image-modal.js +0 -189
- package/dist/modals/export-map-modal/components.js +0 -34
- package/dist/modals/export-map-modal/export-html-map.js +0 -128
- package/dist/modals/export-map-modal/export-json-map.js +0 -82
- package/dist/modals/export-map-modal/export-map-modal.js +0 -84
- package/dist/modals/image-modal-container.js +0 -58
- package/dist/modals/load-data-modal.js +0 -98
- package/dist/modals/load-storage-map.js +0 -80
- package/dist/modals/load-storage-map.spec.js +0 -216
- package/dist/modals/loading-dialog.js +0 -37
- package/dist/modals/modal-dialog.js +0 -16
- package/dist/modals/modal-tabs.js +0 -75
- package/dist/modals/overwrite-map-modal.js +0 -84
- package/dist/modals/save-map-modal.js +0 -180
- package/dist/modals/save-map-modal.spec.js +0 -195
- package/dist/modals/share-map-modal.js +0 -169
- package/dist/modals/share-map-modal.spec.js +0 -173
- package/dist/modals/status-panel.js +0 -65
- package/dist/modals/storage-map-viewer.d.ts +0 -21
- package/dist/modals/storage-map-viewer.js +0 -98
- package/dist/modals/tilesets-modals/common.js +0 -6
- package/dist/modals/tilesets-modals/load-data-footer.js +0 -56
- package/dist/modals/tilesets-modals/load-tileset.js +0 -158
- package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
- package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -209
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -388
- package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -208
- package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -206
- package/dist/notification-panel/notification-item.js +0 -148
- package/dist/notification-panel.js +0 -61
- package/dist/plot-container.js +0 -311
- package/dist/side-panel/add-by-dataset-button.js +0 -129
- package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
- package/dist/side-panel/cloud-storage-dropdown.js +0 -40
- package/dist/side-panel/common/dataset-info.js +0 -34
- package/dist/side-panel/common/dataset-tag.js +0 -62
- package/dist/side-panel/common/dataset-title.js +0 -144
- package/dist/side-panel/common/source-data-catalog.js +0 -49
- package/dist/side-panel/common/source-data-selector-content.js +0 -65
- package/dist/side-panel/common/source-data-selector.js +0 -41
- package/dist/side-panel/common/source-selector.js +0 -57
- package/dist/side-panel/common/types.js +0 -6
- package/dist/side-panel/custom-panel.js +0 -39
- package/dist/side-panel/filter-manager.js +0 -203
- package/dist/side-panel/filter-panel/add-filter-button.js +0 -27
- package/dist/side-panel/filter-panel/filter-panel-header.js +0 -68
- package/dist/side-panel/filter-panel/filter-panel.js +0 -93
- package/dist/side-panel/interaction-manager.js +0 -45
- package/dist/side-panel/interaction-panel/brush-config.js +0 -41
- package/dist/side-panel/interaction-panel/interaction-panel.js +0 -115
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -165
- package/dist/side-panel/interaction-panel/tooltip-config.js +0 -150
- package/dist/side-panel/layer-manager.js +0 -202
- package/dist/side-panel/layer-panel/add-layer-button.js +0 -27
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +0 -37
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +0 -72
- package/dist/side-panel/layer-panel/color-breaks-panel.js +0 -194
- package/dist/side-panel/layer-panel/color-palette-preset.js +0 -45
- package/dist/side-panel/layer-panel/color-palette.js +0 -75
- package/dist/side-panel/layer-panel/color-range-selector.js +0 -243
- package/dist/side-panel/layer-panel/color-scale-selector.js +0 -296
- package/dist/side-panel/layer-panel/color-selector.js +0 -187
- package/dist/side-panel/layer-panel/column-selector.js +0 -60
- package/dist/side-panel/layer-panel/custom-palette.js +0 -788
- package/dist/side-panel/layer-panel/custom-picker.js +0 -84
- package/dist/side-panel/layer-panel/dataset-layer-group.js +0 -67
- package/dist/side-panel/layer-panel/dataset-layer-section.js +0 -84
- package/dist/side-panel/layer-panel/dataset-section.js +0 -74
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +0 -92
- package/dist/side-panel/layer-panel/how-to-button.js +0 -27
- package/dist/side-panel/layer-panel/layer-color-selector.js +0 -106
- package/dist/side-panel/layer-panel/layer-column-config.js +0 -86
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +0 -193
- package/dist/side-panel/layer-panel/layer-config-group.js +0 -144
- package/dist/side-panel/layer-panel/layer-configurator.js +0 -700
- package/dist/side-panel/layer-panel/layer-error-message.js +0 -29
- package/dist/side-panel/layer-panel/layer-list.js +0 -172
- package/dist/side-panel/layer-panel/layer-panel-header.js +0 -312
- package/dist/side-panel/layer-panel/layer-panel.js +0 -162
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +0 -78
- package/dist/side-panel/layer-panel/layer-type-list-item.js +0 -72
- package/dist/side-panel/layer-panel/layer-type-selector.js +0 -58
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
- package/dist/side-panel/layer-panel/raster-tile-colormap-list-item.js +0 -60
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +0 -358
- package/dist/side-panel/layer-panel/single-color-palette.js +0 -86
- package/dist/side-panel/layer-panel/text-label-panel.js +0 -165
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +0 -102
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +0 -60
- package/dist/side-panel/layer-panel/vis-config-slider.js +0 -164
- package/dist/side-panel/layer-panel/vis-config-switch.js +0 -55
- package/dist/side-panel/map-manager.js +0 -102
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +0 -77
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +0 -95
- package/dist/side-panel/map-style-panel/map-layer-selector.js +0 -74
- package/dist/side-panel/map-style-panel/map-style-selector.js +0 -97
- package/dist/side-panel/panel-header-action.js +0 -73
- package/dist/side-panel/panel-header.js +0 -303
- package/dist/side-panel/panel-tab.js +0 -55
- package/dist/side-panel/panel-title.js +0 -40
- package/dist/side-panel/panel-toggle.js +0 -48
- package/dist/side-panel/panel-view-list-toggle.js +0 -98
- package/dist/side-panel/side-bar.js +0 -127
- package/dist/side-panel.js +0 -230
- package/dist/types.js +0 -6
|
@@ -0,0 +1,685 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.geoCoderPanelSelector = exports["default"] = exports.datasetAttributionSelector = exports.bottomWidgetSelector = exports.attributionSelector = exports.DEFAULT_KEPLER_GL_PROPS = void 0;
|
|
9
|
+
exports.getVisibleDatasets = getVisibleDatasets;
|
|
10
|
+
exports.layerAttributionSelector = exports.isViewportDisjointed = exports.isSplitSelector = void 0;
|
|
11
|
+
exports.makeGetActionCreators = makeGetActionCreators;
|
|
12
|
+
exports.mapStateSelector = exports.mapFieldsSelector = void 0;
|
|
13
|
+
exports.mapStateToProps = mapStateToProps;
|
|
14
|
+
exports.sidePanelSelector = exports.plotContainerSelector = exports.notificationPanelSelector = exports.modalContainerSelector = void 0;
|
|
15
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
18
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
22
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
26
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
27
|
+
var _console = _interopRequireDefault(require("global/console"));
|
|
28
|
+
var _redux = require("redux");
|
|
29
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
30
|
+
var _reselect = require("reselect");
|
|
31
|
+
var _keplerglConnect = require("./connect/keplergl-connect");
|
|
32
|
+
var _reactIntl = require("react-intl");
|
|
33
|
+
var _localization = require("@kepler.gl/localization");
|
|
34
|
+
var _context = require("./context");
|
|
35
|
+
var _actions = require("@kepler.gl/actions");
|
|
36
|
+
var _commonUtils = require("@kepler.gl/common-utils");
|
|
37
|
+
var _styledComponents2 = require("./common/styled-components");
|
|
38
|
+
var _constants = require("@kepler.gl/constants");
|
|
39
|
+
var _sidePanel = _interopRequireDefault(require("./side-panel"));
|
|
40
|
+
var _mapContainer2 = _interopRequireDefault(require("./map-container"));
|
|
41
|
+
var _mapsLayout = _interopRequireDefault(require("./maps-layout"));
|
|
42
|
+
var _bottomWidget = _interopRequireDefault(require("./bottom-widget"));
|
|
43
|
+
var _modalContainer = _interopRequireDefault(require("./modal-container"));
|
|
44
|
+
var _plotContainer = _interopRequireDefault(require("./plot-container"));
|
|
45
|
+
var _notificationPanel = _interopRequireDefault(require("./notification-panel"));
|
|
46
|
+
var _geocoderPanel = _interopRequireDefault(require("./geocoder-panel"));
|
|
47
|
+
var _effectManager = _interopRequireDefault(require("./effects/effect-manager"));
|
|
48
|
+
var _dndContext = _interopRequireDefault(require("./dnd-context"));
|
|
49
|
+
var _useCloudListProvider = require("./hooks/use-cloud-list-provider");
|
|
50
|
+
var _remoteDatasetRefreshController = _interopRequireDefault(require("./remote-dataset-refresh-controller"));
|
|
51
|
+
var _utils = require("@kepler.gl/utils");
|
|
52
|
+
var _styles = require("@kepler.gl/styles");
|
|
53
|
+
var _templateObject; // SPDX-License-Identifier: MIT
|
|
54
|
+
// Copyright contributors to the kepler.gl project
|
|
55
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
56
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
57
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
58
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
59
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
60
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
61
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
62
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
63
|
+
// Maybe we should think about exporting this or creating a variable
|
|
64
|
+
// as part of the base.js theme
|
|
65
|
+
var GlobalStyle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n\n *,\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n margin: 0;\n }\n\n a {\n text-decoration: none;\n color: ", ";\n }\n\n :focus {\n outline: none;\n }\n\n .maplibregl-ctrl .maplibregl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl .mapboxgl-ctrl-logo {\n display: none;\n }\n"])), function (props) {
|
|
66
|
+
return props.theme.fontFamily;
|
|
67
|
+
}, function (props) {
|
|
68
|
+
return props.theme.fontWeight;
|
|
69
|
+
}, function (props) {
|
|
70
|
+
return props.theme.fontSize;
|
|
71
|
+
}, function (props) {
|
|
72
|
+
return props.theme.lineHeight;
|
|
73
|
+
}, function (props) {
|
|
74
|
+
return props.theme.labelColor;
|
|
75
|
+
});
|
|
76
|
+
var BottomWidgetOuter = _styledComponents["default"].div(function (_ref) {
|
|
77
|
+
var absolute = _ref.absolute;
|
|
78
|
+
return "\n ".concat(absolute ? 'position: absolute; bottom: 0; right: 0;' : '', "\n pointer-events: none; /* prevent padding from blocking input */\n & > * {\n /* all children should allow input */\n pointer-events: all;\n }");
|
|
79
|
+
});
|
|
80
|
+
var isViewportDisjointed = exports.isViewportDisjointed = function isViewportDisjointed(props) {
|
|
81
|
+
return props.mapState.isSplit && !props.mapState.isViewportSynced && props.mapState.splitMapViewports.length > 1;
|
|
82
|
+
};
|
|
83
|
+
var mapStateSelector = exports.mapStateSelector = (0, _reselect.createSelector)([function (props) {
|
|
84
|
+
return props.mapState;
|
|
85
|
+
}, function (_, index) {
|
|
86
|
+
return index;
|
|
87
|
+
}], function (mapState, index) {
|
|
88
|
+
if (!Number.isFinite(index)) {
|
|
89
|
+
// either no index arg or an invalid index was provided
|
|
90
|
+
// it is expected to be either 0 or 1 when in split mode
|
|
91
|
+
// only use the mapState
|
|
92
|
+
return mapState;
|
|
93
|
+
}
|
|
94
|
+
return isViewportDisjointed({
|
|
95
|
+
mapState: mapState
|
|
96
|
+
}) ? // mix together the viewport properties intended for this disjointed <MapContainer> with the other necessary mapState properties
|
|
97
|
+
_objectSpread(_objectSpread({}, mapState), mapState.splitMapViewports[index || 0]) :
|
|
98
|
+
// otherwise only use the mapState
|
|
99
|
+
mapState;
|
|
100
|
+
});
|
|
101
|
+
var mapFieldsSelector = exports.mapFieldsSelector = function mapFieldsSelector(props) {
|
|
102
|
+
var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
103
|
+
var attribution = attributionSelector(props);
|
|
104
|
+
return {
|
|
105
|
+
getMapboxRef: props.getMapboxRef,
|
|
106
|
+
mapboxApiAccessToken: props.mapboxApiAccessToken,
|
|
107
|
+
mapboxApiUrl: props.mapboxApiUrl ? props.mapboxApiUrl : DEFAULT_KEPLER_GL_PROPS.mapboxApiUrl,
|
|
108
|
+
mapState: mapStateSelector(props, index),
|
|
109
|
+
datasetAttributions: attribution.sources,
|
|
110
|
+
attributionLogos: attribution.logos,
|
|
111
|
+
mapStyle: props.mapStyle,
|
|
112
|
+
onDeckInitialized: props.onDeckInitialized,
|
|
113
|
+
onViewStateChange: props.onViewStateChange,
|
|
114
|
+
onMouseMove: props.onMouseMove,
|
|
115
|
+
deckGlProps: props.deckGlProps,
|
|
116
|
+
uiStateActions: props.uiStateActions,
|
|
117
|
+
visStateActions: props.visStateActions,
|
|
118
|
+
mapStateActions: props.mapStateActions,
|
|
119
|
+
// visState
|
|
120
|
+
visState: props.visState,
|
|
121
|
+
// uiState
|
|
122
|
+
activeSidePanel: props.uiState.activeSidePanel,
|
|
123
|
+
mapControls: props.uiState.mapControls,
|
|
124
|
+
readOnly: props.uiState.readOnly,
|
|
125
|
+
locale: props.uiState.locale,
|
|
126
|
+
uiTheme: props.uiState.theme,
|
|
127
|
+
isLoadingIndicatorVisible: Number(props.visState.loadingIndicatorValue) > 0,
|
|
128
|
+
sidePanelWidth: props.sidePanelWidth ? props.sidePanelWidth : DEFAULT_KEPLER_GL_PROPS.width,
|
|
129
|
+
// mapStyle
|
|
130
|
+
topMapContainerProps: props.topMapContainerProps,
|
|
131
|
+
bottomMapContainerProps: props.bottomMapContainerProps,
|
|
132
|
+
// transformRequest for Mapbox basemaps
|
|
133
|
+
transformRequest: props.transformRequest,
|
|
134
|
+
RTLTextPlugin: props.RTLTextPlugin
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
function getVisibleDatasets(datasets) {
|
|
138
|
+
// We don't want Geocoder dataset to be present in SidePanel dataset list
|
|
139
|
+
return (0, _utils.filterObjectByPredicate)(datasets, function (key) {
|
|
140
|
+
return key !== _constants.GEOCODER_DATASET_NAME;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
var sidePanelSelector = exports.sidePanelSelector = function sidePanelSelector(props, availableProviders, filteredDatasets) {
|
|
144
|
+
return {
|
|
145
|
+
appName: props.appName ? props.appName : DEFAULT_KEPLER_GL_PROPS.appName,
|
|
146
|
+
version: props.version ? props.version : DEFAULT_KEPLER_GL_PROPS.version,
|
|
147
|
+
appWebsite: props.appWebsite,
|
|
148
|
+
mapStyle: props.mapStyle,
|
|
149
|
+
mapState: props.mapState,
|
|
150
|
+
onSaveMap: props.onSaveMap,
|
|
151
|
+
uiState: props.uiState,
|
|
152
|
+
mapStyleActions: props.mapStyleActions,
|
|
153
|
+
visStateActions: props.visStateActions,
|
|
154
|
+
uiStateActions: props.uiStateActions,
|
|
155
|
+
mapStateActions: props.mapStateActions,
|
|
156
|
+
datasets: filteredDatasets,
|
|
157
|
+
filters: props.visState.filters,
|
|
158
|
+
layers: props.visState.layers,
|
|
159
|
+
layerOrder: props.visState.layerOrder,
|
|
160
|
+
layerClasses: props.visState.layerClasses,
|
|
161
|
+
interactionConfig: props.visState.interactionConfig,
|
|
162
|
+
mapInfo: props.visState.mapInfo,
|
|
163
|
+
layerBlending: props.visState.layerBlending,
|
|
164
|
+
overlayBlending: props.visState.overlayBlending,
|
|
165
|
+
width: props.sidePanelWidth ? props.sidePanelWidth : DEFAULT_KEPLER_GL_PROPS.width,
|
|
166
|
+
availableProviders: availableProviders,
|
|
167
|
+
mapSaved: props.providerState.mapSaved
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
var plotContainerSelector = exports.plotContainerSelector = function plotContainerSelector(props) {
|
|
171
|
+
return {
|
|
172
|
+
width: props.width,
|
|
173
|
+
height: props.height,
|
|
174
|
+
ratio: props.uiState.exportImage.ratio,
|
|
175
|
+
resolution: props.uiState.exportImage.resolution,
|
|
176
|
+
legend: props.uiState.exportImage.legend,
|
|
177
|
+
center: props.uiState.exportImage.center,
|
|
178
|
+
imageSize: props.uiState.exportImage.imageSize,
|
|
179
|
+
escapeXhtmlForWebpack: props.uiState.exportImage.escapeXhtmlForWebpack,
|
|
180
|
+
mapFields: mapFieldsSelector(props),
|
|
181
|
+
addNotification: props.uiStateActions.addNotification,
|
|
182
|
+
setExportImageSetting: props.uiStateActions.setExportImageSetting,
|
|
183
|
+
setExportImageDataUri: props.uiStateActions.setExportImageDataUri,
|
|
184
|
+
setExportImageError: props.uiStateActions.setExportImageError,
|
|
185
|
+
splitMaps: props.visState.splitMaps
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
var isSplitSelector = exports.isSplitSelector = function isSplitSelector(props) {
|
|
189
|
+
return props.visState.splitMaps && props.visState.splitMaps.length > 1;
|
|
190
|
+
};
|
|
191
|
+
var bottomWidgetSelector = exports.bottomWidgetSelector = function bottomWidgetSelector(props, theme) {
|
|
192
|
+
return {
|
|
193
|
+
filters: props.visState.filters,
|
|
194
|
+
datasets: props.visState.datasets,
|
|
195
|
+
uiState: props.uiState,
|
|
196
|
+
layers: props.visState.layers,
|
|
197
|
+
animationConfig: props.visState.animationConfig,
|
|
198
|
+
visStateActions: props.visStateActions,
|
|
199
|
+
toggleModal: props.uiStateActions.toggleModal,
|
|
200
|
+
sidePanelWidth: props.uiState.readOnly ? 0 : props.sidePanelWidth + theme.sidePanel.margin.left
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
var modalContainerSelector = exports.modalContainerSelector = function modalContainerSelector(props, rootNode) {
|
|
204
|
+
return {
|
|
205
|
+
appName: props.appName ? props.appName : DEFAULT_KEPLER_GL_PROPS.appName,
|
|
206
|
+
mapStyle: props.mapStyle,
|
|
207
|
+
visState: props.visState,
|
|
208
|
+
mapState: props.mapState,
|
|
209
|
+
uiState: props.uiState,
|
|
210
|
+
providerState: props.providerState,
|
|
211
|
+
mapboxApiAccessToken: props.mapboxApiAccessToken,
|
|
212
|
+
mapboxApiUrl: props.mapboxApiUrl,
|
|
213
|
+
visStateActions: props.visStateActions,
|
|
214
|
+
uiStateActions: props.uiStateActions,
|
|
215
|
+
mapStyleActions: props.mapStyleActions,
|
|
216
|
+
providerActions: props.providerActions,
|
|
217
|
+
rootNode: rootNode,
|
|
218
|
+
// User defined cloud provider props
|
|
219
|
+
cloudProviders: props.cloudProviders ? props.cloudProviders : DEFAULT_KEPLER_GL_PROPS.cloudProviders,
|
|
220
|
+
onExportToCloudSuccess: props.onExportToCloudSuccess,
|
|
221
|
+
onLoadCloudMapSuccess: props.onLoadCloudMapSuccess,
|
|
222
|
+
onLoadCloudMapError: props.onLoadCloudMapError,
|
|
223
|
+
onExportToCloudError: props.onExportToCloudError
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
var geoCoderPanelSelector = exports.geoCoderPanelSelector = function geoCoderPanelSelector(props, dimensions) {
|
|
227
|
+
var _props$visState$inter, _props$visState$inter2;
|
|
228
|
+
return {
|
|
229
|
+
isGeocoderEnabled: props.visState.interactionConfig.geocoder.enabled,
|
|
230
|
+
mapboxApiAccessToken: props.mapboxApiAccessToken,
|
|
231
|
+
mapState: props.mapState,
|
|
232
|
+
uiState: props.uiState,
|
|
233
|
+
layerOrder: props.visState.layerOrder,
|
|
234
|
+
updateVisData: props.visStateActions.updateVisData,
|
|
235
|
+
removeDataset: props.visStateActions.removeDataset,
|
|
236
|
+
updateMap: props.mapStateActions.updateMap,
|
|
237
|
+
appWidth: dimensions.width,
|
|
238
|
+
limitSearch: (_props$visState$inter = (_props$visState$inter2 = props.visState.interactionConfig.geocoder.config) === null || _props$visState$inter2 === void 0 ? void 0 : _props$visState$inter2.limitSearch) !== null && _props$visState$inter !== void 0 ? _props$visState$inter : false
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Returns array of unique dataset attributions, each with title and url properties.
|
|
244
|
+
*/
|
|
245
|
+
var datasetAttributionSelector = exports.datasetAttributionSelector = (0, _reselect.createSelector)([function (state) {
|
|
246
|
+
return state.visState.datasets;
|
|
247
|
+
}], function (datasets) {
|
|
248
|
+
var uniqueAttributions = [];
|
|
249
|
+
Object.keys(datasets).forEach(function (key) {
|
|
250
|
+
var _ds$metadata;
|
|
251
|
+
var ds = datasets[key];
|
|
252
|
+
var attributions = ds === null || ds === void 0 || (_ds$metadata = ds.metadata) === null || _ds$metadata === void 0 ? void 0 : _ds$metadata.attributions;
|
|
253
|
+
if (Array.isArray(attributions)) {
|
|
254
|
+
attributions.forEach(function (attribution) {
|
|
255
|
+
if (typeof attribution === 'string') {
|
|
256
|
+
// attribution can be a raw string or a string with link tags
|
|
257
|
+
var links = attribution.match(/<a[^]+?a>/g);
|
|
258
|
+
if (links) {
|
|
259
|
+
try {
|
|
260
|
+
links === null || links === void 0 || links.forEach(function (link) {
|
|
261
|
+
var _link$match, _link$match2;
|
|
262
|
+
var href = (_link$match = link.match(/href="([^"]*)/)) === null || _link$match === void 0 ? void 0 : _link$match[1];
|
|
263
|
+
var title = (_link$match2 = link.match(/title="([^"]*)/)) === null || _link$match2 === void 0 ? void 0 : _link$match2[1];
|
|
264
|
+
if (href && title) {
|
|
265
|
+
uniqueAttributions.push({
|
|
266
|
+
title: "".concat(link.indexOf('©') >= 0 ? '© ' : '').concat(title),
|
|
267
|
+
url: href
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
} catch (error) {
|
|
272
|
+
// just ignore for now
|
|
273
|
+
}
|
|
274
|
+
} else {
|
|
275
|
+
uniqueAttributions.push({
|
|
276
|
+
title: attribution,
|
|
277
|
+
url: null
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
return uniqueAttributions;
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Collect unique layer-level attributions from visible layers.
|
|
289
|
+
* Builds a serialized cache key from attribution values so createSelector
|
|
290
|
+
* can detect in-place mutations to layer.meta.
|
|
291
|
+
*/
|
|
292
|
+
var layerAttributionKeySelector = function layerAttributionKeySelector(state) {
|
|
293
|
+
var _state$visState;
|
|
294
|
+
var layers = (_state$visState = state.visState) === null || _state$visState === void 0 ? void 0 : _state$visState.layers;
|
|
295
|
+
if (!layers) return '';
|
|
296
|
+
var key = '';
|
|
297
|
+
var _iterator = _createForOfIteratorHelper(layers),
|
|
298
|
+
_step;
|
|
299
|
+
try {
|
|
300
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
301
|
+
var _layer$config, _layer$meta;
|
|
302
|
+
var layer = _step.value;
|
|
303
|
+
if ((_layer$config = layer.config) !== null && _layer$config !== void 0 && _layer$config.isVisible && (_layer$meta = layer.meta) !== null && _layer$meta !== void 0 && _layer$meta.attribution) {
|
|
304
|
+
var _a$logoUrl;
|
|
305
|
+
var a = layer.meta.attribution;
|
|
306
|
+
key += "".concat(a.title, "\0").concat(a.url, "\0").concat((_a$logoUrl = a.logoUrl) !== null && _a$logoUrl !== void 0 ? _a$logoUrl : '', "\0");
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
} catch (err) {
|
|
310
|
+
_iterator.e(err);
|
|
311
|
+
} finally {
|
|
312
|
+
_iterator.f();
|
|
313
|
+
}
|
|
314
|
+
return key;
|
|
315
|
+
};
|
|
316
|
+
var layerAttributionSelector = exports.layerAttributionSelector = (0, _reselect.createSelector)([function (state) {
|
|
317
|
+
var _state$visState2;
|
|
318
|
+
return (_state$visState2 = state.visState) === null || _state$visState2 === void 0 ? void 0 : _state$visState2.layers;
|
|
319
|
+
}, layerAttributionKeySelector], function (layers) {
|
|
320
|
+
var attributions = [];
|
|
321
|
+
if (!layers) return attributions;
|
|
322
|
+
var _iterator2 = _createForOfIteratorHelper(layers),
|
|
323
|
+
_step2;
|
|
324
|
+
try {
|
|
325
|
+
var _loop = function _loop() {
|
|
326
|
+
var _layer$config2, _layer$meta2;
|
|
327
|
+
var layer = _step2.value;
|
|
328
|
+
if ((_layer$config2 = layer.config) !== null && _layer$config2 !== void 0 && _layer$config2.isVisible && (_layer$meta2 = layer.meta) !== null && _layer$meta2 !== void 0 && _layer$meta2.attribution) {
|
|
329
|
+
var attr = layer.meta.attribution;
|
|
330
|
+
if (attr.title && !attributions.find(function (a) {
|
|
331
|
+
return a.title === attr.title && a.url === attr.url;
|
|
332
|
+
})) {
|
|
333
|
+
attributions.push(attr);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
338
|
+
_loop();
|
|
339
|
+
}
|
|
340
|
+
} catch (err) {
|
|
341
|
+
_iterator2.e(err);
|
|
342
|
+
} finally {
|
|
343
|
+
_iterator2.f();
|
|
344
|
+
}
|
|
345
|
+
return attributions;
|
|
346
|
+
});
|
|
347
|
+
var attributionSelector = exports.attributionSelector = (0, _reselect.createSelector)([datasetAttributionSelector, layerAttributionSelector], function (datasetAttributions, layerAttributions) {
|
|
348
|
+
var uniqueTextAttributions = (0, _toConsumableArray2["default"])(datasetAttributions);
|
|
349
|
+
var logos = [];
|
|
350
|
+
layerAttributions.forEach(function (layerAttribution) {
|
|
351
|
+
if (!uniqueTextAttributions.find(function (a) {
|
|
352
|
+
return a.title === layerAttribution.title && a.url === layerAttribution.url;
|
|
353
|
+
})) {
|
|
354
|
+
uniqueTextAttributions.push({
|
|
355
|
+
title: layerAttribution.title,
|
|
356
|
+
url: layerAttribution.url
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
if (layerAttribution.logoUrl && !logos.find(function (a) {
|
|
360
|
+
return a.logoUrl === layerAttribution.logoUrl;
|
|
361
|
+
})) {
|
|
362
|
+
logos.push(layerAttribution);
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
return {
|
|
366
|
+
sources: uniqueTextAttributions,
|
|
367
|
+
logos: logos
|
|
368
|
+
};
|
|
369
|
+
});
|
|
370
|
+
var notificationPanelSelector = exports.notificationPanelSelector = function notificationPanelSelector(props) {
|
|
371
|
+
return {
|
|
372
|
+
removeNotification: props.uiStateActions.removeNotification,
|
|
373
|
+
notifications: props.uiState.notifications
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
var DEFAULT_KEPLER_GL_PROPS = exports.DEFAULT_KEPLER_GL_PROPS = {
|
|
377
|
+
mapStyles: [],
|
|
378
|
+
mapStylesReplaceDefault: false,
|
|
379
|
+
mapboxApiUrl: _constants.DEFAULT_MAPBOX_API_URL,
|
|
380
|
+
width: 800,
|
|
381
|
+
height: 800,
|
|
382
|
+
appName: _constants.KEPLER_GL_NAME,
|
|
383
|
+
version: _constants.KEPLER_GL_VERSION,
|
|
384
|
+
sidePanelWidth: _constants.DIMENSIONS.sidePanel.width,
|
|
385
|
+
theme: {},
|
|
386
|
+
cloudProviders: [],
|
|
387
|
+
readOnly: false,
|
|
388
|
+
featureFlags: {}
|
|
389
|
+
};
|
|
390
|
+
KeplerGlFactory.deps = [_bottomWidget["default"], _geocoderPanel["default"], _mapContainer2["default"], _mapsLayout["default"], _modalContainer["default"], _sidePanel["default"], _plotContainer["default"], _notificationPanel["default"], _dndContext["default"], _effectManager["default"]];
|
|
391
|
+
function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout, ModalContainer, SidePanel, PlotContainer, NotificationPanel, DndContext) {
|
|
392
|
+
/** @typedef {import('./kepler-gl').UnconnectedKeplerGlProps} KeplerGlProps */
|
|
393
|
+
/** @augments React.Component<KeplerGlProps> */
|
|
394
|
+
var KeplerGL = /*#__PURE__*/function (_Component) {
|
|
395
|
+
function KeplerGL() {
|
|
396
|
+
var _this;
|
|
397
|
+
(0, _classCallCheck2["default"])(this, KeplerGL);
|
|
398
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
399
|
+
args[_key] = arguments[_key];
|
|
400
|
+
}
|
|
401
|
+
_this = _callSuper(this, KeplerGL, [].concat(args));
|
|
402
|
+
(0, _defineProperty2["default"])(_this, "state", {
|
|
403
|
+
dimensions: null
|
|
404
|
+
});
|
|
405
|
+
(0, _defineProperty2["default"])(_this, "_handleResize", function (dimensions) {
|
|
406
|
+
_this.setState({
|
|
407
|
+
dimensions: dimensions
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
(0, _defineProperty2["default"])(_this, "root", /*#__PURE__*/(0, _react.createRef)());
|
|
411
|
+
(0, _defineProperty2["default"])(_this, "bottomWidgetRef", /*#__PURE__*/(0, _react.createRef)());
|
|
412
|
+
/* selectors */
|
|
413
|
+
(0, _defineProperty2["default"])(_this, "themeSelector", function (props) {
|
|
414
|
+
return props.theme;
|
|
415
|
+
});
|
|
416
|
+
(0, _defineProperty2["default"])(_this, "uiThemeSelector", function (props) {
|
|
417
|
+
var _props$uiState;
|
|
418
|
+
return (_props$uiState = props.uiState) === null || _props$uiState === void 0 ? void 0 : _props$uiState.theme;
|
|
419
|
+
});
|
|
420
|
+
(0, _defineProperty2["default"])(_this, "availableThemeSelector", (0, _reselect.createSelector)(_this.themeSelector, _this.uiThemeSelector, function (theme, uiTheme) {
|
|
421
|
+
// When theme toggle is enabled, uiState.theme drives light/dark switching.
|
|
422
|
+
var themeInput = (0, _utils.getApplicationConfig)().enableThemeToggle ? uiTheme || _constants.THEME.dark : theme;
|
|
423
|
+
if ((0, _typeof2["default"])(themeInput) === 'object' && themeInput !== null) {
|
|
424
|
+
return _objectSpread(_objectSpread({}, _styles.theme), themeInput);
|
|
425
|
+
}
|
|
426
|
+
if (themeInput === _constants.THEME.light) {
|
|
427
|
+
return _styles.themeLT;
|
|
428
|
+
}
|
|
429
|
+
if (themeInput === _constants.THEME.base) {
|
|
430
|
+
return _styles.themeBS;
|
|
431
|
+
}
|
|
432
|
+
// THEME.dark and unknown values fall back to the default dark theme
|
|
433
|
+
return _styles.theme;
|
|
434
|
+
}));
|
|
435
|
+
(0, _defineProperty2["default"])(_this, "datasetsSelector", function (props) {
|
|
436
|
+
return props.visState.datasets;
|
|
437
|
+
});
|
|
438
|
+
(0, _defineProperty2["default"])(_this, "filteredDatasetsSelector", (0, _reselect.createSelector)(_this.datasetsSelector, getVisibleDatasets));
|
|
439
|
+
(0, _defineProperty2["default"])(_this, "availableProviders", (0, _reselect.createSelector)(function (props) {
|
|
440
|
+
return props.cloudProviders;
|
|
441
|
+
}, function (providers) {
|
|
442
|
+
return Array.isArray(providers) && providers.length ? {
|
|
443
|
+
hasStorage: providers.some(function (p) {
|
|
444
|
+
return p.hasPrivateStorage();
|
|
445
|
+
}),
|
|
446
|
+
hasShare: providers.some(function (p) {
|
|
447
|
+
return p.hasSharingUrl();
|
|
448
|
+
})
|
|
449
|
+
} : {};
|
|
450
|
+
}));
|
|
451
|
+
(0, _defineProperty2["default"])(_this, "localeMessagesSelector", (0, _reselect.createSelector)(function (props) {
|
|
452
|
+
return props.localeMessages;
|
|
453
|
+
}, function (customMessages) {
|
|
454
|
+
return customMessages ? (0, _utils.mergeMessages)(_localization.messages, customMessages) : _localization.messages;
|
|
455
|
+
}));
|
|
456
|
+
(0, _defineProperty2["default"])(_this, "_loadMapStyle", function () {
|
|
457
|
+
var defaultStyles = Object.values(_this.props.mapStyle.mapStyles);
|
|
458
|
+
// add id to custom map styles if not given
|
|
459
|
+
var customStyles = (_this.props.mapStyles || []).map(function (ms) {
|
|
460
|
+
return _objectSpread(_objectSpread({}, ms), {}, {
|
|
461
|
+
id: ms.id || (0, _commonUtils.generateHashId)()
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
var allStyles = [].concat((0, _toConsumableArray2["default"])(customStyles), defaultStyles).reduce(function (accu, style) {
|
|
465
|
+
accu[style.id] = style;
|
|
466
|
+
return accu;
|
|
467
|
+
}, {});
|
|
468
|
+
_this.props.mapStyleActions.loadMapStyles(allStyles);
|
|
469
|
+
});
|
|
470
|
+
(0, _defineProperty2["default"])(_this, "_deleteMapLabels", function (containerId, layerId) {
|
|
471
|
+
_this.props.visStateActions.toggleLayerForMap(containerId, layerId);
|
|
472
|
+
});
|
|
473
|
+
return _this;
|
|
474
|
+
}
|
|
475
|
+
(0, _inherits2["default"])(KeplerGL, _Component);
|
|
476
|
+
return (0, _createClass2["default"])(KeplerGL, [{
|
|
477
|
+
key: "componentDidMount",
|
|
478
|
+
value: function componentDidMount() {
|
|
479
|
+
var _getApplicationConfig;
|
|
480
|
+
if (((_getApplicationConfig = (0, _utils.getApplicationConfig)().baseMapLibraryConfig) === null || _getApplicationConfig === void 0 || (_getApplicationConfig = _getApplicationConfig['mapbox']) === null || _getApplicationConfig === void 0 ? void 0 : _getApplicationConfig.mapLibName) === 'Mapbox') {
|
|
481
|
+
this._validateMapboxToken();
|
|
482
|
+
}
|
|
483
|
+
this._loadMapStyle();
|
|
484
|
+
if (typeof this.props.onKeplerGlInitialized === 'function') {
|
|
485
|
+
this.props.onKeplerGlInitialized();
|
|
486
|
+
}
|
|
487
|
+
if (this.root.current instanceof HTMLElement) {
|
|
488
|
+
(0, _utils.observeDimensions)(this.root.current, this._handleResize);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}, {
|
|
492
|
+
key: "componentWillUnmount",
|
|
493
|
+
value: function componentWillUnmount() {
|
|
494
|
+
if (this.root.current instanceof HTMLElement) {
|
|
495
|
+
(0, _utils.unobserveDimensions)(this.root.current);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
}, {
|
|
499
|
+
key: "_validateMapboxToken",
|
|
500
|
+
value: /* private methods */
|
|
501
|
+
function _validateMapboxToken() {
|
|
502
|
+
var mapboxApiAccessToken = this.props.mapboxApiAccessToken;
|
|
503
|
+
if (!(0, _utils.validateToken)(mapboxApiAccessToken)) {
|
|
504
|
+
_console["default"].warn(_constants.MISSING_MAPBOX_TOKEN);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}, {
|
|
508
|
+
key: "render",
|
|
509
|
+
value:
|
|
510
|
+
// eslint-disable-next-line complexity
|
|
511
|
+
function render() {
|
|
512
|
+
var _this2 = this;
|
|
513
|
+
var _this$props = this.props,
|
|
514
|
+
_this$props$id = _this$props.id,
|
|
515
|
+
id = _this$props$id === void 0 ? 'map' : _this$props$id,
|
|
516
|
+
_this$props$width = _this$props.width,
|
|
517
|
+
width = _this$props$width === void 0 ? DEFAULT_KEPLER_GL_PROPS.width : _this$props$width,
|
|
518
|
+
_this$props$height = _this$props.height,
|
|
519
|
+
height = _this$props$height === void 0 ? DEFAULT_KEPLER_GL_PROPS.height : _this$props$height,
|
|
520
|
+
uiState = _this$props.uiState,
|
|
521
|
+
visState = _this$props.visState,
|
|
522
|
+
readOnly = _this$props.readOnly,
|
|
523
|
+
featureFlags = _this$props.featureFlags,
|
|
524
|
+
_this$props$cloudProv = _this$props.cloudProviders,
|
|
525
|
+
cloudProviders = _this$props$cloudProv === void 0 ? [] : _this$props$cloudProv;
|
|
526
|
+
var dimensions = this.state.dimensions || {
|
|
527
|
+
width: width,
|
|
528
|
+
height: height
|
|
529
|
+
};
|
|
530
|
+
var splitMaps = visState.splitMaps,
|
|
531
|
+
interactionConfig = visState.interactionConfig;
|
|
532
|
+
var isSplit = isSplitSelector(this.props);
|
|
533
|
+
var theme = this.availableThemeSelector(this.props);
|
|
534
|
+
var localeMessages = this.localeMessagesSelector(this.props);
|
|
535
|
+
var isExportingImage = uiState.exportImage.exporting;
|
|
536
|
+
var availableProviders = this.availableProviders(this.props);
|
|
537
|
+
var filteredDatasets = this.filteredDatasetsSelector(this.props);
|
|
538
|
+
var sideFields = sidePanelSelector(this.props, availableProviders, filteredDatasets);
|
|
539
|
+
var plotContainerFields = plotContainerSelector(this.props);
|
|
540
|
+
var bottomWidgetFields = bottomWidgetSelector(this.props, theme);
|
|
541
|
+
var modalContainerFields = modalContainerSelector(this.props, this.root.current);
|
|
542
|
+
var geoCoderPanelFields = geoCoderPanelSelector(this.props, dimensions);
|
|
543
|
+
var notificationPanelFields = notificationPanelSelector(this.props);
|
|
544
|
+
var mapContainers = !isSplit ? [/*#__PURE__*/_react["default"].createElement(MapContainer, (0, _extends2["default"])({
|
|
545
|
+
primary: true,
|
|
546
|
+
key: 0,
|
|
547
|
+
index: 0
|
|
548
|
+
}, mapFieldsSelector(this.props), {
|
|
549
|
+
containerId: 0,
|
|
550
|
+
deleteMapLabels: this._deleteMapLabels
|
|
551
|
+
}))] : splitMaps.map(function (settings, index) {
|
|
552
|
+
return /*#__PURE__*/_react["default"].createElement(MapContainer, (0, _extends2["default"])({
|
|
553
|
+
key: index,
|
|
554
|
+
index: index,
|
|
555
|
+
primary: index === 1
|
|
556
|
+
}, mapFieldsSelector(_this2.props, index), {
|
|
557
|
+
containerId: index,
|
|
558
|
+
deleteMapLabels: _this2._deleteMapLabels
|
|
559
|
+
}));
|
|
560
|
+
});
|
|
561
|
+
return /*#__PURE__*/_react["default"].createElement(_context.RootContext.Provider, {
|
|
562
|
+
value: this.root
|
|
563
|
+
}, /*#__PURE__*/_react["default"].createElement(_context.FeatureFlagsContextProvider, {
|
|
564
|
+
featureFlags: featureFlags
|
|
565
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactIntl.IntlProvider, {
|
|
566
|
+
locale: uiState.locale,
|
|
567
|
+
messages: localeMessages[uiState.locale]
|
|
568
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyleSheetManager, {
|
|
569
|
+
shouldForwardProp: _styledComponents2.shouldForwardProp
|
|
570
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
571
|
+
theme: theme
|
|
572
|
+
}, /*#__PURE__*/_react["default"].createElement(_useCloudListProvider.CloudListProvider, {
|
|
573
|
+
providers: cloudProviders
|
|
574
|
+
}, /*#__PURE__*/_react["default"].createElement(GlobalStyle, {
|
|
575
|
+
className: "kepler-gl",
|
|
576
|
+
id: "kepler-gl__".concat(id),
|
|
577
|
+
style: {
|
|
578
|
+
display: 'flex',
|
|
579
|
+
flexDirection: 'column',
|
|
580
|
+
position: 'relative',
|
|
581
|
+
width: "".concat(width, "px"),
|
|
582
|
+
height: "".concat(height, "px")
|
|
583
|
+
},
|
|
584
|
+
ref: this.root
|
|
585
|
+
}, /*#__PURE__*/_react["default"].createElement(NotificationPanel, notificationPanelFields), /*#__PURE__*/_react["default"].createElement(_remoteDatasetRefreshController["default"], {
|
|
586
|
+
datasets: visState.datasets,
|
|
587
|
+
refreshDataset: this.props.visStateActions.refreshDataset
|
|
588
|
+
}), /*#__PURE__*/_react["default"].createElement(DndContext, {
|
|
589
|
+
visState: visState
|
|
590
|
+
}, !uiState.readOnly && !readOnly && /*#__PURE__*/_react["default"].createElement(SidePanel, sideFields), /*#__PURE__*/_react["default"].createElement(MapsLayout, {
|
|
591
|
+
className: "maps",
|
|
592
|
+
mapState: this.props.mapState,
|
|
593
|
+
onSetSwipeComparePercentage: this.props.mapStateActions.setSwipeComparePercentage
|
|
594
|
+
}, mapContainers)), isExportingImage && /*#__PURE__*/_react["default"].createElement(PlotContainer, plotContainerFields), !isViewportDisjointed(this.props) && interactionConfig.geocoder.enabled && /*#__PURE__*/_react["default"].createElement(GeoCoderPanel, (0, _extends2["default"])({}, geoCoderPanelFields, {
|
|
595
|
+
index: 0,
|
|
596
|
+
unsyncedViewports: false
|
|
597
|
+
})), isViewportDisjointed(this.props) && interactionConfig.geocoder.enabled && mapContainers.map(function (_mapContainer, index) {
|
|
598
|
+
return /*#__PURE__*/_react["default"].createElement(GeoCoderPanel, (0, _extends2["default"])({
|
|
599
|
+
key: index
|
|
600
|
+
}, geoCoderPanelFields, {
|
|
601
|
+
index: index,
|
|
602
|
+
unsyncedViewports: true
|
|
603
|
+
}));
|
|
604
|
+
}), /*#__PURE__*/_react["default"].createElement(BottomWidgetOuter, {
|
|
605
|
+
absolute: !(0, _utils.hasPortableWidth)(_styles.breakPointValues)
|
|
606
|
+
}, /*#__PURE__*/_react["default"].createElement(BottomWidget, (0, _extends2["default"])({
|
|
607
|
+
rootRef: this.bottomWidgetRef
|
|
608
|
+
}, bottomWidgetFields, {
|
|
609
|
+
containerW: dimensions.width,
|
|
610
|
+
theme: theme
|
|
611
|
+
}))), /*#__PURE__*/_react["default"].createElement(ModalContainer, (0, _extends2["default"])({}, modalContainerFields, {
|
|
612
|
+
containerW: dimensions.width,
|
|
613
|
+
containerH: dimensions.height
|
|
614
|
+
})))))))));
|
|
615
|
+
}
|
|
616
|
+
}]);
|
|
617
|
+
}(_react.Component);
|
|
618
|
+
(0, _defineProperty2["default"])(KeplerGL, "defaultProps", DEFAULT_KEPLER_GL_PROPS);
|
|
619
|
+
(0, _defineProperty2["default"])(KeplerGL, "contextType", _context.RootContext);
|
|
620
|
+
return (0, _keplerglConnect.connect)(mapStateToProps, makeMapDispatchToProps)((0, _styledComponents.withTheme)(KeplerGL));
|
|
621
|
+
}
|
|
622
|
+
function mapStateToProps(state, props) {
|
|
623
|
+
return _objectSpread(_objectSpread({}, props), {}, {
|
|
624
|
+
visState: state.visState,
|
|
625
|
+
mapStyle: state.mapStyle,
|
|
626
|
+
mapState: state.mapState,
|
|
627
|
+
uiState: state.uiState,
|
|
628
|
+
providerState: state.providerState
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
var defaultUserActions = {};
|
|
632
|
+
var getDispatch = function getDispatch(dispatch) {
|
|
633
|
+
return dispatch;
|
|
634
|
+
};
|
|
635
|
+
var getUserActions = function getUserActions(dispatch, props) {
|
|
636
|
+
return props.actions || defaultUserActions;
|
|
637
|
+
};
|
|
638
|
+
|
|
639
|
+
/** @type {() => import('reselect').OutputParametricSelector<any, any, any, any>} */
|
|
640
|
+
function makeGetActionCreators() {
|
|
641
|
+
return (0, _reselect.createSelector)([getDispatch, getUserActions], function (dispatch, userActions) {
|
|
642
|
+
var _map = [_actions.VisStateActions, _actions.MapStateActions, _actions.MapStyleActions, _actions.UIStateActions, _actions.ProviderActions].map(function (actions) {
|
|
643
|
+
return (0, _redux.bindActionCreators)(mergeActions(actions, userActions), dispatch);
|
|
644
|
+
}),
|
|
645
|
+
_map2 = (0, _slicedToArray2["default"])(_map, 5),
|
|
646
|
+
visStateActions = _map2[0],
|
|
647
|
+
mapStateActions = _map2[1],
|
|
648
|
+
mapStyleActions = _map2[2],
|
|
649
|
+
uiStateActions = _map2[3],
|
|
650
|
+
providerActions = _map2[4];
|
|
651
|
+
return {
|
|
652
|
+
visStateActions: visStateActions,
|
|
653
|
+
mapStateActions: mapStateActions,
|
|
654
|
+
mapStyleActions: mapStyleActions,
|
|
655
|
+
uiStateActions: uiStateActions,
|
|
656
|
+
providerActions: providerActions,
|
|
657
|
+
dispatch: dispatch
|
|
658
|
+
};
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
function makeMapDispatchToProps() {
|
|
662
|
+
var getActionCreators = makeGetActionCreators();
|
|
663
|
+
var mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {
|
|
664
|
+
var groupedActionCreators = getActionCreators(dispatch, ownProps);
|
|
665
|
+
return _objectSpread(_objectSpread({}, groupedActionCreators), {}, {
|
|
666
|
+
dispatch: dispatch
|
|
667
|
+
});
|
|
668
|
+
};
|
|
669
|
+
return mapDispatchToProps;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
/**
|
|
673
|
+
* Override default kepler.gl actions with user defined actions using the same key
|
|
674
|
+
*/
|
|
675
|
+
function mergeActions(actions, userActions) {
|
|
676
|
+
var overrides = {};
|
|
677
|
+
for (var key in userActions) {
|
|
678
|
+
if (Object.prototype.hasOwnProperty.call(userActions, key) && Object.prototype.hasOwnProperty.call(actions, key)) {
|
|
679
|
+
overrides[key] = userActions[key];
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
return _objectSpread(_objectSpread({}, actions), overrides);
|
|
683
|
+
}
|
|
684
|
+
var _default = exports["default"] = KeplerGlFactory;
|
|
685
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfcmVtb3RlRGF0YXNldFJlZnJlc2hDb250cm9sbGVyIiwiX3V0aWxzIiwiX3N0eWxlcyIsIl90ZW1wbGF0ZU9iamVjdCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsIlR5cGVFcnJvciIsImEiLCJ1IiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkdsb2JhbFN0eWxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJsYWJlbENvbG9yIiwiQm90dG9tV2lkZ2V0T3V0ZXIiLCJfcmVmIiwiYWJzb2x1dGUiLCJjb25jYXQiLCJpc1ZpZXdwb3J0RGlzam9pbnRlZCIsImV4cG9ydHMiLCJtYXBTdGF0ZSIsImlzU3BsaXQiLCJpc1ZpZXdwb3J0U3luY2VkIiwic3BsaXRNYXBWaWV3cG9ydHMiLCJtYXBTdGF0ZVNlbGVjdG9yIiwiY3JlYXRlU2VsZWN0b3IiLCJfIiwiaW5kZXgiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIm1hcEZpZWxkc1NlbGVjdG9yIiwidW5kZWZpbmVkIiwiYXR0cmlidXRpb24iLCJhdHRyaWJ1dGlvblNlbGVjdG9yIiwiZ2V0TWFwYm94UmVmIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJERUZBVUxUX0tFUExFUl9HTF9QUk9QUyIsImRhdGFzZXRBdHRyaWJ1dGlvbnMiLCJzb3VyY2VzIiwiYXR0cmlidXRpb25Mb2dvcyIsImxvZ29zIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsInVpVGhlbWUiLCJpc0xvYWRpbmdJbmRpY2F0b3JWaXNpYmxlIiwibG9hZGluZ0luZGljYXRvclZhbHVlIiwic2lkZVBhbmVsV2lkdGgiLCJ3aWR0aCIsInRvcE1hcENvbnRhaW5lclByb3BzIiwiYm90dG9tTWFwQ29udGFpbmVyUHJvcHMiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiUlRMVGV4dFBsdWdpbiIsImdldFZpc2libGVEYXRhc2V0cyIsImRhdGFzZXRzIiwiZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUiLCJrZXkiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJzaWRlUGFuZWxTZWxlY3RvciIsImF2YWlsYWJsZVByb3ZpZGVycyIsImZpbHRlcmVkRGF0YXNldHMiLCJhcHBOYW1lIiwidmVyc2lvbiIsImFwcFdlYnNpdGUiLCJvblNhdmVNYXAiLCJtYXBTdHlsZUFjdGlvbnMiLCJmaWx0ZXJzIiwibGF5ZXJzIiwibGF5ZXJPcmRlciIsImxheWVyQ2xhc3NlcyIsImludGVyYWN0aW9uQ29uZmlnIiwibWFwSW5mbyIsImxheWVyQmxlbmRpbmciLCJvdmVybGF5QmxlbmRpbmciLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJyYXRpbyIsImV4cG9ydEltYWdlIiwicmVzb2x1dGlvbiIsImxlZ2VuZCIsImNlbnRlciIsImltYWdlU2l6ZSIsImVzY2FwZVhodG1sRm9yV2VicGFjayIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJpc1NwbGl0U2VsZWN0b3IiLCJib3R0b21XaWRnZXRTZWxlY3RvciIsImFuaW1hdGlvbkNvbmZpZyIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsIiwibWFyZ2luIiwibGVmdCIsIm1vZGFsQ29udGFpbmVyU2VsZWN0b3IiLCJyb290Tm9kZSIsInByb3ZpZGVyQWN0aW9ucyIsImNsb3VkUHJvdmlkZXJzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsImdlb0NvZGVyUGFuZWxTZWxlY3RvciIsImRpbWVuc2lvbnMiLCJfcHJvcHMkdmlzU3RhdGUkaW50ZXIiLCJfcHJvcHMkdmlzU3RhdGUkaW50ZXIyIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsImFwcFdpZHRoIiwibGltaXRTZWFyY2giLCJjb25maWciLCJkYXRhc2V0QXR0cmlidXRpb25TZWxlY3RvciIsInN0YXRlIiwidW5pcXVlQXR0cmlidXRpb25zIiwiX2RzJG1ldGFkYXRhIiwiZHMiLCJhdHRyaWJ1dGlvbnMiLCJtZXRhZGF0YSIsImxpbmtzIiwibWF0Y2giLCJsaW5rIiwiX2xpbmskbWF0Y2giLCJfbGluayRtYXRjaDIiLCJocmVmIiwidGl0bGUiLCJpbmRleE9mIiwidXJsIiwiZXJyb3IiLCJsYXllckF0dHJpYnV0aW9uS2V5U2VsZWN0b3IiLCJfc3RhdGUkdmlzU3RhdGUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl9sYXllciRjb25maWciLCJfbGF5ZXIkbWV0YSIsImxheWVyIiwiaXNWaXNpYmxlIiwibWV0YSIsIl9hJGxvZ29VcmwiLCJsb2dvVXJsIiwiZXJyIiwibGF5ZXJBdHRyaWJ1dGlvblNlbGVjdG9yIiwiX3N0YXRlJHZpc1N0YXRlMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfbG9vcCIsIl9sYXllciRjb25maWcyIiwiX2xheWVyJG1ldGEyIiwiYXR0ciIsImZpbmQiLCJsYXllckF0dHJpYnV0aW9ucyIsInVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibGF5ZXJBdHRyaWJ1dGlvbiIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwibWFwU3R5bGVzIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIkRJTUVOU0lPTlMiLCJmZWF0dXJlRmxhZ3MiLCJLZXBsZXJHbEZhY3RvcnkiLCJkZXBzIiwiQm90dG9tV2lkZ2V0RmFjdG9yeSIsIkdlb0NvZGVyUGFuZWxGYWN0b3J5IiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiTW9kYWxDb250YWluZXJGYWN0b3J5IiwiU2lkZVBhbmVsRmFjdG9yeSIsIlBsb3RDb250YWluZXJGYWN0b3J5IiwiTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IiwiRG5kQ29udGV4dEZhY3RvcnkiLCJFZmZlY3RNYW5hZ2VyRmFjdG9yeSIsIkJvdHRvbVdpZGdldCIsIkdlb0NvZGVyUGFuZWwiLCJNYXBDb250YWluZXIiLCJNYXBzTGF5b3V0IiwiTW9kYWxDb250YWluZXIiLCJTaWRlUGFuZWwiLCJQbG90Q29udGFpbmVyIiwiTm90aWZpY2F0aW9uUGFuZWwiLCJEbmRDb250ZXh0IiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5Iiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJfcHJvcHMkdWlTdGF0ZSIsInRoZW1lU2VsZWN0b3IiLCJ1aVRoZW1lU2VsZWN0b3IiLCJ0aGVtZUlucHV0IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVUaGVtZVRvZ2dsZSIsIlRIRU1FIiwiZGFyayIsIl90eXBlb2YyIiwiYmFzaWNUaGVtZSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwiZGF0YXNldHNTZWxlY3RvciIsInByb3ZpZGVycyIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lcmdlTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiZ2VuZXJhdGVIYXNoSWQiLCJhbGxTdHlsZXMiLCJyZWR1Y2UiLCJhY2N1Iiwic3R5bGUiLCJsb2FkTWFwU3R5bGVzIiwiY29udGFpbmVySWQiLCJsYXllcklkIiwidG9nZ2xlTGF5ZXJGb3JNYXAiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImNvbXBvbmVudERpZE1vdW50IiwiX2dldEFwcGxpY2F0aW9uQ29uZmlnIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBMaWJOYW1lIiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpZCIsIl90aGlzJHByb3BzJHdpZHRoIiwiX3RoaXMkcHJvcHMkaGVpZ2h0IiwiX3RoaXMkcHJvcHMkY2xvdWRQcm92IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJTdHlsZVNoZWV0TWFuYWdlciIsInNob3VsZEZvcndhcmRQcm9wIiwiVGhlbWVQcm92aWRlciIsIkNsb3VkTGlzdFByb3ZpZGVyIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsInJlZiIsInJlZnJlc2hEYXRhc2V0Iiwib25TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlIiwic2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZSIsInVuc3luY2VkVmlld3BvcnRzIiwiX21hcENvbnRhaW5lciIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwicm9vdFJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcGxlci1nbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZSwgU3R5bGVTaGVldE1hbmFnZXIsIFRoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJy4vY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHQsIEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciwgRmVhdHVyZUZsYWdzfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRpb25XaXRoU3R5bGUsXG4gIERhdGFzZXRBdHRyaWJ1dGlvbixcbiAgT25FcnJvckNhbGxCYWNrLFxuICBPblN1Y2Nlc3NDYWxsQmFjayxcbiAgVmlld3BvcnQsXG4gIE1hcFN0YXRlXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBNYXBTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgVmlzU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG50eXBlIEtlcGxlckdsQWN0aW9ucyA9IHtcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0eWxlQWN0aW9uczogdHlwZW9mIE1hcFN0eWxlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgcHJvdmlkZXJBY3Rpb25zOiB0eXBlb2YgUHJvdmlkZXJBY3Rpb25zO1xufTtcblxuaW1wb3J0IHtcbiAgRElNRU5TSU9OUyxcbiAgS0VQTEVSX0dMX05BTUUsXG4gIEtFUExFUl9HTF9WRVJTSU9OLFxuICBUSEVNRSxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICBNSVNTSU5HX01BUEJPWF9UT0tFTlxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBTaWRlUGFuZWxGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21hcC1jb250YWluZXInO1xuaW1wb3J0IE1hcHNMYXlvdXRGYWN0b3J5IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuaW1wb3J0IEJvdHRvbVdpZGdldEZhY3RvcnkgZnJvbSAnLi9ib3R0b20td2lkZ2V0JztcbmltcG9ydCBNb2RhbENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuaW1wb3J0IFBsb3RDb250YWluZXJGYWN0b3J5IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuaW1wb3J0IE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSBmcm9tICcuL25vdGlmaWNhdGlvbi1wYW5lbCc7XG5pbXBvcnQgR2VvQ29kZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5pbXBvcnQgRWZmZWN0TWFuYWdlckZhY3RvcnkgZnJvbSAnLi9lZmZlY3RzL2VmZmVjdC1tYW5hZ2VyJztcbmltcG9ydCBEbmRDb250ZXh0RmFjdG9yeSBmcm9tICcuL2RuZC1jb250ZXh0JztcbmltcG9ydCB7Q2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4vaG9va3MvdXNlLWNsb3VkLWxpc3QtcHJvdmlkZXInO1xuaW1wb3J0IFJlbW90ZURhdGFzZXRSZWZyZXNoQ29udHJvbGxlciBmcm9tICcuL3JlbW90ZS1kYXRhc2V0LXJlZnJlc2gtY29udHJvbGxlcic7XG5cbmltcG9ydCB7XG4gIGZpbHRlck9iamVjdEJ5UHJlZGljYXRlLFxuICB2YWxpZGF0ZVRva2VuLFxuICBtZXJnZU1lc3NhZ2VzLFxuICBvYnNlcnZlRGltZW5zaW9ucyxcbiAgdW5vYnNlcnZlRGltZW5zaW9ucyxcbiAgaGFzUG9ydGFibGVXaWR0aCxcbiAgZ2V0QXBwbGljYXRpb25Db25maWdcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7dGhlbWUgYXMgYmFzaWNUaGVtZSwgdGhlbWVMVCwgdGhlbWVCUywgYnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtLZXBsZXJHbFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcblxuLy8gTWF5YmUgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGV4cG9ydGluZyB0aGlzIG9yIGNyZWF0aW5nIGEgdmFyaWFibGVcbi8vIGFzIHBhcnQgb2YgdGhlIGJhc2UuanMgdGhlbWVcbmNvbnN0IEdsb2JhbFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuXG4gIDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5tYXBsaWJyZWdsLWN0cmwgLm1hcGxpYnJlZ2wtY3RybC1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1hcGJveGdsLWN0cmwgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxudHlwZSBCb3R0b21XaWRnZXRPdXRlclByb3BzID0ge1xuICBhYnNvbHV0ZT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCb3R0b21XaWRnZXRPdXRlciA9IHN0eWxlZC5kaXY8Qm90dG9tV2lkZ2V0T3V0ZXJQcm9wcz4oXG4gICh7YWJzb2x1dGV9KSA9PiBgXG4gICR7YWJzb2x1dGUgPyAncG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOycgOiAnJ31cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfWBcbik7XG5cbmV4cG9ydCBjb25zdCBpc1ZpZXdwb3J0RGlzam9pbnRlZCA9IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9wcy5tYXBTdGF0ZS5pc1NwbGl0ICYmXG4gICAgIXByb3BzLm1hcFN0YXRlLmlzVmlld3BvcnRTeW5jZWQgJiZcbiAgICBwcm9wcy5tYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGggPiAxXG4gICk7XG59O1xuXG50eXBlIE1hcFN0YXRlUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFsocHJvcHM6IE1hcFN0YXRlUHJvcHMpID0+IHByb3BzLm1hcFN0YXRlLCAoXzogTWFwU3RhdGVQcm9wcywgaW5kZXg/OiBudW1iZXIpID0+IGluZGV4XSxcbiAgKG1hcFN0YXRlOiBNYXBTdGF0ZSwgaW5kZXg/OiBudW1iZXIpOiBNYXBTdGF0ZSA9PiB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgICAvLyBlaXRoZXIgbm8gaW5kZXggYXJnIG9yIGFuIGludmFsaWQgaW5kZXggd2FzIHByb3ZpZGVkXG4gICAgICAvLyBpdCBpcyBleHBlY3RlZCB0byBiZSBlaXRoZXIgMCBvciAxIHdoZW4gaW4gc3BsaXQgbW9kZVxuICAgICAgLy8gb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgICByZXR1cm4gbWFwU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmlld3BvcnREaXNqb2ludGVkKHttYXBTdGF0ZX0pXG4gICAgICA/IC8vIG1peCB0b2dldGhlciB0aGUgdmlld3BvcnQgcHJvcGVydGllcyBpbnRlbmRlZCBmb3IgdGhpcyBkaXNqb2ludGVkIDxNYXBDb250YWluZXI+IHdpdGggdGhlIG90aGVyIG5lY2Vzc2FyeSBtYXBTdGF0ZSBwcm9wZXJ0aWVzXG4gICAgICAgIHsuLi5tYXBTdGF0ZSwgLi4ubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHNbaW5kZXggfHwgMF19XG4gICAgICA6IC8vIG90aGVyd2lzZSBvbmx5IHVzZSB0aGUgbWFwU3RhdGVcbiAgICAgICAgbWFwU3RhdGU7XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCBtYXBGaWVsZHNTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgaW5kZXggPSAwKSA9PiB7XG4gIGNvbnN0IGF0dHJpYnV0aW9uID0gYXR0cmlidXRpb25TZWxlY3Rvcihwcm9wcyk7XG4gIHJldHVybiB7XG4gICAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsID8gcHJvcHMubWFwYm94QXBpVXJsIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMubWFwYm94QXBpVXJsLFxuICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVNlbGVjdG9yKHByb3BzLCBpbmRleCksXG4gICAgZGF0YXNldEF0dHJpYnV0aW9uczogYXR0cmlidXRpb24uc291cmNlcyxcbiAgICBhdHRyaWJ1dGlvbkxvZ29zOiBhdHRyaWJ1dGlvbi5sb2dvcyxcbiAgICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gICAgb25EZWNrSW5pdGlhbGl6ZWQ6IHByb3BzLm9uRGVja0luaXRpYWxpemVkLFxuICAgIG9uVmlld1N0YXRlQ2hhbmdlOiBwcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSxcbiAgICBvbk1vdXNlTW92ZTogcHJvcHMub25Nb3VzZU1vdmUsXG4gICAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICAgIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAgIC8vIHZpc1N0YXRlXG4gICAgdmlzU3RhdGU6IHByb3BzLnZpc1N0YXRlLFxuXG4gICAgLy8gdWlTdGF0ZVxuICAgIGFjdGl2ZVNpZGVQYW5lbDogcHJvcHMudWlTdGF0ZS5hY3RpdmVTaWRlUGFuZWwsXG4gICAgbWFwQ29udHJvbHM6IHByb3BzLnVpU3RhdGUubWFwQ29udHJvbHMsXG4gICAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gICAgbG9jYWxlOiBwcm9wcy51aVN0YXRlLmxvY2FsZSxcbiAgICB1aVRoZW1lOiBwcm9wcy51aVN0YXRlLnRoZW1lLFxuICAgIGlzTG9hZGluZ0luZGljYXRvclZpc2libGU6IE51bWJlcihwcm9wcy52aXNTdGF0ZS5sb2FkaW5nSW5kaWNhdG9yVmFsdWUpID4gMCxcbiAgICBzaWRlUGFuZWxXaWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuXG4gICAgLy8gbWFwU3R5bGVcbiAgICB0b3BNYXBDb250YWluZXJQcm9wczogcHJvcHMudG9wTWFwQ29udGFpbmVyUHJvcHMsXG4gICAgYm90dG9tTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLmJvdHRvbU1hcENvbnRhaW5lclByb3BzLFxuXG4gICAgLy8gdHJhbnNmb3JtUmVxdWVzdCBmb3IgTWFwYm94IGJhc2VtYXBzXG4gICAgdHJhbnNmb3JtUmVxdWVzdDogcHJvcHMudHJhbnNmb3JtUmVxdWVzdCxcblxuICAgIFJUTFRleHRQbHVnaW46IHByb3BzLlJUTFRleHRQbHVnaW5cbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXNpYmxlRGF0YXNldHMoZGF0YXNldHMpIHtcbiAgLy8gV2UgZG9uJ3Qgd2FudCBHZW9jb2RlciBkYXRhc2V0IHRvIGJlIHByZXNlbnQgaW4gU2lkZVBhbmVsIGRhdGFzZXQgbGlzdFxuICByZXR1cm4gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUoZGF0YXNldHMsIGtleSA9PiBrZXkgIT09IEdFT0NPREVSX0RBVEFTRVRfTkFNRSk7XG59XG5cbmV4cG9ydCBjb25zdCBzaWRlUGFuZWxTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzLCBmaWx0ZXJlZERhdGFzZXRzKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lID8gcHJvcHMuYXBwTmFtZSA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmFwcE5hbWUsXG4gIHZlcnNpb246IHByb3BzLnZlcnNpb24gPyBwcm9wcy52ZXJzaW9uIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMudmVyc2lvbixcbiAgYXBwV2Vic2l0ZTogcHJvcHMuYXBwV2Vic2l0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IGZpbHRlcmVkRGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBvdmVybGF5QmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgcmF0aW86IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucmF0aW8sXG4gIHJlc29sdXRpb246IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucmVzb2x1dGlvbixcbiAgbGVnZW5kOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmxlZ2VuZCxcbiAgY2VudGVyOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmNlbnRlcixcbiAgaW1hZ2VTaXplOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmltYWdlU2l6ZSxcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmVzY2FwZVhodG1sRm9yV2VicGFjayxcblxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PlxuICBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMgJiYgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG5cbmV4cG9ydCBjb25zdCBib3R0b21XaWRnZXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgdGhlbWUpID0+ICh7XG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdG9nZ2xlTW9kYWw6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMudWlTdGF0ZS5yZWFkT25seSA/IDAgOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCArIHRoZW1lLnNpZGVQYW5lbC5tYXJnaW4ubGVmdFxufSk7XG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbnRhaW5lclNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCByb290Tm9kZSkgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVyc1xuICAgID8gcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IChcbiAgcHJvcHM6IEtlcGxlckdMUHJvcHMsXG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn1cbikgPT4gKHtcbiAgaXNHZW9jb2RlckVuYWJsZWQ6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICB1cGRhdGVWaXNEYXRhOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMudXBkYXRlVmlzRGF0YSxcbiAgcmVtb3ZlRGF0YXNldDogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQsXG4gIHVwZGF0ZU1hcDogcHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCxcbiAgYXBwV2lkdGg6IGRpbWVuc2lvbnMud2lkdGgsXG4gIGxpbWl0U2VhcmNoOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5jb25maWc/LmxpbWl0U2VhcmNoID8/IGZhbHNlXG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IG9mIHVuaXF1ZSBkYXRhc2V0IGF0dHJpYnV0aW9ucywgZWFjaCB3aXRoIHRpdGxlIGFuZCB1cmwgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtzdGF0ZSA9PiBzdGF0ZS52aXNTdGF0ZS5kYXRhc2V0c10sXG4gIGRhdGFzZXRzID0+IHtcbiAgICBjb25zdCB1bmlxdWVBdHRyaWJ1dGlvbnM6IERhdGFzZXRBdHRyaWJ1dGlvbltdID0gW107XG4gICAgT2JqZWN0LmtleXMoZGF0YXNldHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IGRzID0gZGF0YXNldHNba2V5XTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IGRzPy5tZXRhZGF0YT8uYXR0cmlidXRpb25zO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0cmlidXRpb25zKSkge1xuICAgICAgICBhdHRyaWJ1dGlvbnMuZm9yRWFjaChhdHRyaWJ1dGlvbiA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIGF0dHJpYnV0aW9uIGNhbiBiZSBhIHJhdyBzdHJpbmcgb3IgYSBzdHJpbmcgd2l0aCBsaW5rIHRhZ3NcbiAgICAgICAgICAgIGNvbnN0IGxpbmtzID0gYXR0cmlidXRpb24ubWF0Y2goLzxhW15dKz9hPi9nKTtcbiAgICAgICAgICAgIGlmIChsaW5rcykge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxpbmtzPy5mb3JFYWNoKGxpbmsgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGxpbmsubWF0Y2goL2hyZWY9XCIoW15cIl0qKS8pPy5bMV07XG4gICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IGxpbmsubWF0Y2goL3RpdGxlPVwiKFteXCJdKikvKT8uWzFdO1xuICAgICAgICAgICAgICAgICAgaWYgKGhyZWYgJiYgdGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pcXVlQXR0cmlidXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgJHtsaW5rLmluZGV4T2YoJyZjb3B5OycpID49IDAgPyAnwqkgJyA6ICcnfSR7dGl0bGV9YCxcbiAgICAgICAgICAgICAgICAgICAgICB1cmw6IGhyZWZcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBpZ25vcmUgZm9yIG5vd1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1bmlxdWVBdHRyaWJ1dGlvbnMucHVzaCh7dGl0bGU6IGF0dHJpYnV0aW9uLCB1cmw6IG51bGx9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1bmlxdWVBdHRyaWJ1dGlvbnM7XG4gIH1cbik7XG5cbi8qKlxuICogQ29sbGVjdCB1bmlxdWUgbGF5ZXItbGV2ZWwgYXR0cmlidXRpb25zIGZyb20gdmlzaWJsZSBsYXllcnMuXG4gKiBCdWlsZHMgYSBzZXJpYWxpemVkIGNhY2hlIGtleSBmcm9tIGF0dHJpYnV0aW9uIHZhbHVlcyBzbyBjcmVhdGVTZWxlY3RvclxuICogY2FuIGRldGVjdCBpbi1wbGFjZSBtdXRhdGlvbnMgdG8gbGF5ZXIubWV0YS5cbiAqL1xuY29uc3QgbGF5ZXJBdHRyaWJ1dGlvbktleVNlbGVjdG9yID0gKHN0YXRlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBsYXllcnM6IGFueVtdID0gc3RhdGUudmlzU3RhdGU/LmxheWVycztcbiAgaWYgKCFsYXllcnMpIHJldHVybiAnJztcbiAgbGV0IGtleSA9ICcnO1xuICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgIGlmIChsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5tZXRhPy5hdHRyaWJ1dGlvbikge1xuICAgICAgY29uc3QgYSA9IGxheWVyLm1ldGEuYXR0cmlidXRpb247XG4gICAgICBrZXkgKz0gYCR7YS50aXRsZX1cXDAke2EudXJsfVxcMCR7YS5sb2dvVXJsID8/ICcnfVxcMGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgbGF5ZXJBdHRyaWJ1dGlvblNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFsoc3RhdGU6IGFueSkgPT4gc3RhdGUudmlzU3RhdGU/LmxheWVycywgbGF5ZXJBdHRyaWJ1dGlvbktleVNlbGVjdG9yXSxcbiAgKGxheWVyczogYW55W10pOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnM6IEF0dHJpYnV0aW9uV2l0aFN0eWxlW10gPSBbXTtcbiAgICBpZiAoIWxheWVycykgcmV0dXJuIGF0dHJpYnV0aW9ucztcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgICAgaWYgKGxheWVyLmNvbmZpZz8uaXNWaXNpYmxlICYmIGxheWVyLm1ldGE/LmF0dHJpYnV0aW9uKSB7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBsYXllci5tZXRhLmF0dHJpYnV0aW9uO1xuICAgICAgICBpZiAoYXR0ci50aXRsZSAmJiAhYXR0cmlidXRpb25zLmZpbmQoYSA9PiBhLnRpdGxlID09PSBhdHRyLnRpdGxlICYmIGEudXJsID09PSBhdHRyLnVybCkpIHtcbiAgICAgICAgICBhdHRyaWJ1dGlvbnMucHVzaChhdHRyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXR0cmlidXRpb25zO1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgYXR0cmlidXRpb25TZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IsIGxheWVyQXR0cmlidXRpb25TZWxlY3Rvcl0sXG4gIChcbiAgICBkYXRhc2V0QXR0cmlidXRpb25zOiBEYXRhc2V0QXR0cmlidXRpb25bXSxcbiAgICBsYXllckF0dHJpYnV0aW9uczogQXR0cmlidXRpb25XaXRoU3R5bGVbXVxuICApOiB7XG4gICAgc291cmNlczogRGF0YXNldEF0dHJpYnV0aW9uW107XG4gICAgbG9nb3M6IEF0dHJpYnV0aW9uV2l0aFN0eWxlW107XG4gIH0gPT4ge1xuICAgIGNvbnN0IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnM6IERhdGFzZXRBdHRyaWJ1dGlvbltdID0gWy4uLmRhdGFzZXRBdHRyaWJ1dGlvbnNdO1xuICAgIGNvbnN0IGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG5cbiAgICBsYXllckF0dHJpYnV0aW9ucy5mb3JFYWNoKGxheWVyQXR0cmlidXRpb24gPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhdW5pcXVlVGV4dEF0dHJpYnV0aW9ucy5maW5kKFxuICAgICAgICAgIGEgPT4gYS50aXRsZSA9PT0gbGF5ZXJBdHRyaWJ1dGlvbi50aXRsZSAmJiBhLnVybCA9PT0gbGF5ZXJBdHRyaWJ1dGlvbi51cmxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMucHVzaCh7dGl0bGU6IGxheWVyQXR0cmlidXRpb24udGl0bGUsIHVybDogbGF5ZXJBdHRyaWJ1dGlvbi51cmx9KTtcbiAgICAgIH1cbiAgICAgIGlmIChsYXllckF0dHJpYnV0aW9uLmxvZ29VcmwgJiYgIWxvZ29zLmZpbmQoYSA9PiBhLmxvZ29VcmwgPT09IGxheWVyQXR0cmlidXRpb24ubG9nb1VybCkpIHtcbiAgICAgICAgbG9nb3MucHVzaChsYXllckF0dHJpYnV0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7c291cmNlczogdW5pcXVlVGV4dEF0dHJpYnV0aW9ucywgbG9nb3N9O1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgcmVtb3ZlTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5yZW1vdmVOb3RpZmljYXRpb24sXG4gIG5vdGlmaWNhdGlvbnM6IHByb3BzLnVpU3RhdGUubm90aWZpY2F0aW9uc1xufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0tFUExFUl9HTF9QUk9QUyA9IHtcbiAgbWFwU3R5bGVzOiBbXSxcbiAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IGZhbHNlLFxuICBtYXBib3hBcGlVcmw6IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gIHdpZHRoOiA4MDAsXG4gIGhlaWdodDogODAwLFxuICBhcHBOYW1lOiBLRVBMRVJfR0xfTkFNRSxcbiAgdmVyc2lvbjogS0VQTEVSX0dMX1ZFUlNJT04sXG4gIHNpZGVQYW5lbFdpZHRoOiBESU1FTlNJT05TLnNpZGVQYW5lbC53aWR0aCxcbiAgdGhlbWU6IHt9LFxuICBjbG91ZFByb3ZpZGVyczogW10sXG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgZmVhdHVyZUZsYWdzOiB7fVxufTtcblxudHlwZSBLZXBsZXJHTEJhc2ljUHJvcHMgPSB7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcblxuICBhcHBXZWJzaXRlPzogYW55O1xuICBvblNhdmVNYXA/OiAoKSA9PiB2b2lkO1xuICBvblZpZXdTdGF0ZUNoYW5nZT86ICh2aWV3U3RhdGU6IFZpZXdwb3J0KSA9PiB2b2lkO1xuICBvbkRlY2tJbml0aWFsaXplZD86ICgpID0+IHZvaWQ7XG4gIG9uS2VwbGVyR2xJbml0aWFsaXplZD86ICgpID0+IHZvaWQ7XG4gIGdldE1hcGJveFJlZj86ICgpID0+IFJlYWN0LlJlZk9iamVjdDxhbnk+O1xuICBtYXBTdHlsZXM/OiB7aWQ6IHN0cmluZzsgc3R5bGU/OiBvYmplY3R9W107XG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0PzogYm9vbGVhbjtcbiAgYXBwTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgc2lkZVBhbmVsV2lkdGg/OiBudW1iZXI7XG4gIHRoZW1lPzogb2JqZWN0O1xuICBjbG91ZFByb3ZpZGVycz86IFByb3ZpZGVyW107XG4gIGRlY2tHbFByb3BzPzogb2JqZWN0O1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25Nb3VzZU1vdmU/OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQgJiB7bG5nTGF0PzogW251bWJlciwgbnVtYmVyXX0pID0+IHZvaWQ7XG4gIG9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgZmVhdHVyZUZsYWdzPzogRmVhdHVyZUZsYWdzO1xuXG4gIGxvY2FsZU1lc3NhZ2VzPzoge1trZXk6IHN0cmluZ106IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9fTtcbiAgZGlzcGF0Y2g6IERpc3BhdGNoPGFueT47XG5cbiAgdG9wTWFwQ29udGFpbmVyUHJvcHM/OiBvYmplY3Q7XG4gIGJvdHRvbU1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuXG4gIHRyYW5zZm9ybVJlcXVlc3Q/OiAodXJsOiBzdHJpbmcpID0+IHt1cmw6IHN0cmluZ307XG5cbiAgLyoqIFBhc3MgYGZhbHNlYCB0byBkaXNhYmxlIHRoZSByZW1vdGUgUlRMIHRleHQgcGx1Z2luLCBvciBhIFVSTCBzdHJpbmcgdG8gc2VsZi1ob3N0IGl0LiAqL1xuICBSVExUZXh0UGx1Z2luPzogc3RyaW5nIHwgZmFsc2U7XG59O1xuXG50eXBlIEtlcGxlckdMUHJvcHMgPSBLZXBsZXJHbFN0YXRlICYgS2VwbGVyR2xBY3Rpb25zICYgS2VwbGVyR0xCYXNpY1Byb3BzO1xudHlwZSBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgZGltZW5zaW9uczoge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfSB8IG51bGw7XG59O1xuXG5LZXBsZXJHbEZhY3RvcnkuZGVwcyA9IFtcbiAgQm90dG9tV2lkZ2V0RmFjdG9yeSxcbiAgR2VvQ29kZXJQYW5lbEZhY3RvcnksXG4gIE1hcENvbnRhaW5lckZhY3RvcnksXG4gIE1hcHNMYXlvdXRGYWN0b3J5LFxuICBNb2RhbENvbnRhaW5lckZhY3RvcnksXG4gIFNpZGVQYW5lbEZhY3RvcnksXG4gIFBsb3RDb250YWluZXJGYWN0b3J5LFxuICBOb3RpZmljYXRpb25QYW5lbEZhY3RvcnksXG4gIERuZENvbnRleHRGYWN0b3J5LFxuICBFZmZlY3RNYW5hZ2VyRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gS2VwbGVyR2xGYWN0b3J5KFxuICBCb3R0b21XaWRnZXQ6IFJldHVyblR5cGU8dHlwZW9mIEJvdHRvbVdpZGdldEZhY3Rvcnk+LFxuICBHZW9Db2RlclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBHZW9Db2RlclBhbmVsRmFjdG9yeT4sXG4gIE1hcENvbnRhaW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udGFpbmVyRmFjdG9yeT4sXG4gIE1hcHNMYXlvdXQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcHNMYXlvdXRGYWN0b3J5PixcbiAgTW9kYWxDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1vZGFsQ29udGFpbmVyRmFjdG9yeT4sXG4gIFNpZGVQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgU2lkZVBhbmVsRmFjdG9yeT4sXG4gIFBsb3RDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIFBsb3RDb250YWluZXJGYWN0b3J5PixcbiAgTm90aWZpY2F0aW9uUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeT4sXG4gIERuZENvbnRleHQ6IFJldHVyblR5cGU8dHlwZW9mIERuZENvbnRleHRGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxLZXBsZXJHTEJhc2ljUHJvcHMgJiB7c2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gS2VwbGVyR2xTdGF0ZX0+IHtcbiAgLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4va2VwbGVyLWdsJykuVW5jb25uZWN0ZWRLZXBsZXJHbFByb3BzfSBLZXBsZXJHbFByb3BzICovXG4gIC8qKiBAYXVnbWVudHMgUmVhY3QuQ29tcG9uZW50PEtlcGxlckdsUHJvcHM+ICovXG4gIGNsYXNzIEtlcGxlckdMIGV4dGVuZHMgQ29tcG9uZW50PFxuICAgIEtlcGxlckdMUHJvcHMgJiB7c2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gS2VwbGVyR2xTdGF0ZX0sXG4gICAgS2VwbGVyR0xDb21wU3RhdGVcbiAgPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTO1xuXG4gICAgc3RhdGU6IEtlcGxlckdMQ29tcFN0YXRlID0ge1xuICAgICAgZGltZW5zaW9uczogbnVsbFxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmJhc2VNYXBMaWJyYXJ5Q29uZmlnPy5bJ21hcGJveCddPy5tYXBMaWJOYW1lID09PSAnTWFwYm94Jykge1xuICAgICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICB1aVRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy51aVN0YXRlPy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLnRoZW1lU2VsZWN0b3IsXG4gICAgICB0aGlzLnVpVGhlbWVTZWxlY3RvcixcbiAgICAgICh0aGVtZSwgdWlUaGVtZSkgPT4ge1xuICAgICAgICAvLyBXaGVuIHRoZW1lIHRvZ2dsZSBpcyBlbmFibGVkLCB1aVN0YXRlLnRoZW1lIGRyaXZlcyBsaWdodC9kYXJrIHN3aXRjaGluZy5cbiAgICAgICAgY29uc3QgdGhlbWVJbnB1dCA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlVGhlbWVUb2dnbGUgPyB1aVRoZW1lIHx8IFRIRU1FLmRhcmsgOiB0aGVtZTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoZW1lSW5wdXQgPT09ICdvYmplY3QnICYmIHRoZW1lSW5wdXQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lSW5wdXRcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGVtZUlucHV0ID09PSBUSEVNRS5saWdodCkge1xuICAgICAgICAgIHJldHVybiB0aGVtZUxUO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGVtZUlucHV0ID09PSBUSEVNRS5iYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoZW1lQlM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVEhFTUUuZGFyayBhbmQgdW5rbm93biB2YWx1ZXMgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGRhcmsgdGhlbWVcbiAgICAgICAgcmV0dXJuIGJhc2ljVGhlbWU7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGRhdGFzZXRzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cztcbiAgICBmaWx0ZXJlZERhdGFzZXRzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmRhdGFzZXRzU2VsZWN0b3IsIGdldFZpc2libGVEYXRhc2V0cyk7XG5cbiAgICBhdmFpbGFibGVQcm92aWRlcnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gcHJvcHMuY2xvdWRQcm92aWRlcnMsXG4gICAgICBwcm92aWRlcnMgPT5cbiAgICAgICAgQXJyYXkuaXNBcnJheShwcm92aWRlcnMpICYmIHByb3ZpZGVycy5sZW5ndGhcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgaGFzU3RvcmFnZTogcHJvdmlkZXJzLnNvbWUocCA9PiBwLmhhc1ByaXZhdGVTdG9yYWdlKCkpLFxuICAgICAgICAgICAgICBoYXNTaGFyZTogcHJvdmlkZXJzLnNvbWUocCA9PiBwLmhhc1NoYXJpbmdVcmwoKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9XG4gICAgKTtcblxuICAgIGxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gcHJvcHMubG9jYWxlTWVzc2FnZXMsXG4gICAgICBjdXN0b21NZXNzYWdlcyA9PiAoY3VzdG9tTWVzc2FnZXMgPyBtZXJnZU1lc3NhZ2VzKG1lc3NhZ2VzLCBjdXN0b21NZXNzYWdlcykgOiBtZXNzYWdlcylcbiAgICApO1xuXG4gICAgLyogcHJpdmF0ZSBtZXRob2RzICovXG4gICAgX3ZhbGlkYXRlTWFwYm94VG9rZW4oKSB7XG4gICAgICBjb25zdCB7bWFwYm94QXBpQWNjZXNzVG9rZW59ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghdmFsaWRhdGVUb2tlbihtYXBib3hBcGlBY2Nlc3NUb2tlbikpIHtcbiAgICAgICAgQ29uc29sZS53YXJuKE1JU1NJTkdfTUFQQk9YX1RPS0VOKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZE1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy5wcm9wcy5tYXBTdHlsZS5tYXBTdHlsZXMpO1xuICAgICAgLy8gYWRkIGlkIHRvIGN1c3RvbSBtYXAgc3R5bGVzIGlmIG5vdCBnaXZlblxuICAgICAgY29uc3QgY3VzdG9tU3R5bGVzID0gKHRoaXMucHJvcHMubWFwU3R5bGVzIHx8IFtdKS5tYXAobXMgPT4gKHtcbiAgICAgICAgLi4ubXMsXG4gICAgICAgIGlkOiBtcy5pZCB8fCBnZW5lcmF0ZUhhc2hJZCgpXG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGFsbFN0eWxlcyA9IFsuLi5jdXN0b21TdHlsZXMsIC4uLmRlZmF1bHRTdHlsZXNdLnJlZHVjZSgoYWNjdSwgc3R5bGUpID0+IHtcbiAgICAgICAgYWNjdVtzdHlsZS5pZF0gPSBzdHlsZTtcbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCB7fSk7XG5cbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRNYXBTdHlsZXMoYWxsU3R5bGVzKTtcbiAgICB9O1xuXG4gICAgX2RlbGV0ZU1hcExhYmVscyA9IChjb250YWluZXJJZCwgbGF5ZXJJZCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAoY29udGFpbmVySWQsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQgPSAnbWFwJyxcbiAgICAgICAgd2lkdGggPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy53aWR0aCxcbiAgICAgICAgaGVpZ2h0ID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuaGVpZ2h0LFxuICAgICAgICB1aVN0YXRlLFxuICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgLy8gcmVhZE9ubHkgb3ZlcnJpZGVcbiAgICAgICAgcmVhZE9ubHksXG5cbiAgICAgICAgLy8gZmVhdHVyZXNcbiAgICAgICAgZmVhdHVyZUZsYWdzLFxuXG4gICAgICAgIC8vIGNsb3VkIHByb3ZpZGVyc1xuICAgICAgICBjbG91ZFByb3ZpZGVycyA9IFtdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IHRoaXMuc3RhdGUuZGltZW5zaW9ucyB8fCB7d2lkdGgsIGhlaWdodH07XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwbGl0TWFwcywgLy8gdGhpcyB3aWxsIHN0b3JlIHN1cHBvcnQgZm9yIHNwbGl0IG1hcCB2aWV3IGlzIG5lY2Vzc2FyeVxuICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICAgICAgfSA9IHZpc1N0YXRlO1xuXG4gICAgICBjb25zdCBpc1NwbGl0ID0gaXNTcGxpdFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLmF2YWlsYWJsZVRoZW1lU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsb2NhbGVNZXNzYWdlcyA9IHRoaXMubG9jYWxlTWVzc2FnZXNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGlzRXhwb3J0aW5nSW1hZ2UgPSB1aVN0YXRlLmV4cG9ydEltYWdlLmV4cG9ydGluZztcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVByb3ZpZGVycyA9IHRoaXMuYXZhaWxhYmxlUHJvdmlkZXJzKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGFzZXRzID0gdGhpcy5maWx0ZXJlZERhdGFzZXRzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBzaWRlRmllbGRzID0gc2lkZVBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzLCBmaWx0ZXJlZERhdGFzZXRzKTtcbiAgICAgIGNvbnN0IHBsb3RDb250YWluZXJGaWVsZHMgPSBwbG90Q29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBib3R0b21XaWRnZXRGaWVsZHMgPSBib3R0b21XaWRnZXRTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGVtZSk7XG4gICAgICBjb25zdCBtb2RhbENvbnRhaW5lckZpZWxkcyA9IG1vZGFsQ29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcywgdGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgY29uc3QgZ2VvQ29kZXJQYW5lbEZpZWxkcyA9IGdlb0NvZGVyUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBkaW1lbnNpb25zKTtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsRmllbGRzID0gbm90aWZpY2F0aW9uUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgPE1hcENvbnRhaW5lclxuICAgICAgICAgICAgICBwcmltYXJ5PXt0cnVlfVxuICAgICAgICAgICAgICBrZXk9ezB9XG4gICAgICAgICAgICAgIGluZGV4PXswfVxuICAgICAgICAgICAgICB7Li4ubWFwRmllbGRzU2VsZWN0b3IodGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXswfVxuICAgICAgICAgICAgICBkZWxldGVNYXBMYWJlbHM9e3RoaXMuX2RlbGV0ZU1hcExhYmVsc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgXVxuICAgICAgICA6IHNwbGl0TWFwcy5tYXAoKHNldHRpbmdzLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPE1hcENvbnRhaW5lclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIHByaW1hcnk9e2luZGV4ID09PSAxfVxuICAgICAgICAgICAgICB7Li4ubWFwRmllbGRzU2VsZWN0b3IodGhpcy5wcm9wcywgaW5kZXgpfVxuICAgICAgICAgICAgICBjb250YWluZXJJZD17aW5kZXh9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFJvb3RDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0aGlzLnJvb3R9PlxuICAgICAgICAgIDxGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIgZmVhdHVyZUZsYWdzPXtmZWF0dXJlRmxhZ3N9PlxuICAgICAgICAgICAgPEludGxQcm92aWRlciBsb2NhbGU9e3VpU3RhdGUubG9jYWxlfSBtZXNzYWdlcz17bG9jYWxlTWVzc2FnZXNbdWlTdGF0ZS5sb2NhbGVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlU2hlZXRNYW5hZ2VyIHNob3VsZEZvcndhcmRQcm9wPXtzaG91bGRGb3J3YXJkUHJvcH0+XG4gICAgICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgICAgICAgICAgIDxDbG91ZExpc3RQcm92aWRlciBwcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfT5cbiAgICAgICAgICAgICAgICAgICAgPEdsb2JhbFN0eWxlXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwia2VwbGVyLWdsXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uUGFuZWwgey4uLm5vdGlmaWNhdGlvblBhbmVsRmllbGRzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZW1vdGVEYXRhc2V0UmVmcmVzaENvbnRyb2xsZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzPXt2aXNTdGF0ZS5kYXRhc2V0c31cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hEYXRhc2V0PXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZWZyZXNoRGF0YXNldH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxEbmRDb250ZXh0IHZpc1N0YXRlPXt2aXNTdGF0ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7IXVpU3RhdGUucmVhZE9ubHkgJiYgIXJlYWRPbmx5ICYmIDxTaWRlUGFuZWwgey4uLnNpZGVGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hcHNMYXlvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNldFN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnNldFN3aXBlQ29tcGFyZVBlcmNlbnRhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge2lzRXhwb3J0aW5nSW1hZ2UgJiYgPFBsb3RDb250YWluZXIgey4uLnBsb3RDb250YWluZXJGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHsvKiAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMiBnZW9jb2RlcnM6IHNwbGl0IG1vZGUgYW5kIHVuc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcENvbnRhaW5lcnMubWFwKChfbWFwQ29udGFpbmVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPXshaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dG9tV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQm90dG9tV2lkZ2V0T3V0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ubW9kYWxDb250YWluZXJGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HbG9iYWxTdHlsZT5cbiAgICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1N0eWxlU2hlZXRNYW5hZ2VyPlxuICAgICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QoXG4gICAgbWFwU3RhdGVUb1Byb3BzLFxuICAgIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHNcbiAgKSh3aXRoVGhlbWUoS2VwbGVyR0wpKSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBLZXBsZXJHbFN0YXRlLCBwcm9wczogS2VwbGVyR0xQcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSBkaXNwYXRjaCA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJBY3Rpb25zLCBrZXkpICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aW9ucywga2V5KVxuICAgICkge1xuICAgICAgb3ZlcnJpZGVzW2tleV0gPSB1c2VyQWN0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7Li4uYWN0aW9ucywgLi4ub3ZlcnJpZGVzfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgS2VwbGVyR2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFVQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFRQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFFQSxJQUFBWSxrQkFBQSxHQUFBWixPQUFBO0FBVUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBVUEsSUFBQWMs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
|