@kepler.gl/components 3.0.0-alpha.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bottom-widget.js +1 -21
- package/dist/common/action-panel.js +1 -21
- package/dist/common/animation-control/animation-control.js +1 -21
- package/dist/common/animation-control/animation-controller.js +1 -21
- package/dist/common/animation-control/animation-speed-slider.js +1 -21
- package/dist/common/animation-control/animation-window-control.js +3 -21
- package/dist/common/animation-control/floating-time-display.js +1 -21
- package/dist/common/animation-control/play-control.js +3 -21
- package/dist/common/animation-control/playback-controls.js +1 -21
- package/dist/common/animation-control/reset-control.js +3 -21
- package/dist/common/animation-control/speed-control.js +1 -21
- package/dist/common/animation-control/window-action-control.js +3 -21
- package/dist/common/checkbox.js +1 -21
- package/dist/common/color-legend.js +1 -21
- package/dist/common/data-table/button.js +1 -21
- package/dist/common/data-table/canvas.js +1 -21
- package/dist/common/data-table/cell-size.js +1 -21
- package/dist/common/data-table/display-format.js +1 -21
- package/dist/common/data-table/grid.js +1 -21
- package/dist/common/data-table/header-cell.js +1 -21
- package/dist/common/data-table/index.js +1 -21
- package/dist/common/data-table/option-dropdown.js +1 -21
- package/dist/common/dataset-label.js +1 -21
- package/dist/common/error-boundary.js +1 -21
- package/dist/common/field-selector.d.ts +1 -0
- package/dist/common/field-selector.js +3 -21
- package/dist/common/field-token.d.ts +4 -0
- package/dist/common/field-token.js +1 -21
- package/dist/common/file-uploader/file-drop.js +1 -21
- package/dist/common/file-uploader/file-upload-progress.js +1 -21
- package/dist/common/file-uploader/file-upload.js +1 -21
- package/dist/common/file-uploader/upload-button.js +1 -21
- package/dist/common/flex-container.d.ts +3 -0
- package/dist/common/flex-container.js +23 -0
- package/dist/common/histogram-plot.js +1 -21
- package/dist/common/icon-button.d.ts +1 -1
- package/dist/common/icon-button.js +1 -21
- package/dist/common/icons/add.js +1 -21
- package/dist/common/icons/anchor_window.js +6 -22
- package/dist/common/icons/arrow-down-alt.js +1 -21
- package/dist/common/icons/arrow-down-small.d.ts +14 -0
- package/dist/common/icons/arrow-down-small.js +72 -0
- package/dist/common/icons/arrow-down-solid.js +1 -21
- package/dist/common/icons/arrow-down.js +1 -21
- package/dist/common/icons/arrow-left.js +1 -21
- package/dist/common/icons/arrow-right.js +1 -21
- package/dist/common/icons/arrow-up-alt.js +1 -21
- package/dist/common/icons/arrow-up-solid.js +1 -21
- package/dist/common/icons/arrow-up.js +1 -21
- package/dist/common/icons/base.js +1 -21
- package/dist/common/icons/bug.js +1 -21
- package/dist/common/icons/calendar.d.ts +10 -0
- package/dist/common/icons/calendar.js +66 -0
- package/dist/common/icons/cancel.js +1 -21
- package/dist/common/icons/checkmark.js +1 -21
- package/dist/common/icons/clipboard.js +1 -21
- package/dist/common/icons/clock.js +1 -21
- package/dist/common/icons/close.js +1 -21
- package/dist/common/icons/code-alt.js +1 -21
- package/dist/common/icons/copy.js +1 -21
- package/dist/common/icons/crosshairs.js +1 -21
- package/dist/common/icons/cube-3d.js +1 -21
- package/dist/common/icons/cursor-click.js +1 -21
- package/dist/common/icons/cursor-point.js +1 -21
- package/dist/common/icons/data-table.js +1 -21
- package/dist/common/icons/db.js +1 -21
- package/dist/common/icons/delete.js +1 -21
- package/dist/common/icons/docs.js +1 -21
- package/dist/common/icons/drag-n-drop.js +1 -21
- package/dist/common/icons/draw-polygon.js +1 -21
- package/dist/common/icons/effects/brightness-contrast.d.ts +14 -0
- package/dist/common/icons/effects/brightness-contrast.js +88 -0
- package/dist/common/icons/effects/color-halftone.d.ts +14 -0
- package/dist/common/icons/effects/color-halftone.js +127 -0
- package/dist/common/icons/effects/dot-screen.d.ts +14 -0
- package/dist/common/icons/effects/dot-screen.js +122 -0
- package/dist/common/icons/effects/edge-work.d.ts +14 -0
- package/dist/common/icons/effects/edge-work.js +81 -0
- package/dist/common/icons/effects/hexagonal-pixelate.d.ts +14 -0
- package/dist/common/icons/effects/hexagonal-pixelate.js +148 -0
- package/dist/common/icons/effects/hue-saturation.d.ts +14 -0
- package/dist/common/icons/effects/hue-saturation.js +79 -0
- package/dist/common/icons/effects/ink.d.ts +14 -0
- package/dist/common/icons/effects/ink.js +78 -0
- package/dist/common/icons/effects/light-and-shadow.d.ts +14 -0
- package/dist/common/icons/effects/light-and-shadow.js +67 -0
- package/dist/common/icons/effects/magic-wand.d.ts +14 -0
- package/dist/common/icons/effects/magic-wand.js +79 -0
- package/dist/common/icons/effects/magnify.d.ts +14 -0
- package/dist/common/icons/effects/magnify.js +86 -0
- package/dist/common/icons/effects/noise.d.ts +14 -0
- package/dist/common/icons/effects/noise.js +132 -0
- package/dist/common/icons/effects/sepia.d.ts +14 -0
- package/dist/common/icons/effects/sepia.js +79 -0
- package/dist/common/icons/effects/tilt-shift.d.ts +14 -0
- package/dist/common/icons/effects/tilt-shift.js +88 -0
- package/dist/common/icons/effects/triangle-blur.d.ts +14 -0
- package/dist/common/icons/effects/triangle-blur.js +83 -0
- package/dist/common/icons/effects/vibrance.d.ts +14 -0
- package/dist/common/icons/effects/vibrance.js +79 -0
- package/dist/common/icons/effects/vignette.d.ts +14 -0
- package/dist/common/icons/effects/vignette.js +72 -0
- package/dist/common/icons/effects/zoom-blur.d.ts +14 -0
- package/dist/common/icons/effects/zoom-blur.js +107 -0
- package/dist/common/icons/email.js +1 -21
- package/dist/common/icons/expand.js +1 -21
- package/dist/common/icons/eye-seen.js +1 -21
- package/dist/common/icons/eye-unseen.js +1 -21
- package/dist/common/icons/file-type.js +1 -21
- package/dist/common/icons/file.js +1 -21
- package/dist/common/icons/files.js +1 -21
- package/dist/common/icons/filter-funnel.js +1 -21
- package/dist/common/icons/free-window.js +6 -22
- package/dist/common/icons/gear.js +1 -21
- package/dist/common/icons/globe.d.ts +15 -0
- package/dist/common/icons/globe.js +72 -0
- package/dist/common/icons/hash.js +1 -21
- package/dist/common/icons/histogram.js +1 -21
- package/dist/common/icons/index.d.ts +25 -0
- package/dist/common/icons/index.js +201 -21
- package/dist/common/icons/info.js +1 -21
- package/dist/common/icons/layers.js +1 -21
- package/dist/common/icons/left-arrow.js +1 -21
- package/dist/common/icons/legend.js +1 -21
- package/dist/common/icons/line-chart.js +1 -21
- package/dist/common/icons/location-marker.d.ts +14 -0
- package/dist/common/icons/location-marker.js +77 -0
- package/dist/common/icons/login.js +1 -21
- package/dist/common/icons/logout.js +1 -21
- package/dist/common/icons/map-icon.js +1 -21
- package/dist/common/icons/map.js +1 -21
- package/dist/common/icons/messages.js +1 -21
- package/dist/common/icons/minus.js +1 -21
- package/dist/common/icons/moon.d.ts +14 -0
- package/dist/common/icons/moon.js +77 -0
- package/dist/common/icons/order-by-dataset.js +6 -22
- package/dist/common/icons/order-by-list.js +6 -22
- package/dist/common/icons/pause.js +1 -21
- package/dist/common/icons/picture.js +1 -21
- package/dist/common/icons/pin.js +1 -21
- package/dist/common/icons/play.js +1 -21
- package/dist/common/icons/polygon.js +1 -21
- package/dist/common/icons/rectangle.js +1 -21
- package/dist/common/icons/reduce.js +1 -21
- package/dist/common/icons/reset.js +1 -21
- package/dist/common/icons/rocket.js +1 -21
- package/dist/common/icons/save.js +1 -21
- package/dist/common/icons/save2.js +1 -21
- package/dist/common/icons/search.js +1 -21
- package/dist/common/icons/settings.js +1 -21
- package/dist/common/icons/share.js +1 -21
- package/dist/common/icons/split.js +1 -21
- package/dist/common/icons/square-select.js +1 -21
- package/dist/common/icons/sun.d.ts +14 -0
- package/dist/common/icons/sun.js +93 -0
- package/dist/common/icons/sunrise.d.ts +14 -0
- package/dist/common/icons/sunrise.js +89 -0
- package/dist/common/icons/sunset.d.ts +14 -0
- package/dist/common/icons/sunset.js +89 -0
- package/dist/common/icons/trash.js +1 -21
- package/dist/common/icons/vert-dots.js +1 -21
- package/dist/common/icons/vert-three-dots.js +1 -21
- package/dist/common/icons/warning-sign.js +1 -21
- package/dist/common/icons/warning.js +1 -21
- package/dist/common/image-preview.js +1 -21
- package/dist/common/index.js +1 -21
- package/dist/common/info-helper.js +1 -21
- package/dist/common/item-selector/accessor.js +5 -22
- package/dist/common/item-selector/chickleted-input.d.ts +1 -0
- package/dist/common/item-selector/chickleted-input.js +104 -44
- package/dist/common/item-selector/dropdown-list.d.ts +2 -0
- package/dist/common/item-selector/dropdown-list.js +10 -25
- package/dist/common/item-selector/item-selector.d.ts +3 -0
- package/dist/common/item-selector/item-selector.js +11 -23
- package/dist/common/item-selector/typeahead.js +1 -21
- package/dist/common/line-chart.js +1 -21
- package/dist/common/loading-spinner.js +1 -21
- package/dist/common/logo.js +1 -21
- package/dist/common/map-layer-selector.js +1 -21
- package/dist/common/modal.js +25 -28
- package/dist/common/portaled.d.ts +15 -2
- package/dist/common/portaled.js +1 -21
- package/dist/common/progress-bar.js +1 -21
- package/dist/common/range-brush.js +1 -21
- package/dist/common/range-plot.js +1 -21
- package/dist/common/range-slider.d.ts +1 -1
- package/dist/common/range-slider.js +1 -21
- package/dist/common/slider/mouse-event.js +6 -22
- package/dist/common/slider/slider-bar-handle.js +1 -21
- package/dist/common/slider/slider-handle.js +1 -21
- package/dist/common/slider/slider.js +1 -21
- package/dist/common/styled-components.d.ts +3 -3
- package/dist/common/styled-components.js +26 -47
- package/dist/common/switch.js +1 -21
- package/dist/common/time-range-slider-time-title.js +1 -21
- package/dist/common/time-range-slider.js +1 -21
- package/dist/common/time-slider-marker.js +1 -21
- package/dist/common/timeline-slider.js +1 -21
- package/dist/common/tippy-tooltip.js +1 -21
- package/dist/common/toolbar-item.js +1 -21
- package/dist/common/toolbar.js +1 -21
- package/dist/common/vertical-toolbar.js +1 -21
- package/dist/connect/keplergl-connect.js +6 -22
- package/dist/connect/with-local-selector.js +1 -21
- package/dist/container.js +1 -21
- package/dist/context.d.ts +11 -0
- package/dist/context.js +18 -23
- package/dist/dnd-context.d.ts +1 -1
- package/dist/dnd-context.js +32 -127
- package/dist/editor/editor.js +1 -21
- package/dist/editor/feature-action-panel.js +28 -79
- package/dist/effects/compact-color-picker.d.ts +10 -0
- package/dist/effects/compact-color-picker.js +130 -0
- package/dist/effects/effect-configurator.d.ts +4 -5
- package/dist/effects/effect-configurator.js +183 -118
- package/dist/effects/effect-list.js +2 -22
- package/dist/effects/effect-manager.d.ts +2 -1
- package/dist/effects/effect-manager.js +43 -30
- package/dist/effects/effect-panel-header.d.ts +14 -2
- package/dist/effects/effect-panel-header.js +82 -50
- package/dist/effects/effect-panel.js +30 -43
- package/dist/effects/effect-time-configurator.d.ts +14 -7
- package/dist/effects/effect-time-configurator.js +258 -109
- package/dist/effects/effect-time-selector.d.ts +16 -0
- package/dist/effects/effect-time-selector.js +181 -0
- package/dist/effects/effect-time-slider.d.ts +34 -0
- package/dist/effects/effect-time-slider.js +220 -0
- package/dist/effects/effect-type-dropdown-list.d.ts +18 -0
- package/dist/effects/effect-type-dropdown-list.js +77 -0
- package/dist/effects/effect-type-list-item.d.ts +22 -0
- package/dist/effects/effect-type-list-item.js +105 -0
- package/dist/effects/effect-type-selector.d.ts +22 -3
- package/dist/effects/effect-type-selector.js +58 -83
- package/dist/effects/side-panel-title.js +1 -21
- package/dist/effects/timezone-selector.d.ts +19 -0
- package/dist/effects/timezone-selector.js +71 -0
- package/dist/filter-animation-controller.js +3 -21
- package/dist/filters/components.js +1 -21
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +6 -22
- package/dist/filters/filter-panels/multi-select-filter-panel.js +6 -22
- package/dist/filters/filter-panels/new-filter-panel.js +6 -22
- package/dist/filters/filter-panels/polygon-filter-panel.js +6 -22
- package/dist/filters/filter-panels/range-filter-panel.js +6 -22
- package/dist/filters/filter-panels/single-select-filter-panel.js +6 -22
- package/dist/filters/filter-panels/time-range-filter-panel.js +1 -21
- package/dist/filters/filter-panels/types.js +0 -20
- package/dist/filters/index.js +1 -21
- package/dist/filters/multi-select-filter.js +6 -22
- package/dist/filters/polygon-filter.js +6 -22
- package/dist/filters/range-filter.js +6 -22
- package/dist/filters/single-select-filter.js +6 -22
- package/dist/filters/time-range-filter.js +7 -22
- package/dist/filters/time-widget-top.js +1 -21
- package/dist/filters/time-widget.js +1 -21
- package/dist/filters/types.js +0 -20
- package/dist/geocoder/geocoder.js +10 -27
- package/dist/geocoder-panel.js +1 -21
- package/dist/hooks/use-cloud-list-provider.d.ts +11 -0
- package/dist/hooks/use-cloud-list-provider.js +57 -0
- package/dist/hooks/use-dnd-effects.d.ts +9 -0
- package/dist/hooks/use-dnd-effects.js +88 -0
- package/dist/hooks/use-dnd-layers.d.ts +9 -0
- package/dist/hooks/use-dnd-layers.js +95 -0
- package/dist/hooks/use-feature-flags.d.ts +5 -0
- package/dist/hooks/use-feature-flags.js +21 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.js +103 -24
- package/dist/injector.js +1 -21
- package/dist/kepler-gl.d.ts +2 -1
- package/dist/kepler-gl.js +13 -25
- package/dist/layer-animation-controller.js +3 -21
- package/dist/map/coordinate-info.js +6 -22
- package/dist/map/effects/effect-control.d.ts +1 -1
- package/dist/map/effects/effect-control.js +9 -28
- package/dist/map/layer-hover-info.js +2 -22
- package/dist/map/layer-selector-panel.js +6 -22
- package/dist/map/lazy-tippy.js +1 -21
- package/dist/map/locale-panel.js +6 -22
- package/dist/map/map-control-panel.js +1 -21
- package/dist/map/map-control-toolbar.js +1 -21
- package/dist/map/map-control-tooltip.js +6 -22
- package/dist/map/map-control.js +1 -21
- package/dist/map/map-draw-panel.js +6 -22
- package/dist/map/map-legend-panel.js +6 -22
- package/dist/map/map-legend.js +1 -21
- package/dist/map/map-popover-content.js +6 -22
- package/dist/map/map-popover.js +1 -21
- package/dist/map/split-map-button.js +6 -22
- package/dist/map/toggle-3d-button.js +6 -22
- package/dist/map-container.d.ts +1 -1
- package/dist/map-container.js +33 -52
- package/dist/map-view-state-context.d.ts +6 -1
- package/dist/map-view-state-context.js +34 -33
- package/dist/maps-layout.js +1 -21
- package/dist/modal-container.d.ts +2 -2
- package/dist/modal-container.js +13 -72
- package/dist/modals/add-map-style-modal.js +8 -72
- package/dist/modals/cloud-components/cloud-header.d.ts +8 -0
- package/dist/modals/cloud-components/cloud-header.js +65 -0
- package/dist/modals/cloud-components/cloud-item.d.ts +5 -0
- package/dist/modals/cloud-components/cloud-item.js +72 -0
- package/dist/modals/cloud-components/cloud-item.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-item.spec.js +105 -0
- package/dist/modals/cloud-components/cloud-maps.d.ts +8 -0
- package/dist/modals/cloud-components/cloud-maps.js +63 -0
- package/dist/modals/cloud-components/cloud-maps.spec.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-maps.spec.js +112 -0
- package/dist/modals/cloud-components/provider-loading.d.ts +2 -0
- package/dist/modals/cloud-components/provider-loading.js +29 -0
- package/dist/modals/cloud-components/provider-select.d.ts +7 -0
- package/dist/modals/cloud-components/provider-select.js +40 -0
- package/dist/modals/cloud-tile.d.ts +8 -8
- package/dist/modals/cloud-tile.js +184 -75
- package/dist/modals/data-table-modal.js +1 -21
- package/dist/modals/delete-data-modal.js +1 -21
- package/dist/modals/error-display.js +15 -26
- package/dist/modals/export-data-modal.js +1 -21
- package/dist/modals/export-image-modal.js +1 -21
- package/dist/modals/export-map-modal/components.js +1 -21
- package/dist/modals/export-map-modal/export-html-map.js +1 -21
- package/dist/modals/export-map-modal/export-json-map.js +1 -21
- package/dist/modals/export-map-modal/export-map-modal.js +6 -22
- package/dist/modals/image-modal-container.d.ts +1 -3
- package/dist/modals/image-modal-container.js +12 -34
- package/dist/modals/load-data-modal.d.ts +0 -5
- package/dist/modals/load-data-modal.js +1 -21
- package/dist/modals/load-storage-map.d.ts +3 -24
- package/dist/modals/load-storage-map.js +69 -282
- package/dist/modals/load-storage-map.spec.d.ts +1 -0
- package/dist/modals/load-storage-map.spec.js +237 -0
- package/dist/modals/loading-dialog.js +1 -21
- package/dist/modals/modal-dialog.js +6 -22
- package/dist/modals/modal-tabs.js +1 -21
- package/dist/modals/overwrite-map-modal.d.ts +2 -2
- package/dist/modals/overwrite-map-modal.js +39 -32
- package/dist/modals/save-map-modal.d.ts +3 -5
- package/dist/modals/save-map-modal.js +99 -119
- package/dist/modals/save-map-modal.spec.d.ts +1 -0
- package/dist/modals/save-map-modal.spec.js +218 -0
- package/dist/modals/share-map-modal.d.ts +1 -5
- package/dist/modals/share-map-modal.js +57 -81
- package/dist/modals/share-map-modal.spec.d.ts +1 -0
- package/dist/modals/share-map-modal.spec.js +202 -0
- package/dist/modals/status-panel.js +1 -21
- package/dist/modals/storage-map-viewer.js +1 -21
- package/dist/notification-panel/notification-item.js +1 -21
- package/dist/notification-panel.js +1 -21
- package/dist/plot-container.js +7 -27
- package/dist/side-panel/add-by-dataset-button.js +1 -21
- package/dist/side-panel/cloud-storage-dropdown.js +6 -22
- package/dist/side-panel/common/dataset-info.js +1 -21
- package/dist/side-panel/common/dataset-tag.js +1 -21
- package/dist/side-panel/common/dataset-title.js +1 -21
- package/dist/side-panel/common/source-data-catalog.js +1 -21
- package/dist/side-panel/common/source-data-selector.js +6 -22
- package/dist/side-panel/common/types.js +0 -20
- package/dist/side-panel/custom-panel.js +6 -22
- package/dist/side-panel/filter-manager.js +1 -21
- package/dist/side-panel/filter-panel/add-filter-button.js +6 -22
- package/dist/side-panel/filter-panel/filter-panel-header.js +2 -22
- package/dist/side-panel/filter-panel/filter-panel.js +1 -21
- package/dist/side-panel/interaction-manager.js +6 -22
- package/dist/side-panel/interaction-panel/brush-config.js +1 -21
- package/dist/side-panel/interaction-panel/interaction-panel.js +1 -21
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +8 -0
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +46 -27
- package/dist/side-panel/interaction-panel/tooltip-config.js +41 -52
- package/dist/side-panel/layer-manager.d.ts +5 -0
- package/dist/side-panel/layer-manager.js +3 -22
- package/dist/side-panel/layer-panel/add-layer-button.js +6 -22
- package/dist/side-panel/layer-panel/color-palette.js +1 -21
- package/dist/side-panel/layer-panel/color-range-selector.js +1 -21
- package/dist/side-panel/layer-panel/color-selector.js +1 -21
- package/dist/side-panel/layer-panel/column-selector.js +1 -21
- package/dist/side-panel/layer-panel/custom-palette.js +1 -21
- package/dist/side-panel/layer-panel/custom-picker.js +1 -21
- package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -22
- package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -21
- package/dist/side-panel/layer-panel/dataset-section.js +1 -21
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +6 -22
- package/dist/side-panel/layer-panel/how-to-button.js +1 -21
- package/dist/side-panel/layer-panel/layer-color-selector.js +6 -22
- package/dist/side-panel/layer-panel/layer-column-config.js +1 -21
- package/dist/side-panel/layer-panel/layer-config-group.js +1 -21
- package/dist/side-panel/layer-panel/layer-configurator.js +16 -24
- package/dist/side-panel/layer-panel/layer-error-message.js +1 -21
- package/dist/side-panel/layer-panel/layer-list.js +1 -21
- package/dist/side-panel/layer-panel/layer-panel-header.js +1 -21
- package/dist/side-panel/layer-panel/layer-panel.js +1 -21
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +1 -21
- package/dist/side-panel/layer-panel/layer-type-list-item.js +1 -21
- package/dist/side-panel/layer-panel/layer-type-selector.js +1 -21
- package/dist/side-panel/layer-panel/single-color-palette.js +1 -21
- package/dist/side-panel/layer-panel/text-label-panel.js +1 -21
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +1 -21
- package/dist/side-panel/layer-panel/vis-config-slider.js +1 -21
- package/dist/side-panel/layer-panel/vis-config-switch.js +1 -21
- package/dist/side-panel/map-manager.js +1 -21
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +1 -21
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +1 -21
- package/dist/side-panel/map-style-panel/map-layer-selector.js +1 -21
- package/dist/side-panel/map-style-panel/map-style-selector.js +1 -21
- package/dist/side-panel/panel-dropdown.js +1 -21
- package/dist/side-panel/panel-header-action.js +1 -21
- package/dist/side-panel/panel-header.js +2 -21
- package/dist/side-panel/panel-tab.js +1 -21
- package/dist/side-panel/panel-title.js +1 -21
- package/dist/side-panel/panel-toggle.js +1 -21
- package/dist/side-panel/panel-view-list-toggle.js +1 -21
- package/dist/side-panel/side-bar.js +1 -21
- package/dist/side-panel.js +7 -36
- package/dist/types.d.ts +2 -4
- package/dist/types.js +0 -20
- package/package.json +27 -24
- package/dist/hooks/useFeatureFlags.d.ts +0 -2
- package/dist/hooks/useFeatureFlags.js +0 -38
- package/dist/modals/provider-modal-container.d.ts +0 -23
- package/dist/modals/provider-modal-container.js +0 -101
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
|
|
11
|
+
var _react2 = require("@testing-library/react");
|
|
12
|
+
|
|
13
|
+
var _saveMapModal = _interopRequireDefault(require("./save-map-modal"));
|
|
14
|
+
|
|
15
|
+
var _componentJestUtils = require("test/helpers/component-jest-utils");
|
|
16
|
+
|
|
17
|
+
var _useCloudListProvider = require("../hooks/use-cloud-list-provider");
|
|
18
|
+
|
|
19
|
+
var _src = require("@kepler.gl/constants/src");
|
|
20
|
+
|
|
21
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
22
|
+
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
24
|
+
|
|
25
|
+
var SaveMapModal = (0, _saveMapModal["default"])();
|
|
26
|
+
var DEFAULT_PROS = {
|
|
27
|
+
mapInfo: {
|
|
28
|
+
title: 'Test Map',
|
|
29
|
+
description: 'test'
|
|
30
|
+
},
|
|
31
|
+
exportImage: jest.fn(),
|
|
32
|
+
isProviderLoading: false,
|
|
33
|
+
providerError: null,
|
|
34
|
+
onUpdateImageSetting: jest.fn(),
|
|
35
|
+
cleanupExportImage: jest.fn(),
|
|
36
|
+
onSetMapInfo: jest.fn(),
|
|
37
|
+
onCancel: jest.fn(),
|
|
38
|
+
onConfirm: jest.fn()
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
var UNDEFINED_MAP_TITLE_PROPS = _objectSpread(_objectSpread({}, DEFAULT_PROS), {}, {
|
|
42
|
+
mapInfo: {
|
|
43
|
+
description: undefined,
|
|
44
|
+
title: undefined
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
var DEFAULT_PROVIDER = {
|
|
49
|
+
name: 'test provider',
|
|
50
|
+
icon: jest.fn(),
|
|
51
|
+
getManagementUrl: jest.fn().mockImplementation(function () {
|
|
52
|
+
return 'provider.url';
|
|
53
|
+
})
|
|
54
|
+
};
|
|
55
|
+
jest.mock('../hooks/use-cloud-list-provider', function () {
|
|
56
|
+
return {
|
|
57
|
+
useCloudListProvider: jest.fn().mockImplementation(function () {
|
|
58
|
+
return {
|
|
59
|
+
provider: null,
|
|
60
|
+
setProvider: jest.fn(),
|
|
61
|
+
cloudProviders: []
|
|
62
|
+
};
|
|
63
|
+
})
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
describe('SaveMapModal', function () {
|
|
67
|
+
afterEach(function () {
|
|
68
|
+
jest.clearAllMocks();
|
|
69
|
+
});
|
|
70
|
+
test('renders SaveMapModal component with provider set to null and map title set', function () {
|
|
71
|
+
var _renderWithTheme = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
72
|
+
getByText = _renderWithTheme.getByText;
|
|
73
|
+
|
|
74
|
+
var confirmButton = getByText('modal.button.save');
|
|
75
|
+
expect(confirmButton).toBeInTheDocument();
|
|
76
|
+
expect(confirmButton).toBeDisabled();
|
|
77
|
+
});
|
|
78
|
+
test('renders SaveMapModal component with provider set to null and map title not set', function () {
|
|
79
|
+
var _renderWithTheme2 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, UNDEFINED_MAP_TITLE_PROPS)),
|
|
80
|
+
getByText = _renderWithTheme2.getByText;
|
|
81
|
+
|
|
82
|
+
var confirmButton = getByText('modal.button.save');
|
|
83
|
+
expect(confirmButton).toBeInTheDocument();
|
|
84
|
+
expect(confirmButton).toBeDisabled();
|
|
85
|
+
});
|
|
86
|
+
test('renders SaveMapModal component with provider correctly set and map title not set', function () {
|
|
87
|
+
_useCloudListProvider.useCloudListProvider.mockImplementation(function () {
|
|
88
|
+
return {
|
|
89
|
+
provider: DEFAULT_PROVIDER,
|
|
90
|
+
setProvider: jest.fn(),
|
|
91
|
+
cloudProviders: []
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
var _renderWithTheme3 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, UNDEFINED_MAP_TITLE_PROPS)),
|
|
96
|
+
getByText = _renderWithTheme3.getByText;
|
|
97
|
+
|
|
98
|
+
var confirmButton = getByText('modal.button.save');
|
|
99
|
+
expect(confirmButton).toBeInTheDocument();
|
|
100
|
+
expect(confirmButton).toBeDisabled();
|
|
101
|
+
});
|
|
102
|
+
test('renders SaveMapModal component with provider correctly set and map title set', function () {
|
|
103
|
+
_useCloudListProvider.useCloudListProvider.mockImplementation(function () {
|
|
104
|
+
return {
|
|
105
|
+
provider: DEFAULT_PROVIDER,
|
|
106
|
+
setProvider: jest.fn(),
|
|
107
|
+
cloudProviders: []
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
var _renderWithTheme4 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
112
|
+
getByText = _renderWithTheme4.getByText;
|
|
113
|
+
|
|
114
|
+
var confirmButton = getByText('modal.button.save');
|
|
115
|
+
expect(confirmButton).toBeInTheDocument();
|
|
116
|
+
expect(confirmButton).toBeEnabled();
|
|
117
|
+
});
|
|
118
|
+
test('calls onCancel when cancel button is clicked', function () {
|
|
119
|
+
var _renderWithTheme5 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
120
|
+
getByText = _renderWithTheme5.getByText;
|
|
121
|
+
|
|
122
|
+
_react2.fireEvent.click(getByText('modal.button.defaultCancel'));
|
|
123
|
+
|
|
124
|
+
expect(DEFAULT_PROS.onCancel).toHaveBeenCalled();
|
|
125
|
+
});
|
|
126
|
+
test('calls onConfirm with provider when confirm button is clicked', function () {
|
|
127
|
+
_useCloudListProvider.useCloudListProvider.mockImplementation(function () {
|
|
128
|
+
return {
|
|
129
|
+
provider: DEFAULT_PROVIDER,
|
|
130
|
+
setProvider: jest.fn(),
|
|
131
|
+
cloudProviders: []
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
var _renderWithTheme6 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
136
|
+
getByText = _renderWithTheme6.getByText;
|
|
137
|
+
|
|
138
|
+
var confirmButton = getByText('modal.button.save');
|
|
139
|
+
|
|
140
|
+
_react2.fireEvent.click(confirmButton);
|
|
141
|
+
|
|
142
|
+
expect(DEFAULT_PROS.onConfirm).toHaveBeenCalled();
|
|
143
|
+
});
|
|
144
|
+
test('does not render loading animation when isProviderLoading is true', function () {
|
|
145
|
+
var _renderWithTheme7 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
146
|
+
queryAllByTestId = _renderWithTheme7.queryAllByTestId;
|
|
147
|
+
|
|
148
|
+
expect(queryAllByTestId(_src.dataTestIds.providerLoading)).toHaveLength(0);
|
|
149
|
+
});
|
|
150
|
+
test('renders loading animation when isProviderLoading is true', function () {
|
|
151
|
+
var _renderWithTheme8 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, (0, _extends2["default"])({}, DEFAULT_PROS, {
|
|
152
|
+
isProviderLoading: true
|
|
153
|
+
}))),
|
|
154
|
+
getByTestId = _renderWithTheme8.getByTestId;
|
|
155
|
+
|
|
156
|
+
expect(getByTestId(_src.dataTestIds.providerLoading)).toBeInTheDocument();
|
|
157
|
+
});
|
|
158
|
+
test('renders no error if provider error is undefined', function () {
|
|
159
|
+
var _renderWithTheme9 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, DEFAULT_PROS)),
|
|
160
|
+
queryAllByText = _renderWithTheme9.queryAllByText;
|
|
161
|
+
|
|
162
|
+
expect(queryAllByText('modal.statusPanel.error')).toHaveLength(0);
|
|
163
|
+
});
|
|
164
|
+
test('displays provider error message when providerError is present', function () {
|
|
165
|
+
var _renderWithTheme10 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, (0, _extends2["default"])({}, DEFAULT_PROS, {
|
|
166
|
+
providerError: {
|
|
167
|
+
message: 'Error message'
|
|
168
|
+
}
|
|
169
|
+
}))),
|
|
170
|
+
getByText = _renderWithTheme10.getByText;
|
|
171
|
+
|
|
172
|
+
expect(getByText('modal.statusPanel.error')).toBeInTheDocument();
|
|
173
|
+
});
|
|
174
|
+
test('call onSetMapInfo upon typing map (provider is set)', function () {
|
|
175
|
+
_useCloudListProvider.useCloudListProvider.mockImplementation(function () {
|
|
176
|
+
return {
|
|
177
|
+
provider: DEFAULT_PROVIDER,
|
|
178
|
+
setProvider: jest.fn(),
|
|
179
|
+
cloudProviders: []
|
|
180
|
+
};
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
var _renderWithTheme11 = (0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, UNDEFINED_MAP_TITLE_PROPS)),
|
|
184
|
+
getByTestId = _renderWithTheme11.getByTestId,
|
|
185
|
+
getByPlaceholderText = _renderWithTheme11.getByPlaceholderText;
|
|
186
|
+
|
|
187
|
+
var mapInfoPanel = getByTestId(_src.dataTestIds.providerMapInfoPanel);
|
|
188
|
+
expect(mapInfoPanel).toBeInTheDocument();
|
|
189
|
+
var titleInput = getByPlaceholderText('Type map title');
|
|
190
|
+
expect(titleInput).toBeInTheDocument();
|
|
191
|
+
|
|
192
|
+
_react2.fireEvent.change(titleInput, {
|
|
193
|
+
target: {
|
|
194
|
+
value: 'first kepler map'
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
expect(DEFAULT_PROS.onSetMapInfo).toHaveBeenCalledWith({
|
|
199
|
+
title: 'first kepler map'
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
test('call onUpdateImageSetting', function () {
|
|
203
|
+
_useCloudListProvider.useCloudListProvider.mockImplementation(function () {
|
|
204
|
+
return {
|
|
205
|
+
provider: DEFAULT_PROVIDER,
|
|
206
|
+
setProvider: jest.fn(),
|
|
207
|
+
cloudProviders: []
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
(0, _componentJestUtils.renderWithTheme)( /*#__PURE__*/_react["default"].createElement(SaveMapModal, UNDEFINED_MAP_TITLE_PROPS)); // first time the component mount
|
|
212
|
+
|
|
213
|
+
expect(DEFAULT_PROS.onUpdateImageSetting).toHaveBeenCalledWith({
|
|
214
|
+
exporting: true
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvc2F2ZS1tYXAtbW9kYWwuc3BlYy50c3giXSwibmFtZXMiOlsiU2F2ZU1hcE1vZGFsIiwiREVGQVVMVF9QUk9TIiwibWFwSW5mbyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJleHBvcnRJbWFnZSIsImplc3QiLCJmbiIsImlzUHJvdmlkZXJMb2FkaW5nIiwicHJvdmlkZXJFcnJvciIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwiY2xlYW51cEV4cG9ydEltYWdlIiwib25TZXRNYXBJbmZvIiwib25DYW5jZWwiLCJvbkNvbmZpcm0iLCJVTkRFRklORURfTUFQX1RJVExFX1BST1BTIiwidW5kZWZpbmVkIiwiREVGQVVMVF9QUk9WSURFUiIsIm5hbWUiLCJpY29uIiwiZ2V0TWFuYWdlbWVudFVybCIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsIm1vY2siLCJ1c2VDbG91ZExpc3RQcm92aWRlciIsInByb3ZpZGVyIiwic2V0UHJvdmlkZXIiLCJjbG91ZFByb3ZpZGVycyIsImRlc2NyaWJlIiwiYWZ0ZXJFYWNoIiwiY2xlYXJBbGxNb2NrcyIsInRlc3QiLCJnZXRCeVRleHQiLCJjb25maXJtQnV0dG9uIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJ0b0JlRGlzYWJsZWQiLCJ0b0JlRW5hYmxlZCIsImZpcmVFdmVudCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZCIsInF1ZXJ5QWxsQnlUZXN0SWQiLCJkYXRhVGVzdElkcyIsInByb3ZpZGVyTG9hZGluZyIsInRvSGF2ZUxlbmd0aCIsImdldEJ5VGVzdElkIiwicXVlcnlBbGxCeVRleHQiLCJtZXNzYWdlIiwiZ2V0QnlQbGFjZWhvbGRlclRleHQiLCJtYXBJbmZvUGFuZWwiLCJwcm92aWRlck1hcEluZm9QYW5lbCIsInRpdGxlSW5wdXQiLCJjaGFuZ2UiLCJ0YXJnZXQiLCJ2YWx1ZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiZXhwb3J0aW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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RUFBRTtBQURrRCxLQUEvRDtBQUdELEdBYkcsQ0FBSjtBQWNELENBdkhPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBAdHMtbm9jaGVja1xuXG4vKipcbiAqIEkgZGVjaWRlZCB0byBtb3ZlIHRoZSBuZXh0IHRvIHRoZSBhY3R1YWwgZmlsZSBiZWNhdXNlIGl0IG1ha2VzIGl0XG4gKiBleHRyZW1lbHkgZWFzaWVyIHRvIG1vY2sgYWRuIHRlc3QgZmVhdHVyZXMuXG4gKiBJdCdzIGVhc2llciB0byBtb2NrIGl0ZW1zIHdpdGggamVzdCB1c2luZyB0aGUgcmVsYXRpdmUgcGF0aFxuICogcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIG1vY2sgaW1wb3J0cyBsaWtlIEBrZXBsZXIuZ2wvY29tcG9uZW50c1xuICogd2hpY2ggY3JlYXRlcyBzZXZlcmFsIHNpZGUgZWZmZWN0cy5cbiAqIENvbG9jYXRpbmcgdGVzdHMgaXMgbXVjaCBlYXNpZXJcbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtmaXJlRXZlbnR9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IFNhdmVNYXBNb2RhbEZhY3RvcnkgZnJvbSAnLi9zYXZlLW1hcC1tb2RhbCc7XG5pbXBvcnQge3JlbmRlcldpdGhUaGVtZX0gZnJvbSAndGVzdC9oZWxwZXJzL2NvbXBvbmVudC1qZXN0LXV0aWxzJztcbmltcG9ydCB7dXNlQ2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4uL2hvb2tzL3VzZS1jbG91ZC1saXN0LXByb3ZpZGVyJztcbmltcG9ydCB7ZGF0YVRlc3RJZHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzL3NyYyc7XG5cbmNvbnN0IFNhdmVNYXBNb2RhbCA9IFNhdmVNYXBNb2RhbEZhY3RvcnkoKTtcblxuY29uc3QgREVGQVVMVF9QUk9TID0ge1xuICBtYXBJbmZvOiB7XG4gICAgdGl0bGU6ICdUZXN0IE1hcCcsXG4gICAgZGVzY3JpcHRpb246ICd0ZXN0J1xuICB9LFxuICBleHBvcnRJbWFnZTogamVzdC5mbigpLFxuICBpc1Byb3ZpZGVyTG9hZGluZzogZmFsc2UsXG4gIHByb3ZpZGVyRXJyb3I6IG51bGwsXG4gIG9uVXBkYXRlSW1hZ2VTZXR0aW5nOiBqZXN0LmZuKCksXG4gIGNsZWFudXBFeHBvcnRJbWFnZTogamVzdC5mbigpLFxuICBvblNldE1hcEluZm86IGplc3QuZm4oKSxcbiAgb25DYW5jZWw6IGplc3QuZm4oKSxcbiAgb25Db25maXJtOiBqZXN0LmZuKClcbn07XG5cbmNvbnN0IFVOREVGSU5FRF9NQVBfVElUTEVfUFJPUFMgPSB7XG4gIC4uLkRFRkFVTFRfUFJPUyxcbiAgbWFwSW5mbzoge1xuICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsXG4gICAgdGl0bGU6IHVuZGVmaW5lZFxuICB9XG59O1xuXG5jb25zdCBERUZBVUxUX1BST1ZJREVSID0ge1xuICBuYW1lOiAndGVzdCBwcm92aWRlcicsXG4gIGljb246IGplc3QuZm4oKSxcbiAgZ2V0TWFuYWdlbWVudFVybDogamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAncHJvdmlkZXIudXJsJylcbn07XG5cbmplc3QubW9jaygnLi4vaG9va3MvdXNlLWNsb3VkLWxpc3QtcHJvdmlkZXInLCAoKSA9PiAoe1xuICB1c2VDbG91ZExpc3RQcm92aWRlcjogamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAoe1xuICAgIHByb3ZpZGVyOiBudWxsLFxuICAgIHNldFByb3ZpZGVyOiBqZXN0LmZuKCksXG4gICAgY2xvdWRQcm92aWRlcnM6IFtdXG4gIH0pKVxufSkpO1xuXG5kZXNjcmliZSgnU2F2ZU1hcE1vZGFsJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICB0ZXN0KCdyZW5kZXJzIFNhdmVNYXBNb2RhbCBjb21wb25lbnQgd2l0aCBwcm92aWRlciBzZXQgdG8gbnVsbCBhbmQgbWFwIHRpdGxlIHNldCcsICgpID0+IHtcbiAgICBjb25zdCB7Z2V0QnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZSg8U2F2ZU1hcE1vZGFsIHsuLi5ERUZBVUxUX1BST1N9IC8+KTtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uID0gZ2V0QnlUZXh0KCdtb2RhbC5idXR0b24uc2F2ZScpO1xuICAgIGV4cGVjdChjb25maXJtQnV0dG9uKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChjb25maXJtQnV0dG9uKS50b0JlRGlzYWJsZWQoKTtcbiAgfSk7XG5cbiAgdGVzdCgncmVuZGVycyBTYXZlTWFwTW9kYWwgY29tcG9uZW50IHdpdGggcHJvdmlkZXIgc2V0IHRvIG51bGwgYW5kIG1hcCB0aXRsZSBub3Qgc2V0JywgKCkgPT4ge1xuICAgIGNvbnN0IHtnZXRCeVRleHR9ID0gcmVuZGVyV2l0aFRoZW1lKDxTYXZlTWFwTW9kYWwgey4uLlVOREVGSU5FRF9NQVBfVElUTEVfUFJPUFN9IC8+KTtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uID0gZ2V0QnlUZXh0KCdtb2RhbC5idXR0b24uc2F2ZScpO1xuICAgIGV4cGVjdChjb25maXJtQnV0dG9uKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChjb25maXJtQnV0dG9uKS50b0JlRGlzYWJsZWQoKTtcbiAgfSk7XG5cbiAgdGVzdCgncmVuZGVycyBTYXZlTWFwTW9kYWwgY29tcG9uZW50IHdpdGggcHJvdmlkZXIgY29ycmVjdGx5IHNldCBhbmQgbWFwIHRpdGxlIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgdXNlQ2xvdWRMaXN0UHJvdmlkZXIubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgICBwcm92aWRlcjogREVGQVVMVF9QUk9WSURFUixcbiAgICAgIHNldFByb3ZpZGVyOiBqZXN0LmZuKCksXG4gICAgICBjbG91ZFByb3ZpZGVyczogW11cbiAgICB9KSk7XG4gICAgY29uc3Qge2dldEJ5VGV4dH0gPSByZW5kZXJXaXRoVGhlbWUoPFNhdmVNYXBNb2RhbCB7Li4uVU5ERUZJTkVEX01BUF9USVRMRV9QUk9QU30gLz4pO1xuICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBnZXRCeVRleHQoJ21vZGFsLmJ1dHRvbi5zYXZlJyk7XG4gICAgZXhwZWN0KGNvbmZpcm1CdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KGNvbmZpcm1CdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICB9KTtcblxuICB0ZXN0KCdyZW5kZXJzIFNhdmVNYXBNb2RhbCBjb21wb25lbnQgd2l0aCBwcm92aWRlciBjb3JyZWN0bHkgc2V0IGFuZCBtYXAgdGl0bGUgc2V0JywgKCkgPT4ge1xuICAgIHVzZUNsb3VkTGlzdFByb3ZpZGVyLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAoe1xuICAgICAgcHJvdmlkZXI6IERFRkFVTFRfUFJPVklERVIsXG4gICAgICBzZXRQcm92aWRlcjogamVzdC5mbigpLFxuICAgICAgY2xvdWRQcm92aWRlcnM6IFtdXG4gICAgfSkpO1xuICAgIGNvbnN0IHtnZXRCeVRleHR9ID0gcmVuZGVyV2l0aFRoZW1lKDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gLz4pO1xuICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBnZXRCeVRleHQoJ21vZGFsLmJ1dHRvbi5zYXZlJyk7XG4gICAgZXhwZWN0KGNvbmZpcm1CdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgZXhwZWN0KGNvbmZpcm1CdXR0b24pLnRvQmVFbmFibGVkKCk7XG4gIH0pO1xuXG4gIHRlc3QoJ2NhbGxzIG9uQ2FuY2VsIHdoZW4gY2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkJywgKCkgPT4ge1xuICAgIGNvbnN0IHtnZXRCeVRleHR9ID0gcmVuZGVyV2l0aFRoZW1lKDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gLz4pO1xuICAgIGZpcmVFdmVudC5jbGljayhnZXRCeVRleHQoJ21vZGFsLmJ1dHRvbi5kZWZhdWx0Q2FuY2VsJykpO1xuICAgIGV4cGVjdChERUZBVUxUX1BST1Mub25DYW5jZWwpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgdGVzdCgnY2FsbHMgb25Db25maXJtIHdpdGggcHJvdmlkZXIgd2hlbiBjb25maXJtIGJ1dHRvbiBpcyBjbGlja2VkJywgKCkgPT4ge1xuICAgIHVzZUNsb3VkTGlzdFByb3ZpZGVyLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAoe1xuICAgICAgcHJvdmlkZXI6IERFRkFVTFRfUFJPVklERVIsXG4gICAgICBzZXRQcm92aWRlcjogamVzdC5mbigpLFxuICAgICAgY2xvdWRQcm92aWRlcnM6IFtdXG4gICAgfSkpO1xuICAgIGNvbnN0IHtnZXRCeVRleHR9ID0gcmVuZGVyV2l0aFRoZW1lKDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gLz4pO1xuICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBnZXRCeVRleHQoJ21vZGFsLmJ1dHRvbi5zYXZlJyk7XG4gICAgZmlyZUV2ZW50LmNsaWNrKGNvbmZpcm1CdXR0b24pO1xuICAgIGV4cGVjdChERUZBVUxUX1BST1Mub25Db25maXJtKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIHRlc3QoJ2RvZXMgbm90IHJlbmRlciBsb2FkaW5nIGFuaW1hdGlvbiB3aGVuIGlzUHJvdmlkZXJMb2FkaW5nIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5QWxsQnlUZXN0SWR9ID0gcmVuZGVyV2l0aFRoZW1lKDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gLz4pO1xuICAgIGV4cGVjdChxdWVyeUFsbEJ5VGVzdElkKGRhdGFUZXN0SWRzLnByb3ZpZGVyTG9hZGluZykpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgfSk7XG5cbiAgdGVzdCgncmVuZGVycyBsb2FkaW5nIGFuaW1hdGlvbiB3aGVuIGlzUHJvdmlkZXJMb2FkaW5nIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3Qge2dldEJ5VGVzdElkfSA9IHJlbmRlcldpdGhUaGVtZShcbiAgICAgIDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gaXNQcm92aWRlckxvYWRpbmc9e3RydWV9IC8+XG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXN0SWQoZGF0YVRlc3RJZHMucHJvdmlkZXJMb2FkaW5nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgdGVzdCgncmVuZGVycyBubyBlcnJvciBpZiBwcm92aWRlciBlcnJvciBpcyB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgY29uc3Qge3F1ZXJ5QWxsQnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZSg8U2F2ZU1hcE1vZGFsIHsuLi5ERUZBVUxUX1BST1N9IC8+KTtcbiAgICBleHBlY3QocXVlcnlBbGxCeVRleHQoJ21vZGFsLnN0YXR1c1BhbmVsLmVycm9yJykpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgfSk7XG5cbiAgdGVzdCgnZGlzcGxheXMgcHJvdmlkZXIgZXJyb3IgbWVzc2FnZSB3aGVuIHByb3ZpZGVyRXJyb3IgaXMgcHJlc2VudCcsICgpID0+IHtcbiAgICBjb25zdCB7Z2V0QnlUZXh0fSA9IHJlbmRlcldpdGhUaGVtZShcbiAgICAgIDxTYXZlTWFwTW9kYWwgey4uLkRFRkFVTFRfUFJPU30gcHJvdmlkZXJFcnJvcj17e21lc3NhZ2U6ICdFcnJvciBtZXNzYWdlJ319IC8+XG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdtb2RhbC5zdGF0dXNQYW5lbC5lcnJvcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICB0ZXN0KCdjYWxsIG9uU2V0TWFwSW5mbyB1cG9uIHR5cGluZyBtYXAgKHByb3ZpZGVyIGlzIHNldCknLCAoKSA9PiB7XG4gICAgdXNlQ2xvdWRMaXN0UHJvdmlkZXIubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgICBwcm92aWRlcjogREVGQVVMVF9QUk9WSURFUixcbiAgICAgIHNldFByb3ZpZGVyOiBqZXN0LmZuKCksXG4gICAgICBjbG91ZFByb3ZpZGVyczogW11cbiAgICB9KSk7XG4gICAgY29uc3Qge2dldEJ5VGVzdElkLCBnZXRCeVBsYWNlaG9sZGVyVGV4dH0gPSByZW5kZXJXaXRoVGhlbWUoXG4gICAgICA8U2F2ZU1hcE1vZGFsIHsuLi5VTkRFRklORURfTUFQX1RJVExFX1BST1BTfSAvPlxuICAgICk7XG5cbiAgICBjb25zdCBtYXBJbmZvUGFuZWwgPSBnZXRCeVRlc3RJZChkYXRhVGVzdElkcy5wcm92aWRlck1hcEluZm9QYW5lbCk7XG4gICAgZXhwZWN0KG1hcEluZm9QYW5lbCkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgIGNvbnN0IHRpdGxlSW5wdXQgPSBnZXRCeVBsYWNlaG9sZGVyVGV4dCgnVHlwZSBtYXAgdGl0bGUnKTtcbiAgICBleHBlY3QodGl0bGVJbnB1dCkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgIGZpcmVFdmVudC5jaGFuZ2UodGl0bGVJbnB1dCwge3RhcmdldDoge3ZhbHVlOiAnZmlyc3Qga2VwbGVyIG1hcCd9fSk7XG4gICAgZXhwZWN0KERFRkFVTFRfUFJPUy5vblNldE1hcEluZm8pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHt0aXRsZTogJ2ZpcnN0IGtlcGxlciBtYXAnfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2NhbGwgb25VcGRhdGVJbWFnZVNldHRpbmcnLCAoKSA9PiB7XG4gICAgdXNlQ2xvdWRMaXN0UHJvdmlkZXIubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7XG4gICAgICBwcm92aWRlcjogREVGQVVMVF9QUk9WSURFUixcbiAgICAgIHNldFByb3ZpZGVyOiBqZXN0LmZuKCksXG4gICAgICBjbG91ZFByb3ZpZGVyczogW11cbiAgICB9KSk7XG5cbiAgICByZW5kZXJXaXRoVGhlbWUoPFNhdmVNYXBNb2RhbCB7Li4uVU5ERUZJTkVEX01BUF9USVRMRV9QUk9QU30gLz4pO1xuXG4gICAgLy8gZmlyc3QgdGltZSB0aGUgY29tcG9uZW50IG1vdW50XG4gICAgZXhwZWN0KERFRkFVTFRfUFJPUy5vblVwZGF0ZUltYWdlU2V0dGluZykudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgZXhwb3J0aW5nOiB0cnVlXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ImageModalContainerProps } from './image-modal-container';
|
|
3
3
|
import { Provider } from '@kepler.gl/cloud-providers';
|
|
4
|
-
import { cleanupExportImage as cleanupExportImageAction
|
|
4
|
+
import { cleanupExportImage as cleanupExportImageAction } from '@kepler.gl/actions';
|
|
5
5
|
export declare const StyledInputLabel: import("styled-components").StyledComponent<"label", any, {}, never>;
|
|
6
6
|
export declare const StyleSharingUrl: import("styled-components").StyledComponent<"div", any, {
|
|
7
7
|
className: "sharing-url";
|
|
@@ -13,16 +13,12 @@ interface SharingUrlProps {
|
|
|
13
13
|
export declare const SharingUrl: React.FC<SharingUrlProps>;
|
|
14
14
|
interface ShareMapUrlModalFactoryProps {
|
|
15
15
|
isProviderLoading?: boolean;
|
|
16
|
-
isReady?: boolean;
|
|
17
16
|
onExport?: (provider: Provider) => void;
|
|
18
|
-
cloudProviders?: Provider[];
|
|
19
|
-
currentProvider: string | null;
|
|
20
17
|
providerError?: string;
|
|
21
18
|
successInfo?: {
|
|
22
19
|
shareUrl?: string;
|
|
23
20
|
folderLink?: string;
|
|
24
21
|
};
|
|
25
|
-
onSetCloudProvider?: (provider: SetCloudProviderPayload) => void;
|
|
26
22
|
onUpdateImageSetting: ImageModalContainerProps['onUpdateImageSetting'];
|
|
27
23
|
cleanupExportImage: typeof cleanupExportImageAction;
|
|
28
24
|
}
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
20
|
-
|
|
21
1
|
"use strict";
|
|
22
2
|
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
@@ -44,16 +24,18 @@ var _styles = require("@kepler.gl/styles");
|
|
|
44
24
|
|
|
45
25
|
var _imageModalContainer = _interopRequireDefault(require("./image-modal-container"));
|
|
46
26
|
|
|
47
|
-
var _providerModalContainer = _interopRequireDefault(require("./provider-modal-container"));
|
|
48
|
-
|
|
49
27
|
var _styledComponents2 = require("../common/styled-components");
|
|
50
28
|
|
|
51
|
-
var _cloudTile = _interopRequireDefault(require("./cloud-tile"));
|
|
52
|
-
|
|
53
29
|
var _statusPanel = _interopRequireDefault(require("./status-panel"));
|
|
54
30
|
|
|
55
31
|
var _localization = require("@kepler.gl/localization");
|
|
56
32
|
|
|
33
|
+
var _useCloudListProvider2 = require("../hooks/use-cloud-list-provider");
|
|
34
|
+
|
|
35
|
+
var _providerSelect = require("./cloud-components/provider-select");
|
|
36
|
+
|
|
37
|
+
var _constants = require("@kepler.gl/constants");
|
|
38
|
+
|
|
57
39
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
58
40
|
|
|
59
41
|
var StyledInputLabel = _styledComponents["default"].label(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 12px;\n color: ", ";\n letter-spacing: 0.2px;\n"])), function (props) {
|
|
@@ -100,49 +82,65 @@ exports.SharingUrl = SharingUrl;
|
|
|
100
82
|
|
|
101
83
|
var nop = function nop() {};
|
|
102
84
|
|
|
103
|
-
var StyledShareMapModal = (0, _styledComponents["default"])(_styledComponents2.StyledModalContent)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 24px 72px 40px 72px;\n margin: 0 -72px -40px -72px;\n"])));
|
|
85
|
+
var StyledShareMapModal = (0, _styledComponents["default"])(_styledComponents2.StyledModalContent)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 24px 72px 40px 72px;\n margin: 0 -72px -40px -72px;\n display: flex;\n flex-direction: column;\n"])));
|
|
104
86
|
|
|
105
87
|
var StyledInnerDiv = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 500px;\n"])));
|
|
106
88
|
|
|
89
|
+
var UNDERLINE_TEXT_DECORATION_STYLE = {
|
|
90
|
+
textDecoration: 'underline'
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var ShareMapHeader = function ShareMapHeader(_ref2) {
|
|
94
|
+
var cloudProviders = _ref2.cloudProviders;
|
|
95
|
+
return /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
+
className: "description"
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
98
|
+
className: "title"
|
|
99
|
+
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
100
|
+
id: 'modal.shareMap.title'
|
|
101
|
+
}))), /*#__PURE__*/_react["default"].createElement(_providerSelect.ProviderSelect, {
|
|
102
|
+
cloudProviders: cloudProviders
|
|
103
|
+
}));
|
|
104
|
+
};
|
|
105
|
+
|
|
107
106
|
function ShareMapUrlModalFactory() {
|
|
108
|
-
var ShareMapUrlModal = function ShareMapUrlModal(
|
|
109
|
-
var
|
|
110
|
-
isProviderLoading =
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
onUpdateImageSetting = _ref2$onUpdateImageSe === void 0 ? nop : _ref2$onUpdateImageSe,
|
|
126
|
-
cleanupExportImage = _ref2.cleanupExportImage;
|
|
107
|
+
var ShareMapUrlModal = function ShareMapUrlModal(_ref3) {
|
|
108
|
+
var _ref3$isProviderLoadi = _ref3.isProviderLoading,
|
|
109
|
+
isProviderLoading = _ref3$isProviderLoadi === void 0 ? false : _ref3$isProviderLoadi,
|
|
110
|
+
_ref3$onExport = _ref3.onExport,
|
|
111
|
+
onExport = _ref3$onExport === void 0 ? nop : _ref3$onExport,
|
|
112
|
+
_ref3$providerError = _ref3.providerError,
|
|
113
|
+
providerError = _ref3$providerError === void 0 ? null : _ref3$providerError,
|
|
114
|
+
_ref3$successInfo = _ref3.successInfo,
|
|
115
|
+
successInfo = _ref3$successInfo === void 0 ? {} : _ref3$successInfo,
|
|
116
|
+
_ref3$onUpdateImageSe = _ref3.onUpdateImageSetting,
|
|
117
|
+
onUpdateImageSetting = _ref3$onUpdateImageSe === void 0 ? nop : _ref3$onUpdateImageSe,
|
|
118
|
+
cleanupExportImage = _ref3.cleanupExportImage;
|
|
119
|
+
|
|
120
|
+
var _useCloudListProvider = (0, _useCloudListProvider2.useCloudListProvider)(),
|
|
121
|
+
provider = _useCloudListProvider.provider,
|
|
122
|
+
cloudProviders = _useCloudListProvider.cloudProviders;
|
|
123
|
+
|
|
127
124
|
var shareUrl = successInfo.shareUrl,
|
|
128
125
|
folderLink = successInfo.folderLink;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
126
|
+
(0, _react.useEffect)(function () {
|
|
127
|
+
if (provider) {
|
|
128
|
+
onExport(provider);
|
|
129
|
+
}
|
|
130
|
+
}, [provider]);
|
|
132
131
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
133
132
|
theme: _styles.themeLT
|
|
134
|
-
}, /*#__PURE__*/_react["default"].createElement(_providerModalContainer["default"], {
|
|
135
|
-
onSetCloudProvider: onSetCloudProvider,
|
|
136
|
-
cloudProviders: cloudProviders,
|
|
137
|
-
currentProvider: currentProvider
|
|
138
133
|
}, /*#__PURE__*/_react["default"].createElement(_imageModalContainer["default"], {
|
|
139
|
-
|
|
140
|
-
cloudProviders: cloudProviders,
|
|
134
|
+
provider: provider,
|
|
141
135
|
onUpdateImageSetting: onUpdateImageSetting,
|
|
142
136
|
cleanupExportImage: cleanupExportImage
|
|
143
137
|
}, /*#__PURE__*/_react["default"].createElement(StyledShareMapModal, {
|
|
144
138
|
className: "export-cloud-modal"
|
|
145
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
139
|
+
}, /*#__PURE__*/_react["default"].createElement(ShareMapHeader, {
|
|
140
|
+
cloudProviders: cloudProviders
|
|
141
|
+
}), provider !== null && provider !== void 0 && provider.hasSharingUrl() ? /*#__PURE__*/_react["default"].createElement(StyledInnerDiv, {
|
|
142
|
+
"data-testid": _constants.dataTestIds.providerShareMap
|
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
146
144
|
className: "description"
|
|
147
145
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
148
146
|
className: "title"
|
|
@@ -170,25 +168,10 @@ function ShareMapUrlModalFactory() {
|
|
|
170
168
|
className: "subtitle"
|
|
171
169
|
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
172
170
|
id: 'modal.shareMap.cloudSubtitle'
|
|
173
|
-
}))), /*#__PURE__*/_react["default"].createElement("
|
|
174
|
-
className: "selection"
|
|
175
|
-
}, cloudProviders.map(function (cloudProvider) {
|
|
176
|
-
return /*#__PURE__*/_react["default"].createElement(_cloudTile["default"], {
|
|
177
|
-
key: cloudProvider.name,
|
|
178
|
-
onSelect: function onSelect() {
|
|
179
|
-
return onExport(cloudProvider);
|
|
180
|
-
},
|
|
181
|
-
onSetCloudProvider: onSetCloudProvider,
|
|
182
|
-
cloudProvider: cloudProvider,
|
|
183
|
-
actionName: "Upload",
|
|
184
|
-
isSelected: cloudProvider.name === currentProvider,
|
|
185
|
-
isConnected: Boolean(cloudProvider.getAccessToken()),
|
|
186
|
-
isReady: isReady
|
|
187
|
-
});
|
|
188
|
-
}))), isProviderLoading || providerError ? /*#__PURE__*/_react["default"].createElement(_statusPanel["default"], {
|
|
171
|
+
})))), isProviderLoading || providerError ? /*#__PURE__*/_react["default"].createElement(_statusPanel["default"], {
|
|
189
172
|
isLoading: isProviderLoading,
|
|
190
173
|
error: providerError,
|
|
191
|
-
providerIcon: provider
|
|
174
|
+
providerIcon: provider.icon
|
|
192
175
|
}) : null, shareUrl && /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
193
176
|
className: "description"
|
|
194
177
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -203,17 +186,10 @@ function ShareMapUrlModalFactory() {
|
|
|
203
186
|
href: folderLink,
|
|
204
187
|
target: "_blank",
|
|
205
188
|
rel: "noopener noreferrer",
|
|
206
|
-
style:
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
210
|
-
id: 'modal.shareMap.gotoPage',
|
|
211
|
-
values: {
|
|
212
|
-
currentProvider: currentProvider
|
|
213
|
-
}
|
|
214
|
-
})))))))));
|
|
189
|
+
style: UNDERLINE_TEXT_DECORATION_STYLE
|
|
190
|
+
}, provider.name)))) : null)));
|
|
215
191
|
};
|
|
216
192
|
|
|
217
193
|
return ShareMapUrlModal;
|
|
218
194
|
}
|
|
219
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRJbnB1dExhYmVsIiwic3R5bGVkIiwibGFiZWwiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9yTFQiLCJTdHlsZVNoYXJpbmdVcmwiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIlNoYXJpbmdVcmwiLCJ1cmwiLCJtZXNzYWdlIiwiY29waWVkIiwic2V0Q29weSIsImRpc3BsYXkiLCJub3AiLCJTdHlsZWRTaGFyZU1hcE1vZGFsIiwiU3R5bGVkTW9kYWxDb250ZW50IiwiU3R5bGVkSW5uZXJEaXYiLCJTaGFyZU1hcFVybE1vZGFsRmFjdG9yeSIsIlNoYXJlTWFwVXJsTW9kYWwiLCJpc1Byb3ZpZGVyTG9hZGluZyIsImlzUmVhZHkiLCJvbkV4cG9ydCIsImNsb3VkUHJvdmlkZXJzIiwiY3VycmVudFByb3ZpZGVyIiwicHJvdmlkZXJFcnJvciIsInN1Y2Nlc3NJbmZvIiwib25TZXRDbG91ZFByb3ZpZGVyIiwib25VcGRhdGVJbWFnZVNldHRpbmciLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJzaGFyZVVybCIsImZvbGRlckxpbmsiLCJwcm92aWRlciIsImZpbmQiLCJwIiwibmFtZSIsInRoZW1lTFQiLCJtYXAiLCJjbG91ZFByb3ZpZGVyIiwiQm9vbGVhbiIsImdldEFjY2Vzc1Rva2VuIiwiaWNvbiIsInRleHREZWNvcmF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQU1BOztBQUNBOztBQUNBOzs7O0FBT08sSUFBTUEsZ0JBQWdCLEdBQUdDLDZCQUFPQyxLQUFWLHVKQUVsQixVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlDLFdBQWhCO0FBQUEsQ0FGYSxDQUF0Qjs7OztBQU1BLElBQU1DLGVBQWUsR0FBR0wsNkJBQU9NLEdBQVAsQ0FB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LENBREYsQ0FORixDQUxGLENBREYsQ0FERjtBQTJGRCxHQTFHRDs7QUE0R0EsU0FBT0wsZ0JBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7VGhlbWVQcm92aWRlcn0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtDb3B5VG9DbGlwYm9hcmR9IGZyb20gJ3JlYWN0LWNvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCB7dGhlbWVMVH0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IEltYWdlTW9kYWxDb250YWluZXIsIHtJbWFnZU1vZGFsQ29udGFpbmVyUHJvcHN9IGZyb20gJy4vaW1hZ2UtbW9kYWwtY29udGFpbmVyJztcbmltcG9ydCBQcm92aWRlck1vZGFsQ29udGFpbmVyIGZyb20gJy4vcHJvdmlkZXItbW9kYWwtY29udGFpbmVyJztcblxuaW1wb3J0IHtcbiAgU3R5bGVkTW9kYWxDb250ZW50LFxuICBTdHlsZWRFeHBvcnRTZWN0aW9uLFxuICBJbnB1dExpZ2h0LFxuICBCdXR0b25cbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBDbG91ZFRpbGUgZnJvbSAnLi9jbG91ZC10aWxlJztcbmltcG9ydCBTdGF0dXNQYW5lbCBmcm9tICcuL3N0YXR1cy1wYW5lbCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7XG4gIGNsZWFudXBFeHBvcnRJbWFnZSBhcyBjbGVhbnVwRXhwb3J0SW1hZ2VBY3Rpb24sXG4gIFNldENsb3VkUHJvdmlkZXJQYXlsb2FkXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRJbnB1dExhYmVsID0gc3R5bGVkLmxhYmVsYFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckxUfTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlU2hhcmluZ1VybCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaGFyaW5nLXVybCdcbn0pYFxuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBpbnB1dCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgU2hhcmluZ1VybFByb3BzIHtcbiAgdXJsOiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTaGFyaW5nVXJsOiBSZWFjdC5GQzxTaGFyaW5nVXJsUHJvcHM+ID0gKHt1cmwsIG1lc3NhZ2UgPSAnJ30pID0+IHtcbiAgY29uc3QgW2NvcGllZCwgc2V0Q29weV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlU2hhcmluZ1VybD5cbiAgICAgIDxTdHlsZWRJbnB1dExhYmVsPnttZXNzYWdlfTwvU3R5bGVkSW5wdXRMYWJlbD5cbiAgICAgIDxkaXYgc3R5bGU9e3tkaXNwbGF5OiAnZmxleCd9fT5cbiAgICAgICAgPElucHV0TGlnaHQgdHlwZT1cInRleHRcIiB2YWx1ZT17dXJsfSByZWFkT25seSAvPlxuICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3VybH0gb25Db3B5PXsoKSA9PiBzZXRDb3B5KHRydWUpfT5cbiAgICAgICAgICA8QnV0dG9uIHdpZHRoPVwiODBweFwiPntjb3BpZWQgPyAnQ29waWVkIScgOiAnQ29weSd9PC9CdXR0b24+XG4gICAgICAgIDwvQ29weVRvQ2xpcGJvYXJkPlxuICAgICAgPC9kaXY+XG4gICAgPC9TdHlsZVNoYXJpbmdVcmw+XG4gICk7XG59O1xuY29uc3Qgbm9wID0gKCkgPT4ge307XG5cbmNvbnN0IFN0eWxlZFNoYXJlTWFwTW9kYWwgPSBzdHlsZWQoU3R5bGVkTW9kYWxDb250ZW50KWBcbiAgcGFkZGluZzogMjRweCA3MnB4IDQwcHggNzJweDtcbiAgbWFyZ2luOiAwIC03MnB4IC00MHB4IC03MnB4O1xuYDtcblxuY29uc3QgU3R5bGVkSW5uZXJEaXYgPSBzdHlsZWQuZGl2YFxuICBtaW4taGVpZ2h0OiA1MDBweDtcbmA7XG5cbmludGVyZmFjZSBTaGFyZU1hcFVybE1vZGFsRmFjdG9yeVByb3BzIHtcbiAgaXNQcm92aWRlckxvYWRpbmc/OiBib29sZWFuO1xuICBpc1JlYWR5PzogYm9vbGVhbjtcbiAgb25FeHBvcnQ/OiAocHJvdmlkZXI6IFByb3ZpZGVyKSA9PiB2b2lkO1xuICBjbG91ZFByb3ZpZGVycz86IFByb3ZpZGVyW107XG4gIGN1cnJlbnRQcm92aWRlcjogc3RyaW5nIHwgbnVsbDtcbiAgcHJvdmlkZXJFcnJvcj86IHN0cmluZztcbiAgc3VjY2Vzc0luZm8/OiB7c2hhcmVVcmw/OiBzdHJpbmc7IGZvbGRlckxpbms/OiBzdHJpbmd9O1xuICBvblNldENsb3VkUHJvdmlkZXI/OiAocHJvdmlkZXI6IFNldENsb3VkUHJvdmlkZXJQYXlsb2FkKSA9PiB2b2lkO1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogSW1hZ2VNb2RhbENvbnRhaW5lclByb3BzWydvblVwZGF0ZUltYWdlU2V0dGluZyddO1xuICBjbGVhbnVwRXhwb3J0SW1hZ2U6IHR5cGVvZiBjbGVhbnVwRXhwb3J0SW1hZ2VBY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNoYXJlTWFwVXJsTW9kYWxGYWN0b3J5KCkge1xuICBjb25zdCBTaGFyZU1hcFVybE1vZGFsOiBSZWFjdC5GQzxTaGFyZU1hcFVybE1vZGFsRmFjdG9yeVByb3BzPiA9ICh7XG4gICAgaXNQcm92aWRlckxvYWRpbmcgPSBmYWxzZSxcbiAgICBpc1JlYWR5LFxuICAgIG9uRXhwb3J0ID0gbm9wLFxuICAgIGNsb3VkUHJvdmlkZXJzID0gW10sXG4gICAgY3VycmVudFByb3ZpZGVyID0gbnVsbCxcbiAgICBwcm92aWRlckVycm9yID0gbnVsbCxcbiAgICBzdWNjZXNzSW5mbyA9IHt9LFxuICAgIG9uU2V0Q2xvdWRQcm92aWRlciA9IG5vcCxcbiAgICBvblVwZGF0ZUltYWdlU2V0dGluZyA9IG5vcCxcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtzaGFyZVVybCwgZm9sZGVyTGlua30gPSBzdWNjZXNzSW5mbztcbiAgICBjb25zdCBwcm92aWRlciA9IGN1cnJlbnRQcm92aWRlciA/IGNsb3VkUHJvdmlkZXJzLmZpbmQocCA9PiBwLm5hbWUgPT09IGN1cnJlbnRQcm92aWRlcikgOiBudWxsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZUxUfT5cbiAgICAgICAgPFByb3ZpZGVyTW9kYWxDb250YWluZXJcbiAgICAgICAgICBvblNldENsb3VkUHJvdmlkZXI9e29uU2V0Q2xvdWRQcm92aWRlcn1cbiAgICAgICAgICBjbG91ZFByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9XG4gICAgICAgICAgY3VycmVudFByb3ZpZGVyPXtjdXJyZW50UHJvdmlkZXJ9XG4gICAgICAgID5cbiAgICAgICAgICA8SW1hZ2VNb2RhbENvbnRhaW5lclxuICAgICAgICAgICAgY3VycmVudFByb3ZpZGVyPXtjdXJyZW50UHJvdmlkZXJ9XG4gICAgICAgICAgICBjbG91ZFByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9XG4gICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17b25VcGRhdGVJbWFnZVNldHRpbmd9XG4gICAgICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e2NsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3R5bGVkU2hhcmVNYXBNb2RhbCBjbGFzc05hbWU9XCJleHBvcnQtY2xvdWQtbW9kYWxcIj5cbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyRGl2PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC5zaGFyZVVyaVRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnNoYXJlVXJpU3VidGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZSB3YXJuaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC5zaGFyZURpc2NsYWltZXInfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbiBkaXNhYmxlZD17aXNQcm92aWRlckxvYWRpbmd9PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC5jbG91ZFRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLmNsb3VkU3VidGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAge2Nsb3VkUHJvdmlkZXJzLm1hcChjbG91ZFByb3ZpZGVyID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvdWRUaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Nsb3VkUHJvdmlkZXIubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU2VsZWN0PXsoKSA9PiBvbkV4cG9ydChjbG91ZFByb3ZpZGVyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU2V0Q2xvdWRQcm92aWRlcj17b25TZXRDbG91ZFByb3ZpZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvdWRQcm92aWRlcj17Y2xvdWRQcm92aWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbk5hbWU9XCJVcGxvYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17Y2xvdWRQcm92aWRlci5uYW1lID09PSBjdXJyZW50UHJvdmlkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0Nvbm5lY3RlZD17Qm9vbGVhbihjbG91ZFByb3ZpZGVyLmdldEFjY2Vzc1Rva2VuKCkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZWFkeT17aXNSZWFkeX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICB7aXNQcm92aWRlckxvYWRpbmcgfHwgcHJvdmlkZXJFcnJvciA/IChcbiAgICAgICAgICAgICAgICAgIDxTdGF0dXNQYW5lbFxuICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2lzUHJvdmlkZXJMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICBlcnJvcj17cHJvdmlkZXJFcnJvcn1cbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJJY29uPXtwcm92aWRlciAmJiBwcm92aWRlci5pY29ufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICB7c2hhcmVVcmwgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+U2hhcmUgVXJsPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxTaGFyaW5nVXJsIGtleT17MH0gdXJsPXtzaGFyZVVybH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICB7cHJvdmlkZXIgJiYgZm9sZGVyTGluayAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2ZvbGRlckxpbmt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3RleHREZWNvcmF0aW9uOiAndW5kZXJsaW5lJ319XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9eydtb2RhbC5zaGFyZU1hcC5nb3RvUGFnZSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXt7Y3VycmVudFByb3ZpZGVyfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyRGl2PlxuICAgICAgICAgICAgPC9TdHlsZWRTaGFyZU1hcE1vZGFsPlxuICAgICAgICAgIDwvSW1hZ2VNb2RhbENvbnRhaW5lcj5cbiAgICAgICAgPC9Qcm92aWRlck1vZGFsQ29udGFpbmVyPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFNoYXJlTWFwVXJsTW9kYWw7XG59XG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRJbnB1dExhYmVsIiwic3R5bGVkIiwibGFiZWwiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9yTFQiLCJTdHlsZVNoYXJpbmdVcmwiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIlNoYXJpbmdVcmwiLCJ1cmwiLCJtZXNzYWdlIiwiY29waWVkIiwic2V0Q29weSIsImRpc3BsYXkiLCJub3AiLCJTdHlsZWRTaGFyZU1hcE1vZGFsIiwiU3R5bGVkTW9kYWxDb250ZW50IiwiU3R5bGVkSW5uZXJEaXYiLCJVTkRFUkxJTkVfVEVYVF9ERUNPUkFUSU9OX1NUWUxFIiwidGV4dERlY29yYXRpb24iLCJTaGFyZU1hcEhlYWRlciIsImNsb3VkUHJvdmlkZXJzIiwiU2hhcmVNYXBVcmxNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcFVybE1vZGFsIiwiaXNQcm92aWRlckxvYWRpbmciLCJvbkV4cG9ydCIsInByb3ZpZGVyRXJyb3IiLCJzdWNjZXNzSW5mbyIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwiY2xlYW51cEV4cG9ydEltYWdlIiwicHJvdmlkZXIiLCJzaGFyZVVybCIsImZvbGRlckxpbmsiLCJ0aGVtZUxUIiwiaGFzU2hhcmluZ1VybCIsImRhdGFUZXN0SWRzIiwicHJvdmlkZXJTaGFyZU1hcCIsImljb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7Ozs7QUFFTyxJQUFNQSxnQkFBZ0IsR0FBR0MsNkJBQU9DLEtBQVYsdUpBRWxCLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsV0FBaEI7QUFBQSxDQUZhLENBQXRCOzs7O0FBTUEsSUFBTUMsZUFBZSxHQUFHTCw2QkFBT00sR0FBUCxDQUFXQyxL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LENBREYsQ0FoQkYsRUEwQkdBLGlCQUFpQixJQUFJRSxhQUFyQixnQkFDQyxnQ0FBQyx1QkFBRDtBQUNFLE1BQUEsU0FBUyxFQUFFRixpQkFEYjtBQUVFLE1BQUEsS0FBSyxFQUFFRSxhQUZUO0FBR0UsTUFBQSxZQUFZLEVBQUVJLFFBQVEsQ0FBQ087QUFIekIsTUFERCxHQU1HLElBaENOLEVBaUNHTixRQUFRLGlCQUNQLGdDQUFDLHNDQUFELHFCQUNFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRTtBQUFLLE1BQUEsU0FBUyxFQUFDO0FBQWYsbUJBREYsQ0FERixlQUlFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDRSxnQ0FBQyxVQUFEO0FBQVksTUFBQSxHQUFHLEVBQUUsQ0FBakI7QUFBb0IsTUFBQSxHQUFHLEVBQUVBO0FBQXpCLE1BREYsRUFFR0QsUUFBUSxJQUFJRSxVQUFaLGlCQUNDO0FBQ0UsTUFBQSxHQUFHLEVBQUUsQ0FEUDtBQUVFLE1BQUEsSUFBSSxFQUFFQSxVQUZSO0FBR0UsTUFBQSxNQUFNLEVBQUMsUUFIVDtBQUlFLE1BQUEsR0FBRyxFQUFDLHFCQUpOO0FBS0UsTUFBQSxLQUFLLEVBQUVkO0FBTFQsT0FPR1ksUUFBUSxDQUFDUSxJQVBaLENBSEosQ0FKRixDQWxDSixDQURELEdBd0RHLElBMUROLENBTEYsQ0FERixDQURGO0FBc0VELEdBdkZEOztBQXlGQSxTQUFPZixnQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge1RoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Q29weVRvQ2xpcGJvYXJkfSBmcm9tICdyZWFjdC1jb3B5LXRvLWNsaXBib2FyZCc7XG5pbXBvcnQge3RoZW1lTFR9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCBJbWFnZU1vZGFsQ29udGFpbmVyLCB7SW1hZ2VNb2RhbENvbnRhaW5lclByb3BzfSBmcm9tICcuL2ltYWdlLW1vZGFsLWNvbnRhaW5lcic7XG5cbmltcG9ydCB7XG4gIFN0eWxlZE1vZGFsQ29udGVudCxcbiAgU3R5bGVkRXhwb3J0U2VjdGlvbixcbiAgSW5wdXRMaWdodCxcbiAgQnV0dG9uXG59IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3RhdHVzUGFuZWwgZnJvbSAnLi9zdGF0dXMtcGFuZWwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge3VzZUNsb3VkTGlzdFByb3ZpZGVyfSBmcm9tICcuLi9ob29rcy91c2UtY2xvdWQtbGlzdC1wcm92aWRlcic7XG5pbXBvcnQge1Byb3ZpZGVyU2VsZWN0fSBmcm9tICcuL2Nsb3VkLWNvbXBvbmVudHMvcHJvdmlkZXItc2VsZWN0JztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7Y2xlYW51cEV4cG9ydEltYWdlIGFzIGNsZWFudXBFeHBvcnRJbWFnZUFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7ZGF0YVRlc3RJZHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZElucHV0TGFiZWwgPSBzdHlsZWQubGFiZWxgXG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yTFR9O1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVTaGFyaW5nVXJsID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NoYXJpbmctdXJsJ1xufSlgXG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIGlucHV0IHtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIH1cbmA7XG5cbmludGVyZmFjZSBTaGFyaW5nVXJsUHJvcHMge1xuICB1cmw6IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFNoYXJpbmdVcmw6IFJlYWN0LkZDPFNoYXJpbmdVcmxQcm9wcz4gPSAoe3VybCwgbWVzc2FnZSA9ICcnfSkgPT4ge1xuICBjb25zdCBbY29waWVkLCBzZXRDb3B5XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVTaGFyaW5nVXJsPlxuICAgICAgPFN0eWxlZElucHV0TGFiZWw+e21lc3NhZ2V9PC9TdHlsZWRJbnB1dExhYmVsPlxuICAgICAgPGRpdiBzdHlsZT17e2Rpc3BsYXk6ICdmbGV4J319PlxuICAgICAgICA8SW5wdXRMaWdodCB0eXBlPVwidGV4dFwiIHZhbHVlPXt1cmx9IHJlYWRPbmx5IC8+XG4gICAgICAgIDxDb3B5VG9DbGlwYm9hcmQgdGV4dD17dXJsfSBvbkNvcHk9eygpID0+IHNldENvcHkodHJ1ZSl9PlxuICAgICAgICAgIDxCdXR0b24gd2lkdGg9XCI4MHB4XCI+e2NvcGllZCA/ICdDb3BpZWQhJyA6ICdDb3B5J308L0J1dHRvbj5cbiAgICAgICAgPC9Db3B5VG9DbGlwYm9hcmQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L1N0eWxlU2hhcmluZ1VybD5cbiAgKTtcbn07XG5jb25zdCBub3AgPSAoKSA9PiB7fTtcblxuY29uc3QgU3R5bGVkU2hhcmVNYXBNb2RhbCA9IHN0eWxlZChTdHlsZWRNb2RhbENvbnRlbnQpYFxuICBwYWRkaW5nOiAyNHB4IDcycHggNDBweCA3MnB4O1xuICBtYXJnaW46IDAgLTcycHggLTQwcHggLTcycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gO1xuXG5jb25zdCBTdHlsZWRJbm5lckRpdiA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuYDtcblxuY29uc3QgVU5ERVJMSU5FX1RFWFRfREVDT1JBVElPTl9TVFlMRSA9IHt0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZSd9O1xuXG5jb25zdCBTaGFyZU1hcEhlYWRlciA9ICh7Y2xvdWRQcm92aWRlcnN9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnRpdGxlJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxQcm92aWRlclNlbGVjdCBjbG91ZFByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9IC8+XG4gICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICApO1xufTtcblxuaW50ZXJmYWNlIFNoYXJlTWFwVXJsTW9kYWxGYWN0b3J5UHJvcHMge1xuICBpc1Byb3ZpZGVyTG9hZGluZz86IGJvb2xlYW47XG4gIG9uRXhwb3J0PzogKHByb3ZpZGVyOiBQcm92aWRlcikgPT4gdm9pZDtcbiAgcHJvdmlkZXJFcnJvcj86IHN0cmluZztcbiAgc3VjY2Vzc0luZm8/OiB7c2hhcmVVcmw/OiBzdHJpbmc7IGZvbGRlckxpbms/OiBzdHJpbmd9O1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogSW1hZ2VNb2RhbENvbnRhaW5lclByb3BzWydvblVwZGF0ZUltYWdlU2V0dGluZyddO1xuICBjbGVhbnVwRXhwb3J0SW1hZ2U6IHR5cGVvZiBjbGVhbnVwRXhwb3J0SW1hZ2VBY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNoYXJlTWFwVXJsTW9kYWxGYWN0b3J5KCkge1xuICBjb25zdCBTaGFyZU1hcFVybE1vZGFsOiBSZWFjdC5GQzxTaGFyZU1hcFVybE1vZGFsRmFjdG9yeVByb3BzPiA9ICh7XG4gICAgaXNQcm92aWRlckxvYWRpbmcgPSBmYWxzZSxcbiAgICBvbkV4cG9ydCA9IG5vcCxcbiAgICBwcm92aWRlckVycm9yID0gbnVsbCxcbiAgICBzdWNjZXNzSW5mbyA9IHt9LFxuICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nID0gbm9wLFxuICAgIGNsZWFudXBFeHBvcnRJbWFnZVxuICB9KSA9PiB7XG4gICAgY29uc3Qge3Byb3ZpZGVyLCBjbG91ZFByb3ZpZGVyc30gPSB1c2VDbG91ZExpc3RQcm92aWRlcigpO1xuICAgIGNvbnN0IHtzaGFyZVVybCwgZm9sZGVyTGlua30gPSBzdWNjZXNzSW5mbztcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAocHJvdmlkZXIpIHtcbiAgICAgICAgb25FeHBvcnQocHJvdmlkZXIpO1xuICAgICAgfVxuICAgIH0sIFtwcm92aWRlcl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZUxUfT5cbiAgICAgICAgPEltYWdlTW9kYWxDb250YWluZXJcbiAgICAgICAgICBwcm92aWRlcj17cHJvdmlkZXJ9XG4gICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e29uVXBkYXRlSW1hZ2VTZXR0aW5nfVxuICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17Y2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0eWxlZFNoYXJlTWFwTW9kYWwgY2xhc3NOYW1lPVwiZXhwb3J0LWNsb3VkLW1vZGFsXCI+XG4gICAgICAgICAgICA8U2hhcmVNYXBIZWFkZXIgY2xvdWRQcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfSAvPlxuICAgICAgICAgICAge3Byb3ZpZGVyPy5oYXNTaGFyaW5nVXJsKCkgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lckRpdiBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMucHJvdmlkZXJTaGFyZU1hcH0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnNoYXJlVXJpVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuc2hhcmVVcmlTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlIHdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnNoYXJlRGlzY2xhaW1lcid9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uIGRpc2FibGVkPXtpc1Byb3ZpZGVyTG9hZGluZ30+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLmNsb3VkVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuY2xvdWRTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgIHtpc1Byb3ZpZGVyTG9hZGluZyB8fCBwcm92aWRlckVycm9yID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YXR1c1BhbmVsXG4gICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNQcm92aWRlckxvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgIGVycm9yPXtwcm92aWRlckVycm9yfVxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlckljb249e3Byb3ZpZGVyLmljb259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzaGFyZVVybCAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5TaGFyZSBVcmw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNoYXJpbmdVcmwga2V5PXswfSB1cmw9e3NoYXJlVXJsfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIHtwcm92aWRlciAmJiBmb2xkZXJMaW5rICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17Zm9sZGVyTGlua31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVTkRFUkxJTkVfVEVYVF9ERUNPUkFUSU9OX1NUWUxFfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvdmlkZXIubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyRGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdHlsZWRTaGFyZU1hcE1vZGFsPlxuICAgICAgICA8L0ltYWdlTW9kYWxDb250YWluZXI+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gU2hhcmVNYXBVcmxNb2RhbDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|