@kepler.gl/components 3.3.0-alpha.1 → 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-overlay.d.ts +1 -0
- package/dist/annotations/annotation-utils.d.ts +14 -0
- 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/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 +7 -24
- 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/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 +4 -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/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 +7 -3
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/portaled.d.ts +17 -17
- 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 +4 -4
- package/dist/common/styled-components.d.ts +642 -189
- package/dist/common/toolbar-item.d.ts +2 -0
- package/dist/common/vertical-toolbar.d.ts +12 -2
- 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 +2 -4
- package/dist/effects/effect-manager.d.ts +1 -1
- package/dist/effects/effect-type-list-item.d.ts +1 -1
- 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/geocoder-panel.d.ts +2 -2
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/index.d.ts +14 -4
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +172 -27
- package/dist/loading-indicator.d.ts +2 -1
- package/dist/map/attribution.d.ts +52 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/map-control-toolbar.d.ts +29 -4
- package/dist/map/map-control.d.ts +18 -4
- package/dist/map/map-draw-panel.d.ts +2 -1
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend.d.ts +19 -2
- 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 +7 -16
- package/dist/map-view-state-context.d.ts +2 -0
- package/dist/maps-layout.d.ts +3 -0
- package/dist/modal-container.d.ts +1 -1
- 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 +1 -0
- package/dist/modals/export-map-modal/components.d.ts +23 -5
- package/dist/modals/export-video-modal.d.ts +3 -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 +46 -1
- 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/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/layer-manager.d.ts +6 -4
- 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-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/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-tab.d.ts +1 -3
- 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 +59 -49
- package/dist/annotations/annotation-node.js +0 -145
- package/dist/annotations/annotation-overlay.js +0 -166
- package/dist/annotations/annotation-panel.js +0 -362
- package/dist/annotations/annotation-text.js +0 -150
- package/dist/annotations/annotation-utils.js +0 -156
- package/dist/annotations/index.js +0 -53
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +0 -71
- package/dist/annotations/lexical-editor/floating-link-editor.js +0 -194
- package/dist/annotations/lexical-editor/index.js +0 -78
- package/dist/annotations/lexical-editor/lexical-constants.js +0 -22
- package/dist/annotations/lexical-editor/lexical-nodes.js +0 -13
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +0 -122
- package/dist/annotations/lexical-editor/lexical-theme.js +0 -25
- package/dist/annotations/lexical-editor/lexical-toolbar.js +0 -293
- package/dist/annotations/lexical-editor/lexical-utils.js +0 -45
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +0 -253
- package/dist/bottom-widget.js +0 -184
- package/dist/common/action-panel.js +0 -134
- package/dist/common/animation-control/animation-control.js +0 -100
- package/dist/common/animation-control/animation-controller.js +0 -271
- package/dist/common/animation-control/animation-speed-slider.js +0 -64
- package/dist/common/animation-control/animation-window-control.js +0 -60
- package/dist/common/animation-control/export-video-control.js +0 -43
- 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 -165
- 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 -102
- 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 -283
- package/dist/common/icon-button.js +0 -25
- package/dist/common/icons/3d-models/airplane.js +0 -104
- package/dist/common/icons/3d-models/bicycle.js +0 -426
- package/dist/common/icons/3d-models/boeing.js +0 -119
- package/dist/common/icons/3d-models/car.js +0 -110
- package/dist/common/icons/3d-models/cargoship.js +0 -246
- package/dist/common/icons/3d-models/evtol.js +0 -134
- package/dist/common/icons/3d-models/glider.js +0 -62
- package/dist/common/icons/3d-models/helicopter.js +0 -110
- package/dist/common/icons/3d-models/scooter.js +0 -159
- package/dist/common/icons/3d-models/semitruck.js +0 -177
- package/dist/common/icons/3d-models/truck.js +0 -122
- package/dist/common/icons/add.js +0 -41
- package/dist/common/icons/anchor_window.js +0 -41
- package/dist/common/icons/annotation-text.js +0 -56
- 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 -817
- 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 -167
- 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 -218
- 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 -374
- 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 -252
- 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 -144
- package/dist/common/time-slider-marker.js +0 -116
- package/dist/common/timeline-helpers.js +0 -57
- package/dist/common/timeline-slider.js +0 -141
- 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 -474
- package/dist/effects/effect-list.js +0 -130
- package/dist/effects/effect-manager.js +0 -127
- package/dist/effects/effect-panel-header.js +0 -197
- package/dist/effects/effect-panel.js +0 -87
- 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 -99
- package/dist/effects/effect-type-selector.js +0 -77
- package/dist/effects/side-panel-title.js +0 -37
- package/dist/effects/surface-fog-section.js +0 -263
- 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 -63
- 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 -69
- package/dist/filters/time-widget-settings.js +0 -312
- package/dist/filters/time-widget-top.js +0 -81
- package/dist/filters/time-widget.js +0 -377
- package/dist/filters/types.js +0 -6
- package/dist/geocoder/geocoder.js +0 -328
- package/dist/geocoder-panel.js +0 -174
- 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 -2833
- package/dist/injector.js +0 -151
- package/dist/kepler-gl.js +0 -663
- package/dist/layer-animation-controller.js +0 -54
- package/dist/loading-indicator.js +0 -74
- package/dist/map/annotations/annotation-control.js +0 -56
- 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 -283
- 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 -80
- package/dist/map/map-draw-panel.js +0 -101
- package/dist/map/map-legend-panel.js +0 -277
- package/dist/map/map-legend.js +0 -396
- package/dist/map/map-navigation-control.js +0 -143
- 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 -1191
- package/dist/map-view-state-context.js +0 -99
- package/dist/maps-layout.js +0 -43
- package/dist/modal-container.js +0 -457
- package/dist/modals/add-map-style-modal.js +0 -225
- 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 -216
- 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 -164
- 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/export-video-modal.js +0 -338
- package/dist/modals/export-video-modal.spec.js +0 -686
- package/dist/modals/fog-height-animation.js +0 -97
- package/dist/modals/hubble-utils.js +0 -197
- package/dist/modals/hubble-utils.spec.js +0 -397
- 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 -169
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +0 -284
- package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
- package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -292
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -389
- package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -262
- package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -207
- package/dist/notification-panel/notification-item.js +0 -120
- package/dist/notification-panel.js +0 -39
- package/dist/plot-container.js +0 -312
- 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/geocoder-config.js +0 -45
- package/dist/side-panel/interaction-panel/interaction-panel.js +0 -122
- 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 -210
- 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 -100
- 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 -1026
- 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 -458
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +0 -123
- package/dist/side-panel/layer-panel/single-color-palette.js +0 -86
- package/dist/side-panel/layer-panel/text-label-panel.js +0 -174
- 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 -168
- 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 -310
- 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 -234
- package/dist/types.js +0 -6
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.WarningMsg = exports.FileUpload = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
19
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
20
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
21
|
+
var _reactIntl = require("react-intl");
|
|
22
|
+
var _uploadButton = _interopRequireDefault(require("./upload-button"));
|
|
23
|
+
var _icons = require("../icons");
|
|
24
|
+
var _fileUploadProgress = _interopRequireDefault(require("./file-upload-progress"));
|
|
25
|
+
var _fileDrop = _interopRequireDefault(require("./file-drop"));
|
|
26
|
+
var _constants = require("@kepler.gl/constants");
|
|
27
|
+
var _localization = require("@kepler.gl/localization");
|
|
28
|
+
var _processors = require("@kepler.gl/processors");
|
|
29
|
+
var _styles = require("@kepler.gl/styles");
|
|
30
|
+
var _utils = require("@kepler.gl/utils");
|
|
31
|
+
var _markdownToJsx = _interopRequireDefault(require("markdown-to-jsx"));
|
|
32
|
+
var _styledComponents2 = require("../styled-components");
|
|
33
|
+
var _linkRenderer = _interopRequireDefault(require("../link-renderer"));
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0, _templateObject1, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16; // SPDX-License-Identifier: MIT
|
|
35
|
+
// Copyright contributors to the kepler.gl project
|
|
36
|
+
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" != _typeof(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); }
|
|
37
|
+
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; } } }; }
|
|
38
|
+
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; } }
|
|
39
|
+
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; }
|
|
40
|
+
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)); }
|
|
41
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
42
|
+
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; }
|
|
43
|
+
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; }
|
|
44
|
+
var fileIconColor = '#D3D8E0';
|
|
45
|
+
var StyledUploadMessage = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: 14px;\n margin-bottom: 12px;\n\n ", ";\n"])), function (props) {
|
|
46
|
+
return props.theme.textColorLT;
|
|
47
|
+
}, _styles.media.portable(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 12px;\n "]))));
|
|
48
|
+
var WarningMsg = exports.WarningMsg = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin-top: 10px;\n color: ", ";\n font-weight: 500;\n"])), function (props) {
|
|
49
|
+
return props.theme.errorColor;
|
|
50
|
+
});
|
|
51
|
+
var StyledFileDrop = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: white;\n border-radius: 4px;\n border-style: ", ";\n border-width: 1px;\n border-color: ", ";\n text-align: center;\n width: 100%;\n min-height: 360px;\n padding: 24px 12px 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .file-type-row {\n opacity: 0.5;\n }\n ", ";\n"])), function (props) {
|
|
52
|
+
return props.$dragOver ? 'solid' : 'dashed';
|
|
53
|
+
}, function (props) {
|
|
54
|
+
return props.$dragOver ? props.theme.textColorLT : props.theme.subtextColorLT;
|
|
55
|
+
}, _styles.media.portable(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 16px 8px 12px;\n min-height: 280px;\n "]))));
|
|
56
|
+
var StyledDropBody = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-evenly;\n"])));
|
|
57
|
+
var StyledActionLine = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n\n .upload-button {\n font-size: 14px;\n font-weight: 600;\n color: ", ";\n text-decoration: none;\n }\n"])), function (props) {
|
|
58
|
+
return props.theme.modalTitleColor;
|
|
59
|
+
}, function (props) {
|
|
60
|
+
return props.theme.linkBtnColor;
|
|
61
|
+
});
|
|
62
|
+
var StyledDragNDropIcon = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n"])), fileIconColor);
|
|
63
|
+
var StyledFileTypeFow = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n"])));
|
|
64
|
+
var StyledFileUpload = _styledComponents["default"].div(_templateObject0 || (_templateObject0 = (0, _taggedTemplateLiteral2["default"])(["\n .file-drop {\n position: relative;\n }\n"])));
|
|
65
|
+
var StyledMessage = _styledComponents["default"].div(_templateObject1 || (_templateObject1 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 32px;\n\n .loading-action {\n margin-right: 10px;\n }\n .loading-spinner {\n margin-left: 10px;\n }\n"])));
|
|
66
|
+
var StyledDragFileWrapper = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n"])));
|
|
67
|
+
var StyledDisclaimer = (0, _styledComponents["default"])(StyledMessage)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n flex-shrink: 0;\n margin: 12px 12px 0;\n"])));
|
|
68
|
+
var StyledRemoteUrlForm = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n width: 100%;\n max-width: 420px;\n margin: 8px auto 0;\n"])));
|
|
69
|
+
var StyledRemoteUrlRow = _styledComponents["default"].div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n"])));
|
|
70
|
+
var StyledRemoteUrlInput = (0, _styledComponents["default"])(_styledComponents2.InputLight)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n min-width: 0;\n max-width: 300px;\n"])));
|
|
71
|
+
var StyledRemoteFormatSelect = _styledComponents["default"].select(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n width: 88px;\n flex-shrink: 0;\n height: auto;\n box-sizing: border-box;\n padding: 0 6px;\n cursor: pointer;\n"])), function (props) {
|
|
72
|
+
return props.theme.inputLT;
|
|
73
|
+
});
|
|
74
|
+
var StyledRemoteFetchButton = (0, _styledComponents["default"])(_styledComponents2.Button)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n height: auto;\n box-sizing: border-box;\n padding: 0 12px;\n flex-shrink: 0;\n"])));
|
|
75
|
+
var REMOTE_DOWNLOAD_SHARE = 0.85;
|
|
76
|
+
function scaleFileProgress(progress, start, end) {
|
|
77
|
+
return Object.keys(progress).reduce(function (accu, key) {
|
|
78
|
+
var item = progress[key];
|
|
79
|
+
accu[key] = _objectSpread(_objectSpread({}, item), {}, {
|
|
80
|
+
percent: start + (item.percent || 0) * (end - start)
|
|
81
|
+
});
|
|
82
|
+
return accu;
|
|
83
|
+
}, {});
|
|
84
|
+
}
|
|
85
|
+
function getCombinedLoadProgress(_ref) {
|
|
86
|
+
var fileLoading = _ref.fileLoading,
|
|
87
|
+
fileLoadingProgress = _ref.fileLoadingProgress,
|
|
88
|
+
remoteProgress = _ref.remoteProgress;
|
|
89
|
+
var isRemoteFetch = Object.keys(remoteProgress).length > 0;
|
|
90
|
+
if (!isRemoteFetch) {
|
|
91
|
+
return fileLoadingProgress;
|
|
92
|
+
}
|
|
93
|
+
if (fileLoading) {
|
|
94
|
+
return scaleFileProgress(fileLoadingProgress, REMOTE_DOWNLOAD_SHARE, 1);
|
|
95
|
+
}
|
|
96
|
+
return scaleFileProgress(remoteProgress, 0, REMOTE_DOWNLOAD_SHARE);
|
|
97
|
+
}
|
|
98
|
+
function FileUploadFactory() {
|
|
99
|
+
/** @augments {Component<FileUploadProps>} */
|
|
100
|
+
var FileUpload = /*#__PURE__*/function (_Component) {
|
|
101
|
+
function FileUpload() {
|
|
102
|
+
var _this;
|
|
103
|
+
(0, _classCallCheck2["default"])(this, FileUpload);
|
|
104
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
105
|
+
args[_key] = arguments[_key];
|
|
106
|
+
}
|
|
107
|
+
_this = _callSuper(this, FileUpload, [].concat(args));
|
|
108
|
+
(0, _defineProperty2["default"])(_this, "state", {
|
|
109
|
+
dragOver: false,
|
|
110
|
+
fileLoading: false,
|
|
111
|
+
files: [],
|
|
112
|
+
errorFiles: [],
|
|
113
|
+
remoteUrl: '',
|
|
114
|
+
remoteFormat: 'auto',
|
|
115
|
+
remoteError: null,
|
|
116
|
+
remoteLoading: false,
|
|
117
|
+
remoteProgress: {}
|
|
118
|
+
});
|
|
119
|
+
(0, _defineProperty2["default"])(_this, "frame", /*#__PURE__*/(0, _react.createRef)());
|
|
120
|
+
(0, _defineProperty2["default"])(_this, "_isValidFileType", function (filename) {
|
|
121
|
+
var _this$props$fileExten = _this.props.fileExtensions,
|
|
122
|
+
fileExtensions = _this$props$fileExten === void 0 ? [] : _this$props$fileExten;
|
|
123
|
+
var fileExt = fileExtensions.find(function (ext) {
|
|
124
|
+
return filename.endsWith(ext);
|
|
125
|
+
});
|
|
126
|
+
return Boolean(fileExt);
|
|
127
|
+
});
|
|
128
|
+
/** @param {FileList} fileList */
|
|
129
|
+
(0, _defineProperty2["default"])(_this, "_handleFileInput", function (fileList, event) {
|
|
130
|
+
if (event) {
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
}
|
|
133
|
+
var files = (0, _toConsumableArray2["default"])(fileList).filter(Boolean);
|
|
134
|
+
var _this$props$disableEx = _this.props.disableExtensionFilter,
|
|
135
|
+
disableExtensionFilter = _this$props$disableEx === void 0 ? false : _this$props$disableEx;
|
|
136
|
+
|
|
137
|
+
// TODO - move this code out of the component
|
|
138
|
+
var filesToLoad = [];
|
|
139
|
+
var errorFiles = [];
|
|
140
|
+
var _iterator = _createForOfIteratorHelper(files),
|
|
141
|
+
_step;
|
|
142
|
+
try {
|
|
143
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
144
|
+
var file = _step.value;
|
|
145
|
+
if (disableExtensionFilter || _this._isValidFileType(file.name)) {
|
|
146
|
+
filesToLoad.push(file);
|
|
147
|
+
} else {
|
|
148
|
+
errorFiles.push(file.name);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
} catch (err) {
|
|
152
|
+
_iterator.e(err);
|
|
153
|
+
} finally {
|
|
154
|
+
_iterator.f();
|
|
155
|
+
}
|
|
156
|
+
var nextState = {
|
|
157
|
+
files: filesToLoad,
|
|
158
|
+
errorFiles: errorFiles,
|
|
159
|
+
dragOver: false
|
|
160
|
+
};
|
|
161
|
+
_this.setState(nextState, function () {
|
|
162
|
+
return nextState.files.length ? _this.props.onFileUpload(nextState.files) : null;
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
(0, _defineProperty2["default"])(_this, "_toggleDragState", function (newState) {
|
|
166
|
+
_this.setState({
|
|
167
|
+
dragOver: newState
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
(0, _defineProperty2["default"])(_this, "_onRemoteUrlChange", function (event) {
|
|
171
|
+
var remoteUrl = event.target.value;
|
|
172
|
+
_this.setState({
|
|
173
|
+
remoteUrl: remoteUrl,
|
|
174
|
+
remoteError: remoteUrl && !(0, _processors.isRemoteDatasetUrl)(remoteUrl) ? {
|
|
175
|
+
message: 'Incorrect URL'
|
|
176
|
+
} : null
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
(0, _defineProperty2["default"])(_this, "_onRemoteFormatChange", function (event) {
|
|
180
|
+
_this.setState({
|
|
181
|
+
remoteFormat: event.target.value
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
(0, _defineProperty2["default"])(_this, "_onRemoteUrlKeyDown", function (event) {
|
|
185
|
+
if (event.key === 'Enter') {
|
|
186
|
+
event.preventDefault();
|
|
187
|
+
_this._handleLoadRemoteFile();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
(0, _defineProperty2["default"])(_this, "_handleLoadRemoteFile", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
191
|
+
var _this$state, remoteUrl, remoteFormat, remoteError, intl, showFormatSelector, format, fileName, downloading, lastUpdate, file;
|
|
192
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
193
|
+
while (1) switch (_context.prev = _context.next) {
|
|
194
|
+
case 0:
|
|
195
|
+
_this$state = _this.state, remoteUrl = _this$state.remoteUrl, remoteFormat = _this$state.remoteFormat, remoteError = _this$state.remoteError;
|
|
196
|
+
intl = _this.props.intl;
|
|
197
|
+
showFormatSelector = (0, _utils.getApplicationConfig)().enableRemoteFileFormatSelector;
|
|
198
|
+
format = showFormatSelector && remoteFormat !== 'auto' ? remoteFormat : undefined;
|
|
199
|
+
if (!(!remoteUrl || remoteError || _this.state.remoteLoading)) {
|
|
200
|
+
_context.next = 7;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
if (!remoteUrl) {
|
|
204
|
+
_this.setState({
|
|
205
|
+
remoteError: {
|
|
206
|
+
message: 'Incorrect URL'
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
return _context.abrupt("return");
|
|
211
|
+
case 7:
|
|
212
|
+
if ((0, _processors.isRemoteDatasetUrl)(remoteUrl)) {
|
|
213
|
+
_context.next = 10;
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
_this.setState({
|
|
217
|
+
remoteError: {
|
|
218
|
+
message: 'Incorrect URL'
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
return _context.abrupt("return");
|
|
222
|
+
case 10:
|
|
223
|
+
fileName = (0, _processors.getFileNameForRemoteUrl)(remoteUrl, format);
|
|
224
|
+
downloading = intl.formatMessage({
|
|
225
|
+
id: 'fileUploader.downloading'
|
|
226
|
+
});
|
|
227
|
+
_this.setState({
|
|
228
|
+
remoteLoading: true,
|
|
229
|
+
remoteError: null,
|
|
230
|
+
remoteProgress: (0, _defineProperty2["default"])({}, fileName, {
|
|
231
|
+
fileName: fileName,
|
|
232
|
+
percent: 0,
|
|
233
|
+
message: downloading,
|
|
234
|
+
error: null
|
|
235
|
+
})
|
|
236
|
+
});
|
|
237
|
+
_context.prev = 13;
|
|
238
|
+
lastUpdate = 0;
|
|
239
|
+
_context.next = 17;
|
|
240
|
+
return (0, _processors.fetchRemoteFileAsKeplerFile)(remoteUrl, format, function (_ref3) {
|
|
241
|
+
var percent = _ref3.percent;
|
|
242
|
+
var now = Date.now();
|
|
243
|
+
if (percent < 1 && now - lastUpdate < 100) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
lastUpdate = now;
|
|
247
|
+
_this.setState(function (prev) {
|
|
248
|
+
var name = Object.keys(prev.remoteProgress)[0] || fileName;
|
|
249
|
+
return {
|
|
250
|
+
remoteProgress: (0, _defineProperty2["default"])({}, name, {
|
|
251
|
+
fileName: name,
|
|
252
|
+
percent: percent,
|
|
253
|
+
message: downloading,
|
|
254
|
+
error: null
|
|
255
|
+
})
|
|
256
|
+
};
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
case 17:
|
|
260
|
+
file = _context.sent;
|
|
261
|
+
_this.setState({
|
|
262
|
+
files: [file],
|
|
263
|
+
errorFiles: [],
|
|
264
|
+
dragOver: false
|
|
265
|
+
}, function () {
|
|
266
|
+
return _this.props.onFileUpload([file]);
|
|
267
|
+
});
|
|
268
|
+
_context.next = 24;
|
|
269
|
+
break;
|
|
270
|
+
case 21:
|
|
271
|
+
_context.prev = 21;
|
|
272
|
+
_context.t0 = _context["catch"](13);
|
|
273
|
+
_this.setState({
|
|
274
|
+
remoteLoading: false,
|
|
275
|
+
remoteProgress: {},
|
|
276
|
+
remoteError: {
|
|
277
|
+
message: _context.t0 instanceof Error ? _context.t0.message : "Failed to load ".concat(remoteUrl)
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
case 24:
|
|
281
|
+
case "end":
|
|
282
|
+
return _context.stop();
|
|
283
|
+
}
|
|
284
|
+
}, _callee, null, [[13, 21]]);
|
|
285
|
+
})));
|
|
286
|
+
return _this;
|
|
287
|
+
}
|
|
288
|
+
(0, _inherits2["default"])(FileUpload, _Component);
|
|
289
|
+
return (0, _createClass2["default"])(FileUpload, [{
|
|
290
|
+
key: "render",
|
|
291
|
+
value: function render() {
|
|
292
|
+
var _this2 = this;
|
|
293
|
+
var _this$state2 = this.state,
|
|
294
|
+
dragOver = _this$state2.dragOver,
|
|
295
|
+
files = _this$state2.files,
|
|
296
|
+
errorFiles = _this$state2.errorFiles,
|
|
297
|
+
remoteUrl = _this$state2.remoteUrl,
|
|
298
|
+
remoteFormat = _this$state2.remoteFormat,
|
|
299
|
+
remoteError = _this$state2.remoteError,
|
|
300
|
+
remoteLoading = _this$state2.remoteLoading,
|
|
301
|
+
remoteProgress = _this$state2.remoteProgress;
|
|
302
|
+
var _this$props = this.props,
|
|
303
|
+
fileLoading = _this$props.fileLoading,
|
|
304
|
+
fileLoadingProgress = _this$props.fileLoadingProgress,
|
|
305
|
+
theme = _this$props.theme,
|
|
306
|
+
intl = _this$props.intl;
|
|
307
|
+
var _this$props2 = this.props,
|
|
308
|
+
_this$props2$fileExte = _this$props2.fileExtensions,
|
|
309
|
+
fileExtensions = _this$props2$fileExte === void 0 ? [] : _this$props2$fileExte,
|
|
310
|
+
_this$props2$fileForm = _this$props2.fileFormatNames,
|
|
311
|
+
fileFormatNames = _this$props2$fileForm === void 0 ? [] : _this$props2$fileForm;
|
|
312
|
+
var showFormatSelector = (0, _utils.getApplicationConfig)().enableRemoteFileFormatSelector;
|
|
313
|
+
var fileUploadInfoText = "".concat(intl.formatMessage({
|
|
314
|
+
id: 'fileUploader.configUploadMessage'
|
|
315
|
+
}, {
|
|
316
|
+
fileFormatNames: fileFormatNames.map(function (format) {
|
|
317
|
+
return "**".concat(format, "**");
|
|
318
|
+
}).join(', ')
|
|
319
|
+
}), "(").concat(_constants.GUIDES_FILE_FORMAT_DOC, ").");
|
|
320
|
+
return /*#__PURE__*/_react["default"].createElement(StyledFileUpload, {
|
|
321
|
+
className: "file-uploader",
|
|
322
|
+
ref: this.frame
|
|
323
|
+
}, _fileDrop["default"] ? /*#__PURE__*/_react["default"].createElement(_fileDrop["default"], {
|
|
324
|
+
frame: this.frame.current || document,
|
|
325
|
+
onDragOver: function onDragOver() {
|
|
326
|
+
return _this2._toggleDragState(true);
|
|
327
|
+
},
|
|
328
|
+
onDragLeave: function onDragLeave() {
|
|
329
|
+
return _this2._toggleDragState(false);
|
|
330
|
+
},
|
|
331
|
+
onDrop: this._handleFileInput,
|
|
332
|
+
className: "file-uploader__file-drop"
|
|
333
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledUploadMessage, {
|
|
334
|
+
className: "file-upload__message"
|
|
335
|
+
}, /*#__PURE__*/_react["default"].createElement(_markdownToJsx["default"], {
|
|
336
|
+
options: {
|
|
337
|
+
overrides: {
|
|
338
|
+
a: {
|
|
339
|
+
component: _linkRenderer["default"]
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}, fileUploadInfoText)), /*#__PURE__*/_react["default"].createElement(StyledFileDrop, {
|
|
344
|
+
$dragOver: dragOver
|
|
345
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledDropBody, null, /*#__PURE__*/_react["default"].createElement(StyledFileTypeFow, {
|
|
346
|
+
className: "file-type-row"
|
|
347
|
+
}, fileExtensions.map(function (ext) {
|
|
348
|
+
return /*#__PURE__*/_react["default"].createElement(_icons.FileType, {
|
|
349
|
+
key: ext,
|
|
350
|
+
ext: ext,
|
|
351
|
+
height: "50px",
|
|
352
|
+
fontSize: "9px"
|
|
353
|
+
});
|
|
354
|
+
})), fileLoading || remoteLoading ? /*#__PURE__*/_react["default"].createElement(_fileUploadProgress["default"], {
|
|
355
|
+
fileLoadingProgress: getCombinedLoadProgress({
|
|
356
|
+
fileLoading: fileLoading,
|
|
357
|
+
fileLoadingProgress: fileLoadingProgress,
|
|
358
|
+
remoteProgress: remoteProgress
|
|
359
|
+
}),
|
|
360
|
+
theme: theme
|
|
361
|
+
}) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledDragNDropIcon, {
|
|
362
|
+
style: {
|
|
363
|
+
opacity: dragOver ? 0.5 : 1
|
|
364
|
+
},
|
|
365
|
+
className: "file-upload-display-message"
|
|
366
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.DragNDrop, {
|
|
367
|
+
height: "36px"
|
|
368
|
+
}), errorFiles.length ? /*#__PURE__*/_react["default"].createElement(WarningMsg, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
369
|
+
id: 'fileUploader.fileNotSupported',
|
|
370
|
+
values: {
|
|
371
|
+
errorFiles: errorFiles.join(', ')
|
|
372
|
+
}
|
|
373
|
+
})) : null), !files.length ? /*#__PURE__*/_react["default"].createElement(StyledDragFileWrapper, null, /*#__PURE__*/_react["default"].createElement(StyledActionLine, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
374
|
+
id: 'fileUploader.dropMessage',
|
|
375
|
+
values: {
|
|
376
|
+
browse: /*#__PURE__*/_react["default"].createElement(_uploadButton["default"], {
|
|
377
|
+
key: "browse",
|
|
378
|
+
onUpload: this._handleFileInput
|
|
379
|
+
}, intl.formatMessage({
|
|
380
|
+
id: 'fileUploader.browseFiles'
|
|
381
|
+
}))
|
|
382
|
+
}
|
|
383
|
+
})), /*#__PURE__*/_react["default"].createElement(StyledRemoteUrlForm, {
|
|
384
|
+
className: "file-uploader__remote-url",
|
|
385
|
+
onClick: function onClick(event) {
|
|
386
|
+
return event.stopPropagation();
|
|
387
|
+
}
|
|
388
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledRemoteUrlRow, null, /*#__PURE__*/_react["default"].createElement(StyledRemoteUrlInput, {
|
|
389
|
+
type: "url",
|
|
390
|
+
value: remoteUrl,
|
|
391
|
+
"aria-label": intl.formatMessage({
|
|
392
|
+
id: 'fileUploader.urlPlaceholder'
|
|
393
|
+
}),
|
|
394
|
+
placeholder: intl.formatMessage({
|
|
395
|
+
id: 'fileUploader.urlPlaceholder'
|
|
396
|
+
}),
|
|
397
|
+
onChange: this._onRemoteUrlChange,
|
|
398
|
+
onKeyDown: this._onRemoteUrlKeyDown,
|
|
399
|
+
disabled: remoteLoading
|
|
400
|
+
}), showFormatSelector ? /*#__PURE__*/_react["default"].createElement(StyledRemoteFormatSelect, {
|
|
401
|
+
className: "file-uploader__remote-format",
|
|
402
|
+
"aria-label": intl.formatMessage({
|
|
403
|
+
id: 'fileUploader.format'
|
|
404
|
+
}),
|
|
405
|
+
value: remoteFormat,
|
|
406
|
+
onChange: this._onRemoteFormatChange,
|
|
407
|
+
disabled: remoteLoading
|
|
408
|
+
}, _constants.REMOTE_FILE_FORMATS.map(function (format) {
|
|
409
|
+
return /*#__PURE__*/_react["default"].createElement("option", {
|
|
410
|
+
key: format,
|
|
411
|
+
value: format
|
|
412
|
+
}, format === 'auto' ? intl.formatMessage({
|
|
413
|
+
id: 'fileUploader.formatAuto'
|
|
414
|
+
}) : format.toUpperCase());
|
|
415
|
+
})) : null, /*#__PURE__*/_react["default"].createElement(StyledRemoteFetchButton, {
|
|
416
|
+
type: "button",
|
|
417
|
+
cta: true,
|
|
418
|
+
small: true,
|
|
419
|
+
disabled: !remoteUrl || remoteLoading,
|
|
420
|
+
onClick: this._handleLoadRemoteFile
|
|
421
|
+
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
422
|
+
id: 'fileUploader.fetch'
|
|
423
|
+
}))), remoteError ? /*#__PURE__*/_react["default"].createElement(WarningMsg, null, remoteError.message) : null)) : null)), fileLoading || remoteLoading ? null : /*#__PURE__*/_react["default"].createElement(StyledDisclaimer, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
424
|
+
id: 'fileUploader.disclaimer'
|
|
425
|
+
})))) : null, /*#__PURE__*/_react["default"].createElement(WarningMsg, null, (0, _utils.isChrome)() ? /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
426
|
+
id: 'fileUploader.chromeMessage'
|
|
427
|
+
}) : ''));
|
|
428
|
+
}
|
|
429
|
+
}], [{
|
|
430
|
+
key: "getDerivedStateFromProps",
|
|
431
|
+
value: function getDerivedStateFromProps(props, state) {
|
|
432
|
+
if (state.fileLoading && props.fileLoading === false && state.files.length) {
|
|
433
|
+
return {
|
|
434
|
+
files: [],
|
|
435
|
+
fileLoading: props.fileLoading,
|
|
436
|
+
remoteLoading: false,
|
|
437
|
+
remoteProgress: {}
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
return _objectSpread({
|
|
441
|
+
fileLoading: props.fileLoading
|
|
442
|
+
}, props.fileLoading ? {
|
|
443
|
+
remoteLoading: false
|
|
444
|
+
} : {});
|
|
445
|
+
}
|
|
446
|
+
}]);
|
|
447
|
+
}(_react.Component);
|
|
448
|
+
return (0, _reactIntl.injectIntl)(FileUpload);
|
|
449
|
+
}
|
|
450
|
+
var _default = exports["default"] = FileUploadFactory;
|
|
451
|
+
var FileUpload = exports.FileUpload = FileUploadFactory();
|
|
452
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RJbnRsIiwiX3VwbG9hZEJ1dHRvbiIsIl9pY29ucyIsIl9maWxlVXBsb2FkUHJvZ3Jlc3MiLCJfZmlsZURyb3AiLCJfY29uc3RhbnRzIiwiX2xvY2FsaXphdGlvbiIsIl9wcm9jZXNzb3JzIiwiX3N0eWxlcyIsIl91dGlscyIsIl9tYXJrZG93blRvSnN4IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2xpbmtSZW5kZXJlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfdGVtcGxhdGVPYmplY3Q5IiwiX3RlbXBsYXRlT2JqZWN0MCIsIl90ZW1wbGF0ZU9iamVjdDEiLCJfdGVtcGxhdGVPYmplY3QxMCIsIl90ZW1wbGF0ZU9iamVjdDExIiwiX3RlbXBsYXRlT2JqZWN0MTIiLCJfdGVtcGxhdGVPYmplY3QxMyIsIl90ZW1wbGF0ZU9iamVjdDE0IiwiX3RlbXBsYXRlT2JqZWN0MTUiLCJfdGVtcGxhdGVPYmplY3QxNiIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJUeXBlRXJyb3IiLCJhIiwidSIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZmlsZUljb25Db2xvciIsIlN0eWxlZFVwbG9hZE1lc3NhZ2UiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3JMVCIsIm1lZGlhIiwicG9ydGFibGUiLCJXYXJuaW5nTXNnIiwiZXhwb3J0cyIsInNwYW4iLCJlcnJvckNvbG9yIiwiU3R5bGVkRmlsZURyb3AiLCIkZHJhZ092ZXIiLCJzdWJ0ZXh0Q29sb3JMVCIsIlN0eWxlZERyb3BCb2R5IiwiU3R5bGVkQWN0aW9uTGluZSIsIm1vZGFsVGl0bGVDb2xvciIsImxpbmtCdG5Db2xvciIsIlN0eWxlZERyYWdORHJvcEljb24iLCJTdHlsZWRGaWxlVHlwZUZvdyIsIlN0eWxlZEZpbGVVcGxvYWQiLCJTdHlsZWRNZXNzYWdlIiwiU3R5bGVkRHJhZ0ZpbGVXcmFwcGVyIiwiU3R5bGVkRGlzY2xhaW1lciIsIlN0eWxlZFJlbW90ZVVybEZvcm0iLCJTdHlsZWRSZW1vdGVVcmxSb3ciLCJTdHlsZWRSZW1vdGVVcmxJbnB1dCIsIklucHV0TGlnaHQiLCJTdHlsZWRSZW1vdGVGb3JtYXRTZWxlY3QiLCJzZWxlY3QiLCJpbnB1dExUIiwiU3R5bGVkUmVtb3RlRmV0Y2hCdXR0b24iLCJCdXR0b24iLCJSRU1PVEVfRE9XTkxPQURfU0hBUkUiLCJzY2FsZUZpbGVQcm9ncmVzcyIsInByb2dyZXNzIiwic3RhcnQiLCJlbmQiLCJyZWR1Y2UiLCJhY2N1Iiwia2V5IiwiaXRlbSIsInBlcmNlbnQiLCJnZXRDb21iaW5lZExvYWRQcm9ncmVzcyIsIl9yZWYiLCJmaWxlTG9hZGluZyIsImZpbGVMb2FkaW5nUHJvZ3Jlc3MiLCJyZW1vdGVQcm9ncmVzcyIsImlzUmVtb3RlRmV0Y2giLCJGaWxlVXBsb2FkRmFjdG9yeSIsIkZpbGVVcGxvYWQiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwiY29uY2F0IiwiZHJhZ092ZXIiLCJmaWxlcyIsImVycm9yRmlsZXMiLCJyZW1vdGVVcmwiLCJyZW1vdGVGb3JtYXQiLCJyZW1vdGVFcnJvciIsInJlbW90ZUxvYWRpbmciLCJjcmVhdGVSZWYiLCJmaWxlbmFtZSIsIl90aGlzJHByb3BzJGZpbGVFeHRlbiIsImZpbGVFeHRlbnNpb25zIiwiZmlsZUV4dCIsImZpbmQiLCJleHQiLCJlbmRzV2l0aCIsImZpbGVMaXN0IiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX3RoaXMkcHJvcHMkZGlzYWJsZUV4IiwiZGlzYWJsZUV4dGVuc2lvbkZpbHRlciIsImZpbGVzVG9Mb2FkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJmaWxlIiwiX2lzVmFsaWRGaWxlVHlwZSIsImVyciIsIm5leHRTdGF0ZSIsInNldFN0YXRlIiwib25GaWxlVXBsb2FkIiwibmV3U3RhdGUiLCJ0YXJnZXQiLCJpc1JlbW90ZURhdGFzZXRVcmwiLCJtZXNzYWdlIiwicHJldmVudERlZmF1bHQiLCJfaGFuZGxlTG9hZFJlbW90ZUZpbGUiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl90aGlzJHN0YXRlIiwiaW50bCIsInNob3dGb3JtYXRTZWxlY3RvciIsImZvcm1hdCIsImZpbGVOYW1lIiwiZG93bmxvYWRpbmciLCJsYXN0VXBkYXRlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RhdGUiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZVJlbW90ZUZpbGVGb3JtYXRTZWxlY3RvciIsInVuZGVmaW5lZCIsImFicnVwdCIsImdldEZpbGVOYW1lRm9yUmVtb3RlVXJsIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiZXJyb3IiLCJmZXRjaFJlbW90ZUZpbGVBc0tlcGxlckZpbGUiLCJfcmVmMyIsIm5vdyIsIkRhdGUiLCJzZW50IiwidDAiLCJFcnJvciIsInN0b3AiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInJlbmRlciIsIl90aGlzMiIsIl90aGlzJHN0YXRlMiIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMyIiwiX3RoaXMkcHJvcHMyJGZpbGVFeHRlIiwiX3RoaXMkcHJvcHMyJGZpbGVGb3JtIiwiZmlsZUZvcm1hdE5hbWVzIiwiZmlsZVVwbG9hZEluZm9UZXh0IiwibWFwIiwiam9pbiIsIkdVSURFU19GSUxFX0ZPUk1BVF9ET0MiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwicmVmIiwiZnJhbWUiLCJGaWxlRHJvcCIsImN1cnJlbnQiLCJkb2N1bWVudCIsIm9uRHJhZ092ZXIiLCJfdG9nZ2xlRHJhZ1N0YXRlIiwib25EcmFnTGVhdmUiLCJvbkRyb3AiLCJfaGFuZGxlRmlsZUlucHV0Iiwib3B0aW9ucyIsIm92ZXJyaWRlcyIsImNvbXBvbmVudCIsIkxpbmtSZW5kZXJlciIsIkZpbGVUeXBlIiwiaGVpZ2h0IiwiZm9udFNpemUiLCJGcmFnbWVudCIsInN0eWxlIiwib3BhY2l0eSIsIkRyYWdORHJvcCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJ2YWx1ZXMiLCJicm93c2UiLCJvblVwbG9hZCIsIm9uQ2xpY2siLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9vblJlbW90ZVVybENoYW5nZSIsIm9uS2V5RG93biIsIl9vblJlbW90ZVVybEtleURvd24iLCJkaXNhYmxlZCIsIl9vblJlbW90ZUZvcm1hdENoYW5nZSIsIlJFTU9URV9GSUxFX0ZPUk1BVFMiLCJ0b1VwcGVyQ2FzZSIsImN0YSIsInNtYWxsIiwiaXNDaHJvbWUiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJDb21wb25lbnQiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS11cGxvYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgV3JhcHBlZENvbXBvbmVudFByb3BzfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBVcGxvYWRCdXR0b24gZnJvbSAnLi91cGxvYWQtYnV0dG9uJztcbmltcG9ydCB7RHJhZ05Ecm9wLCBGaWxlVHlwZX0gZnJvbSAnLi4vaWNvbnMnO1xuaW1wb3J0IEZpbGVVcGxvYWRQcm9ncmVzcyBmcm9tICcuL2ZpbGUtdXBsb2FkLXByb2dyZXNzJztcbmltcG9ydCBGaWxlRHJvcCBmcm9tICcuL2ZpbGUtZHJvcCc7XG5pbXBvcnQge0ZpbGVMb2FkaW5nLCBGaWxlTG9hZGluZ1Byb2dyZXNzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtHVUlERVNfRklMRV9GT1JNQVRfRE9DLCBSRU1PVEVfRklMRV9GT1JNQVRTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7XG4gIGZldGNoUmVtb3RlRmlsZUFzS2VwbGVyRmlsZSxcbiAgZ2V0RmlsZU5hbWVGb3JSZW1vdGVVcmwsXG4gIGlzUmVtb3RlRGF0YXNldFVybFxufSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHttZWRpYX0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtpc0Nocm9tZSwgZ2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IE1hcmtkb3duIGZyb20gJ21hcmtkb3duLXRvLWpzeCc7XG5cbmltcG9ydCB7QnV0dG9uLCBJbnB1dExpZ2h0fSBmcm9tICcuLi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTGlua1JlbmRlcmVyIGZyb20gJy4uL2xpbmstcmVuZGVyZXInO1xuXG5jb25zdCBmaWxlSWNvbkNvbG9yID0gJyNEM0Q4RTAnO1xuXG5jb25zdCBTdHlsZWRVcGxvYWRNZXNzYWdlID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yTFR9O1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgJHttZWRpYS5wb3J0YWJsZWBcbiAgICBmb250LXNpemU6IDEycHg7XG4gIGB9O1xuYDtcblxuZXhwb3J0IGNvbnN0IFdhcm5pbmdNc2cgPSBzdHlsZWQuc3BhbmBcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JDb2xvcn07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5gO1xuXG5pbnRlcmZhY2UgU3R5bGVkRmlsZURyb3BQcm9wcyB7XG4gICRkcmFnT3Zlcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN0eWxlZEZpbGVEcm9wID0gc3R5bGVkLmRpdjxTdHlsZWRGaWxlRHJvcFByb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXN0eWxlOiAke3Byb3BzID0+IChwcm9wcy4kZHJhZ092ZXIgPyAnc29saWQnIDogJ2Rhc2hlZCcpfTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLiRkcmFnT3ZlciA/IHByb3BzLnRoZW1lLnRleHRDb2xvckxUIDogcHJvcHMudGhlbWUuc3VidGV4dENvbG9yTFR9O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgcGFkZGluZzogMjRweCAxMnB4IDE2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLmZpbGUtdHlwZS1yb3cge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuICAke21lZGlhLnBvcnRhYmxlYFxuICAgIHBhZGRpbmc6IDE2cHggOHB4IDEycHg7XG4gICAgbWluLWhlaWdodDogMjgwcHg7XG4gIGB9O1xuYDtcblxuY29uc3QgU3R5bGVkRHJvcEJvZHkgPSBzdHlsZWQuZGl2YFxuICBmbGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG5gO1xuXG5jb25zdCBTdHlsZWRBY3Rpb25MaW5lID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubW9kYWxUaXRsZUNvbG9yfTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcblxuICAudXBsb2FkLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yfTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERyYWdORHJvcEljb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtmaWxlSWNvbkNvbG9yfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRGaWxlVHlwZUZvdyA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuY29uc3QgU3R5bGVkRmlsZVVwbG9hZCA9IHN0eWxlZC5kaXZgXG4gIC5maWxlLWRyb3Age1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkTWVzc2FnZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuXG4gIC5sb2FkaW5nLWFjdGlvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB9XG4gIC5sb2FkaW5nLXNwaW5uZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREcmFnRmlsZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbmA7XG5cbmNvbnN0IFN0eWxlZERpc2NsYWltZXIgPSBzdHlsZWQoU3R5bGVkTWVzc2FnZSlgXG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW46IDEycHggMTJweCAwO1xuYDtcblxuY29uc3QgU3R5bGVkUmVtb3RlVXJsRm9ybSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0MjBweDtcbiAgbWFyZ2luOiA4cHggYXV0byAwO1xuYDtcblxuY29uc3QgU3R5bGVkUmVtb3RlVXJsUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG5gO1xuXG5jb25zdCBTdHlsZWRSZW1vdGVVcmxJbnB1dCA9IHN0eWxlZChJbnB1dExpZ2h0KWBcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuYDtcblxuY29uc3QgU3R5bGVkUmVtb3RlRm9ybWF0U2VsZWN0ID0gc3R5bGVkLnNlbGVjdGBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dExUfTtcbiAgd2lkdGg6IDg4cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRSZW1vdGVGZXRjaEJ1dHRvbiA9IHN0eWxlZChCdXR0b24pYFxuICBoZWlnaHQ6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgZmxleC1zaHJpbms6IDA7XG5gO1xuXG5jb25zdCBSRU1PVEVfRE9XTkxPQURfU0hBUkUgPSAwLjg1O1xuXG5mdW5jdGlvbiBzY2FsZUZpbGVQcm9ncmVzcyhcbiAgcHJvZ3Jlc3M6IEZpbGVMb2FkaW5nUHJvZ3Jlc3MsXG4gIHN0YXJ0OiBudW1iZXIsXG4gIGVuZDogbnVtYmVyXG4pOiBGaWxlTG9hZGluZ1Byb2dyZXNzIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHByb2dyZXNzKS5yZWR1Y2U8RmlsZUxvYWRpbmdQcm9ncmVzcz4oKGFjY3UsIGtleSkgPT4ge1xuICAgIGNvbnN0IGl0ZW0gPSBwcm9ncmVzc1trZXldO1xuICAgIGFjY3Vba2V5XSA9IHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBwZXJjZW50OiBzdGFydCArIChpdGVtLnBlcmNlbnQgfHwgMCkgKiAoZW5kIC0gc3RhcnQpXG4gICAgfTtcbiAgICByZXR1cm4gYWNjdTtcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRDb21iaW5lZExvYWRQcm9ncmVzcyh7XG4gIGZpbGVMb2FkaW5nLFxuICBmaWxlTG9hZGluZ1Byb2dyZXNzLFxuICByZW1vdGVQcm9ncmVzc1xufToge1xuICBmaWxlTG9hZGluZzogRmlsZUxvYWRpbmcgfCBmYWxzZTtcbiAgZmlsZUxvYWRpbmdQcm9ncmVzczogRmlsZUxvYWRpbmdQcm9ncmVzcztcbiAgcmVtb3RlUHJvZ3Jlc3M6IEZpbGVMb2FkaW5nUHJvZ3Jlc3M7XG59KTogRmlsZUxvYWRpbmdQcm9ncmVzcyB7XG4gIGNvbnN0IGlzUmVtb3RlRmV0Y2ggPSBPYmplY3Qua2V5cyhyZW1vdGVQcm9ncmVzcykubGVuZ3RoID4gMDtcbiAgaWYgKCFpc1JlbW90ZUZldGNoKSB7XG4gICAgcmV0dXJuIGZpbGVMb2FkaW5nUHJvZ3Jlc3M7XG4gIH1cbiAgaWYgKGZpbGVMb2FkaW5nKSB7XG4gICAgcmV0dXJuIHNjYWxlRmlsZVByb2dyZXNzKGZpbGVMb2FkaW5nUHJvZ3Jlc3MsIFJFTU9URV9ET1dOTE9BRF9TSEFSRSwgMSk7XG4gIH1cbiAgcmV0dXJuIHNjYWxlRmlsZVByb2dyZXNzKHJlbW90ZVByb2dyZXNzLCAwLCBSRU1PVEVfRE9XTkxPQURfU0hBUkUpO1xufVxuXG50eXBlIEZpbGVVcGxvYWRQcm9wcyA9IHtcbiAgb25GaWxlVXBsb2FkOiAoZmlsZXM6IEZpbGVbXSkgPT4gdm9pZDtcbiAgZmlsZUxvYWRpbmc6IEZpbGVMb2FkaW5nIHwgZmFsc2U7XG4gIGZpbGVMb2FkaW5nUHJvZ3Jlc3M6IEZpbGVMb2FkaW5nUHJvZ3Jlc3M7XG4gIHRoZW1lOiBvYmplY3Q7XG4gIC8qKiBBIGxpc3Qgb2YgbmFtZXMgb2Ygc3VwcG9ydGVkIGZvcm1hdHMgc3VpdGFibGUgdG8gcHJlc2VudCB0byB1c2VyICovXG4gIGZpbGVGb3JtYXROYW1lcz86IHN0cmluZ1tdO1xuICAvKiogQSBsaXN0IG9mIHR5cGljYWxseSAzIGxldHRlciBleHRlbnNpb25zICh3aXRob3V0ICcuJykgZm9yIGZpbGUgbWF0Y2hpbmcgKi9cbiAgZmlsZUV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcbiAgLyoqIFNldCB0byB0cnVlIGlmIGFwcCB3YW50cyB0byBkbyBpdHMgb3duIGZpbGUgZmlsdGVyaW5nICovXG4gIGRpc2FibGVFeHRlbnNpb25GaWx0ZXI/OiBib29sZWFuO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxudHlwZSBGaWxlVXBsb2FkU3RhdGUgPSB7XG4gIGRyYWdPdmVyOiBib29sZWFuO1xuICBmaWxlTG9hZGluZzogRmlsZUxvYWRpbmcgfCBmYWxzZTtcbiAgZmlsZXM6IEZpbGVbXTtcbiAgZXJyb3JGaWxlczogc3RyaW5nW107XG4gIHJlbW90ZVVybDogc3RyaW5nO1xuICByZW1vdGVGb3JtYXQ6IHN0cmluZztcbiAgcmVtb3RlRXJyb3I6IHttZXNzYWdlOiBzdHJpbmd9IHwgbnVsbDtcbiAgcmVtb3RlTG9hZGluZzogYm9vbGVhbjtcbiAgcmVtb3RlUHJvZ3Jlc3M6IEZpbGVMb2FkaW5nUHJvZ3Jlc3M7XG59O1xuXG5mdW5jdGlvbiBGaWxlVXBsb2FkRmFjdG9yeSgpIHtcbiAgLyoqIEBhdWdtZW50cyB7Q29tcG9uZW50PEZpbGVVcGxvYWRQcm9wcz59ICovXG4gIGNsYXNzIEZpbGVVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnQ8RmlsZVVwbG9hZFByb3BzLCBGaWxlVXBsb2FkU3RhdGU+IHtcbiAgICBzdGF0ZTogRmlsZVVwbG9hZFN0YXRlID0ge1xuICAgICAgZHJhZ092ZXI6IGZhbHNlLFxuICAgICAgZmlsZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgZmlsZXM6IFtdLFxuICAgICAgZXJyb3JGaWxlczogW10sXG4gICAgICByZW1vdGVVcmw6ICcnLFxuICAgICAgcmVtb3RlRm9ybWF0OiAnYXV0bycsXG4gICAgICByZW1vdGVFcnJvcjogbnVsbCxcbiAgICAgIHJlbW90ZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgcmVtb3RlUHJvZ3Jlc3M6IHt9XG4gICAgfTtcblxuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgICBpZiAoc3RhdGUuZmlsZUxvYWRpbmcgJiYgcHJvcHMuZmlsZUxvYWRpbmcgPT09IGZhbHNlICYmIHN0YXRlLmZpbGVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZpbGVzOiBbXSxcbiAgICAgICAgICBmaWxlTG9hZGluZzogcHJvcHMuZmlsZUxvYWRpbmcsXG4gICAgICAgICAgcmVtb3RlTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgcmVtb3RlUHJvZ3Jlc3M6IHt9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWxlTG9hZGluZzogcHJvcHMuZmlsZUxvYWRpbmcsXG4gICAgICAgIC4uLihwcm9wcy5maWxlTG9hZGluZyA/IHtyZW1vdGVMb2FkaW5nOiBmYWxzZX0gOiB7fSlcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZnJhbWUgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgICBfaXNWYWxpZEZpbGVUeXBlID0gZmlsZW5hbWUgPT4ge1xuICAgICAgY29uc3Qge2ZpbGVFeHRlbnNpb25zID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGZpbGVFeHQgPSBmaWxlRXh0ZW5zaW9ucy5maW5kKGV4dCA9PiBmaWxlbmFtZS5lbmRzV2l0aChleHQpKTtcblxuICAgICAgcmV0dXJuIEJvb2xlYW4oZmlsZUV4dCk7XG4gICAgfTtcblxuICAgIC8qKiBAcGFyYW0ge0ZpbGVMaXN0fSBmaWxlTGlzdCAqL1xuICAgIF9oYW5kbGVGaWxlSW5wdXQgPSAoZmlsZUxpc3Q6IEZpbGVMaXN0LCBldmVudDogYW55KSA9PiB7XG4gICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVzID0gWy4uLmZpbGVMaXN0XS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgIGNvbnN0IHtkaXNhYmxlRXh0ZW5zaW9uRmlsdGVyID0gZmFsc2V9ID0gdGhpcy5wcm9wcztcblxuICAgICAgLy8gVE9ETyAtIG1vdmUgdGhpcyBjb2RlIG91dCBvZiB0aGUgY29tcG9uZW50XG4gICAgICBjb25zdCBmaWxlc1RvTG9hZDogRmlsZVtdID0gW107XG4gICAgICBjb25zdCBlcnJvckZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmIChkaXNhYmxlRXh0ZW5zaW9uRmlsdGVyIHx8IHRoaXMuX2lzVmFsaWRGaWxlVHlwZShmaWxlLm5hbWUpKSB7XG4gICAgICAgICAgZmlsZXNUb0xvYWQucHVzaChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvckZpbGVzLnB1c2goZmlsZS5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXh0U3RhdGUgPSB7ZmlsZXM6IGZpbGVzVG9Mb2FkLCBlcnJvckZpbGVzLCBkcmFnT3ZlcjogZmFsc2V9O1xuXG4gICAgICB0aGlzLnNldFN0YXRlKG5leHRTdGF0ZSwgKCkgPT5cbiAgICAgICAgbmV4dFN0YXRlLmZpbGVzLmxlbmd0aCA/IHRoaXMucHJvcHMub25GaWxlVXBsb2FkKG5leHRTdGF0ZS5maWxlcykgOiBudWxsXG4gICAgICApO1xuICAgIH07XG5cbiAgICBfdG9nZ2xlRHJhZ1N0YXRlID0gbmV3U3RhdGUgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZHJhZ092ZXI6IG5ld1N0YXRlfSk7XG4gICAgfTtcblxuICAgIF9vblJlbW90ZVVybENoYW5nZSA9IChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGNvbnN0IHJlbW90ZVVybCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICByZW1vdGVVcmwsXG4gICAgICAgIHJlbW90ZUVycm9yOiByZW1vdGVVcmwgJiYgIWlzUmVtb3RlRGF0YXNldFVybChyZW1vdGVVcmwpID8ge21lc3NhZ2U6ICdJbmNvcnJlY3QgVVJMJ30gOiBudWxsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uUmVtb3RlRm9ybWF0Q2hhbmdlID0gKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MU2VsZWN0RWxlbWVudD4pID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3JlbW90ZUZvcm1hdDogZXZlbnQudGFyZ2V0LnZhbHVlfSk7XG4gICAgfTtcblxuICAgIF9vblJlbW90ZVVybEtleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5faGFuZGxlTG9hZFJlbW90ZUZpbGUoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX2hhbmRsZUxvYWRSZW1vdGVGaWxlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qge3JlbW90ZVVybCwgcmVtb3RlRm9ybWF0LCByZW1vdGVFcnJvcn0gPSB0aGlzLnN0YXRlO1xuICAgICAgY29uc3Qge2ludGx9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNob3dGb3JtYXRTZWxlY3RvciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmVtb3RlRmlsZUZvcm1hdFNlbGVjdG9yO1xuICAgICAgY29uc3QgZm9ybWF0ID0gc2hvd0Zvcm1hdFNlbGVjdG9yICYmIHJlbW90ZUZvcm1hdCAhPT0gJ2F1dG8nID8gcmVtb3RlRm9ybWF0IDogdW5kZWZpbmVkO1xuICAgICAgaWYgKCFyZW1vdGVVcmwgfHwgcmVtb3RlRXJyb3IgfHwgdGhpcy5zdGF0ZS5yZW1vdGVMb2FkaW5nKSB7XG4gICAgICAgIGlmICghcmVtb3RlVXJsKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cmVtb3RlRXJyb3I6IHttZXNzYWdlOiAnSW5jb3JyZWN0IFVSTCd9fSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKCFpc1JlbW90ZURhdGFzZXRVcmwocmVtb3RlVXJsKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtyZW1vdGVFcnJvcjoge21lc3NhZ2U6ICdJbmNvcnJlY3QgVVJMJ319KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWxlTmFtZSA9IGdldEZpbGVOYW1lRm9yUmVtb3RlVXJsKHJlbW90ZVVybCwgZm9ybWF0KTtcbiAgICAgIGNvbnN0IGRvd25sb2FkaW5nID0gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2ZpbGVVcGxvYWRlci5kb3dubG9hZGluZyd9KTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICByZW1vdGVMb2FkaW5nOiB0cnVlLFxuICAgICAgICByZW1vdGVFcnJvcjogbnVsbCxcbiAgICAgICAgcmVtb3RlUHJvZ3Jlc3M6IHtcbiAgICAgICAgICBbZmlsZU5hbWVdOiB7XG4gICAgICAgICAgICBmaWxlTmFtZSxcbiAgICAgICAgICAgIHBlcmNlbnQ6IDAsXG4gICAgICAgICAgICBtZXNzYWdlOiBkb3dubG9hZGluZyxcbiAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IGxhc3RVcGRhdGUgPSAwO1xuICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZmV0Y2hSZW1vdGVGaWxlQXNLZXBsZXJGaWxlKHJlbW90ZVVybCwgZm9ybWF0LCAoe3BlcmNlbnR9KSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBpZiAocGVyY2VudCA8IDEgJiYgbm93IC0gbGFzdFVwZGF0ZSA8IDEwMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsYXN0VXBkYXRlID0gbm93O1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUocHJldiA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmtleXMocHJldi5yZW1vdGVQcm9ncmVzcylbMF0gfHwgZmlsZU5hbWU7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICByZW1vdGVQcm9ncmVzczoge1xuICAgICAgICAgICAgICAgIFtuYW1lXToge1xuICAgICAgICAgICAgICAgICAgZmlsZU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICBwZXJjZW50LFxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZG93bmxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmlsZXM6IFtmaWxlXSxcbiAgICAgICAgICAgIGVycm9yRmlsZXM6IFtdLFxuICAgICAgICAgICAgZHJhZ092ZXI6IGZhbHNlXG4gICAgICAgICAgfSxcbiAgICAgICAgICAoKSA9PiB0aGlzLnByb3BzLm9uRmlsZVVwbG9hZChbZmlsZV0pXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICByZW1vdGVMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICByZW1vdGVQcm9ncmVzczoge30sXG4gICAgICAgICAgcmVtb3RlRXJyb3I6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogYEZhaWxlZCB0byBsb2FkICR7cmVtb3RlVXJsfWBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGRyYWdPdmVyLFxuICAgICAgICBmaWxlcyxcbiAgICAgICAgZXJyb3JGaWxlcyxcbiAgICAgICAgcmVtb3RlVXJsLFxuICAgICAgICByZW1vdGVGb3JtYXQsXG4gICAgICAgIHJlbW90ZUVycm9yLFxuICAgICAgICByZW1vdGVMb2FkaW5nLFxuICAgICAgICByZW1vdGVQcm9ncmVzc1xuICAgICAgfSA9IHRoaXMuc3RhdGU7XG4gICAgICBjb25zdCB7ZmlsZUxvYWRpbmcsIGZpbGVMb2FkaW5nUHJvZ3Jlc3MsIHRoZW1lLCBpbnRsfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7ZmlsZUV4dGVuc2lvbnMgPSBbXSwgZmlsZUZvcm1hdE5hbWVzID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHNob3dGb3JtYXRTZWxlY3RvciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmVtb3RlRmlsZUZvcm1hdFNlbGVjdG9yO1xuICAgICAgY29uc3QgZmlsZVVwbG9hZEluZm9UZXh0ID0gYCR7aW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdmaWxlVXBsb2FkZXIuY29uZmlnVXBsb2FkTWVzc2FnZSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbGVGb3JtYXROYW1lczogZmlsZUZvcm1hdE5hbWVzLm1hcChmb3JtYXQgPT4gYCoqJHtmb3JtYXR9KipgKS5qb2luKCcsICcpXG4gICAgICAgIH1cbiAgICAgICl9KCR7R1VJREVTX0ZJTEVfRk9STUFUX0RPQ30pLmA7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRmlsZVVwbG9hZCBjbGFzc05hbWU9XCJmaWxlLXVwbG9hZGVyXCIgcmVmPXt0aGlzLmZyYW1lfT5cbiAgICAgICAgICB7RmlsZURyb3AgPyAoXG4gICAgICAgICAgICA8RmlsZURyb3BcbiAgICAgICAgICAgICAgZnJhbWU9e3RoaXMuZnJhbWUuY3VycmVudCB8fCBkb2N1bWVudH1cbiAgICAgICAgICAgICAgb25EcmFnT3Zlcj17KCkgPT4gdGhpcy5fdG9nZ2xlRHJhZ1N0YXRlKHRydWUpfVxuICAgICAgICAgICAgICBvbkRyYWdMZWF2ZT17KCkgPT4gdGhpcy5fdG9nZ2xlRHJhZ1N0YXRlKGZhbHNlKX1cbiAgICAgICAgICAgICAgb25Ecm9wPXt0aGlzLl9oYW5kbGVGaWxlSW5wdXR9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbGUtdXBsb2FkZXJfX2ZpbGUtZHJvcFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRVcGxvYWRNZXNzYWdlIGNsYXNzTmFtZT1cImZpbGUtdXBsb2FkX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgPE1hcmtkb3duXG4gICAgICAgICAgICAgICAgICBvcHRpb25zPXt7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogTGlua1JlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtmaWxlVXBsb2FkSW5mb1RleHR9XG4gICAgICAgICAgICAgICAgPC9NYXJrZG93bj5cbiAgICAgICAgICAgICAgPC9TdHlsZWRVcGxvYWRNZXNzYWdlPlxuICAgICAgICAgICAgICA8U3R5bGVkRmlsZURyb3AgJGRyYWdPdmVyPXtkcmFnT3Zlcn0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERyb3BCb2R5PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEZpbGVUeXBlRm93IGNsYXNzTmFtZT1cImZpbGUtdHlwZS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVFeHRlbnNpb25zLm1hcChleHQgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxGaWxlVHlwZSBrZXk9e2V4dH0gZXh0PXtleHR9IGhlaWdodD1cIjUwcHhcIiBmb250U2l6ZT1cIjlweFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRGaWxlVHlwZUZvdz5cbiAgICAgICAgICAgICAgICAgIHtmaWxlTG9hZGluZyB8fCByZW1vdGVMb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8RmlsZVVwbG9hZFByb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgICAgZmlsZUxvYWRpbmdQcm9ncmVzcz17Z2V0Q29tYmluZWRMb2FkUHJvZ3Jlc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlUHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWREcmFnTkRyb3BJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e29wYWNpdHk6IGRyYWdPdmVyID8gMC41IDogMX19XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWxlLXVwbG9hZC1kaXNwbGF5LW1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnTkRyb3AgaGVpZ2h0PVwiMzZweFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXJyb3JGaWxlcy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxXYXJuaW5nTXNnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17J2ZpbGVVcGxvYWRlci5maWxlTm90U3VwcG9ydGVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17e2Vycm9yRmlsZXM6IGVycm9yRmlsZXMuam9pbignLCAnKX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9XYXJuaW5nTXNnPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWREcmFnTkRyb3BJY29uPlxuICAgICAgICAgICAgICAgICAgICAgIHshZmlsZXMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZERyYWdGaWxlV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEFjdGlvbkxpbmU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPXsnZmlsZVVwbG9hZGVyLmRyb3BNZXNzYWdlJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2U6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VXBsb2FkQnV0dG9uIGtleT1cImJyb3dzZVwiIG9uVXBsb2FkPXt0aGlzLl9oYW5kbGVGaWxlSW5wdXR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdmaWxlVXBsb2FkZXIuYnJvd3NlRmlsZXMnfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9VcGxvYWRCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRBY3Rpb25MaW5lPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkUmVtb3RlVXJsRm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbGUtdXBsb2FkZXJfX3JlbW90ZS11cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2V2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFJlbW90ZVVybFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRSZW1vdGVVcmxJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3JlbW90ZVVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2ZpbGVVcGxvYWRlci51cmxQbGFjZWhvbGRlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZmlsZVVwbG9hZGVyLnVybFBsYWNlaG9sZGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuX29uUmVtb3RlVXJsQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e3RoaXMuX29uUmVtb3RlVXJsS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3JlbW90ZUxvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Nob3dGb3JtYXRTZWxlY3RvciA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFJlbW90ZUZvcm1hdFNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbGUtdXBsb2FkZXJfX3JlbW90ZS1mb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdmaWxlVXBsb2FkZXIuZm9ybWF0J30pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZW1vdGVGb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuX29uUmVtb3RlRm9ybWF0Q2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtyZW1vdGVMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1JFTU9URV9GSUxFX0ZPUk1BVFMubWFwKGZvcm1hdCA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17Zm9ybWF0fSB2YWx1ZT17Zm9ybWF0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Zvcm1hdCA9PT0gJ2F1dG8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZmlsZVVwbG9hZGVyLmZvcm1hdEF1dG8nfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZvcm1hdC50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkUmVtb3RlRm9ybWF0U2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkUmVtb3RlRmV0Y2hCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IXJlbW90ZVVybCB8fCByZW1vdGVMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLl9oYW5kbGVMb2FkUmVtb3RlRmlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydmaWxlVXBsb2FkZXIuZmV0Y2gnfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRSZW1vdGVGZXRjaEJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZFJlbW90ZVVybFJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVtb3RlRXJyb3IgPyA8V2FybmluZ01zZz57cmVtb3RlRXJyb3IubWVzc2FnZX08L1dhcm5pbmdNc2c+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRSZW1vdGVVcmxGb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWREcmFnRmlsZVdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZERyb3BCb2R5PlxuICAgICAgICAgICAgICAgIHtmaWxlTG9hZGluZyB8fCByZW1vdGVMb2FkaW5nID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWREaXNjbGFpbWVyPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2ZpbGVVcGxvYWRlci5kaXNjbGFpbWVyJ30gLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkRGlzY2xhaW1lcj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZEZpbGVEcm9wPlxuICAgICAgICAgICAgPC9GaWxlRHJvcD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIDxXYXJuaW5nTXNnPlxuICAgICAgICAgICAge2lzQ2hyb21lKCkgPyA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2ZpbGVVcGxvYWRlci5jaHJvbWVNZXNzYWdlJ30gLz4gOiAnJ31cbiAgICAgICAgICA8L1dhcm5pbmdNc2c+XG4gICAgICAgIDwvU3R5bGVkRmlsZVVwbG9hZD5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluamVjdEludGwoRmlsZVVwbG9hZCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVVcGxvYWRGYWN0b3J5O1xuZXhwb3J0IGNvbnN0IEZpbGVVcGxvYWQgPSBGaWxlVXBsb2FkRmFjdG9yeSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQUwsc0JBQUEs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
|