@kepler.gl/components 3.2.6 → 3.3.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +5 -5
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.d.ts +3 -3
- package/dist/common/animation-control/animation-control.d.ts +2 -1
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +5 -3
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +4 -4
- package/dist/common/color-legend.js +3 -3
- package/dist/common/column-stats-chart.d.ts +3 -3
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +0 -1
- package/dist/common/data-table/cell-size.d.ts +2 -2
- package/dist/common/data-table/display-format.d.ts +1 -1
- package/dist/common/data-table/header-cell.d.ts +2 -2
- package/dist/common/data-table/index.d.ts +8 -10
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/data-table/option-dropdown.d.ts +1 -1
- package/dist/common/field-selector.d.ts +5 -5
- package/dist/common/field-token.d.ts +1 -1
- package/dist/common/file-uploader/file-drop.d.ts +1 -1
- package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +2 -3
- package/dist/common/histogram-plot.d.ts +1 -1
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +16 -16
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/close.js +1 -1
- package/dist/common/icons/effects/distance-fog.d.ts +14 -0
- package/dist/common/icons/effects/distance-fog.js +79 -0
- package/dist/common/icons/effects/surface-fog.d.ts +14 -0
- package/dist/common/icons/effects/surface-fog.js +86 -0
- package/dist/common/icons/index.d.ts +3 -0
- package/dist/common/icons/index.js +22 -1
- package/dist/common/item-selector/chickleted-input.d.ts +5 -5
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +3 -3
- package/dist/common/item-selector/dropdown-select.d.ts +7 -7
- package/dist/common/item-selector/item-selector.d.ts +2 -2
- package/dist/common/item-selector/typeahead.d.ts +3 -3
- package/dist/common/line-chart.d.ts +4 -1
- package/dist/common/line-chart.js +59 -12
- package/dist/common/loading-spinner.d.ts +2 -2
- package/dist/common/modal.d.ts +5 -5
- package/dist/common/portaled.d.ts +8 -25
- package/dist/common/progress-bar.d.ts +1 -1
- package/dist/common/radius-legend.d.ts +1 -1
- package/dist/common/range-brush.d.ts +1 -1
- package/dist/common/range-plot.d.ts +1 -1
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -43
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider.d.ts +6 -2
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +158 -159
- package/dist/common/styled-components.js +2 -2
- package/dist/common/sync-timeline-control.d.ts +3 -3
- package/dist/common/time-range-slider-time-title.d.ts +2 -2
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +4 -3
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.d.ts +1 -1
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/tippy-tooltip.d.ts +1 -1
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +2 -2
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +2 -3
- package/dist/container.d.ts +6 -6
- package/dist/context.d.ts +3 -3
- package/dist/dnd-context.d.ts +2 -2
- package/dist/editor/editor.d.ts +1 -1
- package/dist/editor/editor.js +1 -1
- package/dist/editor/feature-action-panel.d.ts +1 -1
- package/dist/editor/feature-action-panel.js +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -4
- package/dist/effects/effect-configurator.js +243 -44
- package/dist/effects/effect-list.d.ts +1 -1
- package/dist/effects/effect-manager.d.ts +3 -3
- package/dist/effects/effect-manager.js +11 -4
- package/dist/effects/effect-panel-header.d.ts +2 -2
- package/dist/effects/effect-panel-header.js +35 -18
- package/dist/effects/effect-panel.d.ts +6 -6
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.d.ts +1 -1
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-time-selector.d.ts +1 -1
- package/dist/effects/effect-time-slider.d.ts +3 -3
- package/dist/effects/effect-type-dropdown-list.d.ts +3 -2
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +3 -2
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/side-panel-title.d.ts +1 -1
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/effects/timezone-selector.d.ts +1 -1
- package/dist/filters/components.d.ts +2 -3
- package/dist/filters/filter-panels/types.d.ts +4 -4
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +11 -11
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +7 -4
- package/dist/geocoder/geocoder.js +65 -14
- package/dist/geocoder-panel.d.ts +11 -2
- package/dist/geocoder-panel.js +8 -4
- package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
- package/dist/hooks/use-dnd-effects.d.ts +1 -1
- package/dist/hooks/use-dnd-layers.d.ts +1 -1
- package/dist/hooks/use-feature-flags.d.ts +1 -1
- package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
- package/dist/hooks/use-legend-position.d.ts +4 -5
- package/dist/index.d.ts +14 -0
- package/dist/index.js +124 -1
- package/dist/injector.d.ts +5 -5
- package/dist/kepler-gl.d.ts +70 -67
- package/dist/kepler-gl.js +89 -11
- package/dist/loading-indicator.d.ts +6 -4
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/effects/effect-control.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +3 -3
- package/dist/map/layer-hover-info.js +69 -36
- package/dist/map/layer-selector-panel.d.ts +2 -2
- package/dist/map/lazy-tippy.js +3 -3
- package/dist/map/locale-panel.d.ts +2 -2
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.d.ts +1 -1
- package/dist/map/map-control-toolbar.d.ts +7 -8
- package/dist/map/map-control-tooltip.d.ts +1 -1
- package/dist/map/map-control.d.ts +8 -4
- package/dist/map/map-control.js +16 -7
- package/dist/map/map-draw-panel.d.ts +2 -2
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +5 -4
- package/dist/map/map-legend-panel.js +10 -8
- package/dist/map/map-legend.d.ts +11 -9
- package/dist/map/map-legend.js +39 -9
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover-content.d.ts +2 -2
- package/dist/map/map-popover.d.ts +2 -2
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +1 -1
- package/dist/map/toggle-3d-button.d.ts +1 -1
- package/dist/map-container.d.ts +15 -5
- package/dist/map-container.js +286 -73
- package/dist/map-view-state-context.d.ts +10 -2
- package/dist/map-view-state-context.js +1 -1
- package/dist/modal-container.d.ts +6 -8
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
- package/dist/modals/cloud-components/provider-select.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -1
- package/dist/modals/data-table-modal.d.ts +2 -2
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-image-modal.js +1 -1
- package/dist/modals/export-map-modal/components.d.ts +1 -1
- package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/export-video-modal.d.ts +25 -0
- package/dist/modals/export-video-modal.js +338 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +25 -0
- package/dist/modals/hubble-utils.js +197 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/image-modal-container.d.ts +1 -1
- package/dist/modals/load-data-modal.d.ts +2 -2
- package/dist/modals/modal-dialog.d.ts +0 -2
- package/dist/modals/overwrite-map-modal.d.ts +1 -1
- package/dist/modals/save-map-modal.d.ts +3 -3
- package/dist/modals/share-map-modal.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.d.ts +3 -3
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.js +27 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
- package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +389 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-wms-form.js +55 -11
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +55 -14
- package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.d.ts +2 -2
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +2 -2
- package/dist/side-panel/common/dataset-title.d.ts +2 -2
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
- package/dist/side-panel/common/types.d.ts +8 -8
- package/dist/side-panel/custom-panel.d.ts +2 -2
- package/dist/side-panel/filter-manager.d.ts +3 -3
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
- package/dist/side-panel/interaction-manager.d.ts +1 -1
- package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
- package/dist/side-panel/layer-manager.d.ts +2 -2
- package/dist/side-panel/layer-manager.js +11 -3
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -5
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +6 -4
- package/dist/side-panel/layer-panel/layer-configurator.js +408 -72
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +2 -2
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -3
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +3 -1
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
- package/dist/side-panel/map-manager.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
- package/dist/side-panel/panel-header-action.d.ts +1 -1
- package/dist/side-panel/panel-header.d.ts +13 -12
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +5 -5
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-title.d.ts +1 -1
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
- package/dist/side-panel/side-bar.d.ts +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +3 -3
- package/package.json +41 -29
|
@@ -6,18 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.DatasetTabs = exports.DatasetModalTab = void 0;
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
11
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
16
|
-
var _react =
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
18
14
|
var _datasetLabel = _interopRequireDefault(require("../common/dataset-label"));
|
|
19
15
|
var _dataTable = _interopRequireDefault(require("../common/data-table"));
|
|
20
|
-
var _reselect = require("reselect");
|
|
21
16
|
var _cellSize = require("../common/data-table/cell-size");
|
|
22
17
|
var _canvas = _interopRequireDefault(require("../common/data-table/canvas"));
|
|
23
18
|
var _icons = require("../common/icons");
|
|
@@ -29,8 +24,6 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
29
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
30
25
|
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; }
|
|
31
26
|
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; }
|
|
32
|
-
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)); }
|
|
33
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
34
27
|
var MIN_STATS_CELL_SIZE = 122;
|
|
35
28
|
var DEFAULT_SORT_COLUMN = {};
|
|
36
29
|
|
|
@@ -45,7 +38,7 @@ var DatasetCatalog = _styledComponents["default"].div(_templateObject2 || (_temp
|
|
|
45
38
|
return props.theme.modalScrollBar;
|
|
46
39
|
});
|
|
47
40
|
var DatasetModalTab = exports.DatasetModalTab = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n align-items: center;\n border-bottom: 3px solid ", ";\n cursor: pointer;\n display: flex;\n height: 35px;\n margin: 0 3px;\n padding: 0 5px;\n\n &:hover {\n border-bottom: 3px solid black;\n }\n"])), function (props) {
|
|
48
|
-
return props
|
|
41
|
+
return props.$active ? 'black' : 'transparent';
|
|
49
42
|
});
|
|
50
43
|
var StyledConfigureButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-end;\n position: absolute;\n top: 24px;\n right: 48px;\n svg {\n stroke: black;\n }\n cursor: pointer;\n"])));
|
|
51
44
|
var DatasetTabsUnmemoized = function DatasetTabsUnmemoized(_ref) {
|
|
@@ -59,7 +52,7 @@ var DatasetTabsUnmemoized = function DatasetTabsUnmemoized(_ref) {
|
|
|
59
52
|
}, Object.values(datasets).map(function (dataset) {
|
|
60
53
|
return /*#__PURE__*/_react["default"].createElement(DatasetModalTab, {
|
|
61
54
|
className: "dataset-modal-tab",
|
|
62
|
-
active: dataset === activeDataset,
|
|
55
|
+
$active: dataset === activeDataset,
|
|
63
56
|
key: dataset.id,
|
|
64
57
|
onClick: function onClick() {
|
|
65
58
|
return showDatasetTable(dataset.id);
|
|
@@ -74,191 +67,150 @@ DatasetTabs.displayName = 'DatasetTabs';
|
|
|
74
67
|
DataTableModalFactory.deps = [_dataTable["default"], _displayFormat["default"]];
|
|
75
68
|
var TableContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n min-height: 100%;\n max-height: 100%;\n max-width: 100%;\n"])));
|
|
76
69
|
function DataTableModalFactory(DataTable, DataTableConfig) {
|
|
77
|
-
var DataTableModal =
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
70
|
+
var DataTableModal = function DataTableModal(_ref2) {
|
|
71
|
+
var theme = _ref2.theme,
|
|
72
|
+
_ref2$dataId = _ref2.dataId,
|
|
73
|
+
dataId = _ref2$dataId === void 0 ? '' : _ref2$dataId,
|
|
74
|
+
sortTableColumn = _ref2.sortTableColumn,
|
|
75
|
+
pinTableColumn = _ref2.pinTableColumn,
|
|
76
|
+
copyTableColumnProp = _ref2.copyTableColumn,
|
|
77
|
+
datasets = _ref2.datasets,
|
|
78
|
+
showDatasetTable = _ref2.showDatasetTable,
|
|
79
|
+
_ref2$showTab = _ref2.showTab,
|
|
80
|
+
showTab = _ref2$showTab === void 0 ? true : _ref2$showTab,
|
|
81
|
+
setColumnDisplayFormatProp = _ref2.setColumnDisplayFormat,
|
|
82
|
+
uiStateActions = _ref2.uiStateActions,
|
|
83
|
+
uiState = _ref2.uiState;
|
|
84
|
+
var _useState = (0, _react.useState)(false),
|
|
85
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
86
|
+
showConfig = _useState2[0],
|
|
87
|
+
setShowConfig = _useState2[1];
|
|
88
|
+
var datasetCellSizeCache = (0, _react.useRef)({});
|
|
89
|
+
var fields = (0, _react.useMemo)(function () {
|
|
90
|
+
return datasets && dataId ? (datasets[dataId] || {}).fields : undefined;
|
|
91
|
+
}, [datasets, dataId]);
|
|
92
|
+
var columns = (0, _react.useMemo)(function () {
|
|
93
|
+
return (fields === null || fields === void 0 ? void 0 : fields.map(function (f) {
|
|
94
|
+
return f.name;
|
|
95
|
+
})) || [];
|
|
96
|
+
}, [fields]);
|
|
97
|
+
var colMeta = (0, _react.useMemo)(function () {
|
|
98
|
+
return (fields === null || fields === void 0 ? void 0 : fields.reduce(function (acc, _ref3) {
|
|
99
|
+
var name = _ref3.name,
|
|
100
|
+
displayName = _ref3.displayName,
|
|
101
|
+
type = _ref3.type,
|
|
102
|
+
filterProps = _ref3.filterProps,
|
|
103
|
+
format = _ref3.format,
|
|
104
|
+
displayFormat = _ref3.displayFormat;
|
|
105
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, name, _objectSpread(_objectSpread(_objectSpread({
|
|
106
|
+
name: displayName || name,
|
|
107
|
+
type: type
|
|
108
|
+
}, format ? {
|
|
109
|
+
format: format
|
|
110
|
+
} : {}), displayFormat ? {
|
|
111
|
+
displayFormat: displayFormat
|
|
112
|
+
} : {}), filterProps !== null && filterProps !== void 0 && filterProps.columnStats ? {
|
|
113
|
+
columnStats: filterProps.columnStats
|
|
114
|
+
} : {})));
|
|
115
|
+
}, {})) || {};
|
|
116
|
+
}, [fields]);
|
|
117
|
+
var cellSizeCache = (0, _react.useMemo)(function () {
|
|
118
|
+
if (!datasets || !dataId || !datasets[dataId]) {
|
|
119
|
+
return {};
|
|
83
120
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return props.datasets;
|
|
96
|
-
});
|
|
97
|
-
(0, _defineProperty2["default"])(_this, "fields", function (_ref3) {
|
|
98
|
-
var datasets = _ref3.datasets,
|
|
99
|
-
_ref3$dataId = _ref3.dataId,
|
|
100
|
-
dataId = _ref3$dataId === void 0 ? '' : _ref3$dataId;
|
|
101
|
-
return (datasets[dataId] || {}).fields;
|
|
102
|
-
});
|
|
103
|
-
(0, _defineProperty2["default"])(_this, "columns", (0, _reselect.createSelector)(_this.fields, function (fields) {
|
|
104
|
-
return fields.map(function (f) {
|
|
105
|
-
return f.name;
|
|
106
|
-
});
|
|
107
|
-
}));
|
|
108
|
-
(0, _defineProperty2["default"])(_this, "colMeta", (0, _reselect.createSelector)([_this.fields, _this.datasets], function (fields) {
|
|
109
|
-
return fields.reduce(function (acc, _ref4) {
|
|
110
|
-
var name = _ref4.name,
|
|
111
|
-
displayName = _ref4.displayName,
|
|
112
|
-
type = _ref4.type,
|
|
113
|
-
filterProps = _ref4.filterProps,
|
|
114
|
-
format = _ref4.format,
|
|
115
|
-
displayFormat = _ref4.displayFormat;
|
|
116
|
-
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, name, _objectSpread(_objectSpread(_objectSpread({
|
|
117
|
-
name: displayName || name,
|
|
118
|
-
type: type
|
|
119
|
-
}, format ? {
|
|
120
|
-
format: format
|
|
121
|
-
} : {}), displayFormat ? {
|
|
122
|
-
displayFormat: displayFormat
|
|
123
|
-
} : {}), filterProps !== null && filterProps !== void 0 && filterProps.columnStats ? {
|
|
124
|
-
columnStats: filterProps.columnStats
|
|
125
|
-
} : {})));
|
|
126
|
-
}, {});
|
|
127
|
-
}));
|
|
128
|
-
(0, _defineProperty2["default"])(_this, "cellSizeCache", (0, _reselect.createSelector)(_this.dataId, _this.datasets, function (dataId, datasets) {
|
|
129
|
-
if (!datasets[dataId]) {
|
|
130
|
-
return {};
|
|
131
|
-
}
|
|
132
|
-
var _datasets$dataId = datasets[dataId],
|
|
133
|
-
fields = _datasets$dataId.fields,
|
|
134
|
-
dataContainer = _datasets$dataId.dataContainer;
|
|
135
|
-
var showCalculate = null;
|
|
136
|
-
if (!_this.datasetCellSizeCache[dataId]) {
|
|
137
|
-
showCalculate = true;
|
|
138
|
-
} else if (_this.datasetCellSizeCache[dataId].fields !== fields || _this.datasetCellSizeCache[dataId].dataContainer !== dataContainer) {
|
|
139
|
-
showCalculate = true;
|
|
140
|
-
}
|
|
141
|
-
if (!showCalculate) {
|
|
142
|
-
return _this.datasetCellSizeCache[dataId].cellSizeCache;
|
|
143
|
-
}
|
|
144
|
-
var cellSizeCache = fields.reduce(function (acc, field, colIdx) {
|
|
145
|
-
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, field.name, (0, _cellSize.renderedSize)({
|
|
146
|
-
text: {
|
|
147
|
-
dataContainer: dataContainer,
|
|
148
|
-
column: field.displayName
|
|
149
|
-
},
|
|
150
|
-
colIdx: colIdx,
|
|
151
|
-
type: field.type,
|
|
152
|
-
fontSize: _this.props.theme.cellFontSize,
|
|
153
|
-
font: _this.props.theme.fontFamily,
|
|
154
|
-
minCellSize: MIN_STATS_CELL_SIZE
|
|
155
|
-
})));
|
|
156
|
-
}, {});
|
|
157
|
-
// save it to cache
|
|
158
|
-
_this.datasetCellSizeCache[dataId] = {
|
|
159
|
-
cellSizeCache: cellSizeCache,
|
|
160
|
-
fields: fields,
|
|
161
|
-
dataContainer: dataContainer
|
|
162
|
-
};
|
|
163
|
-
return cellSizeCache;
|
|
164
|
-
}));
|
|
165
|
-
(0, _defineProperty2["default"])(_this, "copyTableColumn", function (column) {
|
|
166
|
-
var _this$props = _this.props,
|
|
167
|
-
_this$props$dataId = _this$props.dataId,
|
|
168
|
-
dataId = _this$props$dataId === void 0 ? '' : _this$props$dataId,
|
|
169
|
-
copyTableColumn = _this$props.copyTableColumn;
|
|
170
|
-
copyTableColumn(dataId, column);
|
|
171
|
-
});
|
|
172
|
-
(0, _defineProperty2["default"])(_this, "pinTableColumn", function (column) {
|
|
173
|
-
var _this$props2 = _this.props,
|
|
174
|
-
_this$props2$dataId = _this$props2.dataId,
|
|
175
|
-
dataId = _this$props2$dataId === void 0 ? '' : _this$props2$dataId,
|
|
176
|
-
pinTableColumn = _this$props2.pinTableColumn;
|
|
177
|
-
pinTableColumn(dataId, column);
|
|
178
|
-
});
|
|
179
|
-
(0, _defineProperty2["default"])(_this, "sortTableColumn", function (column, mode) {
|
|
180
|
-
var _this$props3 = _this.props,
|
|
181
|
-
_this$props3$dataId = _this$props3.dataId,
|
|
182
|
-
dataId = _this$props3$dataId === void 0 ? '' : _this$props3$dataId,
|
|
183
|
-
sortTableColumn = _this$props3.sortTableColumn;
|
|
184
|
-
sortTableColumn(dataId, column, mode);
|
|
185
|
-
});
|
|
186
|
-
(0, _defineProperty2["default"])(_this, "setColumnDisplayFormat", function (formats) {
|
|
187
|
-
var _this$props4 = _this.props,
|
|
188
|
-
dataId = _this$props4.dataId,
|
|
189
|
-
setColumnDisplayFormat = _this$props4.setColumnDisplayFormat;
|
|
190
|
-
if (dataId) setColumnDisplayFormat(dataId, formats);
|
|
191
|
-
});
|
|
192
|
-
(0, _defineProperty2["default"])(_this, "onOpenConfig", function () {
|
|
193
|
-
_this.setState({
|
|
194
|
-
showConfig: true
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
(0, _defineProperty2["default"])(_this, "onCloseConfig", function () {
|
|
198
|
-
_this.setState({
|
|
199
|
-
showConfig: false
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
return _this;
|
|
203
|
-
}
|
|
204
|
-
(0, _inherits2["default"])(DataTableModal, _React$Component);
|
|
205
|
-
return (0, _createClass2["default"])(DataTableModal, [{
|
|
206
|
-
key: "render",
|
|
207
|
-
value: function render() {
|
|
208
|
-
var _this$props5 = this.props,
|
|
209
|
-
datasets = _this$props5.datasets,
|
|
210
|
-
dataId = _this$props5.dataId,
|
|
211
|
-
showDatasetTable = _this$props5.showDatasetTable,
|
|
212
|
-
_this$props5$showTab = _this$props5.showTab,
|
|
213
|
-
showTab = _this$props5$showTab === void 0 ? true : _this$props5$showTab;
|
|
214
|
-
if (!datasets || !dataId) {
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
var activeDataset = datasets[dataId];
|
|
218
|
-
var columns = this.columns(this.props);
|
|
219
|
-
var colMeta = this.colMeta(this.props);
|
|
220
|
-
var cellSizeCache = this.cellSizeCache(this.props);
|
|
221
|
-
return /*#__PURE__*/_react["default"].createElement(StyledModal, {
|
|
222
|
-
className: "dataset-modal",
|
|
223
|
-
id: "dataset-modal"
|
|
224
|
-
}, /*#__PURE__*/_react["default"].createElement(_canvas["default"], null), /*#__PURE__*/_react["default"].createElement(TableContainer, null, showTab ? /*#__PURE__*/_react["default"].createElement(DatasetTabs, {
|
|
225
|
-
activeDataset: activeDataset,
|
|
226
|
-
datasets: datasets,
|
|
227
|
-
showDatasetTable: showDatasetTable
|
|
228
|
-
}) : null, /*#__PURE__*/_react["default"].createElement(StyledConfigureButton, {
|
|
229
|
-
className: "display-config-button"
|
|
230
|
-
}, /*#__PURE__*/_react["default"].createElement(_icons.Gear, {
|
|
231
|
-
onClick: this.onOpenConfig
|
|
232
|
-
}), /*#__PURE__*/_react["default"].createElement(_portaled["default"], {
|
|
233
|
-
right: 240,
|
|
234
|
-
top: 20,
|
|
235
|
-
isOpened: this.state.showConfig,
|
|
236
|
-
onClose: this.onCloseConfig
|
|
237
|
-
}, /*#__PURE__*/_react["default"].createElement(DataTableConfig, {
|
|
238
|
-
columns: columns,
|
|
239
|
-
colMeta: colMeta,
|
|
240
|
-
setColumnDisplayFormat: this.setColumnDisplayFormat,
|
|
241
|
-
onClose: this.onCloseConfig
|
|
242
|
-
}))), datasets[dataId] ? /*#__PURE__*/_react["default"].createElement(DataTable, {
|
|
243
|
-
key: dataId,
|
|
244
|
-
dataId: dataId,
|
|
245
|
-
columns: columns,
|
|
246
|
-
colMeta: colMeta,
|
|
247
|
-
cellSizeCache: cellSizeCache,
|
|
248
|
-
dataContainer: activeDataset.dataContainer,
|
|
249
|
-
pinnedColumns: activeDataset.pinnedColumns,
|
|
250
|
-
sortOrder: activeDataset.sortOrder,
|
|
251
|
-
sortColumn: activeDataset.sortColumn || DEFAULT_SORT_COLUMN,
|
|
252
|
-
copyTableColumn: this.copyTableColumn,
|
|
253
|
-
pinTableColumn: this.pinTableColumn,
|
|
254
|
-
sortTableColumn: this.sortTableColumn,
|
|
255
|
-
setColumnDisplayFormat: this.setColumnDisplayFormat,
|
|
256
|
-
hasStats: false
|
|
257
|
-
}) : null));
|
|
121
|
+
var _datasets$dataId = datasets[dataId],
|
|
122
|
+
fields = _datasets$dataId.fields,
|
|
123
|
+
dataContainer = _datasets$dataId.dataContainer;
|
|
124
|
+
var showCalculate = null;
|
|
125
|
+
if (!datasetCellSizeCache.current[dataId]) {
|
|
126
|
+
showCalculate = true;
|
|
127
|
+
} else if (datasetCellSizeCache.current[dataId].fields !== fields || datasetCellSizeCache.current[dataId].dataContainer !== dataContainer) {
|
|
128
|
+
showCalculate = true;
|
|
129
|
+
}
|
|
130
|
+
if (!showCalculate) {
|
|
131
|
+
return datasetCellSizeCache.current[dataId].cellSizeCache;
|
|
258
132
|
}
|
|
259
|
-
|
|
260
|
-
|
|
133
|
+
var cellSizeCache = fields.reduce(function (acc, field, colIdx) {
|
|
134
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, field.name, (0, _cellSize.renderedSize)({
|
|
135
|
+
text: {
|
|
136
|
+
dataContainer: dataContainer,
|
|
137
|
+
column: field.displayName
|
|
138
|
+
},
|
|
139
|
+
colIdx: colIdx,
|
|
140
|
+
type: field.type,
|
|
141
|
+
fontSize: theme.cellFontSize,
|
|
142
|
+
font: theme.fontFamily,
|
|
143
|
+
minCellSize: MIN_STATS_CELL_SIZE
|
|
144
|
+
})));
|
|
145
|
+
}, {});
|
|
146
|
+
datasetCellSizeCache.current[dataId] = {
|
|
147
|
+
cellSizeCache: cellSizeCache,
|
|
148
|
+
fields: fields,
|
|
149
|
+
dataContainer: dataContainer
|
|
150
|
+
};
|
|
151
|
+
return cellSizeCache;
|
|
152
|
+
}, [dataId, datasets, theme]);
|
|
153
|
+
var handleCopyTableColumn = (0, _react.useCallback)(function (column) {
|
|
154
|
+
copyTableColumnProp(dataId, column);
|
|
155
|
+
}, [copyTableColumnProp, dataId]);
|
|
156
|
+
var handlePinTableColumn = (0, _react.useCallback)(function (column) {
|
|
157
|
+
pinTableColumn(dataId, column);
|
|
158
|
+
}, [pinTableColumn, dataId]);
|
|
159
|
+
var handleSortTableColumn = (0, _react.useCallback)(function (column, mode) {
|
|
160
|
+
sortTableColumn(dataId, column, mode);
|
|
161
|
+
}, [sortTableColumn, dataId]);
|
|
162
|
+
var handleSetColumnDisplayFormat = (0, _react.useCallback)(function (formats) {
|
|
163
|
+
if (dataId) setColumnDisplayFormatProp(dataId, formats);
|
|
164
|
+
}, [setColumnDisplayFormatProp, dataId]);
|
|
165
|
+
var onOpenConfig = (0, _react.useCallback)(function () {
|
|
166
|
+
setShowConfig(true);
|
|
167
|
+
}, []);
|
|
168
|
+
var onCloseConfig = (0, _react.useCallback)(function () {
|
|
169
|
+
setShowConfig(false);
|
|
170
|
+
}, []);
|
|
171
|
+
if (!datasets || !dataId) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
var activeDataset = datasets[dataId];
|
|
175
|
+
return /*#__PURE__*/_react["default"].createElement(StyledModal, {
|
|
176
|
+
className: "dataset-modal",
|
|
177
|
+
id: "dataset-modal"
|
|
178
|
+
}, /*#__PURE__*/_react["default"].createElement(_canvas["default"], null), /*#__PURE__*/_react["default"].createElement(TableContainer, null, showTab ? /*#__PURE__*/_react["default"].createElement(DatasetTabs, {
|
|
179
|
+
activeDataset: activeDataset,
|
|
180
|
+
datasets: datasets,
|
|
181
|
+
showDatasetTable: showDatasetTable
|
|
182
|
+
}) : null, /*#__PURE__*/_react["default"].createElement(StyledConfigureButton, {
|
|
183
|
+
className: "display-config-button"
|
|
184
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.Gear, {
|
|
185
|
+
onClick: onOpenConfig
|
|
186
|
+
}), /*#__PURE__*/_react["default"].createElement(_portaled["default"], {
|
|
187
|
+
right: 240,
|
|
188
|
+
top: 20,
|
|
189
|
+
isOpened: showConfig,
|
|
190
|
+
onClose: onCloseConfig
|
|
191
|
+
}, /*#__PURE__*/_react["default"].createElement(DataTableConfig, {
|
|
192
|
+
columns: columns,
|
|
193
|
+
colMeta: colMeta,
|
|
194
|
+
setColumnDisplayFormat: handleSetColumnDisplayFormat,
|
|
195
|
+
onClose: onCloseConfig
|
|
196
|
+
}))), datasets[dataId] ? /*#__PURE__*/_react["default"].createElement(DataTable, {
|
|
197
|
+
key: dataId,
|
|
198
|
+
dataId: dataId,
|
|
199
|
+
columns: columns,
|
|
200
|
+
colMeta: colMeta,
|
|
201
|
+
cellSizeCache: cellSizeCache,
|
|
202
|
+
dataContainer: activeDataset.dataContainer,
|
|
203
|
+
pinnedColumns: activeDataset.pinnedColumns,
|
|
204
|
+
sortOrder: activeDataset.sortOrder,
|
|
205
|
+
sortColumn: activeDataset.sortColumn || DEFAULT_SORT_COLUMN,
|
|
206
|
+
copyTableColumn: handleCopyTableColumn,
|
|
207
|
+
pinTableColumn: handlePinTableColumn,
|
|
208
|
+
sortTableColumn: handleSortTableColumn,
|
|
209
|
+
setColumnDisplayFormat: handleSetColumnDisplayFormat,
|
|
210
|
+
hasStats: false
|
|
211
|
+
}) : null));
|
|
212
|
+
};
|
|
261
213
|
return (0, _styledComponents.withTheme)(DataTableModal);
|
|
262
214
|
}
|
|
263
215
|
var _default = exports["default"] = DataTableModalFactory;
|
|
264
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZGF0YXNldExhYmVsIiwiX2RhdGFUYWJsZSIsIl9yZXNlbGVjdCIsIl9jZWxsU2l6ZSIsIl9jYW52YXMiLCJfaWNvbnMiLCJfcG9ydGFsZWQiLCJfZGlzcGxheUZvcm1hdCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIk1JTl9TVEFUU19DRUxMX1NJWkUiLCJERUZBVUxUX1NPUlRfQ09MVU1OIiwiZGdTZXR0aW5ncyIsInNpZGVQYWRkaW5nIiwidmVydGljYWxQYWRkaW5nIiwiaGVpZ2h0IiwiU3R5bGVkTW9kYWwiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIkRhdGFzZXRDYXRhbG9nIiwicHJvcHMiLCJ0aGVtZSIsIm1vZGFsU2Nyb2xsQmFyIiwiRGF0YXNldE1vZGFsVGFiIiwiZXhwb3J0cyIsImFjdGl2ZSIsIlN0eWxlZENvbmZpZ3VyZUJ1dHRvbiIsIkRhdGFzZXRUYWJzVW5tZW1vaXplZCIsIl9yZWYiLCJhY3RpdmVEYXRhc2V0IiwiZGF0YXNldHMiLCJzaG93RGF0YXNldFRhYmxlIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInZhbHVlcyIsIm1hcCIsImRhdGFzZXQiLCJrZXkiLCJpZCIsIm9uQ2xpY2siLCJEYXRhc2V0VGFicyIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIiwiRGF0YVRhYmxlTW9kYWxGYWN0b3J5IiwiZGVwcyIsIkRhdGFUYWJsZUZhY3RvcnkiLCJEYXRhVGFibGVDb25maWdGYWN0b3J5IiwiVGFibGVDb250YWluZXIiLCJEYXRhVGFibGUiLCJEYXRhVGFibGVDb25maWciLCJEYXRhVGFibGVNb2RhbCIsIl9SZWFjdCRDb21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsInNob3dDb25maWciLCJfcmVmMiIsIl9yZWYyJGRhdGFJZCIsImRhdGFJZCIsIl9yZWYzIiwiX3JlZjMkZGF0YUlkIiwiZmllbGRzIiwiY3JlYXRlU2VsZWN0b3IiLCJmIiwibmFtZSIsInJlZHVjZSIsImFjYyIsIl9yZWY0IiwidHlwZSIsImZpbHRlclByb3BzIiwiZm9ybWF0IiwiZGlzcGxheUZvcm1hdCIsImNvbHVtblN0YXRzIiwiX2RhdGFzZXRzJGRhdGFJZCIsImRhdGFDb250YWluZXIiLCJzaG93Q2FsY3VsYXRlIiwiZGF0YXNldENlbGxTaXplQ2FjaGUiLCJjZWxsU2l6ZUNhY2hlIiwiZmllbGQiLCJjb2xJZHgiLCJyZW5kZXJlZFNpemUiLCJ0ZXh0IiwiY29sdW1uIiwiZm9udFNpemUiLCJjZWxsRm9udFNpemUiLCJmb250IiwiZm9udEZhbWlseSIsIm1pbkNlbGxTaXplIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRkYXRhSWQiLCJjb3B5VGFibGVDb2x1bW4iLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczIkZGF0YUlkIiwicGluVGFibGVDb2x1bW4iLCJtb2RlIiwiX3RoaXMkcHJvcHMzIiwiX3RoaXMkcHJvcHMzJGRhdGFJZCIsInNvcnRUYWJsZUNvbHVtbiIsImZvcm1hdHMiLCJfdGhpcyRwcm9wczQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0Iiwic2V0U3RhdGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHM1IiwiX3RoaXMkcHJvcHM1JHNob3dUYWIiLCJzaG93VGFiIiwiY29sdW1ucyIsImNvbE1ldGEiLCJHZWFyIiwib25PcGVuQ29uZmlnIiwicmlnaHQiLCJ0b3AiLCJpc09wZW5lZCIsInN0YXRlIiwib25DbG9zZSIsIm9uQ2xvc2VDb25maWciLCJwaW5uZWRDb2x1bW5zIiwic29ydE9yZGVyIiwic29ydENvbHVtbiIsImhhc1N0YXRzIiwiQ29tcG9uZW50Iiwid2l0aFRoZW1lIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL2RhdGEtdGFibGUtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lLCBJU3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRGF0YXNldExhYmVsIGZyb20gJy4uL2NvbW1vbi9kYXRhc2V0LWxhYmVsJztcbmltcG9ydCBEYXRhVGFibGVGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9kYXRhLXRhYmxlJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7cmVuZGVyZWRTaXplfSBmcm9tICcuLi9jb21tb24vZGF0YS10YWJsZS9jZWxsLXNpemUnO1xuaW1wb3J0IENhbnZhc0hhY2sgZnJvbSAnLi4vY29tbW9uL2RhdGEtdGFibGUvY2FudmFzJztcbmltcG9ydCBLZXBsZXJUYWJsZSwge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1VpU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtHZWFyfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IFBvcnRhbGVkIGZyb20gJy4uL2NvbW1vbi9wb3J0YWxlZCc7XG5pbXBvcnQgRGF0YVRhYmxlQ29uZmlnRmFjdG9yeSBmcm9tICcuLi9jb21tb24vZGF0YS10YWJsZS9kaXNwbGF5LWZvcm1hdCc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBNSU5fU1RBVFNfQ0VMTF9TSVpFID0gMTIyO1xuY29uc3QgREVGQVVMVF9TT1JUX0NPTFVNTiA9IHt9O1xuXG4vLyBzaWRlUGFkZGluZyBjaGFuZ2VzIGZyb20gMzggdG8gNjgsIDMwcHggZm9yIGNvbmZpZ3VyYXRpb24gYnV0dG9uXG5jb25zdCBkZ1NldHRpbmdzID0ge1xuICBzaWRlUGFkZGluZzogJzY4cHgnLFxuICB2ZXJ0aWNhbFBhZGRpbmc6ICcxNnB4JyxcbiAgaGVpZ2h0OiAnMzZweCdcbn07XG5cbmNvbnN0IFN0eWxlZE1vZGFsID0gc3R5bGVkLmRpdmBcbiAgbWluLWhlaWdodDogODV2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IERhdGFzZXRDYXRhbG9nID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogJHtkZ1NldHRpbmdzLnZlcnRpY2FsUGFkZGluZ30gJHtkZ1NldHRpbmdzLnNpZGVQYWRkaW5nfSAwIDA7XG5cbiAgLm92ZXJmbG93LWhvcml6b250YWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1vZGFsU2Nyb2xsQmFyfVxuICB9XG5gO1xuXG5leHBvcnQgdHlwZSBEYXRhc2V0TW9kYWxUYWJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBEYXRhc2V0TW9kYWxUYWI6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBEYXRhc2V0TW9kYWxUYWJQcm9wc1xuPiA9IHN0eWxlZC5kaXY8RGF0YXNldE1vZGFsVGFiUHJvcHM+YFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gJ2JsYWNrJyA6ICd0cmFuc3BhcmVudCcpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDM1cHg7XG4gIG1hcmdpbjogMCAzcHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xuXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCBibGFjaztcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ29uZmlndXJlQnV0dG9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDI0cHg7XG4gIHJpZ2h0OiA0OHB4O1xuICBzdmcge1xuICAgIHN0cm9rZTogYmxhY2s7XG4gIH1cbiAgY3Vyc29yOiBwb2ludGVyO1xuYDtcblxuaW50ZXJmYWNlIERhdGFzZXRUYWJzVW5tZW1vaXplZFByb3BzIHtcbiAgYWN0aXZlRGF0YXNldDogS2VwbGVyVGFibGU7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2hvd0RhdGFzZXRUYWJsZTogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmNvbnN0IERhdGFzZXRUYWJzVW5tZW1vaXplZDogUmVhY3QuRkM8RGF0YXNldFRhYnNVbm1lbW9pemVkUHJvcHM+ID0gKHtcbiAgYWN0aXZlRGF0YXNldCxcbiAgZGF0YXNldHMsXG4gIHNob3dEYXRhc2V0VGFibGVcbn0pID0+IChcbiAgPERhdGFzZXRDYXRhbG9nIGNsYXNzTmFtZT1cImRhdGFzZXQtbW9kYWwtY2F0YWxvZ1wiPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwib3ZlcmZsb3ctaG9yaXpvbnRhbFwiPlxuICAgICAge09iamVjdC52YWx1ZXMoZGF0YXNldHMpLm1hcCgoZGF0YXNldDogS2VwbGVyVGFibGUpID0+IChcbiAgICAgICAgPERhdGFzZXRNb2RhbFRhYlxuICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGFzZXQtbW9kYWwtdGFiXCJcbiAgICAgICAgICBhY3RpdmU9e2RhdGFzZXQgPT09IGFjdGl2ZURhdGFzZXR9XG4gICAgICAgICAga2V5PXtkYXRhc2V0LmlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNob3dEYXRhc2V0VGFibGUoZGF0YXNldC5pZCl9XG4gICAgICAgID5cbiAgICAgICAgICA8RGF0YXNldExhYmVsIGRhdGFzZXQ9e2RhdGFzZXR9IC8+XG4gICAgICAgIDwvRGF0YXNldE1vZGFsVGFiPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gIDwvRGF0YXNldENhdGFsb2c+XG4pO1xuXG5leHBvcnQgY29uc3QgRGF0YXNldFRhYnMgPSBSZWFjdC5tZW1vKERhdGFzZXRUYWJzVW5tZW1vaXplZCk7XG5cbkRhdGFzZXRUYWJzLmRpc3BsYXlOYW1lID0gJ0RhdGFzZXRUYWJzJztcblxuRGF0YVRhYmxlTW9kYWxGYWN0b3J5LmRlcHMgPSBbRGF0YVRhYmxlRmFjdG9yeSwgRGF0YVRhYmxlQ29uZmlnRmFjdG9yeV07XG5cbmNvbnN0IFRhYmxlQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC1ncm93OiAxO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5gO1xuXG5pbnRlcmZhY2UgRGF0YVRhYmxlTW9kYWxQcm9wcyB7XG4gIHRoZW1lOiBhbnk7XG4gIGRhdGFJZD86IHN0cmluZztcbiAgc29ydFRhYmxlQ29sdW1uOiAoaWQ6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIG1vZGU/OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHBpblRhYmxlQ29sdW1uOiAoaWQ6IHN0cmluZywgY29sdW1uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGNvcHlUYWJsZUNvbHVtbjogKGlkOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIHNob3dEYXRhc2V0VGFibGU6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBzaG93VGFiPzogYm9vbGVhbjtcbiAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdDogKFxuICAgIGRhdGFJZDogc3RyaW5nLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGNvbHVtbjogc3RyaW5nO1xuICAgICAgZGlzcGxheUZvcm1hdDogc3RyaW5nO1xuICAgIH1cbiAgKSA9PiB2b2lkO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xufVxuXG5mdW5jdGlvbiBEYXRhVGFibGVNb2RhbEZhY3RvcnkoXG4gIERhdGFUYWJsZTogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlRmFjdG9yeT4sXG4gIERhdGFUYWJsZUNvbmZpZzogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YVRhYmxlQ29uZmlnRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8T21pdDxEYXRhVGFibGVNb2RhbFByb3BzLCAndGhlbWUnPj4ge1xuICBjbGFzcyBEYXRhVGFibGVNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxEYXRhVGFibGVNb2RhbFByb3BzPiB7XG4gICAgc3RhdGUgPSB7XG4gICAgICBzaG93Q29uZmlnOiBmYWxzZVxuICAgIH07XG5cbiAgICBkYXRhc2V0Q2VsbFNpemVDYWNoZSA9IHt9O1xuICAgIGRhdGFJZCA9ICh7ZGF0YUlkID0gJyd9OiBEYXRhVGFibGVNb2RhbFByb3BzKSA9PiBkYXRhSWQ7XG4gICAgZGF0YXNldHMgPSAocHJvcHM6IERhdGFUYWJsZU1vZGFsUHJvcHMpID0+IHByb3BzLmRhdGFzZXRzO1xuICAgIGZpZWxkcyA9ICh7ZGF0YXNldHMsIGRhdGFJZCA9ICcnfTogRGF0YVRhYmxlTW9kYWxQcm9wcykgPT4gKGRhdGFzZXRzW2RhdGFJZF0gfHwge30pLmZpZWxkcztcbiAgICBjb2x1bW5zID0gY3JlYXRlU2VsZWN0b3IodGhpcy5maWVsZHMsIGZpZWxkcyA9PiBmaWVsZHMubWFwKGYgPT4gZi5uYW1lKSk7XG4gICAgY29sTWV0YSA9IGNyZWF0ZVNlbGVjdG9yKFt0aGlzLmZpZWxkcywgdGhpcy5kYXRhc2V0c10sIGZpZWxkcyA9PlxuICAgICAgZmllbGRzLnJlZHVjZShcbiAgICAgICAgKGFjYywge25hbWUsIGRpc3BsYXlOYW1lLCB0eXBlLCBmaWx0ZXJQcm9wcywgZm9ybWF0LCBkaXNwbGF5Rm9ybWF0fSkgPT4gKHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgW25hbWVdOiB7XG4gICAgICAgICAgICBuYW1lOiBkaXNwbGF5TmFtZSB8fCBuYW1lLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIC4uLihmb3JtYXQgPyB7Zm9ybWF0fSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihkaXNwbGF5Rm9ybWF0ID8ge2Rpc3BsYXlGb3JtYXR9IDoge30pLFxuICAgICAgICAgICAgLi4uKGZpbHRlclByb3BzPy5jb2x1bW5TdGF0cyA/IHtjb2x1bW5TdGF0czogZmlsdGVyUHJvcHMuY29sdW1uU3RhdHN9IDoge30pXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAge31cbiAgICAgIClcbiAgICApO1xuXG4gICAgY2VsbFNpemVDYWNoZSA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZGF0YUlkLCB0aGlzLmRhdGFzZXRzLCAoZGF0YUlkLCBkYXRhc2V0cykgPT4ge1xuICAgICAgaWYgKCFkYXRhc2V0c1tkYXRhSWRdKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHtmaWVsZHMsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbZGF0YUlkXTtcblxuICAgICAgbGV0IHNob3dDYWxjdWxhdGU6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICAgIGlmICghdGhpcy5kYXRhc2V0Q2VsbFNpemVDYWNoZVtkYXRhSWRdKSB7XG4gICAgICAgIHNob3dDYWxjdWxhdGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5kYXRhc2V0Q2VsbFNpemVDYWNoZVtkYXRhSWRdLmZpZWxkcyAhPT0gZmllbGRzIHx8XG4gICAgICAgIHRoaXMuZGF0YXNldENlbGxTaXplQ2FjaGVbZGF0YUlkXS5kYXRhQ29udGFpbmVyICE9PSBkYXRhQ29udGFpbmVyXG4gICAgICApIHtcbiAgICAgICAgc2hvd0NhbGN1bGF0ZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghc2hvd0NhbGN1bGF0ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhc2V0Q2VsbFNpemVDYWNoZVtkYXRhSWRdLmNlbGxTaXplQ2FjaGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNlbGxTaXplQ2FjaGUgPSBmaWVsZHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBmaWVsZCwgY29sSWR4KSA9PiAoe1xuICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICBbZmllbGQubmFtZV06IHJlbmRlcmVkU2l6ZSh7XG4gICAgICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICAgIGRhdGFDb250YWluZXIsXG4gICAgICAgICAgICAgIGNvbHVtbjogZmllbGQuZGlzcGxheU5hbWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb2xJZHgsXG4gICAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAgICAgZm9udFNpemU6IHRoaXMucHJvcHMudGhlbWUuY2VsbEZvbnRTaXplLFxuICAgICAgICAgICAgZm9udDogdGhpcy5wcm9wcy50aGVtZS5mb250RmFtaWx5LFxuICAgICAgICAgICAgbWluQ2VsbFNpemU6IE1JTl9TVEFUU19DRUxMX1NJWkVcbiAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgICAge31cbiAgICAgICk7XG4gICAgICAvLyBzYXZlIGl0IHRvIGNhY2hlXG4gICAgICB0aGlzLmRhdGFzZXRDZWxsU2l6ZUNhY2hlW2RhdGFJZF0gPSB7XG4gICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZGF0YUNvbnRhaW5lclxuICAgICAgfTtcbiAgICAgIHJldHVybiBjZWxsU2l6ZUNhY2hlO1xuICAgIH0pO1xuXG4gICAgY29weVRhYmxlQ29sdW1uID0gKGNvbHVtbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB7ZGF0YUlkID0gJycsIGNvcHlUYWJsZUNvbHVtbn0gPSB0aGlzLnByb3BzO1xuICAgICAgY29weVRhYmxlQ29sdW1uKGRhdGFJZCwgY29sdW1uKTtcbiAgICB9O1xuXG4gICAgcGluVGFibGVDb2x1bW4gPSAoY29sdW1uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHtkYXRhSWQgPSAnJywgcGluVGFibGVDb2x1bW59ID0gdGhpcy5wcm9wcztcbiAgICAgIHBpblRhYmxlQ29sdW1uKGRhdGFJZCwgY29sdW1uKTtcbiAgICB9O1xuXG4gICAgc29ydFRhYmxlQ29sdW1uID0gKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB7ZGF0YUlkID0gJycsIHNvcnRUYWJsZUNvbHVtbn0gPSB0aGlzLnByb3BzO1xuICAgICAgc29ydFRhYmxlQ29sdW1uKGRhdGFJZCwgY29sdW1uLCBtb2RlKTtcbiAgICB9O1xuXG4gICAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdCA9IGZvcm1hdHMgPT4ge1xuICAgICAgY29uc3Qge2RhdGFJZCwgc2V0Q29sdW1uRGlzcGxheUZvcm1hdH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKGRhdGFJZCkgc2V0Q29sdW1uRGlzcGxheUZvcm1hdChkYXRhSWQsIGZvcm1hdHMpO1xuICAgIH07XG5cbiAgICBvbk9wZW5Db25maWcgPSAoKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93Q29uZmlnOiB0cnVlfSk7XG4gICAgfTtcblxuICAgIG9uQ2xvc2VDb25maWcgPSAoKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93Q29uZmlnOiBmYWxzZX0pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7ZGF0YXNldHMsIGRhdGFJZCwgc2hvd0RhdGFzZXRUYWJsZSwgc2hvd1RhYiA9IHRydWV9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghZGF0YXNldHMgfHwgIWRhdGFJZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGl2ZURhdGFzZXQgPSBkYXRhc2V0c1tkYXRhSWRdO1xuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuY29sdW1ucyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGNvbE1ldGEgPSB0aGlzLmNvbE1ldGEodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBjZWxsU2l6ZUNhY2hlID0gdGhpcy5jZWxsU2l6ZUNhY2hlKHRoaXMucHJvcHMpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTW9kYWwgY2xhc3NOYW1lPVwiZGF0YXNldC1tb2RhbFwiIGlkPVwiZGF0YXNldC1tb2RhbFwiPlxuICAgICAgICAgIDxDYW52YXNIYWNrIC8+XG4gICAgICAgICAgPFRhYmxlQ29udGFpbmVyPlxuICAgICAgICAgICAge3Nob3dUYWIgPyAoXG4gICAgICAgICAgICAgIDxEYXRhc2V0VGFic1xuICAgICAgICAgICAgICAgIGFjdGl2ZURhdGFzZXQ9e2FjdGl2ZURhdGFzZXR9XG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICAgIHNob3dEYXRhc2V0VGFibGU9e3Nob3dEYXRhc2V0VGFibGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxTdHlsZWRDb25maWd1cmVCdXR0b24gY2xhc3NOYW1lPVwiZGlzcGxheS1jb25maWctYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxHZWFyIG9uQ2xpY2s9e3RoaXMub25PcGVuQ29uZmlnfSAvPlxuICAgICAgICAgICAgICA8UG9ydGFsZWRcbiAgICAgICAgICAgICAgICByaWdodD17MjQwfVxuICAgICAgICAgICAgICAgIHRvcD17MjB9XG4gICAgICAgICAgICAgICAgaXNPcGVuZWQ9e3RoaXMuc3RhdGUuc2hvd0NvbmZpZ31cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXt0aGlzLm9uQ2xvc2VDb25maWd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RGF0YVRhYmxlQ29uZmlnXG4gICAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgICAgICAgY29sTWV0YT17Y29sTWV0YX1cbiAgICAgICAgICAgICAgICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ9e3RoaXMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMub25DbG9zZUNvbmZpZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgICAgICAgPC9TdHlsZWRDb25maWd1cmVCdXR0b24+XG4gICAgICAgICAgICB7ZGF0YXNldHNbZGF0YUlkXSA/IChcbiAgICAgICAgICAgICAgPERhdGFUYWJsZVxuICAgICAgICAgICAgICAgIGtleT17ZGF0YUlkfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17ZGF0YUlkfVxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgY29sTWV0YT17Y29sTWV0YX1cbiAgICAgICAgICAgICAgICBjZWxsU2l6ZUNhY2hlPXtjZWxsU2l6ZUNhY2hlfVxuICAgICAgICAgICAgICAgIGRhdGFDb250YWluZXI9e2FjdGl2ZURhdGFzZXQuZGF0YUNvbnRhaW5lcn1cbiAgICAgICAgICAgICAgICBwaW5uZWRDb2x1bW5zPXthY3RpdmVEYXRhc2V0LnBpbm5lZENvbHVtbnN9XG4gICAgICAgICAgICAgICAgc29ydE9yZGVyPXthY3RpdmVEYXRhc2V0LnNvcnRPcmRlcn1cbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uPXthY3RpdmVEYXRhc2V0LnNvcnRDb2x1bW4gfHwgREVGQVVMVF9TT1JUX0NPTFVNTn1cbiAgICAgICAgICAgICAgICBjb3B5VGFibGVDb2x1bW49e3RoaXMuY29weVRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHBpblRhYmxlQ29sdW1uPXt0aGlzLnBpblRhYmxlQ29sdW1ufVxuICAgICAgICAgICAgICAgIHNvcnRUYWJsZUNvbHVtbj17dGhpcy5zb3J0VGFibGVDb2x1bW59XG4gICAgICAgICAgICAgICAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdD17dGhpcy5zZXRDb2x1bW5EaXNwbGF5Rm9ybWF0fVxuICAgICAgICAgICAgICAgIGhhc1N0YXRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvVGFibGVDb250YWluZXI+XG4gICAgICAgIDwvU3R5bGVkTW9kYWw+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgZmlndXJlIG91dCB0aGUgcHJvcGVyIHdheSB0byB0eXBlXG4gIHJldHVybiB3aXRoVGhlbWUoRGF0YVRhYmxlTW9kYWwpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGVNb2RhbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxjQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBeUUsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWZ6RTtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEs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
|
|
216
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9kYXRhc2V0TGFiZWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RhdGFUYWJsZSIsIl9jZWxsU2l6ZSIsIl9jYW52YXMiLCJfaWNvbnMiLCJfcG9ydGFsZWQiLCJfZGlzcGxheUZvcm1hdCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJNSU5fU1RBVFNfQ0VMTF9TSVpFIiwiREVGQVVMVF9TT1JUX0NPTFVNTiIsImRnU2V0dGluZ3MiLCJzaWRlUGFkZGluZyIsInZlcnRpY2FsUGFkZGluZyIsImhlaWdodCIsIlN0eWxlZE1vZGFsIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJEYXRhc2V0Q2F0YWxvZyIsInByb3BzIiwidGhlbWUiLCJtb2RhbFNjcm9sbEJhciIsIkRhdGFzZXRNb2RhbFRhYiIsImV4cG9ydHMiLCIkYWN0aXZlIiwiU3R5bGVkQ29uZmlndXJlQnV0dG9uIiwiRGF0YXNldFRhYnNVbm1lbW9pemVkIiwiX3JlZiIsImFjdGl2ZURhdGFzZXQiLCJkYXRhc2V0cyIsInNob3dEYXRhc2V0VGFibGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwidmFsdWVzIiwibWFwIiwiZGF0YXNldCIsImtleSIsImlkIiwib25DbGljayIsIkRhdGFzZXRUYWJzIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiLCJEYXRhVGFibGVNb2RhbEZhY3RvcnkiLCJkZXBzIiwiRGF0YVRhYmxlRmFjdG9yeSIsIkRhdGFUYWJsZUNvbmZpZ0ZhY3RvcnkiLCJUYWJsZUNvbnRhaW5lciIsIkRhdGFUYWJsZSIsIkRhdGFUYWJsZUNvbmZpZyIsIkRhdGFUYWJsZU1vZGFsIiwiX3JlZjIiLCJfcmVmMiRkYXRhSWQiLCJkYXRhSWQiLCJzb3J0VGFibGVDb2x1bW4iLCJwaW5UYWJsZUNvbHVtbiIsImNvcHlUYWJsZUNvbHVtblByb3AiLCJjb3B5VGFibGVDb2x1bW4iLCJfcmVmMiRzaG93VGFiIiwic2hvd1RhYiIsInNldENvbHVtbkRpc3BsYXlGb3JtYXRQcm9wIiwic2V0Q29sdW1uRGlzcGxheUZvcm1hdCIsInVpU3RhdGVBY3Rpb25zIiwidWlTdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNob3dDb25maWciLCJzZXRTaG93Q29uZmlnIiwiZGF0YXNldENlbGxTaXplQ2FjaGUiLCJ1c2VSZWYiLCJmaWVsZHMiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiY29sdW1ucyIsImYiLCJuYW1lIiwiY29sTWV0YSIsInJlZHVjZSIsImFjYyIsIl9yZWYzIiwidHlwZSIsImZpbHRlclByb3BzIiwiZm9ybWF0IiwiZGlzcGxheUZvcm1hdCIsImNvbHVtblN0YXRzIiwiY2VsbFNpemVDYWNoZSIsIl9kYXRhc2V0cyRkYXRhSWQiLCJkYXRhQ29udGFpbmVyIiwic2hvd0NhbGN1bGF0ZSIsImN1cnJlbnQiLCJmaWVsZCIsImNvbElkeCIsInJlbmRlcmVkU2l6ZSIsInRleHQiLCJjb2x1bW4iLCJmb250U2l6ZSIsImNlbGxGb250U2l6ZSIsImZvbnQiLCJmb250RmFtaWx5IiwibWluQ2VsbFNpemUiLCJoYW5kbGVDb3B5VGFibGVDb2x1bW4iLCJ1c2VDYWxsYmFjayIsImhhbmRsZVBpblRhYmxlQ29sdW1uIiwiaGFuZGxlU29ydFRhYmxlQ29sdW1uIiwibW9kZSIsImhhbmRsZVNldENvbHVtbkRpc3BsYXlGb3JtYXQiLCJmb3JtYXRzIiwib25PcGVuQ29uZmlnIiwib25DbG9zZUNvbmZpZyIsIkdlYXIiLCJyaWdodCIsInRvcCIsImlzT3BlbmVkIiwib25DbG9zZSIsInBpbm5lZENvbHVtbnMiLCJzb3J0T3JkZXIiLCJzb3J0Q29sdW1uIiwiaGFzU3RhdHMiLCJ3aXRoVGhlbWUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZGF0YS10YWJsZS1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZVJlZiwgdXNlTWVtbywgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWUsIElTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBEYXRhc2V0TGFiZWwgZnJvbSAnLi4vY29tbW9uL2RhdGFzZXQtbGFiZWwnO1xuaW1wb3J0IERhdGFUYWJsZUZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2RhdGEtdGFibGUnO1xuaW1wb3J0IHtyZW5kZXJlZFNpemV9IGZyb20gJy4uL2NvbW1vbi9kYXRhLXRhYmxlL2NlbGwtc2l6ZSc7XG5pbXBvcnQgQ2FudmFzSGFjayBmcm9tICcuLi9jb21tb24vZGF0YS10YWJsZS9jYW52YXMnO1xuaW1wb3J0IEtlcGxlclRhYmxlLCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtVSVN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7VWlTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0dlYXJ9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUG9ydGFsZWQgZnJvbSAnLi4vY29tbW9uL3BvcnRhbGVkJztcbmltcG9ydCBEYXRhVGFibGVDb25maWdGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9kYXRhLXRhYmxlL2Rpc3BsYXktZm9ybWF0JztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IE1JTl9TVEFUU19DRUxMX1NJWkUgPSAxMjI7XG5jb25zdCBERUZBVUxUX1NPUlRfQ09MVU1OID0ge307XG5cbi8vIHNpZGVQYWRkaW5nIGNoYW5nZXMgZnJvbSAzOCB0byA2OCwgMzBweCBmb3IgY29uZmlndXJhdGlvbiBidXR0b25cbmNvbnN0IGRnU2V0dGluZ3MgPSB7XG4gIHNpZGVQYWRkaW5nOiAnNjhweCcsXG4gIHZlcnRpY2FsUGFkZGluZzogJzE2cHgnLFxuICBoZWlnaHQ6ICczNnB4J1xufTtcblxuY29uc3QgU3R5bGVkTW9kYWwgPSBzdHlsZWQuZGl2YFxuICBtaW4taGVpZ2h0OiA4NXZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuY29uc3QgRGF0YXNldENhdGFsb2cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAke2RnU2V0dGluZ3MudmVydGljYWxQYWRkaW5nfSAke2RnU2V0dGluZ3Muc2lkZVBhZGRpbmd9IDAgMDtcblxuICAub3ZlcmZsb3ctaG9yaXpvbnRhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubW9kYWxTY3JvbGxCYXJ9XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIERhdGFzZXRNb2RhbFRhYlByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICAkYWN0aXZlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBEYXRhc2V0TW9kYWxUYWI6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBEYXRhc2V0TW9kYWxUYWJQcm9wc1xuPiA9IHN0eWxlZC5kaXY8RGF0YXNldE1vZGFsVGFiUHJvcHM+YFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJHtwcm9wcyA9PiAocHJvcHMuJGFjdGl2ZSA/ICdibGFjaycgOiAndHJhbnNwYXJlbnQnKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBtYXJnaW46IDAgM3B4O1xuICBwYWRkaW5nOiAwIDVweDtcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgYmxhY2s7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZENvbmZpZ3VyZUJ1dHRvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNHB4O1xuICByaWdodDogNDhweDtcbiAgc3ZnIHtcbiAgICBzdHJva2U6IGJsYWNrO1xuICB9XG4gIGN1cnNvcjogcG9pbnRlcjtcbmA7XG5cbmludGVyZmFjZSBEYXRhc2V0VGFic1VubWVtb2l6ZWRQcm9wcyB7XG4gIGFjdGl2ZURhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIHNob3dEYXRhc2V0VGFibGU6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5jb25zdCBEYXRhc2V0VGFic1VubWVtb2l6ZWQ6IFJlYWN0LkZDPERhdGFzZXRUYWJzVW5tZW1vaXplZFByb3BzPiA9ICh7XG4gIGFjdGl2ZURhdGFzZXQsXG4gIGRhdGFzZXRzLFxuICBzaG93RGF0YXNldFRhYmxlXG59KSA9PiAoXG4gIDxEYXRhc2V0Q2F0YWxvZyBjbGFzc05hbWU9XCJkYXRhc2V0LW1vZGFsLWNhdGFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm92ZXJmbG93LWhvcml6b250YWxcIj5cbiAgICAgIHtPYmplY3QudmFsdWVzKGRhdGFzZXRzKS5tYXAoKGRhdGFzZXQ6IEtlcGxlclRhYmxlKSA9PiAoXG4gICAgICAgIDxEYXRhc2V0TW9kYWxUYWJcbiAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhc2V0LW1vZGFsLXRhYlwiXG4gICAgICAgICAgJGFjdGl2ZT17ZGF0YXNldCA9PT0gYWN0aXZlRGF0YXNldH1cbiAgICAgICAgICBrZXk9e2RhdGFzZXQuaWR9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2hvd0RhdGFzZXRUYWJsZShkYXRhc2V0LmlkKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxEYXRhc2V0TGFiZWwgZGF0YXNldD17ZGF0YXNldH0gLz5cbiAgICAgICAgPC9EYXRhc2V0TW9kYWxUYWI+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgPC9EYXRhc2V0Q2F0YWxvZz5cbik7XG5cbmV4cG9ydCBjb25zdCBEYXRhc2V0VGFicyA9IFJlYWN0Lm1lbW8oRGF0YXNldFRhYnNVbm1lbW9pemVkKTtcblxuRGF0YXNldFRhYnMuZGlzcGxheU5hbWUgPSAnRGF0YXNldFRhYnMnO1xuXG5EYXRhVGFibGVNb2RhbEZhY3RvcnkuZGVwcyA9IFtEYXRhVGFibGVGYWN0b3J5LCBEYXRhVGFibGVDb25maWdGYWN0b3J5XTtcblxuY29uc3QgVGFibGVDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbmA7XG5cbmludGVyZmFjZSBEYXRhVGFibGVNb2RhbFByb3BzIHtcbiAgdGhlbWU6IGFueTtcbiAgZGF0YUlkPzogc3RyaW5nO1xuICBzb3J0VGFibGVDb2x1bW46IChpZDogc3RyaW5nLCBjb2x1bW46IHN0cmluZywgbW9kZT86IHN0cmluZykgPT4gdm9pZDtcbiAgcGluVGFibGVDb2x1bW46IChpZDogc3RyaW5nLCBjb2x1bW46IHN0cmluZykgPT4gdm9pZDtcbiAgY29weVRhYmxlQ29sdW1uOiAoaWQ6IHN0cmluZywgY29sdW1uOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2hvd0RhdGFzZXRUYWJsZTogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNob3dUYWI/OiBib29sZWFuO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0OiAoXG4gICAgZGF0YUlkOiBzdHJpbmcsXG4gICAgZm9ybWF0czoge1xuICAgICAgY29sdW1uOiBzdHJpbmc7XG4gICAgICBkaXNwbGF5Rm9ybWF0OiBzdHJpbmc7XG4gICAgfVxuICApID0+IHZvaWQ7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG59XG5cbmZ1bmN0aW9uIERhdGFUYWJsZU1vZGFsRmFjdG9yeShcbiAgRGF0YVRhYmxlOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhVGFibGVGYWN0b3J5PixcbiAgRGF0YVRhYmxlQ29uZmlnOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhVGFibGVDb25maWdGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxPbWl0PERhdGFUYWJsZU1vZGFsUHJvcHMsICd0aGVtZSc+PiB7XG4gIGNvbnN0IERhdGFUYWJsZU1vZGFsOiBSZWFjdC5GQzxEYXRhVGFibGVNb2RhbFByb3BzPiA9ICh7XG4gICAgdGhlbWUsXG4gICAgZGF0YUlkID0gJycsXG4gICAgc29ydFRhYmxlQ29sdW1uLFxuICAgIHBpblRhYmxlQ29sdW1uLFxuICAgIGNvcHlUYWJsZUNvbHVtbjogY29weVRhYmxlQ29sdW1uUHJvcCxcbiAgICBkYXRhc2V0cyxcbiAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgIHNob3dUYWIgPSB0cnVlLFxuICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ6IHNldENvbHVtbkRpc3BsYXlGb3JtYXRQcm9wLFxuICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgIHVpU3RhdGVcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtzaG93Q29uZmlnLCBzZXRTaG93Q29uZmlnXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBkYXRhc2V0Q2VsbFNpemVDYWNoZSA9IHVzZVJlZjxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7fSk7XG5cbiAgICBjb25zdCBmaWVsZHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKGRhdGFzZXRzICYmIGRhdGFJZCA/IChkYXRhc2V0c1tkYXRhSWRdIHx8IHt9KS5maWVsZHMgOiB1bmRlZmluZWQpLFxuICAgICAgW2RhdGFzZXRzLCBkYXRhSWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbHVtbnMgPSB1c2VNZW1vKCgpID0+IGZpZWxkcz8ubWFwKGYgPT4gZi5uYW1lKSB8fCBbXSwgW2ZpZWxkc10pO1xuXG4gICAgY29uc3QgY29sTWV0YSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBmaWVsZHM/LnJlZHVjZShcbiAgICAgICAgICAoYWNjLCB7bmFtZSwgZGlzcGxheU5hbWUsIHR5cGUsIGZpbHRlclByb3BzLCBmb3JtYXQsIGRpc3BsYXlGb3JtYXR9KSA9PiAoe1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW25hbWVdOiB7XG4gICAgICAgICAgICAgIG5hbWU6IGRpc3BsYXlOYW1lIHx8IG5hbWUsXG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIC4uLihmb3JtYXQgPyB7Zm9ybWF0fSA6IHt9KSxcbiAgICAgICAgICAgICAgLi4uKGRpc3BsYXlGb3JtYXQgPyB7ZGlzcGxheUZvcm1hdH0gOiB7fSksXG4gICAgICAgICAgICAgIC4uLihmaWx0ZXJQcm9wcz8uY29sdW1uU3RhdHMgPyB7Y29sdW1uU3RhdHM6IGZpbHRlclByb3BzLmNvbHVtblN0YXRzfSA6IHt9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHt9XG4gICAgICAgICkgfHwge30sXG4gICAgICBbZmllbGRzXVxuICAgICk7XG5cbiAgICBjb25zdCBjZWxsU2l6ZUNhY2hlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWRhdGFzZXRzIHx8ICFkYXRhSWQgfHwgIWRhdGFzZXRzW2RhdGFJZF0pIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgY29uc3Qge2ZpZWxkcywgZGF0YUNvbnRhaW5lcn0gPSBkYXRhc2V0c1tkYXRhSWRdO1xuXG4gICAgICBsZXQgc2hvd0NhbGN1bGF0ZTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgICAgaWYgKCFkYXRhc2V0Q2VsbFNpemVDYWNoZS5jdXJyZW50W2RhdGFJZF0pIHtcbiAgICAgICAgc2hvd0NhbGN1bGF0ZSA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBkYXRhc2V0Q2VsbFNpemVDYWNoZS5jdXJyZW50W2RhdGFJZF0uZmllbGRzICE9PSBmaWVsZHMgfHxcbiAgICAgICAgZGF0YXNldENlbGxTaXplQ2FjaGUuY3VycmVudFtkYXRhSWRdLmRhdGFDb250YWluZXIgIT09IGRhdGFDb250YWluZXJcbiAgICAgICkge1xuICAgICAgICBzaG93Q2FsY3VsYXRlID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzaG93Q2FsY3VsYXRlKSB7XG4gICAgICAgIHJldHVybiBkYXRhc2V0Q2VsbFNpemVDYWNoZS5jdXJyZW50W2RhdGFJZF0uY2VsbFNpemVDYWNoZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2VsbFNpemVDYWNoZSA9IGZpZWxkcy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGZpZWxkLCBjb2xJZHgpID0+ICh7XG4gICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgIFtmaWVsZC5uYW1lXTogcmVuZGVyZWRTaXplKHtcbiAgICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgICAgZGF0YUNvbnRhaW5lcixcbiAgICAgICAgICAgICAgY29sdW1uOiBmaWVsZC5kaXNwbGF5TmFtZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbElkeCxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgICAgICBmb250U2l6ZTogdGhlbWUuY2VsbEZvbnRTaXplLFxuICAgICAgICAgICAgZm9udDogdGhlbWUuZm9udEZhbWlseSxcbiAgICAgICAgICAgIG1pbkNlbGxTaXplOiBNSU5fU1RBVFNfQ0VMTF9TSVpFXG4gICAgICAgICAgfSlcbiAgICAgICAgfSksXG4gICAgICAgIHt9XG4gICAgICApO1xuXG4gICAgICBkYXRhc2V0Q2VsbFNpemVDYWNoZS5jdXJyZW50W2RhdGFJZF0gPSB7XG4gICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZGF0YUNvbnRhaW5lclxuICAgICAgfTtcbiAgICAgIHJldHVybiBjZWxsU2l6ZUNhY2hlO1xuICAgIH0sIFtkYXRhSWQsIGRhdGFzZXRzLCB0aGVtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ29weVRhYmxlQ29sdW1uID0gdXNlQ2FsbGJhY2soXG4gICAgICAoY29sdW1uOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29weVRhYmxlQ29sdW1uUHJvcChkYXRhSWQsIGNvbHVtbik7XG4gICAgICB9LFxuICAgICAgW2NvcHlUYWJsZUNvbHVtblByb3AsIGRhdGFJZF1cbiAgICApO1xuXG4gICAgY29uc3QgaGFuZGxlUGluVGFibGVDb2x1bW4gPSB1c2VDYWxsYmFjayhcbiAgICAgIChjb2x1bW46IHN0cmluZykgPT4ge1xuICAgICAgICBwaW5UYWJsZUNvbHVtbihkYXRhSWQsIGNvbHVtbik7XG4gICAgICB9LFxuICAgICAgW3BpblRhYmxlQ29sdW1uLCBkYXRhSWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGhhbmRsZVNvcnRUYWJsZUNvbHVtbiA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNvcnRUYWJsZUNvbHVtbihkYXRhSWQsIGNvbHVtbiwgbW9kZSk7XG4gICAgICB9LFxuICAgICAgW3NvcnRUYWJsZUNvbHVtbiwgZGF0YUlkXVxuICAgICk7XG5cbiAgICBjb25zdCBoYW5kbGVTZXRDb2x1bW5EaXNwbGF5Rm9ybWF0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBmb3JtYXRzID0+IHtcbiAgICAgICAgaWYgKGRhdGFJZCkgc2V0Q29sdW1uRGlzcGxheUZvcm1hdFByb3AoZGF0YUlkLCBmb3JtYXRzKTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sdW1uRGlzcGxheUZvcm1hdFByb3AsIGRhdGFJZF1cbiAgICApO1xuXG4gICAgY29uc3Qgb25PcGVuQ29uZmlnID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0U2hvd0NvbmZpZyh0cnVlKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvbkNsb3NlQ29uZmlnID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0U2hvd0NvbmZpZyhmYWxzZSk7XG4gICAgfSwgW10pO1xuXG4gICAgaWYgKCFkYXRhc2V0cyB8fCAhZGF0YUlkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVEYXRhc2V0ID0gZGF0YXNldHNbZGF0YUlkXTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTW9kYWwgY2xhc3NOYW1lPVwiZGF0YXNldC1tb2RhbFwiIGlkPVwiZGF0YXNldC1tb2RhbFwiPlxuICAgICAgICA8Q2FudmFzSGFjayAvPlxuICAgICAgICA8VGFibGVDb250YWluZXI+XG4gICAgICAgICAge3Nob3dUYWIgPyAoXG4gICAgICAgICAgICA8RGF0YXNldFRhYnNcbiAgICAgICAgICAgICAgYWN0aXZlRGF0YXNldD17YWN0aXZlRGF0YXNldH1cbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8U3R5bGVkQ29uZmlndXJlQnV0dG9uIGNsYXNzTmFtZT1cImRpc3BsYXktY29uZmlnLWJ1dHRvblwiPlxuICAgICAgICAgICAgPEdlYXIgb25DbGljaz17b25PcGVuQ29uZmlnfSAvPlxuICAgICAgICAgICAgPFBvcnRhbGVkIHJpZ2h0PXsyNDB9IHRvcD17MjB9IGlzT3BlbmVkPXtzaG93Q29uZmlnfSBvbkNsb3NlPXtvbkNsb3NlQ29uZmlnfT5cbiAgICAgICAgICAgICAgPERhdGFUYWJsZUNvbmZpZ1xuICAgICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgICAgY29sTWV0YT17Y29sTWV0YX1cbiAgICAgICAgICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PXtoYW5kbGVTZXRDb2x1bW5EaXNwbGF5Rm9ybWF0fVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e29uQ2xvc2VDb25maWd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgICAgIDwvU3R5bGVkQ29uZmlndXJlQnV0dG9uPlxuICAgICAgICAgIHtkYXRhc2V0c1tkYXRhSWRdID8gKFxuICAgICAgICAgICAgPERhdGFUYWJsZVxuICAgICAgICAgICAgICBrZXk9e2RhdGFJZH1cbiAgICAgICAgICAgICAgZGF0YUlkPXtkYXRhSWR9XG4gICAgICAgICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgICAgICAgIGNvbE1ldGE9e2NvbE1ldGF9XG4gICAgICAgICAgICAgIGNlbGxTaXplQ2FjaGU9e2NlbGxTaXplQ2FjaGV9XG4gICAgICAgICAgICAgIGRhdGFDb250YWluZXI9e2FjdGl2ZURhdGFzZXQuZGF0YUNvbnRhaW5lcn1cbiAgICAgICAgICAgICAgcGlubmVkQ29sdW1ucz17YWN0aXZlRGF0YXNldC5waW5uZWRDb2x1bW5zfVxuICAgICAgICAgICAgICBzb3J0T3JkZXI9e2FjdGl2ZURhdGFzZXQuc29ydE9yZGVyfVxuICAgICAgICAgICAgICBzb3J0Q29sdW1uPXthY3RpdmVEYXRhc2V0LnNvcnRDb2x1bW4gfHwgREVGQVVMVF9TT1JUX0NPTFVNTn1cbiAgICAgICAgICAgICAgY29weVRhYmxlQ29sdW1uPXtoYW5kbGVDb3B5VGFibGVDb2x1bW59XG4gICAgICAgICAgICAgIHBpblRhYmxlQ29sdW1uPXtoYW5kbGVQaW5UYWJsZUNvbHVtbn1cbiAgICAgICAgICAgICAgc29ydFRhYmxlQ29sdW1uPXtoYW5kbGVTb3J0VGFibGVDb2x1bW59XG4gICAgICAgICAgICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ9e2hhbmRsZVNldENvbHVtbkRpc3BsYXlGb3JtYXR9XG4gICAgICAgICAgICAgIGhhc1N0YXRzPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvVGFibGVDb250YWluZXI+XG4gICAgICA8L1N0eWxlZE1vZGFsPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIHdpdGhUaGVtZShEYXRhVGFibGVNb2RhbCkgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxPbWl0PERhdGFUYWJsZU1vZGFsUHJvcHMsICd0aGVtZSc+Pjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0YVRhYmxlTW9k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
|