@kepler.gl/components 3.3.0-alpha.5 → 3.3.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/annotations/annotation-node.js +145 -0
- package/dist/cjs/annotations/annotation-overlay.js +168 -0
- package/dist/cjs/annotations/annotation-panel.js +361 -0
- package/dist/cjs/annotations/annotation-text.js +149 -0
- package/dist/cjs/annotations/annotation-utils.js +197 -0
- package/dist/cjs/annotations/index.js +53 -0
- package/dist/cjs/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/cjs/annotations/lexical-editor/floating-link-editor.js +193 -0
- package/dist/cjs/annotations/lexical-editor/index.js +78 -0
- package/dist/cjs/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/cjs/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/cjs/annotations/lexical-editor/lexical-rich-text-editor.js +121 -0
- package/dist/cjs/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/cjs/annotations/lexical-editor/lexical-toolbar.js +292 -0
- package/dist/cjs/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/cjs/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/cjs/bottom-widget.js +183 -0
- package/dist/cjs/common/action-panel.js +133 -0
- package/dist/cjs/common/animation-control/animation-control.js +100 -0
- package/dist/cjs/common/animation-control/animation-controller.js +271 -0
- package/dist/cjs/common/animation-control/animation-speed-slider.js +63 -0
- package/dist/cjs/common/animation-control/animation-window-control.js +59 -0
- package/dist/cjs/common/animation-control/export-video-control.js +43 -0
- package/dist/cjs/common/animation-control/floating-time-display.js +131 -0
- package/dist/cjs/common/animation-control/play-control.js +50 -0
- package/dist/cjs/common/animation-control/playback-controls.js +164 -0
- package/dist/cjs/common/animation-control/reset-control.js +41 -0
- package/dist/cjs/common/animation-control/speed-control.js +51 -0
- package/dist/cjs/common/animation-control/window-action-control.js +57 -0
- package/dist/cjs/common/checkbox.js +101 -0
- package/dist/cjs/common/color-legend.js +272 -0
- package/dist/cjs/common/column-stats-chart.js +312 -0
- package/dist/cjs/common/data-table/button.js +38 -0
- package/dist/cjs/common/data-table/canvas.js +26 -0
- package/dist/cjs/common/data-table/cell-size.js +183 -0
- package/dist/cjs/common/data-table/display-format.js +125 -0
- package/dist/cjs/common/data-table/grid.js +106 -0
- package/dist/cjs/common/data-table/header-cell.js +148 -0
- package/dist/cjs/common/data-table/index.js +470 -0
- package/dist/cjs/common/data-table/option-dropdown.js +159 -0
- package/dist/cjs/common/dataset-label.js +27 -0
- package/dist/cjs/common/dnd-layer-items.js +22 -0
- package/dist/cjs/common/error-boundary.js +59 -0
- package/dist/cjs/common/field-selector.js +172 -0
- package/dist/cjs/common/field-token.js +43 -0
- package/dist/cjs/common/file-uploader/file-drop.js +180 -0
- package/dist/cjs/common/file-uploader/file-upload-progress.js +84 -0
- package/dist/cjs/common/file-uploader/file-upload.js +241 -0
- package/dist/cjs/common/file-uploader/upload-button.js +58 -0
- package/dist/cjs/common/flex-container.js +15 -0
- package/dist/cjs/common/histogram-plot.js +282 -0
- package/dist/cjs/common/icon-button.js +25 -0
- package/dist/cjs/common/icons/3d-models/airplane.js +103 -0
- package/dist/cjs/common/icons/3d-models/bicycle.js +425 -0
- package/dist/cjs/common/icons/3d-models/boeing.js +118 -0
- package/dist/cjs/common/icons/3d-models/car.js +109 -0
- package/dist/cjs/common/icons/3d-models/cargoship.js +245 -0
- package/dist/cjs/common/icons/3d-models/evtol.js +133 -0
- package/dist/cjs/common/icons/3d-models/glider.js +61 -0
- package/dist/cjs/common/icons/3d-models/helicopter.js +109 -0
- package/dist/cjs/common/icons/3d-models/scooter.js +158 -0
- package/dist/cjs/common/icons/3d-models/semitruck.js +176 -0
- package/dist/cjs/common/icons/3d-models/truck.js +121 -0
- package/dist/cjs/common/icons/add.js +40 -0
- package/dist/cjs/common/icons/anchor_window.js +41 -0
- package/dist/cjs/common/icons/annotation-text.js +55 -0
- package/dist/cjs/common/icons/arrow-down-alt.js +40 -0
- package/dist/cjs/common/icons/arrow-down-full.js +49 -0
- package/dist/cjs/common/icons/arrow-down-small.js +53 -0
- package/dist/cjs/common/icons/arrow-down-solid.js +40 -0
- package/dist/cjs/common/icons/arrow-down.js +50 -0
- package/dist/cjs/common/icons/arrow-left.js +43 -0
- package/dist/cjs/common/icons/arrow-right.js +40 -0
- package/dist/cjs/common/icons/arrow-up-alt.js +41 -0
- package/dist/cjs/common/icons/arrow-up-solid.js +40 -0
- package/dist/cjs/common/icons/arrow-up.js +40 -0
- package/dist/cjs/common/icons/base-map.js +56 -0
- package/dist/cjs/common/icons/base.js +78 -0
- package/dist/cjs/common/icons/bug.js +70 -0
- package/dist/cjs/common/icons/calendar.js +48 -0
- package/dist/cjs/common/icons/cancel.js +40 -0
- package/dist/cjs/common/icons/checkmark.js +46 -0
- package/dist/cjs/common/icons/clipboard.js +41 -0
- package/dist/cjs/common/icons/clock.js +42 -0
- package/dist/cjs/common/icons/close.js +46 -0
- package/dist/cjs/common/icons/cloud.js +50 -0
- package/dist/cjs/common/icons/code-alt.js +43 -0
- package/dist/cjs/common/icons/copy.js +51 -0
- package/dist/cjs/common/icons/crosshairs.js +43 -0
- package/dist/cjs/common/icons/cube-3d.js +54 -0
- package/dist/cjs/common/icons/cursor-click.js +44 -0
- package/dist/cjs/common/icons/cursor-point.js +50 -0
- package/dist/cjs/common/icons/data-table.js +76 -0
- package/dist/cjs/common/icons/db.js +58 -0
- package/dist/cjs/common/icons/delete.js +52 -0
- package/dist/cjs/common/icons/docs.js +56 -0
- package/dist/cjs/common/icons/docs2.js +50 -0
- package/dist/cjs/common/icons/drag-n-drop.js +42 -0
- package/dist/cjs/common/icons/draggable-dots.js +84 -0
- package/dist/cjs/common/icons/draw-polygon.js +60 -0
- package/dist/cjs/common/icons/edit.js +48 -0
- package/dist/cjs/common/icons/effects/brightness-contrast.js +69 -0
- package/dist/cjs/common/icons/effects/color-halftone.js +108 -0
- package/dist/cjs/common/icons/effects/distance-fog.js +78 -0
- package/dist/cjs/common/icons/effects/dot-screen.js +103 -0
- package/dist/cjs/common/icons/effects/edge-work.js +62 -0
- package/dist/cjs/common/icons/effects/hexagonal-pixelate.js +129 -0
- package/dist/cjs/common/icons/effects/hue-saturation.js +60 -0
- package/dist/cjs/common/icons/effects/ink.js +59 -0
- package/dist/cjs/common/icons/effects/light-and-shadow.js +48 -0
- package/dist/cjs/common/icons/effects/magic-wand.js +60 -0
- package/dist/cjs/common/icons/effects/magnify.js +67 -0
- package/dist/cjs/common/icons/effects/noise.js +113 -0
- package/dist/cjs/common/icons/effects/sepia.js +60 -0
- package/dist/cjs/common/icons/effects/surface-fog.js +85 -0
- package/dist/cjs/common/icons/effects/tilt-shift.js +69 -0
- package/dist/cjs/common/icons/effects/triangle-blur.js +64 -0
- package/dist/cjs/common/icons/effects/vibrance.js +60 -0
- package/dist/cjs/common/icons/effects/vignette.js +53 -0
- package/dist/cjs/common/icons/effects/zoom-blur.js +88 -0
- package/dist/cjs/common/icons/email.js +44 -0
- package/dist/cjs/common/icons/expand.js +42 -0
- package/dist/cjs/common/icons/eye-seen.js +49 -0
- package/dist/cjs/common/icons/eye-unseen.js +47 -0
- package/dist/cjs/common/icons/file-type.js +35 -0
- package/dist/cjs/common/icons/file.js +40 -0
- package/dist/cjs/common/icons/files.js +41 -0
- package/dist/cjs/common/icons/filter-funnel.js +50 -0
- package/dist/cjs/common/icons/folder.js +50 -0
- package/dist/cjs/common/icons/free-window.js +44 -0
- package/dist/cjs/common/icons/gear.js +42 -0
- package/dist/cjs/common/icons/globe.js +53 -0
- package/dist/cjs/common/icons/hash.js +40 -0
- package/dist/cjs/common/icons/help.js +50 -0
- package/dist/cjs/common/icons/histogram.js +41 -0
- package/dist/cjs/common/icons/horizontal-resize-handle.js +58 -0
- package/dist/cjs/common/icons/index.js +824 -0
- package/dist/cjs/common/icons/info.js +53 -0
- package/dist/cjs/common/icons/layers.js +54 -0
- package/dist/cjs/common/icons/left-arrow.js +43 -0
- package/dist/cjs/common/icons/legend.js +68 -0
- package/dist/cjs/common/icons/line-chart.js +40 -0
- package/dist/cjs/common/icons/location-marker.js +58 -0
- package/dist/cjs/common/icons/login.js +43 -0
- package/dist/cjs/common/icons/logout.js +42 -0
- package/dist/cjs/common/icons/map-icon.js +47 -0
- package/dist/cjs/common/icons/map-pin.js +56 -0
- package/dist/cjs/common/icons/messages.js +54 -0
- package/dist/cjs/common/icons/minus.js +40 -0
- package/dist/cjs/common/icons/moon.js +58 -0
- package/dist/cjs/common/icons/order-by-dataset.js +46 -0
- package/dist/cjs/common/icons/order-by-list.js +38 -0
- package/dist/cjs/common/icons/pause.js +60 -0
- package/dist/cjs/common/icons/picture.js +59 -0
- package/dist/cjs/common/icons/pin.js +52 -0
- package/dist/cjs/common/icons/play.js +50 -0
- package/dist/cjs/common/icons/pointer-click.js +58 -0
- package/dist/cjs/common/icons/polygon.js +62 -0
- package/dist/cjs/common/icons/rectangle.js +63 -0
- package/dist/cjs/common/icons/reduce.js +43 -0
- package/dist/cjs/common/icons/reset.js +56 -0
- package/dist/cjs/common/icons/save.js +57 -0
- package/dist/cjs/common/icons/save2.js +54 -0
- package/dist/cjs/common/icons/search.js +42 -0
- package/dist/cjs/common/icons/settings.js +60 -0
- package/dist/cjs/common/icons/share.js +70 -0
- package/dist/cjs/common/icons/speed.js +52 -0
- package/dist/cjs/common/icons/split.js +68 -0
- package/dist/cjs/common/icons/square-select.js +42 -0
- package/dist/cjs/common/icons/sun.js +74 -0
- package/dist/cjs/common/icons/sunrise.js +70 -0
- package/dist/cjs/common/icons/sunset.js +70 -0
- package/dist/cjs/common/icons/timeline-marker.js +55 -0
- package/dist/cjs/common/icons/trash.js +54 -0
- package/dist/cjs/common/icons/vert-dots.js +78 -0
- package/dist/cjs/common/icons/vert-three-dots.js +53 -0
- package/dist/cjs/common/icons/warning-sign.js +60 -0
- package/dist/cjs/common/icons/warning.js +54 -0
- package/dist/cjs/common/icons/zoom-in.js +47 -0
- package/dist/cjs/common/icons/zoom-out.js +47 -0
- package/dist/cjs/common/image-preview.js +64 -0
- package/dist/cjs/common/index.js +282 -0
- package/dist/cjs/common/info-helper.js +61 -0
- package/dist/cjs/common/item-selector/accessor.js +37 -0
- package/dist/cjs/common/item-selector/chickleted-input.js +157 -0
- package/dist/cjs/common/item-selector/dropdown-list.js +257 -0
- package/dist/cjs/common/item-selector/dropdown-select.js +84 -0
- package/dist/cjs/common/item-selector/item-selector.js +254 -0
- package/dist/cjs/common/item-selector/typeahead.js +435 -0
- package/dist/cjs/common/layout-splitter.js +230 -0
- package/dist/cjs/common/line-chart.js +286 -0
- package/dist/cjs/common/link-renderer.js +20 -0
- package/dist/cjs/common/loading-spinner.js +50 -0
- package/dist/cjs/common/logo.js +68 -0
- package/dist/cjs/common/map-layer-selector.js +38 -0
- package/dist/cjs/common/modal.js +170 -0
- package/dist/cjs/common/portaled.js +287 -0
- package/dist/cjs/common/progress-bar.js +47 -0
- package/dist/cjs/common/radius-legend.js +131 -0
- package/dist/cjs/common/range-brush.js +265 -0
- package/dist/cjs/common/range-plot.js +217 -0
- package/dist/cjs/common/range-slider-timeline-panel.js +42 -0
- package/dist/cjs/common/range-slider-timeline.js +112 -0
- package/dist/cjs/common/range-slider.js +371 -0
- package/dist/cjs/common/slider/mouse-event.js +104 -0
- package/dist/cjs/common/slider/slider-bar-handle.js +90 -0
- package/dist/cjs/common/slider/slider-handle.js +136 -0
- package/dist/cjs/common/slider/slider.js +251 -0
- package/dist/cjs/common/styled-components.js +447 -0
- package/dist/cjs/common/switch.js +21 -0
- package/dist/cjs/common/sync-timeline-control.js +61 -0
- package/dist/cjs/common/time-range-slider-time-title.js +62 -0
- package/dist/cjs/common/time-range-slider.js +143 -0
- package/dist/cjs/common/time-slider-marker.js +115 -0
- package/dist/cjs/common/timeline-helpers.js +57 -0
- package/dist/cjs/common/timeline-slider.js +140 -0
- package/dist/cjs/common/tippy-tooltip.js +134 -0
- package/dist/cjs/common/toolbar-item.js +60 -0
- package/dist/cjs/common/toolbar.js +27 -0
- package/dist/cjs/common/vertical-toolbar.js +16 -0
- package/dist/cjs/connect/keplergl-connect.js +44 -0
- package/dist/cjs/connect/with-local-selector.js +85 -0
- package/dist/cjs/container.js +180 -0
- package/dist/cjs/context.js +43 -0
- package/dist/cjs/dnd-context.js +174 -0
- package/dist/cjs/editor/editor.js +200 -0
- package/dist/cjs/editor/feature-action-panel.js +147 -0
- package/dist/cjs/effects/compact-color-picker.js +110 -0
- package/dist/cjs/effects/effect-configurator.js +473 -0
- package/dist/cjs/effects/effect-list.js +129 -0
- package/dist/cjs/effects/effect-manager.js +126 -0
- package/dist/cjs/effects/effect-panel-header.js +196 -0
- package/dist/cjs/effects/effect-panel.js +86 -0
- package/dist/cjs/effects/effect-time-configurator.js +313 -0
- package/dist/cjs/effects/effect-time-selector.js +152 -0
- package/dist/cjs/effects/effect-time-slider.js +198 -0
- package/dist/cjs/effects/effect-type-dropdown-list.js +65 -0
- package/dist/cjs/effects/effect-type-list-item.js +98 -0
- package/dist/cjs/effects/effect-type-selector.js +76 -0
- package/dist/cjs/effects/side-panel-title.js +37 -0
- package/dist/cjs/effects/surface-fog-section.js +262 -0
- package/dist/cjs/effects/timezone-selector.js +57 -0
- package/dist/cjs/filter-animation-controller.js +76 -0
- package/dist/cjs/filters/components.js +14 -0
- package/dist/cjs/filters/filter-panels/filter-panel-with-field-select.js +77 -0
- package/dist/cjs/filters/filter-panels/filter-synced-dataset-panel.js +260 -0
- package/dist/cjs/filters/filter-panels/multi-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/new-filter-panel.js +66 -0
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +67 -0
- package/dist/cjs/filters/filter-panels/range-filter-panel.js +53 -0
- package/dist/cjs/filters/filter-panels/single-select-filter-panel.js +48 -0
- package/dist/cjs/filters/filter-panels/time-range-filter-panel.js +129 -0
- package/dist/cjs/filters/filter-panels/time-synced-field-selector.js +28 -0
- package/dist/cjs/filters/filter-panels/types.js +6 -0
- package/dist/cjs/filters/index.js +63 -0
- package/dist/cjs/filters/multi-select-filter.js +31 -0
- package/dist/cjs/filters/polygon-filter.js +76 -0
- package/dist/cjs/filters/range-filter.js +35 -0
- package/dist/cjs/filters/single-select-filter.js +40 -0
- package/dist/cjs/filters/time-range-filter.js +69 -0
- package/dist/cjs/filters/time-widget-settings.js +311 -0
- package/dist/cjs/filters/time-widget-top.js +80 -0
- package/dist/cjs/filters/time-widget.js +376 -0
- package/dist/cjs/filters/types.js +6 -0
- package/dist/cjs/geocoder/geocoder.js +327 -0
- package/dist/cjs/geocoder-panel.js +172 -0
- package/dist/cjs/hooks/use-cloud-list-provider.js +46 -0
- package/dist/cjs/hooks/use-dnd-effects.js +69 -0
- package/dist/cjs/hooks/use-dnd-layers.js +141 -0
- package/dist/cjs/hooks/use-feature-flags.js +17 -0
- package/dist/cjs/hooks/use-fetch-raster-tile-metadata.js +120 -0
- package/dist/cjs/hooks/use-fetch-vector-tile-metadata.js +133 -0
- package/dist/cjs/hooks/use-legend-position.js +176 -0
- package/dist/cjs/hooks/use-on-click-outside.js +36 -0
- package/dist/cjs/index.js +2897 -0
- package/dist/cjs/injector.js +151 -0
- package/dist/cjs/kepler-gl.js +664 -0
- package/dist/cjs/layer-animation-controller.js +53 -0
- package/dist/cjs/loading-indicator.js +76 -0
- package/dist/cjs/map/annotations/annotation-control.js +55 -0
- package/dist/cjs/map/attribution.js +391 -0
- package/dist/cjs/map/coordinate-info.js +42 -0
- package/dist/cjs/map/effects/effect-control.js +51 -0
- package/dist/cjs/map/layer-hover-info.js +318 -0
- package/dist/cjs/map/lazy-tippy.js +60 -0
- package/dist/cjs/map/locale-panel.js +76 -0
- package/dist/cjs/map/map-control-panel.js +140 -0
- package/dist/cjs/map/map-control-toolbar.js +18 -0
- package/dist/cjs/map/map-control-tooltip.js +34 -0
- package/dist/cjs/map/map-control.js +81 -0
- package/dist/cjs/map/map-draw-panel.js +100 -0
- package/dist/cjs/map/map-legend-panel.js +289 -0
- package/dist/cjs/map/map-legend.js +509 -0
- package/dist/cjs/map/map-navigation-control.js +159 -0
- package/dist/cjs/map/map-popover-content.js +28 -0
- package/dist/cjs/map/map-popover.js +189 -0
- package/dist/cjs/map/map-scale.js +162 -0
- package/dist/cjs/map/split-map-button.js +176 -0
- package/dist/cjs/map/toggle-3d-button.js +122 -0
- package/dist/cjs/map-container.js +1322 -0
- package/dist/cjs/map-view-state-context.js +98 -0
- package/dist/cjs/maps-layout.js +102 -0
- package/dist/cjs/modal-container.js +456 -0
- package/dist/cjs/modals/add-map-style-modal.js +262 -0
- package/dist/cjs/modals/cloud-components/cloud-header.js +59 -0
- package/dist/cjs/modals/cloud-components/cloud-item.js +59 -0
- package/dist/cjs/modals/cloud-components/cloud-item.spec.js +92 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.js +47 -0
- package/dist/cjs/modals/cloud-components/cloud-maps.spec.js +98 -0
- package/dist/cjs/modals/cloud-components/provider-loading.js +20 -0
- package/dist/cjs/modals/cloud-components/provider-select.js +30 -0
- package/dist/cjs/modals/cloud-tile.js +202 -0
- package/dist/cjs/modals/data-table-modal.js +215 -0
- package/dist/cjs/modals/delete-data-modal.js +41 -0
- package/dist/cjs/modals/error-display.js +32 -0
- package/dist/cjs/modals/export-data-modal.js +163 -0
- package/dist/cjs/modals/export-image-modal.js +188 -0
- package/dist/cjs/modals/export-map-modal/components.js +34 -0
- package/dist/cjs/modals/export-map-modal/export-html-map.js +128 -0
- package/dist/cjs/modals/export-map-modal/export-json-map.js +81 -0
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +84 -0
- package/dist/cjs/modals/export-video-modal.js +413 -0
- package/dist/cjs/modals/export-video-modal.spec.js +686 -0
- package/dist/cjs/modals/fog-height-animation.js +97 -0
- package/dist/cjs/modals/globe-export-video-container.js +626 -0
- package/dist/cjs/modals/globe-export-video-preview.js +148 -0
- package/dist/cjs/modals/hubble-utils.js +447 -0
- package/dist/cjs/modals/hubble-utils.spec.js +397 -0
- package/dist/cjs/modals/image-modal-container.js +57 -0
- package/dist/cjs/modals/load-data-modal.js +97 -0
- package/dist/cjs/modals/load-storage-map.js +79 -0
- package/dist/cjs/modals/load-storage-map.spec.js +216 -0
- package/dist/cjs/modals/loading-dialog.js +37 -0
- package/dist/cjs/modals/modal-dialog.js +16 -0
- package/dist/cjs/modals/modal-tabs.js +74 -0
- package/dist/cjs/modals/overwrite-map-modal.js +83 -0
- package/dist/cjs/modals/save-map-modal.js +179 -0
- package/dist/cjs/modals/save-map-modal.spec.js +195 -0
- package/dist/cjs/modals/share-map-modal.js +168 -0
- package/dist/cjs/modals/share-map-modal.spec.js +173 -0
- package/dist/cjs/modals/status-panel.js +65 -0
- package/dist/cjs/modals/storage-map-viewer.js +98 -0
- package/dist/cjs/modals/swipe-composite-utils.js +118 -0
- package/dist/cjs/modals/swipe-export-settings.js +372 -0
- package/dist/cjs/modals/swipe-export-video-container.js +653 -0
- package/dist/cjs/modals/swipe-export-video-preview.js +391 -0
- package/dist/cjs/modals/tilesets-modals/common.js +6 -0
- package/dist/cjs/modals/tilesets-modals/load-data-footer.js +55 -0
- package/dist/cjs/modals/tilesets-modals/load-tileset.js +168 -0
- package/dist/cjs/modals/tilesets-modals/tileset-bitmap-form.js +283 -0
- package/dist/cjs/modals/tilesets-modals/tileset-icon.js +39 -0
- package/dist/cjs/modals/tilesets-modals/tileset-raster-form.js +287 -0
- package/dist/cjs/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
- package/dist/cjs/modals/tilesets-modals/tileset-vector-form.js +261 -0
- package/dist/cjs/modals/tilesets-modals/tileset-wms-form.js +206 -0
- package/dist/cjs/notification-panel/notification-item.js +119 -0
- package/dist/cjs/notification-panel.js +39 -0
- package/dist/cjs/plot-container.js +311 -0
- package/dist/cjs/side-panel/add-by-dataset-button.js +128 -0
- package/dist/cjs/side-panel/cloud-storage-dropdown.js +40 -0
- package/dist/cjs/side-panel/common/dataset-info.js +34 -0
- package/dist/cjs/side-panel/common/dataset-tag.js +62 -0
- package/dist/cjs/side-panel/common/dataset-title.js +143 -0
- package/dist/cjs/side-panel/common/source-data-catalog.js +49 -0
- package/dist/cjs/side-panel/common/source-data-selector-content.js +64 -0
- package/dist/cjs/side-panel/common/source-data-selector.js +41 -0
- package/dist/cjs/side-panel/common/source-selector.js +56 -0
- package/dist/cjs/side-panel/common/types.js +6 -0
- package/dist/cjs/side-panel/custom-panel.js +39 -0
- package/dist/cjs/side-panel/filter-manager.js +202 -0
- package/dist/cjs/side-panel/filter-panel/add-filter-button.js +27 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel-header.js +67 -0
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +92 -0
- package/dist/cjs/side-panel/interaction-manager.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/brush-config.js +41 -0
- package/dist/cjs/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/cjs/side-panel/interaction-panel/interaction-panel.js +121 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +164 -0
- package/dist/cjs/side-panel/interaction-panel/tooltip-config.js +149 -0
- package/dist/cjs/side-panel/layer-manager.js +224 -0
- package/dist/cjs/side-panel/layer-panel/add-layer-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/aggr-scale-selector.js +37 -0
- package/dist/cjs/side-panel/layer-panel/channel-by-value-selector.js +71 -0
- package/dist/cjs/side-panel/layer-panel/color-breaks-panel.js +193 -0
- package/dist/cjs/side-panel/layer-panel/color-palette-preset.js +45 -0
- package/dist/cjs/side-panel/layer-panel/color-palette.js +74 -0
- package/dist/cjs/side-panel/layer-panel/color-range-selector.js +242 -0
- package/dist/cjs/side-panel/layer-panel/color-scale-selector.js +295 -0
- package/dist/cjs/side-panel/layer-panel/color-selector.js +186 -0
- package/dist/cjs/side-panel/layer-panel/column-selector.js +59 -0
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +787 -0
- package/dist/cjs/side-panel/layer-panel/custom-picker.js +83 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-group.js +68 -0
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +101 -0
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +74 -0
- package/dist/cjs/side-panel/layer-panel/dimension-scale-selector.js +91 -0
- package/dist/cjs/side-panel/layer-panel/how-to-button.js +27 -0
- package/dist/cjs/side-panel/layer-panel/layer-color-selector.js +105 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-config.js +85 -0
- package/dist/cjs/side-panel/layer-panel/layer-column-mode-config.js +192 -0
- package/dist/cjs/side-panel/layer-panel/layer-config-group.js +143 -0
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +1073 -0
- package/dist/cjs/side-panel/layer-panel/layer-error-message.js +29 -0
- package/dist/cjs/side-panel/layer-panel/layer-group-header.js +178 -0
- package/dist/cjs/side-panel/layer-panel/layer-list.js +330 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel-header.js +311 -0
- package/dist/cjs/side-panel/layer-panel/layer-panel.js +171 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-dropdown-list.js +77 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-list-item.js +71 -0
- package/dist/cjs/side-panel/layer-panel/layer-type-selector.js +57 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-colormap-list-item.js +60 -0
- package/dist/cjs/side-panel/layer-panel/raster-tile-layer-configurator.js +457 -0
- package/dist/cjs/side-panel/layer-panel/scenegraph-model-selector.js +122 -0
- package/dist/cjs/side-panel/layer-panel/single-color-palette.js +85 -0
- package/dist/cjs/side-panel/layer-panel/text-label-panel.js +173 -0
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +93 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-by-field-selector.js +60 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-slider.js +167 -0
- package/dist/cjs/side-panel/layer-panel/vis-config-switch.js +55 -0
- package/dist/cjs/side-panel/map-manager.js +108 -0
- package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +269 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-color-picker.js +76 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-group-item.js +94 -0
- package/dist/cjs/side-panel/map-style-panel/map-layer-selector.js +74 -0
- package/dist/cjs/side-panel/map-style-panel/map-style-selector.js +97 -0
- package/dist/cjs/side-panel/panel-header-action.js +73 -0
- package/dist/cjs/side-panel/panel-header.js +309 -0
- package/dist/cjs/side-panel/panel-tab.js +55 -0
- package/dist/cjs/side-panel/panel-title.js +40 -0
- package/dist/cjs/side-panel/panel-toggle.js +47 -0
- package/dist/cjs/side-panel/panel-view-list-toggle.js +97 -0
- package/dist/cjs/side-panel/side-bar.js +126 -0
- package/dist/cjs/side-panel.js +235 -0
- package/dist/cjs/types.js +6 -0
- package/dist/esm/annotations/annotation-node.js +138 -0
- package/dist/esm/annotations/annotation-overlay.js +161 -0
- package/dist/esm/annotations/annotation-panel.js +355 -0
- package/dist/esm/annotations/annotation-text.js +142 -0
- package/dist/esm/annotations/annotation-utils.js +185 -0
- package/dist/esm/annotations/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/clickable-link-plugin.js +64 -0
- package/dist/esm/annotations/lexical-editor/floating-link-editor.js +186 -0
- package/dist/esm/annotations/lexical-editor/index.js +9 -0
- package/dist/esm/annotations/lexical-editor/lexical-constants.js +16 -0
- package/dist/esm/annotations/lexical-editor/lexical-nodes.js +7 -0
- package/dist/esm/annotations/lexical-editor/lexical-rich-text-editor.js +114 -0
- package/dist/esm/annotations/lexical-editor/lexical-theme.js +19 -0
- package/dist/esm/annotations/lexical-editor/lexical-toolbar.js +285 -0
- package/dist/esm/annotations/lexical-editor/lexical-utils.js +37 -0
- package/dist/esm/annotations/lexical-editor/use-lexical-toolbar.js +248 -0
- package/dist/esm/bottom-widget.js +176 -0
- package/dist/esm/common/action-panel.js +126 -0
- package/dist/esm/common/animation-control/animation-control.js +95 -0
- package/dist/esm/common/animation-control/animation-controller.js +266 -0
- package/dist/esm/common/animation-control/animation-speed-slider.js +56 -0
- package/dist/esm/common/animation-control/animation-window-control.js +50 -0
- package/dist/esm/common/animation-control/export-video-control.js +36 -0
- package/dist/esm/common/animation-control/floating-time-display.js +124 -0
- package/dist/esm/common/animation-control/play-control.js +43 -0
- package/dist/esm/common/animation-control/playback-controls.js +157 -0
- package/dist/esm/common/animation-control/reset-control.js +34 -0
- package/dist/esm/common/animation-control/speed-control.js +46 -0
- package/dist/esm/common/animation-control/window-action-control.js +48 -0
- package/dist/esm/common/checkbox.js +94 -0
- package/dist/esm/common/color-legend.js +261 -0
- package/dist/esm/common/column-stats-chart.js +305 -0
- package/dist/esm/common/data-table/button.js +33 -0
- package/dist/esm/common/data-table/canvas.js +22 -0
- package/dist/esm/common/data-table/cell-size.js +177 -0
- package/dist/esm/common/data-table/display-format.js +118 -0
- package/dist/esm/common/data-table/grid.js +100 -0
- package/dist/esm/common/data-table/header-cell.js +141 -0
- package/dist/esm/common/data-table/index.js +463 -0
- package/dist/esm/common/data-table/option-dropdown.js +152 -0
- package/dist/esm/common/dataset-label.js +22 -0
- package/dist/esm/common/dnd-layer-items.js +16 -0
- package/dist/esm/common/error-boundary.js +55 -0
- package/dist/esm/common/field-selector.js +164 -0
- package/dist/esm/common/field-token.js +38 -0
- package/dist/esm/common/file-uploader/file-drop.js +170 -0
- package/dist/esm/common/file-uploader/file-upload-progress.js +77 -0
- package/dist/esm/common/file-uploader/file-upload.js +234 -0
- package/dist/esm/common/file-uploader/upload-button.js +51 -0
- package/dist/esm/common/flex-container.js +10 -0
- package/dist/esm/common/histogram-plot.js +275 -0
- package/dist/esm/common/icon-button.js +20 -0
- package/dist/esm/common/icons/3d-models/airplane.js +97 -0
- package/dist/esm/common/icons/3d-models/bicycle.js +419 -0
- package/dist/esm/common/icons/3d-models/boeing.js +112 -0
- package/dist/esm/common/icons/3d-models/car.js +103 -0
- package/dist/esm/common/icons/3d-models/cargoship.js +239 -0
- package/dist/esm/common/icons/3d-models/evtol.js +127 -0
- package/dist/esm/common/icons/3d-models/glider.js +55 -0
- package/dist/esm/common/icons/3d-models/helicopter.js +103 -0
- package/dist/esm/common/icons/3d-models/scooter.js +152 -0
- package/dist/esm/common/icons/3d-models/semitruck.js +170 -0
- package/dist/esm/common/icons/3d-models/truck.js +115 -0
- package/dist/esm/common/icons/add.js +34 -0
- package/dist/esm/common/icons/anchor_window.js +36 -0
- package/dist/esm/common/icons/annotation-text.js +49 -0
- package/dist/esm/common/icons/arrow-down-alt.js +34 -0
- package/dist/esm/common/icons/arrow-down-full.js +43 -0
- package/dist/esm/common/icons/arrow-down-small.js +47 -0
- package/dist/esm/common/icons/arrow-down-solid.js +34 -0
- package/dist/esm/common/icons/arrow-down.js +44 -0
- package/dist/esm/common/icons/arrow-left.js +37 -0
- package/dist/esm/common/icons/arrow-right.js +34 -0
- package/dist/esm/common/icons/arrow-up-alt.js +35 -0
- package/dist/esm/common/icons/arrow-up-solid.js +34 -0
- package/dist/esm/common/icons/arrow-up.js +34 -0
- package/dist/esm/common/icons/base-map.js +49 -0
- package/dist/esm/common/icons/base.js +72 -0
- package/dist/esm/common/icons/bug.js +64 -0
- package/dist/esm/common/icons/calendar.js +42 -0
- package/dist/esm/common/icons/cancel.js +34 -0
- package/dist/esm/common/icons/checkmark.js +40 -0
- package/dist/esm/common/icons/clipboard.js +35 -0
- package/dist/esm/common/icons/clock.js +36 -0
- package/dist/esm/common/icons/close.js +40 -0
- package/dist/esm/common/icons/cloud.js +44 -0
- package/dist/esm/common/icons/code-alt.js +37 -0
- package/dist/esm/common/icons/copy.js +45 -0
- package/dist/esm/common/icons/crosshairs.js +37 -0
- package/dist/esm/common/icons/cube-3d.js +48 -0
- package/dist/esm/common/icons/cursor-click.js +38 -0
- package/dist/esm/common/icons/cursor-point.js +44 -0
- package/dist/esm/common/icons/data-table.js +70 -0
- package/dist/esm/common/icons/db.js +52 -0
- package/dist/esm/common/icons/delete.js +46 -0
- package/dist/esm/common/icons/docs.js +50 -0
- package/dist/esm/common/icons/docs2.js +44 -0
- package/dist/esm/common/icons/drag-n-drop.js +36 -0
- package/dist/esm/common/icons/draggable-dots.js +78 -0
- package/dist/esm/common/icons/draw-polygon.js +54 -0
- package/dist/esm/common/icons/edit.js +42 -0
- package/dist/esm/common/icons/effects/brightness-contrast.js +63 -0
- package/dist/esm/common/icons/effects/color-halftone.js +102 -0
- package/dist/esm/common/icons/effects/distance-fog.js +72 -0
- package/dist/esm/common/icons/effects/dot-screen.js +97 -0
- package/dist/esm/common/icons/effects/edge-work.js +56 -0
- package/dist/esm/common/icons/effects/hexagonal-pixelate.js +123 -0
- package/dist/esm/common/icons/effects/hue-saturation.js +54 -0
- package/dist/esm/common/icons/effects/ink.js +53 -0
- package/dist/esm/common/icons/effects/light-and-shadow.js +42 -0
- package/dist/esm/common/icons/effects/magic-wand.js +54 -0
- package/dist/esm/common/icons/effects/magnify.js +61 -0
- package/dist/esm/common/icons/effects/noise.js +107 -0
- package/dist/esm/common/icons/effects/sepia.js +54 -0
- package/dist/esm/common/icons/effects/surface-fog.js +79 -0
- package/dist/esm/common/icons/effects/tilt-shift.js +63 -0
- package/dist/esm/common/icons/effects/triangle-blur.js +58 -0
- package/dist/esm/common/icons/effects/vibrance.js +54 -0
- package/dist/esm/common/icons/effects/vignette.js +47 -0
- package/dist/esm/common/icons/effects/zoom-blur.js +82 -0
- package/dist/esm/common/icons/email.js +38 -0
- package/dist/esm/common/icons/expand.js +36 -0
- package/dist/esm/common/icons/eye-seen.js +43 -0
- package/dist/esm/common/icons/eye-unseen.js +41 -0
- package/dist/esm/common/icons/file-type.js +30 -0
- package/dist/esm/common/icons/file.js +34 -0
- package/dist/esm/common/icons/files.js +37 -0
- package/dist/esm/common/icons/filter-funnel.js +44 -0
- package/dist/esm/common/icons/folder.js +44 -0
- package/dist/esm/common/icons/free-window.js +39 -0
- package/dist/esm/common/icons/gear.js +36 -0
- package/dist/esm/common/icons/globe.js +47 -0
- package/dist/esm/common/icons/hash.js +34 -0
- package/dist/esm/common/icons/help.js +44 -0
- package/dist/esm/common/icons/histogram.js +37 -0
- package/dist/esm/common/icons/horizontal-resize-handle.js +52 -0
- package/dist/esm/common/icons/index.js +124 -0
- package/dist/esm/common/icons/info.js +47 -0
- package/dist/esm/common/icons/layers.js +48 -0
- package/dist/esm/common/icons/left-arrow.js +37 -0
- package/dist/esm/common/icons/legend.js +62 -0
- package/dist/esm/common/icons/line-chart.js +34 -0
- package/dist/esm/common/icons/location-marker.js +52 -0
- package/dist/esm/common/icons/login.js +37 -0
- package/dist/esm/common/icons/logout.js +36 -0
- package/dist/esm/common/icons/map-icon.js +40 -0
- package/dist/esm/common/icons/map-pin.js +50 -0
- package/dist/esm/common/icons/messages.js +48 -0
- package/dist/esm/common/icons/minus.js +34 -0
- package/dist/esm/common/icons/moon.js +52 -0
- package/dist/esm/common/icons/order-by-dataset.js +41 -0
- package/dist/esm/common/icons/order-by-list.js +33 -0
- package/dist/esm/common/icons/pause.js +54 -0
- package/dist/esm/common/icons/picture.js +55 -0
- package/dist/esm/common/icons/pin.js +46 -0
- package/dist/esm/common/icons/play.js +44 -0
- package/dist/esm/common/icons/pointer-click.js +52 -0
- package/dist/esm/common/icons/polygon.js +56 -0
- package/dist/esm/common/icons/rectangle.js +57 -0
- package/dist/esm/common/icons/reduce.js +37 -0
- package/dist/esm/common/icons/reset.js +50 -0
- package/dist/esm/common/icons/save.js +51 -0
- package/dist/esm/common/icons/save2.js +48 -0
- package/dist/esm/common/icons/search.js +36 -0
- package/dist/esm/common/icons/settings.js +54 -0
- package/dist/esm/common/icons/share.js +64 -0
- package/dist/esm/common/icons/speed.js +46 -0
- package/dist/esm/common/icons/split.js +62 -0
- package/dist/esm/common/icons/square-select.js +36 -0
- package/dist/esm/common/icons/sun.js +68 -0
- package/dist/esm/common/icons/sunrise.js +64 -0
- package/dist/esm/common/icons/sunset.js +64 -0
- package/dist/esm/common/icons/timeline-marker.js +49 -0
- package/dist/esm/common/icons/trash.js +48 -0
- package/dist/esm/common/icons/vert-dots.js +72 -0
- package/dist/esm/common/icons/vert-three-dots.js +47 -0
- package/dist/esm/common/icons/warning-sign.js +54 -0
- package/dist/esm/common/icons/warning.js +48 -0
- package/dist/esm/common/icons/zoom-in.js +41 -0
- package/dist/esm/common/icons/zoom-out.js +41 -0
- package/dist/esm/common/image-preview.js +59 -0
- package/dist/esm/common/index.js +8 -0
- package/dist/esm/common/info-helper.js +56 -0
- package/dist/esm/common/item-selector/accessor.js +31 -0
- package/dist/esm/common/item-selector/chickleted-input.js +150 -0
- package/dist/esm/common/item-selector/dropdown-list.js +251 -0
- package/dist/esm/common/item-selector/dropdown-select.js +79 -0
- package/dist/esm/common/item-selector/item-selector.js +247 -0
- package/dist/esm/common/item-selector/typeahead.js +428 -0
- package/dist/esm/common/layout-splitter.js +224 -0
- package/dist/esm/common/line-chart.js +279 -0
- package/dist/esm/common/link-renderer.js +13 -0
- package/dist/esm/common/loading-spinner.js +43 -0
- package/dist/esm/common/logo.js +63 -0
- package/dist/esm/common/map-layer-selector.js +33 -0
- package/dist/esm/common/modal.js +163 -0
- package/dist/esm/common/portaled.js +280 -0
- package/dist/esm/common/progress-bar.js +43 -0
- package/dist/esm/common/radius-legend.js +124 -0
- package/dist/esm/common/range-brush.js +258 -0
- package/dist/esm/common/range-plot.js +210 -0
- package/dist/esm/common/range-slider-timeline-panel.js +35 -0
- package/dist/esm/common/range-slider-timeline.js +105 -0
- package/dist/esm/common/range-slider.js +364 -0
- package/dist/esm/common/slider/mouse-event.js +98 -0
- package/dist/esm/common/slider/slider-bar-handle.js +84 -0
- package/dist/esm/common/slider/slider-handle.js +130 -0
- package/dist/esm/common/slider/slider.js +245 -0
- package/dist/esm/common/styled-components.js +441 -0
- package/dist/esm/common/switch.js +16 -0
- package/dist/esm/common/sync-timeline-control.js +54 -0
- package/dist/esm/common/time-range-slider-time-title.js +57 -0
- package/dist/esm/common/time-range-slider.js +135 -0
- package/dist/esm/common/time-slider-marker.js +105 -0
- package/dist/esm/common/timeline-helpers.js +48 -0
- package/dist/esm/common/timeline-slider.js +133 -0
- package/dist/esm/common/tippy-tooltip.js +127 -0
- package/dist/esm/common/toolbar-item.js +55 -0
- package/dist/esm/common/toolbar.js +22 -0
- package/dist/esm/common/vertical-toolbar.js +11 -0
- package/dist/esm/connect/keplergl-connect.js +38 -0
- package/dist/esm/connect/with-local-selector.js +78 -0
- package/dist/esm/container.js +171 -0
- package/dist/esm/context.js +35 -0
- package/dist/esm/dnd-context.js +167 -0
- package/dist/esm/editor/editor.js +193 -0
- package/dist/esm/editor/feature-action-panel.js +139 -0
- package/dist/esm/effects/compact-color-picker.js +103 -0
- package/dist/esm/effects/effect-configurator.js +465 -0
- package/dist/esm/effects/effect-list.js +122 -0
- package/dist/esm/effects/effect-manager.js +119 -0
- package/dist/esm/effects/effect-panel-header.js +188 -0
- package/dist/esm/effects/effect-panel.js +79 -0
- package/dist/esm/effects/effect-time-configurator.js +306 -0
- package/dist/esm/effects/effect-time-selector.js +145 -0
- package/dist/esm/effects/effect-time-slider.js +190 -0
- package/dist/esm/effects/effect-type-dropdown-list.js +57 -0
- package/dist/esm/effects/effect-type-list-item.js +89 -0
- package/dist/esm/effects/effect-type-selector.js +69 -0
- package/dist/esm/effects/side-panel-title.js +32 -0
- package/dist/esm/effects/surface-fog-section.js +254 -0
- package/dist/esm/effects/timezone-selector.js +50 -0
- package/dist/esm/filter-animation-controller.js +67 -0
- package/dist/esm/filters/components.js +9 -0
- package/dist/esm/filters/filter-panels/filter-panel-with-field-select.js +68 -0
- package/dist/esm/filters/filter-panels/filter-synced-dataset-panel.js +253 -0
- package/dist/esm/filters/filter-panels/multi-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/new-filter-panel.js +56 -0
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +58 -0
- package/dist/esm/filters/filter-panels/range-filter-panel.js +44 -0
- package/dist/esm/filters/filter-panels/single-select-filter-panel.js +39 -0
- package/dist/esm/filters/filter-panels/time-range-filter-panel.js +120 -0
- package/dist/esm/filters/filter-panels/time-synced-field-selector.js +23 -0
- package/dist/esm/filters/filter-panels/types.js +3 -0
- package/dist/esm/filters/index.js +12 -0
- package/dist/esm/filters/multi-select-filter.js +24 -0
- package/dist/esm/filters/polygon-filter.js +67 -0
- package/dist/esm/filters/range-filter.js +28 -0
- package/dist/esm/filters/single-select-filter.js +33 -0
- package/dist/esm/filters/time-range-filter.js +61 -0
- package/dist/esm/filters/time-widget-settings.js +304 -0
- package/dist/esm/filters/time-widget-top.js +73 -0
- package/dist/esm/filters/time-widget.js +369 -0
- package/dist/esm/filters/types.js +3 -0
- package/dist/esm/geocoder/geocoder.js +318 -0
- package/dist/esm/geocoder-panel.js +164 -0
- package/dist/esm/hooks/use-cloud-list-provider.js +37 -0
- package/dist/esm/hooks/use-dnd-effects.js +62 -0
- package/dist/esm/hooks/use-dnd-layers.js +136 -0
- package/dist/esm/hooks/use-feature-flags.js +11 -0
- package/dist/esm/hooks/use-fetch-raster-tile-metadata.js +113 -0
- package/dist/esm/hooks/use-fetch-vector-tile-metadata.js +128 -0
- package/dist/esm/hooks/use-legend-position.js +170 -0
- package/dist/esm/hooks/use-on-click-outside.js +29 -0
- package/dist/esm/index.js +278 -0
- package/dist/esm/injector.js +141 -0
- package/dist/esm/kepler-gl.js +651 -0
- package/dist/esm/layer-animation-controller.js +44 -0
- package/dist/esm/loading-indicator.js +69 -0
- package/dist/esm/map/annotations/annotation-control.js +46 -0
- package/dist/esm/map/attribution.js +382 -0
- package/dist/esm/map/coordinate-info.js +36 -0
- package/dist/esm/map/effects/effect-control.js +42 -0
- package/dist/esm/map/layer-hover-info.js +312 -0
- package/dist/esm/map/lazy-tippy.js +53 -0
- package/dist/esm/map/locale-panel.js +67 -0
- package/dist/esm/map/map-control-panel.js +133 -0
- package/dist/esm/map/map-control-toolbar.js +13 -0
- package/dist/esm/map/map-control-tooltip.js +27 -0
- package/dist/esm/map/map-control.js +77 -0
- package/dist/esm/map/map-draw-panel.js +91 -0
- package/dist/esm/map/map-legend-panel.js +282 -0
- package/dist/esm/map/map-legend.js +496 -0
- package/dist/esm/map/map-navigation-control.js +152 -0
- package/dist/esm/map/map-popover-content.js +21 -0
- package/dist/esm/map/map-popover.js +181 -0
- package/dist/esm/map/map-scale.js +155 -0
- package/dist/esm/map/split-map-button.js +167 -0
- package/dist/esm/map/toggle-3d-button.js +113 -0
- package/dist/esm/map-container.js +1292 -0
- package/dist/esm/map-view-state-context.js +89 -0
- package/dist/esm/maps-layout.js +95 -0
- package/dist/esm/modal-container.js +453 -0
- package/dist/esm/modals/add-map-style-modal.js +256 -0
- package/dist/esm/modals/cloud-components/cloud-header.js +52 -0
- package/dist/esm/modals/cloud-components/cloud-item.js +54 -0
- package/dist/esm/modals/cloud-components/cloud-item.spec.js +91 -0
- package/dist/esm/modals/cloud-components/cloud-maps.js +42 -0
- package/dist/esm/modals/cloud-components/cloud-maps.spec.js +94 -0
- package/dist/esm/modals/cloud-components/provider-loading.js +15 -0
- package/dist/esm/modals/cloud-components/provider-select.js +25 -0
- package/dist/esm/modals/cloud-tile.js +195 -0
- package/dist/esm/modals/data-table-modal.js +208 -0
- package/dist/esm/modals/delete-data-modal.js +36 -0
- package/dist/esm/modals/error-display.js +23 -0
- package/dist/esm/modals/export-data-modal.js +155 -0
- package/dist/esm/modals/export-image-modal.js +181 -0
- package/dist/esm/modals/export-map-modal/components.js +29 -0
- package/dist/esm/modals/export-map-modal/export-html-map.js +123 -0
- package/dist/esm/modals/export-map-modal/export-json-map.js +74 -0
- package/dist/esm/modals/export-map-modal/export-map-modal.js +77 -0
- package/dist/esm/modals/export-video-modal.js +400 -0
- package/dist/esm/modals/export-video-modal.spec.js +685 -0
- package/dist/esm/modals/fog-height-animation.js +90 -0
- package/dist/esm/modals/globe-export-video-container.js +620 -0
- package/dist/esm/modals/globe-export-video-preview.js +141 -0
- package/dist/esm/modals/hubble-utils.js +429 -0
- package/dist/esm/modals/hubble-utils.spec.js +396 -0
- package/dist/esm/modals/image-modal-container.js +48 -0
- package/dist/esm/modals/load-data-modal.js +89 -0
- package/dist/esm/modals/load-storage-map.js +70 -0
- package/dist/esm/modals/load-storage-map.spec.js +212 -0
- package/dist/esm/modals/loading-dialog.js +32 -0
- package/dist/esm/modals/modal-dialog.js +9 -0
- package/dist/esm/modals/modal-tabs.js +67 -0
- package/dist/esm/modals/overwrite-map-modal.js +76 -0
- package/dist/esm/modals/save-map-modal.js +172 -0
- package/dist/esm/modals/save-map-modal.spec.js +196 -0
- package/dist/esm/modals/share-map-modal.js +160 -0
- package/dist/esm/modals/share-map-modal.spec.js +172 -0
- package/dist/esm/modals/status-panel.js +60 -0
- package/dist/esm/modals/storage-map-viewer.js +93 -0
- package/dist/esm/modals/swipe-composite-utils.js +111 -0
- package/dist/esm/modals/swipe-export-settings.js +366 -0
- package/dist/esm/modals/swipe-export-video-container.js +646 -0
- package/dist/esm/modals/swipe-export-video-preview.js +384 -0
- package/dist/esm/modals/tilesets-modals/common.js +3 -0
- package/dist/esm/modals/tilesets-modals/load-data-footer.js +48 -0
- package/dist/esm/modals/tilesets-modals/load-tileset.js +161 -0
- package/dist/esm/modals/tilesets-modals/tileset-bitmap-form.js +275 -0
- package/dist/esm/modals/tilesets-modals/tileset-icon.js +34 -0
- package/dist/esm/modals/tilesets-modals/tileset-raster-form.js +279 -0
- package/dist/esm/modals/tilesets-modals/tileset-tile3d-form.js +380 -0
- package/dist/esm/modals/tilesets-modals/tileset-vector-form.js +253 -0
- package/dist/esm/modals/tilesets-modals/tileset-wms-form.js +199 -0
- package/dist/esm/notification-panel/notification-item.js +112 -0
- package/dist/esm/notification-panel.js +34 -0
- package/dist/esm/plot-container.js +304 -0
- package/dist/esm/side-panel/add-by-dataset-button.js +121 -0
- package/dist/esm/side-panel/cloud-storage-dropdown.js +33 -0
- package/dist/esm/side-panel/common/dataset-info.js +29 -0
- package/dist/esm/side-panel/common/dataset-tag.js +57 -0
- package/dist/esm/side-panel/common/dataset-title.js +136 -0
- package/dist/esm/side-panel/common/source-data-catalog.js +44 -0
- package/dist/esm/side-panel/common/source-data-selector-content.js +55 -0
- package/dist/esm/side-panel/common/source-data-selector.js +34 -0
- package/dist/esm/side-panel/common/source-selector.js +49 -0
- package/dist/esm/side-panel/common/types.js +3 -0
- package/dist/esm/side-panel/custom-panel.js +32 -0
- package/dist/esm/side-panel/filter-manager.js +195 -0
- package/dist/esm/side-panel/filter-panel/add-filter-button.js +20 -0
- package/dist/esm/side-panel/filter-panel/filter-panel-header.js +60 -0
- package/dist/esm/side-panel/filter-panel/filter-panel.js +85 -0
- package/dist/esm/side-panel/interaction-manager.js +38 -0
- package/dist/esm/side-panel/interaction-panel/brush-config.js +36 -0
- package/dist/esm/side-panel/interaction-panel/geocoder-config.js +40 -0
- package/dist/esm/side-panel/interaction-panel/interaction-panel.js +114 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +157 -0
- package/dist/esm/side-panel/interaction-panel/tooltip-config.js +142 -0
- package/dist/esm/side-panel/layer-manager.js +217 -0
- package/dist/esm/side-panel/layer-panel/add-layer-button.js +20 -0
- package/dist/esm/side-panel/layer-panel/aggr-scale-selector.js +29 -0
- package/dist/esm/side-panel/layer-panel/channel-by-value-selector.js +61 -0
- package/dist/esm/side-panel/layer-panel/color-breaks-panel.js +186 -0
- package/dist/esm/side-panel/layer-panel/color-palette-preset.js +40 -0
- package/dist/esm/side-panel/layer-panel/color-palette.js +67 -0
- package/dist/esm/side-panel/layer-panel/color-range-selector.js +236 -0
- package/dist/esm/side-panel/layer-panel/color-scale-selector.js +288 -0
- package/dist/esm/side-panel/layer-panel/color-selector.js +179 -0
- package/dist/esm/side-panel/layer-panel/column-selector.js +52 -0
- package/dist/esm/side-panel/layer-panel/custom-palette.js +783 -0
- package/dist/esm/side-panel/layer-panel/custom-picker.js +77 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-group.js +59 -0
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +94 -0
- package/dist/esm/side-panel/layer-panel/dataset-section.js +68 -0
- package/dist/esm/side-panel/layer-panel/dimension-scale-selector.js +82 -0
- package/dist/esm/side-panel/layer-panel/how-to-button.js +22 -0
- package/dist/esm/side-panel/layer-panel/layer-color-selector.js +94 -0
- package/dist/esm/side-panel/layer-panel/layer-column-config.js +76 -0
- package/dist/esm/side-panel/layer-panel/layer-column-mode-config.js +184 -0
- package/dist/esm/side-panel/layer-panel/layer-config-group.js +134 -0
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +1064 -0
- package/dist/esm/side-panel/layer-panel/layer-error-message.js +24 -0
- package/dist/esm/side-panel/layer-panel/layer-group-header.js +171 -0
- package/dist/esm/side-panel/layer-panel/layer-list.js +323 -0
- package/dist/esm/side-panel/layer-panel/layer-panel-header.js +302 -0
- package/dist/esm/side-panel/layer-panel/layer-panel.js +164 -0
- package/dist/esm/side-panel/layer-panel/layer-type-dropdown-list.js +69 -0
- package/dist/esm/side-panel/layer-panel/layer-type-list-item.js +63 -0
- package/dist/esm/side-panel/layer-panel/layer-type-selector.js +50 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-colormap-list-item.js +55 -0
- package/dist/esm/side-panel/layer-panel/raster-tile-layer-configurator.js +450 -0
- package/dist/esm/side-panel/layer-panel/scenegraph-model-selector.js +115 -0
- package/dist/esm/side-panel/layer-panel/single-color-palette.js +78 -0
- package/dist/esm/side-panel/layer-panel/text-label-panel.js +166 -0
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +86 -0
- package/dist/esm/side-panel/layer-panel/vis-config-by-field-selector.js +53 -0
- package/dist/esm/side-panel/layer-panel/vis-config-slider.js +160 -0
- package/dist/esm/side-panel/layer-panel/vis-config-switch.js +50 -0
- package/dist/esm/side-panel/map-manager.js +99 -0
- package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +262 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-color-picker.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-group-item.js +87 -0
- package/dist/esm/side-panel/map-style-panel/map-layer-selector.js +69 -0
- package/dist/esm/side-panel/map-style-panel/map-style-selector.js +92 -0
- package/dist/esm/side-panel/panel-header-action.js +68 -0
- package/dist/esm/side-panel/panel-header.js +303 -0
- package/dist/esm/side-panel/panel-tab.js +49 -0
- package/dist/esm/side-panel/panel-title.js +35 -0
- package/dist/esm/side-panel/panel-toggle.js +40 -0
- package/dist/esm/side-panel/panel-view-list-toggle.js +90 -0
- package/dist/esm/side-panel/side-bar.js +119 -0
- package/dist/esm/side-panel.js +227 -0
- package/dist/esm/types.js +3 -0
- package/dist/index.d.ts +1 -1
- package/dist/modals/hubble-utils.d.ts +16 -0
- package/package.json +35 -20
- package/dist/annotations/annotation-node.js +0 -145
- package/dist/annotations/annotation-overlay.js +0 -168
- package/dist/annotations/annotation-panel.js +0 -361
- package/dist/annotations/annotation-text.js +0 -149
- package/dist/annotations/annotation-utils.js +0 -197
- package/dist/annotations/index.js +0 -53
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +0 -71
- package/dist/annotations/lexical-editor/floating-link-editor.js +0 -193
- package/dist/annotations/lexical-editor/index.js +0 -78
- package/dist/annotations/lexical-editor/lexical-constants.js +0 -22
- package/dist/annotations/lexical-editor/lexical-nodes.js +0 -13
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +0 -121
- package/dist/annotations/lexical-editor/lexical-theme.js +0 -25
- package/dist/annotations/lexical-editor/lexical-toolbar.js +0 -292
- package/dist/annotations/lexical-editor/lexical-utils.js +0 -45
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +0 -253
- package/dist/bottom-widget.js +0 -183
- package/dist/common/action-panel.js +0 -133
- package/dist/common/animation-control/animation-control.js +0 -100
- package/dist/common/animation-control/animation-controller.js +0 -271
- package/dist/common/animation-control/animation-speed-slider.js +0 -63
- package/dist/common/animation-control/animation-window-control.js +0 -59
- package/dist/common/animation-control/export-video-control.js +0 -43
- package/dist/common/animation-control/floating-time-display.js +0 -131
- package/dist/common/animation-control/play-control.js +0 -50
- package/dist/common/animation-control/playback-controls.js +0 -164
- package/dist/common/animation-control/reset-control.js +0 -41
- package/dist/common/animation-control/speed-control.js +0 -51
- package/dist/common/animation-control/window-action-control.js +0 -57
- package/dist/common/checkbox.js +0 -101
- package/dist/common/color-legend.js +0 -272
- package/dist/common/column-stats-chart.js +0 -312
- package/dist/common/data-table/button.js +0 -38
- package/dist/common/data-table/canvas.js +0 -26
- package/dist/common/data-table/cell-size.js +0 -183
- package/dist/common/data-table/display-format.js +0 -125
- package/dist/common/data-table/grid.js +0 -106
- package/dist/common/data-table/header-cell.js +0 -148
- package/dist/common/data-table/index.js +0 -470
- package/dist/common/data-table/option-dropdown.js +0 -159
- package/dist/common/dataset-label.js +0 -27
- package/dist/common/dnd-layer-items.js +0 -22
- package/dist/common/error-boundary.js +0 -59
- package/dist/common/field-selector.js +0 -172
- package/dist/common/field-token.js +0 -43
- package/dist/common/file-uploader/file-drop.js +0 -180
- package/dist/common/file-uploader/file-upload-progress.js +0 -84
- package/dist/common/file-uploader/file-upload.js +0 -241
- package/dist/common/file-uploader/upload-button.js +0 -58
- package/dist/common/flex-container.js +0 -15
- package/dist/common/histogram-plot.js +0 -282
- package/dist/common/icon-button.js +0 -25
- package/dist/common/icons/3d-models/airplane.js +0 -103
- package/dist/common/icons/3d-models/bicycle.js +0 -425
- package/dist/common/icons/3d-models/boeing.js +0 -118
- package/dist/common/icons/3d-models/car.js +0 -109
- package/dist/common/icons/3d-models/cargoship.js +0 -245
- package/dist/common/icons/3d-models/evtol.js +0 -133
- package/dist/common/icons/3d-models/glider.js +0 -61
- package/dist/common/icons/3d-models/helicopter.js +0 -109
- package/dist/common/icons/3d-models/scooter.js +0 -158
- package/dist/common/icons/3d-models/semitruck.js +0 -176
- package/dist/common/icons/3d-models/truck.js +0 -121
- package/dist/common/icons/add.js +0 -40
- package/dist/common/icons/anchor_window.js +0 -41
- package/dist/common/icons/annotation-text.js +0 -55
- package/dist/common/icons/arrow-down-alt.js +0 -40
- package/dist/common/icons/arrow-down-full.js +0 -49
- package/dist/common/icons/arrow-down-small.js +0 -53
- package/dist/common/icons/arrow-down-solid.js +0 -40
- package/dist/common/icons/arrow-down.js +0 -50
- package/dist/common/icons/arrow-left.js +0 -43
- package/dist/common/icons/arrow-right.js +0 -40
- package/dist/common/icons/arrow-up-alt.js +0 -41
- package/dist/common/icons/arrow-up-solid.js +0 -40
- package/dist/common/icons/arrow-up.js +0 -40
- package/dist/common/icons/base-map.js +0 -56
- package/dist/common/icons/base.js +0 -78
- package/dist/common/icons/bug.js +0 -70
- package/dist/common/icons/calendar.js +0 -48
- package/dist/common/icons/cancel.js +0 -40
- package/dist/common/icons/checkmark.js +0 -46
- package/dist/common/icons/clipboard.js +0 -41
- package/dist/common/icons/clock.js +0 -42
- package/dist/common/icons/close.js +0 -46
- package/dist/common/icons/cloud.js +0 -50
- package/dist/common/icons/code-alt.js +0 -43
- package/dist/common/icons/copy.js +0 -51
- package/dist/common/icons/crosshairs.js +0 -43
- package/dist/common/icons/cube-3d.js +0 -54
- package/dist/common/icons/cursor-click.js +0 -44
- package/dist/common/icons/cursor-point.js +0 -50
- package/dist/common/icons/data-table.js +0 -76
- package/dist/common/icons/db.js +0 -58
- package/dist/common/icons/delete.js +0 -52
- package/dist/common/icons/docs.js +0 -56
- package/dist/common/icons/docs2.js +0 -50
- package/dist/common/icons/drag-n-drop.js +0 -42
- package/dist/common/icons/draggable-dots.js +0 -84
- package/dist/common/icons/draw-polygon.js +0 -60
- package/dist/common/icons/edit.js +0 -48
- package/dist/common/icons/effects/brightness-contrast.js +0 -69
- package/dist/common/icons/effects/color-halftone.js +0 -108
- package/dist/common/icons/effects/distance-fog.js +0 -78
- package/dist/common/icons/effects/dot-screen.js +0 -103
- package/dist/common/icons/effects/edge-work.js +0 -62
- package/dist/common/icons/effects/hexagonal-pixelate.js +0 -129
- package/dist/common/icons/effects/hue-saturation.js +0 -60
- package/dist/common/icons/effects/ink.js +0 -59
- package/dist/common/icons/effects/light-and-shadow.js +0 -48
- package/dist/common/icons/effects/magic-wand.js +0 -60
- package/dist/common/icons/effects/magnify.js +0 -67
- package/dist/common/icons/effects/noise.js +0 -113
- package/dist/common/icons/effects/sepia.js +0 -60
- package/dist/common/icons/effects/surface-fog.js +0 -85
- package/dist/common/icons/effects/tilt-shift.js +0 -69
- package/dist/common/icons/effects/triangle-blur.js +0 -64
- package/dist/common/icons/effects/vibrance.js +0 -60
- package/dist/common/icons/effects/vignette.js +0 -53
- package/dist/common/icons/effects/zoom-blur.js +0 -88
- package/dist/common/icons/email.js +0 -44
- package/dist/common/icons/expand.js +0 -42
- package/dist/common/icons/eye-seen.js +0 -49
- package/dist/common/icons/eye-unseen.js +0 -47
- package/dist/common/icons/file-type.js +0 -35
- package/dist/common/icons/file.js +0 -40
- package/dist/common/icons/files.js +0 -41
- package/dist/common/icons/filter-funnel.js +0 -50
- package/dist/common/icons/folder.js +0 -50
- package/dist/common/icons/free-window.js +0 -44
- package/dist/common/icons/gear.js +0 -42
- package/dist/common/icons/globe.js +0 -53
- package/dist/common/icons/hash.js +0 -40
- package/dist/common/icons/help.js +0 -50
- package/dist/common/icons/histogram.js +0 -41
- package/dist/common/icons/horizontal-resize-handle.js +0 -58
- package/dist/common/icons/index.js +0 -824
- package/dist/common/icons/info.js +0 -53
- package/dist/common/icons/layers.js +0 -54
- package/dist/common/icons/left-arrow.js +0 -43
- package/dist/common/icons/legend.js +0 -68
- package/dist/common/icons/line-chart.js +0 -40
- package/dist/common/icons/location-marker.js +0 -58
- package/dist/common/icons/login.js +0 -43
- package/dist/common/icons/logout.js +0 -42
- package/dist/common/icons/map-icon.js +0 -47
- package/dist/common/icons/map-pin.js +0 -56
- package/dist/common/icons/messages.js +0 -54
- package/dist/common/icons/minus.js +0 -40
- package/dist/common/icons/moon.js +0 -58
- package/dist/common/icons/order-by-dataset.js +0 -46
- package/dist/common/icons/order-by-list.js +0 -38
- package/dist/common/icons/pause.js +0 -60
- package/dist/common/icons/picture.js +0 -59
- package/dist/common/icons/pin.js +0 -52
- package/dist/common/icons/play.js +0 -50
- package/dist/common/icons/pointer-click.js +0 -58
- package/dist/common/icons/polygon.js +0 -62
- package/dist/common/icons/rectangle.js +0 -63
- package/dist/common/icons/reduce.js +0 -43
- package/dist/common/icons/reset.js +0 -56
- package/dist/common/icons/save.js +0 -57
- package/dist/common/icons/save2.js +0 -54
- package/dist/common/icons/search.js +0 -42
- package/dist/common/icons/settings.js +0 -60
- package/dist/common/icons/share.js +0 -70
- package/dist/common/icons/speed.js +0 -52
- package/dist/common/icons/split.js +0 -68
- package/dist/common/icons/square-select.js +0 -42
- package/dist/common/icons/sun.js +0 -74
- package/dist/common/icons/sunrise.js +0 -70
- package/dist/common/icons/sunset.js +0 -70
- package/dist/common/icons/timeline-marker.js +0 -55
- package/dist/common/icons/trash.js +0 -54
- package/dist/common/icons/vert-dots.js +0 -78
- package/dist/common/icons/vert-three-dots.js +0 -53
- package/dist/common/icons/warning-sign.js +0 -60
- package/dist/common/icons/warning.js +0 -54
- package/dist/common/icons/zoom-in.js +0 -47
- package/dist/common/icons/zoom-out.js +0 -47
- package/dist/common/image-preview.js +0 -64
- package/dist/common/index.js +0 -282
- package/dist/common/info-helper.js +0 -61
- package/dist/common/item-selector/accessor.js +0 -37
- package/dist/common/item-selector/chickleted-input.js +0 -157
- package/dist/common/item-selector/dropdown-list.js +0 -257
- package/dist/common/item-selector/dropdown-select.js +0 -84
- package/dist/common/item-selector/item-selector.js +0 -254
- package/dist/common/item-selector/typeahead.js +0 -435
- package/dist/common/layout-splitter.js +0 -230
- package/dist/common/line-chart.js +0 -286
- package/dist/common/link-renderer.js +0 -20
- package/dist/common/loading-spinner.js +0 -50
- package/dist/common/logo.js +0 -68
- package/dist/common/map-layer-selector.js +0 -38
- package/dist/common/modal.js +0 -170
- package/dist/common/portaled.js +0 -287
- package/dist/common/progress-bar.js +0 -47
- package/dist/common/radius-legend.js +0 -131
- package/dist/common/range-brush.js +0 -265
- package/dist/common/range-plot.js +0 -217
- package/dist/common/range-slider-timeline-panel.js +0 -42
- package/dist/common/range-slider-timeline.js +0 -112
- package/dist/common/range-slider.js +0 -371
- package/dist/common/slider/mouse-event.js +0 -104
- package/dist/common/slider/slider-bar-handle.js +0 -90
- package/dist/common/slider/slider-handle.js +0 -136
- package/dist/common/slider/slider.js +0 -251
- package/dist/common/styled-components.js +0 -447
- package/dist/common/switch.js +0 -21
- package/dist/common/sync-timeline-control.js +0 -61
- package/dist/common/time-range-slider-time-title.js +0 -62
- package/dist/common/time-range-slider.js +0 -143
- package/dist/common/time-slider-marker.js +0 -115
- package/dist/common/timeline-helpers.js +0 -57
- package/dist/common/timeline-slider.js +0 -140
- package/dist/common/tippy-tooltip.js +0 -134
- package/dist/common/toolbar-item.js +0 -60
- package/dist/common/toolbar.js +0 -27
- package/dist/common/vertical-toolbar.js +0 -16
- package/dist/connect/keplergl-connect.js +0 -44
- package/dist/connect/with-local-selector.js +0 -85
- package/dist/container.js +0 -180
- package/dist/context.js +0 -43
- package/dist/dnd-context.js +0 -174
- package/dist/editor/editor.js +0 -200
- package/dist/editor/feature-action-panel.js +0 -147
- package/dist/effects/compact-color-picker.js +0 -110
- package/dist/effects/effect-configurator.js +0 -473
- package/dist/effects/effect-list.js +0 -129
- package/dist/effects/effect-manager.js +0 -126
- package/dist/effects/effect-panel-header.js +0 -196
- package/dist/effects/effect-panel.js +0 -86
- package/dist/effects/effect-time-configurator.js +0 -313
- package/dist/effects/effect-time-selector.js +0 -152
- package/dist/effects/effect-time-slider.js +0 -198
- package/dist/effects/effect-type-dropdown-list.js +0 -65
- package/dist/effects/effect-type-list-item.js +0 -98
- package/dist/effects/effect-type-selector.js +0 -76
- package/dist/effects/side-panel-title.js +0 -37
- package/dist/effects/surface-fog-section.js +0 -262
- package/dist/effects/timezone-selector.js +0 -57
- package/dist/filter-animation-controller.js +0 -76
- package/dist/filters/components.js +0 -14
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +0 -77
- package/dist/filters/filter-panels/filter-synced-dataset-panel.js +0 -260
- package/dist/filters/filter-panels/multi-select-filter-panel.js +0 -48
- package/dist/filters/filter-panels/new-filter-panel.js +0 -66
- package/dist/filters/filter-panels/polygon-filter-panel.js +0 -67
- package/dist/filters/filter-panels/range-filter-panel.js +0 -53
- package/dist/filters/filter-panels/single-select-filter-panel.js +0 -48
- package/dist/filters/filter-panels/time-range-filter-panel.js +0 -129
- package/dist/filters/filter-panels/time-synced-field-selector.js +0 -28
- package/dist/filters/filter-panels/types.js +0 -6
- package/dist/filters/index.js +0 -63
- package/dist/filters/multi-select-filter.js +0 -31
- package/dist/filters/polygon-filter.js +0 -76
- package/dist/filters/range-filter.js +0 -35
- package/dist/filters/single-select-filter.js +0 -40
- package/dist/filters/time-range-filter.js +0 -69
- package/dist/filters/time-widget-settings.js +0 -311
- package/dist/filters/time-widget-top.js +0 -80
- package/dist/filters/time-widget.js +0 -376
- package/dist/filters/types.js +0 -6
- package/dist/geocoder/geocoder.js +0 -327
- package/dist/geocoder-panel.js +0 -172
- package/dist/hooks/use-cloud-list-provider.js +0 -46
- package/dist/hooks/use-dnd-effects.js +0 -69
- package/dist/hooks/use-dnd-layers.js +0 -141
- package/dist/hooks/use-feature-flags.js +0 -17
- package/dist/hooks/use-fetch-raster-tile-metadata.js +0 -120
- package/dist/hooks/use-fetch-vector-tile-metadata.js +0 -133
- package/dist/hooks/use-legend-position.js +0 -176
- package/dist/hooks/use-on-click-outside.js +0 -36
- package/dist/index.js +0 -2890
- package/dist/injector.js +0 -151
- package/dist/kepler-gl.js +0 -664
- package/dist/layer-animation-controller.js +0 -53
- package/dist/loading-indicator.js +0 -76
- package/dist/map/annotations/annotation-control.js +0 -55
- package/dist/map/attribution.js +0 -391
- package/dist/map/coordinate-info.js +0 -42
- package/dist/map/effects/effect-control.js +0 -51
- package/dist/map/layer-hover-info.js +0 -318
- package/dist/map/lazy-tippy.js +0 -60
- package/dist/map/locale-panel.js +0 -76
- package/dist/map/map-control-panel.js +0 -140
- package/dist/map/map-control-toolbar.js +0 -18
- package/dist/map/map-control-tooltip.js +0 -34
- package/dist/map/map-control.js +0 -81
- package/dist/map/map-draw-panel.js +0 -100
- package/dist/map/map-legend-panel.js +0 -289
- package/dist/map/map-legend.js +0 -509
- package/dist/map/map-navigation-control.js +0 -159
- package/dist/map/map-popover-content.js +0 -28
- package/dist/map/map-popover.js +0 -189
- package/dist/map/map-scale.js +0 -162
- package/dist/map/split-map-button.js +0 -176
- package/dist/map/toggle-3d-button.js +0 -122
- package/dist/map-container.js +0 -1322
- package/dist/map-view-state-context.js +0 -98
- package/dist/maps-layout.js +0 -102
- package/dist/modal-container.js +0 -456
- package/dist/modals/add-map-style-modal.js +0 -262
- package/dist/modals/cloud-components/cloud-header.js +0 -59
- package/dist/modals/cloud-components/cloud-item.js +0 -59
- package/dist/modals/cloud-components/cloud-item.spec.js +0 -92
- package/dist/modals/cloud-components/cloud-maps.js +0 -47
- package/dist/modals/cloud-components/cloud-maps.spec.js +0 -98
- package/dist/modals/cloud-components/provider-loading.js +0 -20
- package/dist/modals/cloud-components/provider-select.js +0 -30
- package/dist/modals/cloud-tile.js +0 -202
- package/dist/modals/data-table-modal.js +0 -215
- package/dist/modals/delete-data-modal.js +0 -41
- package/dist/modals/error-display.js +0 -32
- package/dist/modals/export-data-modal.js +0 -163
- package/dist/modals/export-image-modal.js +0 -188
- package/dist/modals/export-map-modal/components.js +0 -34
- package/dist/modals/export-map-modal/export-html-map.js +0 -128
- package/dist/modals/export-map-modal/export-json-map.js +0 -81
- package/dist/modals/export-map-modal/export-map-modal.js +0 -84
- package/dist/modals/export-video-modal.js +0 -413
- package/dist/modals/export-video-modal.spec.js +0 -686
- package/dist/modals/fog-height-animation.js +0 -97
- package/dist/modals/globe-export-video-container.js +0 -626
- package/dist/modals/globe-export-video-preview.js +0 -152
- package/dist/modals/hubble-utils.js +0 -422
- package/dist/modals/hubble-utils.spec.js +0 -397
- package/dist/modals/image-modal-container.js +0 -57
- package/dist/modals/load-data-modal.js +0 -97
- package/dist/modals/load-storage-map.js +0 -79
- package/dist/modals/load-storage-map.spec.js +0 -216
- package/dist/modals/loading-dialog.js +0 -37
- package/dist/modals/modal-dialog.js +0 -16
- package/dist/modals/modal-tabs.js +0 -74
- package/dist/modals/overwrite-map-modal.js +0 -83
- package/dist/modals/save-map-modal.js +0 -179
- package/dist/modals/save-map-modal.spec.js +0 -195
- package/dist/modals/share-map-modal.js +0 -168
- package/dist/modals/share-map-modal.spec.js +0 -173
- package/dist/modals/status-panel.js +0 -65
- package/dist/modals/storage-map-viewer.js +0 -98
- package/dist/modals/swipe-composite-utils.js +0 -118
- package/dist/modals/swipe-export-settings.js +0 -372
- package/dist/modals/swipe-export-video-container.js +0 -653
- package/dist/modals/swipe-export-video-preview.js +0 -401
- package/dist/modals/tilesets-modals/common.js +0 -6
- package/dist/modals/tilesets-modals/load-data-footer.js +0 -55
- package/dist/modals/tilesets-modals/load-tileset.js +0 -168
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +0 -283
- package/dist/modals/tilesets-modals/tileset-icon.js +0 -39
- package/dist/modals/tilesets-modals/tileset-raster-form.js +0 -287
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +0 -388
- package/dist/modals/tilesets-modals/tileset-vector-form.js +0 -261
- package/dist/modals/tilesets-modals/tileset-wms-form.js +0 -206
- package/dist/notification-panel/notification-item.js +0 -119
- package/dist/notification-panel.js +0 -39
- package/dist/plot-container.js +0 -311
- package/dist/side-panel/add-by-dataset-button.js +0 -128
- package/dist/side-panel/cloud-storage-dropdown.js +0 -40
- package/dist/side-panel/common/dataset-info.js +0 -34
- package/dist/side-panel/common/dataset-tag.js +0 -62
- package/dist/side-panel/common/dataset-title.js +0 -143
- package/dist/side-panel/common/source-data-catalog.js +0 -49
- package/dist/side-panel/common/source-data-selector-content.js +0 -64
- package/dist/side-panel/common/source-data-selector.js +0 -41
- package/dist/side-panel/common/source-selector.js +0 -56
- package/dist/side-panel/common/types.js +0 -6
- package/dist/side-panel/custom-panel.js +0 -39
- package/dist/side-panel/filter-manager.js +0 -202
- package/dist/side-panel/filter-panel/add-filter-button.js +0 -27
- package/dist/side-panel/filter-panel/filter-panel-header.js +0 -67
- package/dist/side-panel/filter-panel/filter-panel.js +0 -92
- package/dist/side-panel/interaction-manager.js +0 -45
- package/dist/side-panel/interaction-panel/brush-config.js +0 -41
- package/dist/side-panel/interaction-panel/geocoder-config.js +0 -45
- package/dist/side-panel/interaction-panel/interaction-panel.js +0 -121
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -164
- package/dist/side-panel/interaction-panel/tooltip-config.js +0 -149
- package/dist/side-panel/layer-manager.js +0 -224
- package/dist/side-panel/layer-panel/add-layer-button.js +0 -27
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +0 -37
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +0 -71
- package/dist/side-panel/layer-panel/color-breaks-panel.js +0 -193
- package/dist/side-panel/layer-panel/color-palette-preset.js +0 -45
- package/dist/side-panel/layer-panel/color-palette.js +0 -74
- package/dist/side-panel/layer-panel/color-range-selector.js +0 -242
- package/dist/side-panel/layer-panel/color-scale-selector.js +0 -295
- package/dist/side-panel/layer-panel/color-selector.js +0 -186
- package/dist/side-panel/layer-panel/column-selector.js +0 -59
- package/dist/side-panel/layer-panel/custom-palette.js +0 -787
- package/dist/side-panel/layer-panel/custom-picker.js +0 -83
- package/dist/side-panel/layer-panel/dataset-layer-group.js +0 -68
- package/dist/side-panel/layer-panel/dataset-layer-section.js +0 -101
- package/dist/side-panel/layer-panel/dataset-section.js +0 -74
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +0 -91
- package/dist/side-panel/layer-panel/how-to-button.js +0 -27
- package/dist/side-panel/layer-panel/layer-color-selector.js +0 -105
- package/dist/side-panel/layer-panel/layer-column-config.js +0 -85
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +0 -192
- package/dist/side-panel/layer-panel/layer-config-group.js +0 -143
- package/dist/side-panel/layer-panel/layer-configurator.js +0 -1073
- package/dist/side-panel/layer-panel/layer-error-message.js +0 -29
- package/dist/side-panel/layer-panel/layer-group-header.js +0 -178
- package/dist/side-panel/layer-panel/layer-list.js +0 -330
- package/dist/side-panel/layer-panel/layer-panel-header.js +0 -311
- package/dist/side-panel/layer-panel/layer-panel.js +0 -171
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +0 -77
- package/dist/side-panel/layer-panel/layer-type-list-item.js +0 -71
- package/dist/side-panel/layer-panel/layer-type-selector.js +0 -57
- package/dist/side-panel/layer-panel/raster-tile-colormap-list-item.js +0 -60
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +0 -457
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +0 -122
- package/dist/side-panel/layer-panel/single-color-palette.js +0 -85
- package/dist/side-panel/layer-panel/text-label-panel.js +0 -173
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +0 -93
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +0 -60
- package/dist/side-panel/layer-panel/vis-config-slider.js +0 -167
- package/dist/side-panel/layer-panel/vis-config-switch.js +0 -55
- package/dist/side-panel/map-manager.js +0 -108
- package/dist/side-panel/map-style-panel/globe-config-panel.js +0 -269
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +0 -76
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +0 -94
- package/dist/side-panel/map-style-panel/map-layer-selector.js +0 -74
- package/dist/side-panel/map-style-panel/map-style-selector.js +0 -97
- package/dist/side-panel/panel-header-action.js +0 -73
- package/dist/side-panel/panel-header.js +0 -309
- package/dist/side-panel/panel-tab.js +0 -55
- package/dist/side-panel/panel-title.js +0 -40
- package/dist/side-panel/panel-toggle.js +0 -47
- package/dist/side-panel/panel-view-list-toggle.js +0 -97
- package/dist/side-panel/side-bar.js +0 -126
- package/dist/side-panel.js +0 -235
- package/dist/types.js +0 -6
|
@@ -1,470 +0,0 @@
|
|
|
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.TableSection = exports.Container = void 0;
|
|
9
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
var _reactVirtualized = require("react-virtualized");
|
|
20
|
-
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
22
|
-
var _reselect = require("reselect");
|
|
23
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
|
24
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
25
|
-
var _icons = require("../icons");
|
|
26
|
-
var _grid = _interopRequireDefault(require("./grid"));
|
|
27
|
-
var _headerCell = _interopRequireDefault(require("./header-cell"));
|
|
28
|
-
var _utils = require("@kepler.gl/utils");
|
|
29
|
-
var _cellSize = require("./cell-size");
|
|
30
|
-
var _constants = require("@kepler.gl/constants");
|
|
31
|
-
var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
|
|
32
|
-
// Copyright contributors to the kepler.gl project
|
|
33
|
-
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); }
|
|
34
|
-
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)); }
|
|
35
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
36
|
-
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; }
|
|
37
|
-
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; }
|
|
38
|
-
var defaultHeaderRowHeight = 55;
|
|
39
|
-
var defaultHeaderStatsControlHeight = 40;
|
|
40
|
-
var defaultRowHeight = 32;
|
|
41
|
-
var overscanColumnCount = 10;
|
|
42
|
-
var overscanRowCount = 10;
|
|
43
|
-
// The default scrollbar width can range anywhere from 12px to 17px
|
|
44
|
-
var browserScrollBarWidth = 17;
|
|
45
|
-
var fieldToAlignRight = (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _constants.ALL_FIELD_TYPES.integer, true), _constants.ALL_FIELD_TYPES.real, true);
|
|
46
|
-
var pinnedClassList = {
|
|
47
|
-
header: 'pinned-columns--header pinned-grid-container',
|
|
48
|
-
rows: 'pinned-columns--rows pinned-grid-container'
|
|
49
|
-
};
|
|
50
|
-
var unpinnedClassList = {
|
|
51
|
-
header: 'unpinned-columns--header unpinned-grid-container',
|
|
52
|
-
rows: 'unpinned-columns--rows unpinned-grid-container'
|
|
53
|
-
};
|
|
54
|
-
var Container = exports.Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: 11px;\n flex-grow: 1;\n color: ", ";\n width: 100%;\n position: relative;\n .ReactVirtualized__Grid:focus,\n .ReactVirtualized__Grid:active {\n outline: 0;\n }\n .body-grid {\n ", "\n }\n\n .cell {\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n *:focus {\n outline: 0;\n }\n\n .results-table-wrapper {\n position: relative;\n min-height: 100%;\n max-height: 100%;\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n overflow: hidden;\n\n .scroll-in-ui-thread.pinned-columns--header {\n overflow: hidden;\n border-bottom: 1px solid ", ";\n padding-bottom: ", "px;\n }\n .scroll-in-ui-thread.unpinned-columns--header {\n width: 100vw;\n overflow: hidden;\n border-bottom: 1px solid ", ";\n // leave room for scrollbar\n padding-bottom: ", "px;\n }\n\n .scroll-in-ui-thread::after {\n content: '';\n height: 100%;\n left: 0;\n position: absolute;\n pointer-events: none;\n top: 0;\n width: 100%;\n }\n\n .grid-row {\n position: relative;\n display: flex;\n flex-direction: row;\n }\n .grid-column {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n }\n .pinned-grid-container {\n flex: 0 0 75px;\n z-index: 10;\n position: absolute;\n left: 0;\n top: 0;\n border-right: 2px solid ", ";\n }\n .even-row {\n background-color: ", ";\n }\n .odd-row {\n background-color: ", ";\n }\n .cell,\n .header-cell {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n text-align: center;\n overflow: hidden;\n // header border is rendered by header container\n border-bottom: 0;\n .n-sort-idx {\n font-size: 9px;\n }\n }\n .cell {\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n white-space: nowrap;\n overflow: auto;\n padding: 0 ", "px;\n font-size: ", "px;\n\n .result-link {\n text-decoration: none;\n }\n }\n .cell.end-cell,\n .header-cell.end-cell {\n border-right: none;\n padding-right: ", "px;\n }\n .cell.first-cell,\n .header-cell.first-cell {\n padding-left: ", "px;\n }\n .cell.bottom-cell {\n border-bottom: none;\n }\n .cell.align-right {\n align-items: flex-end;\n }\n }\n\n &:focus {\n outline: none;\n }\n"])), function (props) {
|
|
55
|
-
return props.theme.dataTableTextColor;
|
|
56
|
-
}, function (props) {
|
|
57
|
-
return props.$hasCustomScrollBarStyle && props.theme.modalScrollBar;
|
|
58
|
-
}, function (props) {
|
|
59
|
-
return props.theme.cellBorderColor;
|
|
60
|
-
}, browserScrollBarWidth, function (props) {
|
|
61
|
-
return props.theme.cellBorderColor;
|
|
62
|
-
}, browserScrollBarWidth, function (props) {
|
|
63
|
-
return props.theme.pinnedGridBorderColor;
|
|
64
|
-
}, function (props) {
|
|
65
|
-
return props.theme.evenRowBackground;
|
|
66
|
-
}, function (props) {
|
|
67
|
-
return props.theme.oddRowBackground;
|
|
68
|
-
}, function (props) {
|
|
69
|
-
return props.theme.cellBorderColor;
|
|
70
|
-
}, function (props) {
|
|
71
|
-
return props.theme.cellBorderColor;
|
|
72
|
-
}, function (props) {
|
|
73
|
-
return props.theme.cellPaddingSide;
|
|
74
|
-
}, function (props) {
|
|
75
|
-
return props.theme.cellFontSize;
|
|
76
|
-
}, function (props) {
|
|
77
|
-
return props.theme.cellPaddingSide + props.theme.edgeCellPaddingSide;
|
|
78
|
-
}, function (props) {
|
|
79
|
-
return props.theme.cellPaddingSide + props.theme.edgeCellPaddingSide;
|
|
80
|
-
});
|
|
81
|
-
var defaultColumnWidth = 200;
|
|
82
|
-
var columnWidthFunction = function columnWidthFunction(columns, cellSizeCache, ghost) {
|
|
83
|
-
return function (_ref) {
|
|
84
|
-
var index = _ref.index;
|
|
85
|
-
return (columns[index] || {}).ghost ? ghost : cellSizeCache[columns[index]] || defaultColumnWidth;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
/*
|
|
89
|
-
* This is an accessor method used to generalize getting a cell from a data row
|
|
90
|
-
*/
|
|
91
|
-
var defaultGetRowCell = function defaultGetRowCell(_ref2, formatter) {
|
|
92
|
-
var dataContainer = _ref2.dataContainer,
|
|
93
|
-
columns = _ref2.columns,
|
|
94
|
-
column = _ref2.column,
|
|
95
|
-
colMeta = _ref2.colMeta,
|
|
96
|
-
rowIndex = _ref2.rowIndex,
|
|
97
|
-
sortOrder = _ref2.sortOrder;
|
|
98
|
-
var rowIdx = sortOrder && sortOrder.length ? (0, _get["default"])(sortOrder, rowIndex) : rowIndex;
|
|
99
|
-
var type = colMeta[column].type;
|
|
100
|
-
var value = dataContainer === null || dataContainer === void 0 ? void 0 : dataContainer.valueAt(rowIdx, columns.indexOf(column));
|
|
101
|
-
return value === null || value === undefined || value === '' ? '' : formatter ? formatter(value) : (0, _utils.parseFieldValue)(value, type);
|
|
102
|
-
};
|
|
103
|
-
var StyledStatsControl = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", "px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: stretch;\n position: absolute;\n top: ", "px;\n font-family: ", "px;\n font-size: 12px;\n color: ", ";\n background-color: ", ";\n &:hover {\n cursor: pointer;\n }\n\n > div {\n padding: 0px 24px;\n display: flex;\n align-items: center;\n\n svg {\n margin-left: 12px;\n transition: transform 0.5s ease;\n transform: rotate(", "deg);\n }\n }\n"])), function (props) {
|
|
104
|
-
return props.theme.headerStatsControlHeight;
|
|
105
|
-
}, function (props) {
|
|
106
|
-
return props.top;
|
|
107
|
-
}, function (props) {
|
|
108
|
-
return props.theme.fontFamilyMedium;
|
|
109
|
-
}, function (props) {
|
|
110
|
-
return props.theme.activeColor;
|
|
111
|
-
}, function (props) {
|
|
112
|
-
return props.theme.headerCellStatsControlBackground;
|
|
113
|
-
}, function (props) {
|
|
114
|
-
return props.showStats ? 180 : 0;
|
|
115
|
-
});
|
|
116
|
-
var StatsControl = function StatsControl(_ref3) {
|
|
117
|
-
var top = _ref3.top,
|
|
118
|
-
showStats = _ref3.showStats,
|
|
119
|
-
toggleShowStats = _ref3.toggleShowStats;
|
|
120
|
-
return /*#__PURE__*/_react["default"].createElement(StyledStatsControl, {
|
|
121
|
-
top: top,
|
|
122
|
-
showStats: showStats
|
|
123
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
124
|
-
onClick: toggleShowStats
|
|
125
|
-
}, showStats ? 'Hide Column Stats' : 'Show Column Stats', /*#__PURE__*/_react["default"].createElement(_icons.ArrowDown, {
|
|
126
|
-
height: "18px"
|
|
127
|
-
})));
|
|
128
|
-
};
|
|
129
|
-
var TableSection = exports.TableSection = function TableSection(_ref4) {
|
|
130
|
-
var classList = _ref4.classList,
|
|
131
|
-
isPinned = _ref4.isPinned,
|
|
132
|
-
columns = _ref4.columns,
|
|
133
|
-
headerGridProps = _ref4.headerGridProps,
|
|
134
|
-
fixedWidth = _ref4.fixedWidth,
|
|
135
|
-
_ref4$fixedHeight = _ref4.fixedHeight,
|
|
136
|
-
fixedHeight = _ref4$fixedHeight === void 0 ? undefined : _ref4$fixedHeight,
|
|
137
|
-
_onScroll = _ref4.onScroll,
|
|
138
|
-
scrollTop = _ref4.scrollTop,
|
|
139
|
-
dataGridProps = _ref4.dataGridProps,
|
|
140
|
-
columnWidth = _ref4.columnWidth,
|
|
141
|
-
_ref4$setGridRef = _ref4.setGridRef,
|
|
142
|
-
setGridRef = _ref4$setGridRef === void 0 ? undefined : _ref4$setGridRef,
|
|
143
|
-
headerCellRender = _ref4.headerCellRender,
|
|
144
|
-
dataCellRender = _ref4.dataCellRender,
|
|
145
|
-
_ref4$scrollLeft = _ref4.scrollLeft,
|
|
146
|
-
scrollLeft = _ref4$scrollLeft === void 0 ? 0 : _ref4$scrollLeft;
|
|
147
|
-
var headerHeight = headerGridProps.height;
|
|
148
|
-
var headerStyle = (0, _react.useMemo)(function () {
|
|
149
|
-
return {
|
|
150
|
-
height: "".concat(headerHeight, "px")
|
|
151
|
-
};
|
|
152
|
-
}, [headerHeight]);
|
|
153
|
-
var contentStyle = (0, _react.useMemo)(function () {
|
|
154
|
-
return {
|
|
155
|
-
top: "".concat(headerHeight, "px")
|
|
156
|
-
};
|
|
157
|
-
}, [headerHeight]);
|
|
158
|
-
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (_ref5) {
|
|
159
|
-
var width = _ref5.width,
|
|
160
|
-
height = _ref5.height;
|
|
161
|
-
var gridDimension = {
|
|
162
|
-
columnCount: columns.length,
|
|
163
|
-
columnWidth: columnWidth,
|
|
164
|
-
width: fixedWidth || width
|
|
165
|
-
};
|
|
166
|
-
var headerGridWidth = fixedWidth || width;
|
|
167
|
-
var dataGridHeight = fixedHeight || height;
|
|
168
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
169
|
-
className: (0, _classnames2["default"])('scroll-in-ui-thread', classList === null || classList === void 0 ? void 0 : classList.header),
|
|
170
|
-
style: headerStyle
|
|
171
|
-
}, /*#__PURE__*/_react["default"].createElement(_grid["default"], (0, _extends2["default"])({
|
|
172
|
-
cellRenderer: headerCellRender
|
|
173
|
-
}, headerGridProps, gridDimension, {
|
|
174
|
-
height: headerGridProps.height + browserScrollBarWidth,
|
|
175
|
-
width: headerGridWidth,
|
|
176
|
-
scrollLeft: scrollLeft,
|
|
177
|
-
onScroll: function onScroll(args) {
|
|
178
|
-
return _onScroll === null || _onScroll === void 0 ? void 0 : _onScroll(_objectSpread(_objectSpread({}, args), {}, {
|
|
179
|
-
scrollTop: scrollTop !== null && scrollTop !== void 0 ? scrollTop : 0
|
|
180
|
-
}));
|
|
181
|
-
}
|
|
182
|
-
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
183
|
-
className: (0, _classnames2["default"])('scroll-in-ui-thread', classList === null || classList === void 0 ? void 0 : classList.rows),
|
|
184
|
-
style: contentStyle
|
|
185
|
-
}, /*#__PURE__*/_react["default"].createElement(_grid["default"], (0, _extends2["default"])({
|
|
186
|
-
cellRenderer: dataCellRender
|
|
187
|
-
}, dataGridProps, gridDimension, {
|
|
188
|
-
className: isPinned ? 'pinned-grid' : 'body-grid',
|
|
189
|
-
height: dataGridHeight - headerGridProps.height,
|
|
190
|
-
onScroll: _onScroll,
|
|
191
|
-
scrollLeft: scrollLeft,
|
|
192
|
-
scrollTop: scrollTop,
|
|
193
|
-
setGridRef: setGridRef
|
|
194
|
-
}))));
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
var DUMMY_STYLE = {};
|
|
198
|
-
DataTableFactory.deps = [_headerCell["default"]];
|
|
199
|
-
function DataTableFactory(HeaderCell) {
|
|
200
|
-
var DataTable = /*#__PURE__*/function (_Component) {
|
|
201
|
-
function DataTable() {
|
|
202
|
-
var _this;
|
|
203
|
-
(0, _classCallCheck2["default"])(this, DataTable);
|
|
204
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
205
|
-
args[_key] = arguments[_key];
|
|
206
|
-
}
|
|
207
|
-
_this = _callSuper(this, DataTable, [].concat(args));
|
|
208
|
-
(0, _defineProperty2["default"])(_this, "pinnedGrid", null);
|
|
209
|
-
(0, _defineProperty2["default"])(_this, "unpinnedGrid", null);
|
|
210
|
-
(0, _defineProperty2["default"])(_this, "hasMounted", false);
|
|
211
|
-
(0, _defineProperty2["default"])(_this, "state", {
|
|
212
|
-
cellSizeCache: {},
|
|
213
|
-
moreOptionsColumn: null,
|
|
214
|
-
showStats: true
|
|
215
|
-
});
|
|
216
|
-
(0, _defineProperty2["default"])(_this, "root", /*#__PURE__*/(0, _react.createRef)());
|
|
217
|
-
(0, _defineProperty2["default"])(_this, "columns", function (props) {
|
|
218
|
-
return props.columns;
|
|
219
|
-
});
|
|
220
|
-
(0, _defineProperty2["default"])(_this, "pinnedColumns", function (props) {
|
|
221
|
-
return props.pinnedColumns;
|
|
222
|
-
});
|
|
223
|
-
(0, _defineProperty2["default"])(_this, "unpinnedColumns", (0, _reselect.createSelector)(_this.columns, _this.pinnedColumns, function (columns, pinnedColumns) {
|
|
224
|
-
return !Array.isArray(pinnedColumns) ? columns : columns.filter(function (c) {
|
|
225
|
-
return !pinnedColumns.includes(c);
|
|
226
|
-
});
|
|
227
|
-
}));
|
|
228
|
-
(0, _defineProperty2["default"])(_this, "toggleMoreOptions", function (moreOptionsColumn) {
|
|
229
|
-
if (_this.hasMounted) _this.setState({
|
|
230
|
-
moreOptionsColumn: _this.state.moreOptionsColumn === moreOptionsColumn ? null : moreOptionsColumn
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
(0, _defineProperty2["default"])(_this, "toggleShowStats", function () {
|
|
234
|
-
if (_this.hasMounted) _this.setState({
|
|
235
|
-
showStats: !_this.state.showStats
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
(0, _defineProperty2["default"])(_this, "getCellSizeCache", function () {
|
|
239
|
-
var _this$props = _this.props,
|
|
240
|
-
_this$props$cellSizeC = _this$props.cellSizeCache,
|
|
241
|
-
propsCache = _this$props$cellSizeC === void 0 ? {} : _this$props$cellSizeC,
|
|
242
|
-
fixedWidth = _this$props.fixedWidth,
|
|
243
|
-
_this$props$pinnedCol = _this$props.pinnedColumns,
|
|
244
|
-
pinnedColumns = _this$props$pinnedCol === void 0 ? [] : _this$props$pinnedCol;
|
|
245
|
-
var unpinnedColumns = _this.unpinnedColumns(_this.props);
|
|
246
|
-
var width = fixedWidth ? fixedWidth : _this.root.current ? _this.root.current.clientWidth : 0;
|
|
247
|
-
|
|
248
|
-
// pin column border is 2 pixel vs 1 pixel
|
|
249
|
-
var adjustWidth = pinnedColumns.length ? width - 1 : width;
|
|
250
|
-
var _ref6 = (0, _cellSize.adjustCellsToContainer)(adjustWidth, propsCache, pinnedColumns, unpinnedColumns),
|
|
251
|
-
cellSizeCache = _ref6.cellSizeCache,
|
|
252
|
-
ghost = _ref6.ghost;
|
|
253
|
-
return {
|
|
254
|
-
cellSizeCache: cellSizeCache,
|
|
255
|
-
ghost: ghost
|
|
256
|
-
};
|
|
257
|
-
});
|
|
258
|
-
(0, _defineProperty2["default"])(_this, "doScaleCellsToWidth", function () {
|
|
259
|
-
if (_this.hasMounted) _this.setState(_this.getCellSizeCache());
|
|
260
|
-
});
|
|
261
|
-
(0, _defineProperty2["default"])(_this, "scaleCellsToWidth", (0, _debounce["default"])(_this.doScaleCellsToWidth, 300));
|
|
262
|
-
(0, _defineProperty2["default"])(_this, "renderDataCell", function (columns, isPinned, props) {
|
|
263
|
-
var _this$props$getRowCel;
|
|
264
|
-
var getRowCell = (_this$props$getRowCel = _this.props.getRowCell) !== null && _this$props$getRowCel !== void 0 ? _this$props$getRowCel : defaultGetRowCell;
|
|
265
|
-
var DataCellRenderer = function DataCellRenderer(cellInfo) {
|
|
266
|
-
var columnIndex = cellInfo.columnIndex,
|
|
267
|
-
key = cellInfo.key,
|
|
268
|
-
style = cellInfo.style,
|
|
269
|
-
rowIndex = cellInfo.rowIndex;
|
|
270
|
-
var dataContainer = props.dataContainer,
|
|
271
|
-
colMeta = props.colMeta;
|
|
272
|
-
var column = columns[columnIndex];
|
|
273
|
-
var isGhost = column.ghost;
|
|
274
|
-
var formatter = isGhost ? null : (0, _utils.getColumnFormatter)(colMeta[column]);
|
|
275
|
-
var rowCell = isGhost ? '' : getRowCell(_objectSpread(_objectSpread({}, props), {}, {
|
|
276
|
-
column: column,
|
|
277
|
-
rowIndex: rowIndex
|
|
278
|
-
}), formatter);
|
|
279
|
-
var type = isGhost ? null : colMeta[column].type;
|
|
280
|
-
var lastRowIndex = dataContainer ? dataContainer.numRows() - 1 : 0;
|
|
281
|
-
var endCell = columnIndex === columns.length - 1;
|
|
282
|
-
var firstCell = columnIndex === 0;
|
|
283
|
-
var bottomCell = rowIndex === lastRowIndex;
|
|
284
|
-
var alignRight = fieldToAlignRight[Number(type)];
|
|
285
|
-
var cell = /*#__PURE__*/_react["default"].createElement("div", {
|
|
286
|
-
className: (0, _classnames2["default"])('cell', (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, rowIndex % 2 === 0 ? 'even-row' : 'odd-row', true), "row-".concat(rowIndex), true), 'pinned-cell', isPinned), 'first-cell', firstCell), 'end-cell', endCell), 'bottom-cell', bottomCell), 'align-right', alignRight)),
|
|
287
|
-
key: key,
|
|
288
|
-
style: style,
|
|
289
|
-
title: isGhost ? undefined : rowCell
|
|
290
|
-
}, "".concat(rowCell).concat(endCell ? '\n' : '\t'));
|
|
291
|
-
return cell;
|
|
292
|
-
};
|
|
293
|
-
return DataCellRenderer;
|
|
294
|
-
});
|
|
295
|
-
return _this;
|
|
296
|
-
}
|
|
297
|
-
(0, _inherits2["default"])(DataTable, _Component);
|
|
298
|
-
return (0, _createClass2["default"])(DataTable, [{
|
|
299
|
-
key: "componentDidMount",
|
|
300
|
-
value: function componentDidMount() {
|
|
301
|
-
this.hasMounted = true;
|
|
302
|
-
window.addEventListener('resize', this.scaleCellsToWidth);
|
|
303
|
-
this.scaleCellsToWidth();
|
|
304
|
-
}
|
|
305
|
-
}, {
|
|
306
|
-
key: "componentDidUpdate",
|
|
307
|
-
value: function componentDidUpdate(prevProps) {
|
|
308
|
-
if (this.props.cellSizeCache !== prevProps.cellSizeCache || this.props.pinnedColumns !== prevProps.pinnedColumns) {
|
|
309
|
-
this.scaleCellsToWidth();
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}, {
|
|
313
|
-
key: "componentWillUnmount",
|
|
314
|
-
value: function componentWillUnmount() {
|
|
315
|
-
this.hasMounted = false;
|
|
316
|
-
window.removeEventListener('resize', this.scaleCellsToWidth);
|
|
317
|
-
}
|
|
318
|
-
}, {
|
|
319
|
-
key: "renderHeaderCell",
|
|
320
|
-
value: function renderHeaderCell(columns, isPinned, props, toggleMoreOptions, moreOptionsColumn) {
|
|
321
|
-
var _this2 = this;
|
|
322
|
-
var HeaderCellRenderer = function HeaderCellRenderer(cellInfo) {
|
|
323
|
-
return /*#__PURE__*/_react["default"].createElement(HeaderCell, {
|
|
324
|
-
cellInfo: cellInfo,
|
|
325
|
-
key: cellInfo.columnIndex,
|
|
326
|
-
columns: columns,
|
|
327
|
-
isPinned: isPinned,
|
|
328
|
-
showStats: _this2.state.showStats,
|
|
329
|
-
props: props,
|
|
330
|
-
toggleMoreOptions: toggleMoreOptions,
|
|
331
|
-
moreOptionsColumn: moreOptionsColumn
|
|
332
|
-
// pass dummy style to prevent warnings from react-virtualized Grid
|
|
333
|
-
,
|
|
334
|
-
style: DUMMY_STYLE
|
|
335
|
-
});
|
|
336
|
-
};
|
|
337
|
-
return HeaderCellRenderer;
|
|
338
|
-
}
|
|
339
|
-
}, {
|
|
340
|
-
key: "render",
|
|
341
|
-
value: function render() {
|
|
342
|
-
var _this3 = this;
|
|
343
|
-
var _this$props2 = this.props,
|
|
344
|
-
dataContainer = _this$props2.dataContainer,
|
|
345
|
-
_this$props2$pinnedCo = _this$props2.pinnedColumns,
|
|
346
|
-
pinnedColumns = _this$props2$pinnedCo === void 0 ? [] : _this$props2$pinnedCo,
|
|
347
|
-
_this$props2$theme = _this$props2.theme,
|
|
348
|
-
theme = _this$props2$theme === void 0 ? {} : _this$props2$theme,
|
|
349
|
-
fixedWidth = _this$props2.fixedWidth,
|
|
350
|
-
_this$props2$fixedHei = _this$props2.fixedHeight,
|
|
351
|
-
fixedHeight = _this$props2$fixedHei === void 0 ? 0 : _this$props2$fixedHei,
|
|
352
|
-
hasStats = _this$props2.hasStats,
|
|
353
|
-
hasCustomScrollBarStyle = _this$props2.hasCustomScrollBarStyle;
|
|
354
|
-
var unpinnedColumns = this.unpinnedColumns(this.props);
|
|
355
|
-
var _this$state = this.state,
|
|
356
|
-
_this$state$cellSizeC = _this$state.cellSizeCache,
|
|
357
|
-
cellSizeCache = _this$state$cellSizeC === void 0 ? {} : _this$state$cellSizeC,
|
|
358
|
-
moreOptionsColumn = _this$state.moreOptionsColumn,
|
|
359
|
-
ghost = _this$state.ghost,
|
|
360
|
-
showStats = _this$state.showStats;
|
|
361
|
-
var unpinnedColumnsGhost = ghost ? [].concat((0, _toConsumableArray2["default"])(unpinnedColumns), [{
|
|
362
|
-
ghost: true
|
|
363
|
-
}]) : unpinnedColumns;
|
|
364
|
-
var pinnedColumnsWidth = pinnedColumns.reduce(function (acc, val) {
|
|
365
|
-
return acc + (0, _get["default"])(cellSizeCache, val, 0);
|
|
366
|
-
}, 0);
|
|
367
|
-
var hasPinnedColumns = Boolean(pinnedColumns.length);
|
|
368
|
-
var _theme$headerRowHeigh = theme.headerRowHeight,
|
|
369
|
-
headerRowHeight = _theme$headerRowHeigh === void 0 ? defaultHeaderRowHeight : _theme$headerRowHeigh,
|
|
370
|
-
_theme$headerStatsCon = theme.headerStatsControlHeight,
|
|
371
|
-
headerStatsControlHeight = _theme$headerStatsCon === void 0 ? defaultHeaderStatsControlHeight : _theme$headerStatsCon,
|
|
372
|
-
_theme$headerRowWStat = theme.headerRowWStatsHeight,
|
|
373
|
-
headerRowWStatsHeight = _theme$headerRowWStat === void 0 ? defaultHeaderRowHeight : _theme$headerRowWStat,
|
|
374
|
-
_theme$rowHeight = theme.rowHeight,
|
|
375
|
-
rowHeight = _theme$rowHeight === void 0 ? defaultRowHeight : _theme$rowHeight;
|
|
376
|
-
var headerGridProps = {
|
|
377
|
-
cellSizeCache: cellSizeCache,
|
|
378
|
-
className: 'header-grid',
|
|
379
|
-
height: !hasStats ? headerRowHeight : showStats ? headerRowWStatsHeight : headerRowHeight + headerStatsControlHeight,
|
|
380
|
-
rowCount: 1,
|
|
381
|
-
rowHeight: !hasStats ? headerRowHeight : showStats ? headerRowWStatsHeight : headerRowHeight + headerStatsControlHeight
|
|
382
|
-
};
|
|
383
|
-
var dataGridProps = {
|
|
384
|
-
cellSizeCache: cellSizeCache,
|
|
385
|
-
overscanColumnCount: overscanColumnCount,
|
|
386
|
-
overscanRowCount: overscanRowCount,
|
|
387
|
-
rowCount: dataContainer ? dataContainer.numRows() : 0,
|
|
388
|
-
rowHeight: rowHeight
|
|
389
|
-
};
|
|
390
|
-
return /*#__PURE__*/_react["default"].createElement(Container, {
|
|
391
|
-
className: "data-table-container",
|
|
392
|
-
ref: this.root,
|
|
393
|
-
$hasCustomScrollBarStyle: hasCustomScrollBarStyle
|
|
394
|
-
}, Object.keys(cellSizeCache).length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.ScrollSync, null, function (_ref7) {
|
|
395
|
-
var _onScroll2 = _ref7.onScroll,
|
|
396
|
-
scrollLeft = _ref7.scrollLeft,
|
|
397
|
-
scrollTop = _ref7.scrollTop;
|
|
398
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
399
|
-
className: "results-table-wrapper"
|
|
400
|
-
}, hasPinnedColumns && /*#__PURE__*/_react["default"].createElement("div", {
|
|
401
|
-
key: "pinned-columns",
|
|
402
|
-
className: "pinned-columns grid-row"
|
|
403
|
-
}, /*#__PURE__*/_react["default"].createElement(TableSection, {
|
|
404
|
-
classList: pinnedClassList,
|
|
405
|
-
isPinned: true,
|
|
406
|
-
columns: pinnedColumns,
|
|
407
|
-
headerGridProps: headerGridProps,
|
|
408
|
-
fixedWidth: pinnedColumnsWidth,
|
|
409
|
-
onScroll: function onScroll(args) {
|
|
410
|
-
return _onScroll2(_objectSpread(_objectSpread({}, args), {}, {
|
|
411
|
-
scrollLeft: scrollLeft
|
|
412
|
-
}));
|
|
413
|
-
},
|
|
414
|
-
scrollTop: scrollTop,
|
|
415
|
-
scrollLeft: scrollLeft,
|
|
416
|
-
dataGridProps: dataGridProps,
|
|
417
|
-
setGridRef: function setGridRef(pinnedGrid) {
|
|
418
|
-
return _this3.pinnedGrid = pinnedGrid;
|
|
419
|
-
},
|
|
420
|
-
columnWidth: columnWidthFunction(pinnedColumns, cellSizeCache),
|
|
421
|
-
headerCellRender: _this3.renderHeaderCell(pinnedColumns, true, _this3.props, _this3.toggleMoreOptions, moreOptionsColumn),
|
|
422
|
-
dataCellRender: _this3.renderDataCell(pinnedColumns, true, _this3.props)
|
|
423
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
424
|
-
key: "unpinned-columns",
|
|
425
|
-
style: {
|
|
426
|
-
marginLeft: "".concat(hasPinnedColumns ? "".concat(pinnedColumnsWidth, "px") : '0')
|
|
427
|
-
},
|
|
428
|
-
className: "unpinned-columns grid-column"
|
|
429
|
-
}, /*#__PURE__*/_react["default"].createElement(TableSection, {
|
|
430
|
-
classList: unpinnedClassList,
|
|
431
|
-
isPinned: false,
|
|
432
|
-
columns: unpinnedColumnsGhost,
|
|
433
|
-
headerGridProps: headerGridProps,
|
|
434
|
-
fixedWidth: fixedWidth,
|
|
435
|
-
fixedHeight: fixedHeight,
|
|
436
|
-
onScroll: _onScroll2,
|
|
437
|
-
scrollTop: scrollTop,
|
|
438
|
-
scrollLeft: scrollLeft,
|
|
439
|
-
dataGridProps: dataGridProps,
|
|
440
|
-
setGridRef: function setGridRef(unpinnedGrid) {
|
|
441
|
-
return _this3.unpinnedGrid = unpinnedGrid;
|
|
442
|
-
},
|
|
443
|
-
columnWidth: columnWidthFunction(unpinnedColumnsGhost, cellSizeCache, ghost),
|
|
444
|
-
headerCellRender: _this3.renderHeaderCell(unpinnedColumnsGhost, false, _this3.props, _this3.toggleMoreOptions, moreOptionsColumn),
|
|
445
|
-
dataCellRender: _this3.renderDataCell(unpinnedColumnsGhost, false, _this3.props)
|
|
446
|
-
})));
|
|
447
|
-
}), hasStats ? /*#__PURE__*/_react["default"].createElement(StatsControl, {
|
|
448
|
-
top: headerRowHeight,
|
|
449
|
-
showStats: showStats,
|
|
450
|
-
toggleShowStats: this.toggleShowStats
|
|
451
|
-
}) : null) : null);
|
|
452
|
-
}
|
|
453
|
-
}]);
|
|
454
|
-
}(_react.Component);
|
|
455
|
-
(0, _defineProperty2["default"])(DataTable, "defaultProps", {
|
|
456
|
-
dataContainer: null,
|
|
457
|
-
pinnedColumns: [],
|
|
458
|
-
colMeta: {},
|
|
459
|
-
cellSizeCache: {},
|
|
460
|
-
sortColumn: {},
|
|
461
|
-
fixedWidth: null,
|
|
462
|
-
fixedHeight: null,
|
|
463
|
-
theme: {},
|
|
464
|
-
hasStats: false,
|
|
465
|
-
hasCustomScrollBarStyle: true
|
|
466
|
-
});
|
|
467
|
-
return (0, _styledComponents.withTheme)(DataTable);
|
|
468
|
-
}
|
|
469
|
-
var _default = exports["default"] = DataTableFactory;
|
|
470
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9nZXQiLCJfZGVib3VuY2UiLCJfaWNvbnMiLCJfZ3JpZCIsIl9oZWFkZXJDZWxsIiwiX3V0aWxzIiwiX2NlbGxTaXplIiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZhdWx0SGVhZGVyUm93SGVpZ2h0IiwiZGVmYXVsdEhlYWRlclN0YXRzQ29udHJvbEhlaWdodCIsImRlZmF1bHRSb3dIZWlnaHQiLCJvdmVyc2NhbkNvbHVtbkNvdW50Iiwib3ZlcnNjYW5Sb3dDb3VudCIsImJyb3dzZXJTY3JvbGxCYXJXaWR0aCIsImZpZWxkVG9BbGlnblJpZ2h0IiwiQUxMX0ZJRUxEX1RZUEVTIiwiaW50ZWdlciIsInJlYWwiLCJwaW5uZWRDbGFzc0xpc3QiLCJoZWFkZXIiLCJyb3dzIiwidW5waW5uZWRDbGFzc0xpc3QiLCJDb250YWluZXIiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZGF0YVRhYmxlVGV4dENvbG9yIiwiJGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlIiwibW9kYWxTY3JvbGxCYXIiLCJjZWxsQm9yZGVyQ29sb3IiLCJwaW5uZWRHcmlkQm9yZGVyQ29sb3IiLCJldmVuUm93QmFja2dyb3VuZCIsIm9kZFJvd0JhY2tncm91bmQiLCJjZWxsUGFkZGluZ1NpZGUiLCJjZWxsRm9udFNpemUiLCJlZGdlQ2VsbFBhZGRpbmdTaWRlIiwiZGVmYXVsdENvbHVtbldpZHRoIiwiY29sdW1uV2lkdGhGdW5jdGlvbiIsImNvbHVtbnMiLCJjZWxsU2l6ZUNhY2hlIiwiZ2hvc3QiLCJfcmVmIiwiaW5kZXgiLCJkZWZhdWx0R2V0Um93Q2VsbCIsIl9yZWYyIiwiZm9ybWF0dGVyIiwiZGF0YUNvbnRhaW5lciIsImNvbHVtbiIsImNvbE1ldGEiLCJyb3dJbmRleCIsInNvcnRPcmRlciIsInJvd0lkeCIsInR5cGUiLCJ2YWx1ZSIsInZhbHVlQXQiLCJpbmRleE9mIiwidW5kZWZpbmVkIiwicGFyc2VGaWVsZFZhbHVlIiwiU3R5bGVkU3RhdHNDb250cm9sIiwiaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwidG9wIiwiZm9udEZhbWlseU1lZGl1bSIsImFjdGl2ZUNvbG9yIiwiaGVhZGVyQ2VsbFN0YXRzQ29udHJvbEJhY2tncm91bmQiLCJzaG93U3RhdHMiLCJTdGF0c0NvbnRyb2wiLCJfcmVmMyIsInRvZ2dsZVNob3dTdGF0cyIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiQXJyb3dEb3duIiwiaGVpZ2h0IiwiVGFibGVTZWN0aW9uIiwiX3JlZjQiLCJjbGFzc0xpc3QiLCJpc1Bpbm5lZCIsImhlYWRlckdyaWRQcm9wcyIsImZpeGVkV2lkdGgiLCJfcmVmNCRmaXhlZEhlaWdodCIsImZpeGVkSGVpZ2h0Iiwib25TY3JvbGwiLCJzY3JvbGxUb3AiLCJkYXRhR3JpZFByb3BzIiwiY29sdW1uV2lkdGgiLCJfcmVmNCRzZXRHcmlkUmVmIiwic2V0R3JpZFJlZiIsImhlYWRlckNlbGxSZW5kZXIiLCJkYXRhQ2VsbFJlbmRlciIsIl9yZWY0JHNjcm9sbExlZnQiLCJzY3JvbGxMZWZ0IiwiaGVhZGVySGVpZ2h0IiwiaGVhZGVyU3R5bGUiLCJ1c2VNZW1vIiwiY29uY2F0IiwiY29udGVudFN0eWxlIiwiQXV0b1NpemVyIiwiX3JlZjUiLCJ3aWR0aCIsImdyaWREaW1lbnNpb24iLCJjb2x1bW5Db3VudCIsImhlYWRlckdyaWRXaWR0aCIsImRhdGFHcmlkSGVpZ2h0IiwiRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJfZXh0ZW5kczIiLCJjZWxsUmVuZGVyZXIiLCJhcmdzIiwiRFVNTVlfU1RZTEUiLCJEYXRhVGFibGVGYWN0b3J5IiwiZGVwcyIsIkhlYWRlckNlbGxGYWN0b3J5IiwiSGVhZGVyQ2VsbCIsIkRhdGFUYWJsZSIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiQXJyYXkiLCJfa2V5IiwibW9yZU9wdGlvbnNDb2x1bW4iLCJjcmVhdGVSZWYiLCJwaW5uZWRDb2x1bW5zIiwiY3JlYXRlU2VsZWN0b3IiLCJpc0FycmF5IiwiYyIsImluY2x1ZGVzIiwiaGFzTW91bnRlZCIsInNldFN0YXRlIiwic3RhdGUiLCJfdGhpcyRwcm9wcyIsIl90aGlzJHByb3BzJGNlbGxTaXplQyIsInByb3BzQ2FjaGUiLCJfdGhpcyRwcm9wcyRwaW5uZWRDb2wiLCJ1bnBpbm5lZENvbHVtbnMiLCJyb290IiwiY3VycmVudCIsImNsaWVudFdpZHRoIiwiYWRqdXN0V2lkdGgiLCJfcmVmNiIsImFkanVzdENlbGxzVG9Db250YWluZXIiLCJnZXRDZWxsU2l6ZUNhY2hlIiwiZGVib3VuY2UiLCJkb1NjYWxlQ2VsbHNUb1dpZHRoIiwiX3RoaXMkcHJvcHMkZ2V0Um93Q2VsIiwiZ2V0Um93Q2VsbCIsIkRhdGFDZWxsUmVuZGVyZXIiLCJjZWxsSW5mbyIsImNvbHVtbkluZGV4Iiwia2V5IiwiaXNHaG9zdCIsImdldENvbHVtbkZvcm1hdHRlciIsInJvd0NlbGwiLCJsYXN0Um93SW5kZXgiLCJudW1Sb3dzIiwiZW5kQ2VsbCIsImZpcnN0Q2VsbCIsImJvdHRvbUNlbGwiLCJhbGlnblJpZ2h0IiwiTnVtYmVyIiwiY2VsbCIsInRpdGxlIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJzY2FsZUNlbGxzVG9XaWR0aCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlckhlYWRlckNlbGwiLCJ0b2dnbGVNb3JlT3B0aW9ucyIsIl90aGlzMiIsIkhlYWRlckNlbGxSZW5kZXJlciIsInJlbmRlciIsIl90aGlzMyIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzMiRwaW5uZWRDbyIsIl90aGlzJHByb3BzMiR0aGVtZSIsIl90aGlzJHByb3BzMiRmaXhlZEhlaSIsImhhc1N0YXRzIiwiaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGUiLCJfdGhpcyRzdGF0ZSIsIl90aGlzJHN0YXRlJGNlbGxTaXplQyIsInVucGlubmVkQ29sdW1uc0dob3N0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInBpbm5lZENvbHVtbnNXaWR0aCIsInJlZHVjZSIsImFjYyIsInZhbCIsImhhc1Bpbm5lZENvbHVtbnMiLCJfdGhlbWUkaGVhZGVyUm93SGVpZ2giLCJoZWFkZXJSb3dIZWlnaHQiLCJfdGhlbWUkaGVhZGVyU3RhdHNDb24iLCJfdGhlbWUkaGVhZGVyUm93V1N0YXQiLCJoZWFkZXJSb3dXU3RhdHNIZWlnaHQiLCJfdGhlbWUkcm93SGVpZ2h0Iiwicm93SGVpZ2h0Iiwicm93Q291bnQiLCJyZWYiLCJTY3JvbGxTeW5jIiwiX3JlZjciLCJwaW5uZWRHcmlkIiwicmVuZGVyRGF0YUNlbGwiLCJtYXJnaW5MZWZ0IiwidW5waW5uZWRHcmlkIiwiQ29tcG9uZW50Iiwic29ydENvbHVtbiIsIndpdGhUaGVtZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9kYXRhLXRhYmxlL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZiwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtTY3JvbGxTeW5jLCBBdXRvU2l6ZXIsIE9uU2Nyb2xsUGFyYW1zLCBHcmlkUHJvcHMsIEluZGV4fSBmcm9tICdyZWFjdC12aXJ0dWFsaXplZCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnbG9kYXNoL2RlYm91bmNlJztcbmltcG9ydCB7QXJyb3dEb3dufSBmcm9tICcuLi9pY29ucyc7XG5cbmltcG9ydCB7Q2VsbFNpemVDYWNoZX0gZnJvbSAnLi9jZWxsLXNpemUnO1xuXG5pbXBvcnQgR3JpZCBmcm9tICcuL2dyaWQnO1xuaW1wb3J0IEhlYWRlckNlbGxGYWN0b3J5IGZyb20gJy4vaGVhZGVyLWNlbGwnO1xuXG5pbXBvcnQge0NvbE1ldGF9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtwYXJzZUZpZWxkVmFsdWUsIGdldENvbHVtbkZvcm1hdHRlciwgRGF0YUNvbnRhaW5lckludGVyZmFjZX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2FkanVzdENlbGxzVG9Db250YWluZXJ9IGZyb20gJy4vY2VsbC1zaXplJztcblxuaW1wb3J0IHtBTExfRklFTERfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuY29uc3QgZGVmYXVsdEhlYWRlclJvd0hlaWdodCA9IDU1O1xuY29uc3QgZGVmYXVsdEhlYWRlclN0YXRzQ29udHJvbEhlaWdodCA9IDQwO1xuY29uc3QgZGVmYXVsdFJvd0hlaWdodCA9IDMyO1xuY29uc3Qgb3ZlcnNjYW5Db2x1bW5Db3VudCA9IDEwO1xuY29uc3Qgb3ZlcnNjYW5Sb3dDb3VudCA9IDEwO1xuLy8gVGhlIGRlZmF1bHQgc2Nyb2xsYmFyIHdpZHRoIGNhbiByYW5nZSBhbnl3aGVyZSBmcm9tIDEycHggdG8gMTdweFxuY29uc3QgYnJvd3NlclNjcm9sbEJhcldpZHRoID0gMTc7XG5jb25zdCBmaWVsZFRvQWxpZ25SaWdodCA9IHtcbiAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXTogdHJ1ZSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5yZWFsXTogdHJ1ZVxufTtcblxuY29uc3QgcGlubmVkQ2xhc3NMaXN0ID0ge1xuICBoZWFkZXI6ICdwaW5uZWQtY29sdW1ucy0taGVhZGVyIHBpbm5lZC1ncmlkLWNvbnRhaW5lcicsXG4gIHJvd3M6ICdwaW5uZWQtY29sdW1ucy0tcm93cyBwaW5uZWQtZ3JpZC1jb250YWluZXInXG59O1xuXG5jb25zdCB1bnBpbm5lZENsYXNzTGlzdCA9IHtcbiAgaGVhZGVyOiAndW5waW5uZWQtY29sdW1ucy0taGVhZGVyIHVucGlubmVkLWdyaWQtY29udGFpbmVyJyxcbiAgcm93czogJ3VucGlubmVkLWNvbHVtbnMtLXJvd3MgdW5waW5uZWQtZ3JpZC1jb250YWluZXInXG59O1xuXG50eXBlIENvbnRhaW5lclByb3BzID0ge1xuICAkaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXY8Q29udGFpbmVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZsZXgtZ3JvdzogMTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZGF0YVRhYmxlVGV4dENvbG9yfTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLlJlYWN0VmlydHVhbGl6ZWRfX0dyaWQ6Zm9jdXMsXG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuICAuYm9keS1ncmlkIHtcbiAgICAke3Byb3BzID0+IHByb3BzLiRoYXNDdXN0b21TY3JvbGxCYXJTdHlsZSAmJiBwcm9wcy50aGVtZS5tb2RhbFNjcm9sbEJhcn1cbiAgfVxuXG4gIC5jZWxsIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAucmVzdWx0cy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnVucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHNjcm9sbGJhclxuICAgICAgcGFkZGluZy1ib3R0b206ICR7YnJvd3NlclNjcm9sbEJhcldpZHRofXB4O1xuICAgIH1cblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ncmlkLXJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgLmdyaWQtY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC5waW5uZWQtZ3JpZC1jb250YWluZXIge1xuICAgICAgZmxleDogMCAwIDc1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBpbm5lZEdyaWRCb3JkZXJDb2xvcn07XG4gICAgfVxuICAgIC5ldmVuLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmV2ZW5Sb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLm9kZC1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5vZGRSb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLmNlbGwsXG4gICAgLmhlYWRlci1jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC8vIGhlYWRlciBib3JkZXIgaXMgcmVuZGVyZWQgYnkgaGVhZGVyIGNvbnRhaW5lclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIC5uLXNvcnQtaWR4IHtcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxGb250U2l6ZX1weDtcblxuICAgICAgLnJlc3VsdC1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbC5lbmQtY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwuZW5kLWNlbGwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5maXJzdC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5maXJzdC1jZWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5ib3R0b20tY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuY2VsbC5hbGlnbi1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgZGVmYXVsdENvbHVtbldpZHRoID0gMjAwO1xuXG5leHBvcnQgdHlwZSBTb3J0Q29sdW1uID0ge1xuICBjb2x1bW4/OiBzdHJpbmc7XG4gIG1vZGU/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2x1bW5XaWR0aEZ1bmN0aW9uID1cbiAgKGNvbHVtbnMsIGNlbGxTaXplQ2FjaGUsIGdob3N0PykgPT5cbiAgKHtpbmRleH0pID0+IHtcbiAgICByZXR1cm4gKGNvbHVtbnNbaW5kZXhdIHx8IHt9KS5naG9zdFxuICAgICAgPyBnaG9zdFxuICAgICAgOiBjZWxsU2l6ZUNhY2hlW2NvbHVtbnNbaW5kZXhdXSB8fCBkZWZhdWx0Q29sdW1uV2lkdGg7XG4gIH07XG5cbmludGVyZmFjZSBHZXRSb3dDZWxsUHJvcHMge1xuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHwgbnVsbDtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBjb2x1bW46IHN0cmluZztcbiAgY29sTWV0YTtcbiAgcm93SW5kZXg6IG51bWJlcjtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xufVxuXG4vKlxuICogVGhpcyBpcyBhbiBhY2Nlc3NvciBtZXRob2QgdXNlZCB0byBnZW5lcmFsaXplIGdldHRpbmcgYSBjZWxsIGZyb20gYSBkYXRhIHJvd1xuICovXG5jb25zdCBkZWZhdWx0R2V0Um93Q2VsbCA9IChcbiAge2RhdGFDb250YWluZXIsIGNvbHVtbnMsIGNvbHVtbiwgY29sTWV0YSwgcm93SW5kZXgsIHNvcnRPcmRlcn06IEdldFJvd0NlbGxQcm9wcyxcbiAgZm9ybWF0dGVyXG4pID0+IHtcbiAgY29uc3Qgcm93SWR4ID0gc29ydE9yZGVyICYmIHNvcnRPcmRlci5sZW5ndGggPyBnZXQoc29ydE9yZGVyLCByb3dJbmRleCkgOiByb3dJbmRleDtcbiAgY29uc3Qge3R5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuXG4gIGNvbnN0IHZhbHVlID0gZGF0YUNvbnRhaW5lcj8udmFsdWVBdChyb3dJZHgsIGNvbHVtbnMuaW5kZXhPZihjb2x1bW4pKTtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnXG4gICAgPyAnJ1xuICAgIDogZm9ybWF0dGVyXG4gICAgPyBmb3JtYXR0ZXIodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIHR5cGUpO1xufTtcblxudHlwZSBTdGF0c0NvbnRyb2xQcm9wcyA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRTdGF0c0NvbnRyb2wgPSBzdHlsZWQuZGl2PFN0YXRzQ29udHJvbFByb3BzPmBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlclN0YXRzQ29udHJvbEhlaWdodH1weDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7cHJvcHMgPT4gcHJvcHMudG9wfXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5TWVkaXVtfXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsU3RhdHNDb250cm9sQmFja2dyb3VuZH07XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJHtwcm9wcyA9PiAocHJvcHMuc2hvd1N0YXRzID8gMTgwIDogMCl9ZGVnKTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0YXRzQ29udHJvbCA9ICh7XG4gIHRvcCxcbiAgc2hvd1N0YXRzLFxuICB0b2dnbGVTaG93U3RhdHNcbn06IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHRvZ2dsZVNob3dTdGF0czogKCkgPT4gdm9pZDtcbn0pID0+IChcbiAgPFN0eWxlZFN0YXRzQ29udHJvbCB0b3A9e3RvcH0gc2hvd1N0YXRzPXtzaG93U3RhdHN9PlxuICAgIDxkaXYgb25DbGljaz17dG9nZ2xlU2hvd1N0YXRzfT5cbiAgICAgIHtzaG93U3RhdHMgPyAnSGlkZSBDb2x1bW4gU3RhdHMnIDogJ1Nob3cgQ29sdW1uIFN0YXRzJ31cbiAgICAgIDxBcnJvd0Rvd24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvU3R5bGVkU3RhdHNDb250cm9sPlxuKTtcblxuaW50ZXJmYWNlIFRhYmxlU2VjdGlvblByb3BzIHtcbiAgY2xhc3NMaXN0Pzoge1xuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIHJvd3M6IHN0cmluZztcbiAgfTtcbiAgaXNQaW5uZWQ/OiBib29sZWFuO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGhlYWRlckdyaWRQcm9wcz87XG4gIGZpeGVkV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIG9uU2Nyb2xsPzogKHBhcmFtczogT25TY3JvbGxQYXJhbXMpID0+IHZvaWQ7XG4gIHNjcm9sbFRvcD86IG51bWJlcjtcbiAgZGF0YUdyaWRQcm9wczoge1xuICAgIHJvd0hlaWdodDogbnVtYmVyIHwgKChwYXJhbXM6IEluZGV4KSA9PiBudW1iZXIpO1xuICAgIHJvd0NvdW50OiBudW1iZXI7XG4gIH0gJiBQYXJ0aWFsPEdyaWRQcm9wcz47XG4gIGNvbHVtbldpZHRoPztcbiAgc2V0R3JpZFJlZj86IChyZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgaGVhZGVyQ2VsbFJlbmRlcj87XG4gIGRhdGFDZWxsUmVuZGVyPztcbiAgc2Nyb2xsTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlU2VjdGlvbiA9ICh7XG4gIGNsYXNzTGlzdCxcbiAgaXNQaW5uZWQsXG4gIGNvbHVtbnMsXG4gIGhlYWRlckdyaWRQcm9wcyxcbiAgZml4ZWRXaWR0aCxcbiAgZml4ZWRIZWlnaHQgPSB1bmRlZmluZWQsXG4gIG9uU2Nyb2xsLFxuICBzY3JvbGxUb3AsXG4gIGRhdGFHcmlkUHJvcHMsXG4gIGNvbHVtbldpZHRoLFxuICBzZXRHcmlkUmVmID0gdW5kZWZpbmVkLFxuICBoZWFkZXJDZWxsUmVuZGVyLFxuICBkYXRhQ2VsbFJlbmRlcixcbiAgc2Nyb2xsTGVmdCA9IDBcbn06IFRhYmxlU2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckdyaWRQcm9wcy5oZWlnaHQ7XG5cbiAgY29uc3QgaGVhZGVyU3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBoZWlnaHQ6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0b3A6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEF1dG9TaXplcj5cbiAgICAgIHsoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbnMubGVuZ3RoLFxuICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgIHdpZHRoOiBmaXhlZFdpZHRoIHx8IHdpZHRoXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhlYWRlckdyaWRXaWR0aCA9IGZpeGVkV2lkdGggfHwgd2lkdGg7XG4gICAgICAgIGNvbnN0IGRhdGFHcmlkSGVpZ2h0ID0gZml4ZWRIZWlnaHQgfHwgaGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5oZWFkZXIpfVxuICAgICAgICAgICAgICBzdHlsZT17aGVhZGVyU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyPXtoZWFkZXJDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJHcmlkUHJvcHMuaGVpZ2h0ICsgYnJvd3NlclNjcm9sbEJhcldpZHRofVxuICAgICAgICAgICAgICAgIHdpZHRoPXtoZWFkZXJHcmlkV2lkdGh9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17YXJncyA9PiBvblNjcm9sbD8uKHsuLi5hcmdzLCBzY3JvbGxUb3A6IHNjcm9sbFRvcCA/PyAwfSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5yb3dzKX1cbiAgICAgICAgICAgICAgc3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2RhdGFDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5kYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgIHsuLi5ncmlkRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNQaW5uZWQgPyAncGlubmVkLWdyaWQnIDogJ2JvZHktZ3JpZCd9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtkYXRhR3JpZEhlaWdodCAtIGhlYWRlckdyaWRQcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17c2V0R3JpZFJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0F1dG9TaXplcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlUHJvcHMge1xuICBkYXRhSWQ/OiBzdHJpbmc7XG4gIGhhc1N0YXRzPzogYm9vbGVhbjtcbiAgY2VsbFNpemVDYWNoZT86IENlbGxTaXplQ2FjaGU7XG4gIHBpbm5lZENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBmaXhlZFdpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgdGhlbWU/OiBhbnk7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIGNvbE1ldGE6IENvbE1ldGE7XG4gIHNvcnRDb2x1bW46IFNvcnRDb2x1bW47XG4gIHNvcnRUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xuICBwaW5UYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PzogKGZvcm1hdHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB2b2lkO1xuICBjb3B5VGFibGVDb2x1bW46IChjb2x1bW46IHN0cmluZykgPT4gdm9pZDtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xuICBzaG93U3RhdHM/OiBib29sZWFuO1xuICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT86IGJvb2xlYW47XG4gIGdldFJvd0NlbGw/OiAocmVuZGVyRGF0YUNlbGxQcm9wczogR2V0Um93Q2VsbFByb3BzLCBmb3JtYXR0ZXI6IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGF0YVRhYmxlU3RhdGUge1xuICBjZWxsU2l6ZUNhY2hlPzogQ2VsbFNpemVDYWNoZTtcbiAgbW9yZU9wdGlvbnNDb2x1bW4/O1xuICBnaG9zdD87XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IERVTU1ZX1NUWUxFID0ge307XG5cbkRhdGFUYWJsZUZhY3RvcnkuZGVwcyA9IFtIZWFkZXJDZWxsRmFjdG9yeV07XG5mdW5jdGlvbiBEYXRhVGFibGVGYWN0b3J5KFxuICBIZWFkZXJDZWxsOiBSZXR1cm5UeXBlPHR5cGVvZiBIZWFkZXJDZWxsRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+IHtcbiAgY2xhc3MgRGF0YVRhYmxlIGV4dGVuZHMgQ29tcG9uZW50PERhdGFUYWJsZVByb3BzLCBEYXRhVGFibGVTdGF0ZT4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBkYXRhQ29udGFpbmVyOiBudWxsLFxuICAgICAgcGlubmVkQ29sdW1uczogW10sXG4gICAgICBjb2xNZXRhOiB7fSxcbiAgICAgIGNlbGxTaXplQ2FjaGU6IHt9LFxuICAgICAgc29ydENvbHVtbjoge30sXG4gICAgICBmaXhlZFdpZHRoOiBudWxsLFxuICAgICAgZml4ZWRIZWlnaHQ6IG51bGwsXG4gICAgICB0aGVtZToge30sXG4gICAgICBoYXNTdGF0czogZmFsc2UsXG4gICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZTogdHJ1ZVxuICAgIH07XG5cbiAgICBwaW5uZWRHcmlkOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHVucGlubmVkR3JpZDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBoYXNNb3VudGVkID0gZmFsc2U7XG5cbiAgICBzdGF0ZTogRGF0YVRhYmxlU3RhdGUgPSB7XG4gICAgICBjZWxsU2l6ZUNhY2hlOiB7fSxcbiAgICAgIG1vcmVPcHRpb25zQ29sdW1uOiBudWxsLFxuICAgICAgc2hvd1N0YXRzOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5oYXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKTtcbiAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcHMuY2VsbFNpemVDYWNoZSAhPT0gcHJldlByb3BzLmNlbGxTaXplQ2FjaGUgfHxcbiAgICAgICAgdGhpcy5wcm9wcy5waW5uZWRDb2x1bW5zICE9PSBwcmV2UHJvcHMucGlubmVkQ29sdW1uc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuaGFzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgpO1xuICAgIH1cblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgY29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLmNvbHVtbnM7XG4gICAgcGlubmVkQ29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLnBpbm5lZENvbHVtbnM7XG4gICAgdW5waW5uZWRDb2x1bW5zID0gY3JlYXRlU2VsZWN0b3IodGhpcy5jb2x1bW5zLCB0aGlzLnBpbm5lZENvbHVtbnMsIChjb2x1bW5zLCBwaW5uZWRDb2x1bW5zKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkocGlubmVkQ29sdW1ucykgPyBjb2x1bW5zIDogY29sdW1ucy5maWx0ZXIoYyA9PiAhcGlubmVkQ29sdW1ucy5pbmNsdWRlcyhjKSlcbiAgICApO1xuXG4gICAgdG9nZ2xlTW9yZU9wdGlvbnMgPSBtb3JlT3B0aW9uc0NvbHVtbiA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtbjpcbiAgICAgICAgICAgIHRoaXMuc3RhdGUubW9yZU9wdGlvbnNDb2x1bW4gPT09IG1vcmVPcHRpb25zQ29sdW1uID8gbnVsbCA6IG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgdG9nZ2xlU2hvd1N0YXRzID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZCkgdGhpcy5zZXRTdGF0ZSh7c2hvd1N0YXRzOiAhdGhpcy5zdGF0ZS5zaG93U3RhdHN9KTtcbiAgICB9O1xuICAgIGdldENlbGxTaXplQ2FjaGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZTogcHJvcHNDYWNoZSA9IHt9LCBmaXhlZFdpZHRoLCBwaW5uZWRDb2x1bW5zID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB3aWR0aCA9IGZpeGVkV2lkdGggPyBmaXhlZFdpZHRoIDogdGhpcy5yb290LmN1cnJlbnQgPyB0aGlzLnJvb3QuY3VycmVudC5jbGllbnRXaWR0aCA6IDA7XG5cbiAgICAgIC8vIHBpbiBjb2x1bW4gYm9yZGVyIGlzIDIgcGl4ZWwgdnMgMSBwaXhlbFxuICAgICAgY29uc3QgYWRqdXN0V2lkdGggPSBwaW5uZWRDb2x1bW5zLmxlbmd0aCA/IHdpZHRoIC0gMSA6IHdpZHRoO1xuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGUsIGdob3N0fSA9IGFkanVzdENlbGxzVG9Db250YWluZXIoXG4gICAgICAgIGFkanVzdFdpZHRoLFxuICAgICAgICBwcm9wc0NhY2hlLFxuICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICB1bnBpbm5lZENvbHVtbnNcbiAgICAgICkgYXMge2NlbGxTaXplQ2FjaGU6IENlbGxTaXplQ2FjaGU7IGdob3N0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgZ2hvc3RcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGRvU2NhbGVDZWxsc1RvV2lkdGggPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKSB0aGlzLnNldFN0YXRlKHRoaXMuZ2V0Q2VsbFNpemVDYWNoZSgpKTtcbiAgICB9O1xuXG4gICAgc2NhbGVDZWxsc1RvV2lkdGggPSBkZWJvdW5jZSh0aGlzLmRvU2NhbGVDZWxsc1RvV2lkdGgsIDMwMCk7XG5cbiAgICByZW5kZXJEYXRhQ2VsbCA9IChjb2x1bW5zLCBpc1Bpbm5lZCwgcHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiB7XG4gICAgICBjb25zdCBnZXRSb3dDZWxsID0gdGhpcy5wcm9wcy5nZXRSb3dDZWxsID8/IGRlZmF1bHRHZXRSb3dDZWxsO1xuICAgICAgY29uc3QgRGF0YUNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IHtcbiAgICAgICAgY29uc3Qge2NvbHVtbkluZGV4LCBrZXksIHN0eWxlLCByb3dJbmRleH0gPSBjZWxsSW5mbztcbiAgICAgICAgY29uc3Qge2RhdGFDb250YWluZXIsIGNvbE1ldGF9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBjb25zdCBpc0dob3N0ID0gY29sdW1uLmdob3N0O1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGlzR2hvc3QgPyBudWxsIDogZ2V0Q29sdW1uRm9ybWF0dGVyKGNvbE1ldGFbY29sdW1uXSk7XG4gICAgICAgIGNvbnN0IHJvd0NlbGwgPSBpc0dob3N0ID8gJycgOiBnZXRSb3dDZWxsKHsuLi5wcm9wcywgY29sdW1uLCByb3dJbmRleH0sIGZvcm1hdHRlcik7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc0dob3N0ID8gbnVsbCA6IGNvbE1ldGFbY29sdW1uXS50eXBlO1xuXG4gICAgICAgIGNvbnN0IGxhc3RSb3dJbmRleCA9IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSAtIDEgOiAwO1xuXG4gICAgICAgIGNvbnN0IGVuZENlbGwgPSBjb2x1bW5JbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBmaXJzdENlbGwgPSBjb2x1bW5JbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgYm90dG9tQ2VsbCA9IHJvd0luZGV4ID09PSBsYXN0Um93SW5kZXg7XG4gICAgICAgIGNvbnN0IGFsaWduUmlnaHQgPSBmaWVsZFRvQWxpZ25SaWdodFtOdW1iZXIodHlwZSldO1xuXG4gICAgICAgIGNvbnN0IGNlbGwgPSAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdjZWxsJywge1xuICAgICAgICAgICAgICBbcm93SW5kZXggJSAyID09PSAwID8gJ2V2ZW4tcm93JyA6ICdvZGQtcm93J106IHRydWUsXG4gICAgICAgICAgICAgIFtgcm93LSR7cm93SW5kZXh9YF06IHRydWUsXG4gICAgICAgICAgICAgICdwaW5uZWQtY2VsbCc6IGlzUGlubmVkLFxuICAgICAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbCxcbiAgICAgICAgICAgICAgJ2VuZC1jZWxsJzogZW5kQ2VsbCxcbiAgICAgICAgICAgICAgJ2JvdHRvbS1jZWxsJzogYm90dG9tQ2VsbCxcbiAgICAgICAgICAgICAgJ2FsaWduLXJpZ2h0JzogYWxpZ25SaWdodFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHRpdGxlPXtpc0dob3N0ID8gdW5kZWZpbmVkIDogcm93Q2VsbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YCR7cm93Q2VsbH0ke2VuZENlbGwgPyAnXFxuJyA6ICdcXHQnfWB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIERhdGFDZWxsUmVuZGVyZXI7XG4gICAgfTtcblxuICAgIHJlbmRlckhlYWRlckNlbGwoY29sdW1ucywgaXNQaW5uZWQsIHByb3BzLCB0b2dnbGVNb3JlT3B0aW9ucywgbW9yZU9wdGlvbnNDb2x1bW4pIHtcbiAgICAgIGNvbnN0IEhlYWRlckNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IChcbiAgICAgICAgPEhlYWRlckNlbGxcbiAgICAgICAgICBjZWxsSW5mbz17Y2VsbEluZm99XG4gICAgICAgICAga2V5PXtjZWxsSW5mby5jb2x1bW5JbmRleH1cbiAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgIGlzUGlubmVkPXtpc1Bpbm5lZH1cbiAgICAgICAgICBzaG93U3RhdHM9e3RoaXMuc3RhdGUuc2hvd1N0YXRzfVxuICAgICAgICAgIHByb3BzPXtwcm9wc31cbiAgICAgICAgICB0b2dnbGVNb3JlT3B0aW9ucz17dG9nZ2xlTW9yZU9wdGlvbnN9XG4gICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW49e21vcmVPcHRpb25zQ29sdW1ufVxuICAgICAgICAgIC8vIHBhc3MgZHVtbXkgc3R5bGUgdG8gcHJldmVudCB3YXJuaW5ncyBmcm9tIHJlYWN0LXZpcnR1YWxpemVkIEdyaWRcbiAgICAgICAgICBzdHlsZT17RFVNTVlfU1RZTEV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgICAgcmV0dXJuIEhlYWRlckNlbGxSZW5kZXJlcjtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICBwaW5uZWRDb2x1bW5zID0gW10sXG4gICAgICAgIHRoZW1lID0ge30sXG4gICAgICAgIGZpeGVkV2lkdGgsXG4gICAgICAgIGZpeGVkSGVpZ2h0ID0gMCxcbiAgICAgICAgaGFzU3RhdHMsXG4gICAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZSA9IHt9LCBtb3JlT3B0aW9uc0NvbHVtbiwgZ2hvc3QsIHNob3dTdGF0c30gPSB0aGlzLnN0YXRlO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zR2hvc3QgPSBnaG9zdFxuICAgICAgICA/IFsuLi51bnBpbm5lZENvbHVtbnMsIHtnaG9zdDogdHJ1ZX0gYXMgc3RyaW5nICYge2dob3N0OiBib29sZWFufV1cbiAgICAgICAgOiB1bnBpbm5lZENvbHVtbnM7XG4gICAgICBjb25zdCBwaW5uZWRDb2x1bW5zV2lkdGggPSBwaW5uZWRDb2x1bW5zLnJlZHVjZShcbiAgICAgICAgKGFjYywgdmFsKSA9PiBhY2MgKyAoZ2V0KGNlbGxTaXplQ2FjaGUsIHZhbCwgMCkgYXMgbnVtYmVyKSxcbiAgICAgICAgMFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGFzUGlubmVkQ29sdW1ucyA9IEJvb2xlYW4ocGlubmVkQ29sdW1ucy5sZW5ndGgpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBoZWFkZXJSb3dIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQgPSBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICBoZWFkZXJSb3dXU3RhdHNIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICByb3dIZWlnaHQgPSBkZWZhdWx0Um93SGVpZ2h0XG4gICAgICB9ID0gdGhlbWU7XG5cbiAgICAgIGNvbnN0IGhlYWRlckdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgY2xhc3NOYW1lOiAnaGVhZGVyLWdyaWQnLFxuICAgICAgICBoZWlnaHQ6ICFoYXNTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93SGVpZ2h0XG4gICAgICAgICAgOiBzaG93U3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd1dTdGF0c0hlaWdodFxuICAgICAgICAgIDogaGVhZGVyUm93SGVpZ2h0ICsgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICByb3dDb3VudDogMSxcbiAgICAgICAgcm93SGVpZ2h0OiAhaGFzU3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd0hlaWdodFxuICAgICAgICAgIDogc2hvd1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dXU3RhdHNIZWlnaHRcbiAgICAgICAgICA6IGhlYWRlclJvd0hlaWdodCArIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGF0YUdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgb3ZlcnNjYW5Db2x1bW5Db3VudCxcbiAgICAgICAgb3ZlcnNjYW5Sb3dDb3VudCxcbiAgICAgICAgcm93Q291bnQ6IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSA6IDAsXG4gICAgICAgIHJvd0hlaWdodFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGEtdGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAkaGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGU9e2hhc0N1c3RvbVNjcm9sbEJhclN0eWxlfVxuICAgICAgICA+XG4gICAgICAgICAge09iamVjdC5rZXlzKGNlbGxTaXplQ2FjaGUpLmxlbmd0aCA/IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxTY3JvbGxTeW5jPlxuICAgICAgICAgICAgICAgIHsoe29uU2Nyb2xsLCBzY3JvbGxMZWZ0LCBzY3JvbGxUb3B9KSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlc3VsdHMtdGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtoYXNQaW5uZWRDb2x1bW5zICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PVwicGlubmVkLWNvbHVtbnNcIiBjbGFzc05hbWU9XCJwaW5uZWQtY29sdW1ucyBncmlkLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVTZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0PXtwaW5uZWRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaW5uZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXtwaW5uZWRDb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckdyaWRQcm9wcz17aGVhZGVyR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkV2lkdGg9e3Bpbm5lZENvbHVtbnNXaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbD17YXJncyA9PiBvblNjcm9sbCh7Li4uYXJncywgc2Nyb2xsTGVmdH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvcD17c2Nyb2xsVG9wfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUdyaWRQcm9wcz17ZGF0YUdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRHcmlkUmVmPXtwaW5uZWRHcmlkID0+ICh0aGlzLnBpbm5lZEdyaWQgPSBwaW5uZWRHcmlkKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aD17Y29sdW1uV2lkdGhGdW5jdGlvbihwaW5uZWRDb2x1bW5zLCBjZWxsU2l6ZUNhY2hlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckhlYWRlckNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZU1vcmVPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFDZWxsUmVuZGVyPXt0aGlzLnJlbmRlckRhdGFDZWxsKHBpbm5lZENvbHVtbnMsIHRydWUsIHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJ1bnBpbm5lZC1jb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IGAke2hhc1Bpbm5lZENvbHVtbnMgPyBgJHtwaW5uZWRDb2x1bW5zV2lkdGh9cHhgIDogJzAnfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1bnBpbm5lZC1jb2x1bW5zIGdyaWQtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8VGFibGVTZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdD17dW5waW5uZWRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGlubmVkPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucz17dW5waW5uZWRDb2x1bW5zR2hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckdyaWRQcm9wcz17aGVhZGVyR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZFdpZHRoPXtmaXhlZFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlZEhlaWdodD17Zml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFHcmlkUHJvcHM9e2RhdGFHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNldEdyaWRSZWY9e3VucGlubmVkR3JpZCA9PiAodGhpcy51bnBpbm5lZEdyaWQgPSB1bnBpbm5lZEdyaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5XaWR0aD17Y29sdW1uV2lkdGhGdW5jdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsU2l6ZUNhY2hlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdob3N0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckNlbGxSZW5kZXI9e3RoaXMucmVuZGVySGVhZGVyQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9yZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUNlbGxSZW5kZXI9e3RoaXMucmVuZGVyRGF0YUNlbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5waW5uZWRDb2x1bW5zR2hvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvU2Nyb2xsU3luYz5cbiAgICAgICAgICAgICAge2hhc1N0YXRzID8gKFxuICAgICAgICAgICAgICAgIDxTdGF0c0NvbnRyb2xcbiAgICAgICAgICAgICAgICAgIHRvcD17aGVhZGVyUm93SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgc2hvd1N0YXRzPXtzaG93U3RhdHN9XG4gICAgICAgICAgICAgICAgICB0b2dnbGVTaG93U3RhdHM9e3RoaXMudG9nZ2xlU2hvd1N0YXRzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2l0aFRoZW1lKERhdGFUYWJsZSBhcyBSZWFjdC5Db21wb25lbnRUeXBlPERhdGFUYWJsZVByb3BzPik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFUYWJsZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFILHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxJQUFBLEdBQUFGLHNC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
|