@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
|
@@ -37,16 +37,16 @@ var DRAG_MOVE_ID = 'map-legend-move';
|
|
|
37
37
|
var StyledDraggableLegendContent = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n outline: none;\n transition: border-color 0.2s ease-in-out;\n border: 1px solid transparent;\n .legend-input-block {\n display: none;\n }\n &.is-dragging .legend-input-block {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n &:hover,\n &.is-dragging {\n .legend-move-handle {\n opacity: 1;\n pointer-events: auto;\n }\n .legend-resize-handle {\n opacity: 1;\n pointer-events: auto;\n }\n border-color: ", ";\n }\n .map-control__panel-content {\n max-height: ", ";\n ", ";\n }\n border-radius: 4px;\n z-index: 2;\n .map-control-panel {\n margin-bottom: 0 !important;\n }\n"])), function (props) {
|
|
38
38
|
return props.theme.activeColor;
|
|
39
39
|
}, function (props) {
|
|
40
|
-
return props
|
|
40
|
+
return props.$maxContentHeight ? "".concat(props.$maxContentHeight, "px") : 'calc(100vh - 100px)';
|
|
41
41
|
}, function (props) {
|
|
42
|
-
return props
|
|
42
|
+
return props.$contentHeight ? "height: ".concat(props.$contentHeight, "px;") : '';
|
|
43
43
|
});
|
|
44
44
|
var StyledMoveHandle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: white;\n z-index: 2;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 16px;\n border-radius: 4px;\n cursor: move;\n background-color: ", ";\n"])), function (props) {
|
|
45
45
|
return props.theme.activeColor;
|
|
46
46
|
});
|
|
47
47
|
var StyledResizeHandle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #f7f8fa;\n z-index: 2;\n bottom: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 16px;\n border-radius: 4px;\n cursor: ns-resize;\n"])));
|
|
48
48
|
var StyledFixedLegendContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n .map-control__panel-content {\n max-height: calc(100vh - 100px);\n ", ";\n }\n\n /* Hide scrollbars in export to avoid OS default styling differences */\n .styled-color-legend {\n -ms-overflow-style: none; /* IE and old Edge */\n scrollbar-width: none; /* Firefox */\n }\n .styled-color-legend::-webkit-scrollbar {\n width: 0 !important; /* Chrome, Safari, new Edge */\n height: 0 !important;\n }\n"])), function (props) {
|
|
49
|
-
return props
|
|
49
|
+
return props.$contentHeight ? "height: ".concat(props.$contentHeight, "px;") : '';
|
|
50
50
|
});
|
|
51
51
|
var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
52
52
|
var positionStyles = props.positionStyles,
|
|
@@ -69,8 +69,8 @@ var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props
|
|
|
69
69
|
style: _objectSpread(_objectSpread({}, positionStyles), {}, {
|
|
70
70
|
transform: _utilities.CSS.Translate.toString(draggableMove.transform)
|
|
71
71
|
}),
|
|
72
|
-
contentHeight: contentHeight,
|
|
73
|
-
maxContentHeight: maxContentHeight
|
|
72
|
+
$contentHeight: contentHeight,
|
|
73
|
+
$maxContentHeight: maxContentHeight
|
|
74
74
|
}, draggableMove.attributes), children, isDragging ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
75
|
className: "legend-input-block"
|
|
76
76
|
}) : null, /*#__PURE__*/_react["default"].createElement(StyledMoveHandle, (0, _extends2["default"])({
|
|
@@ -170,7 +170,7 @@ var ImageExportLegend = (0, _styledComponents.withTheme)(function (_ref2) {
|
|
|
170
170
|
position: 'absolute'
|
|
171
171
|
})
|
|
172
172
|
}, /*#__PURE__*/_react["default"].createElement(StyledFixedLegendContent, {
|
|
173
|
-
contentHeight: contentHeight
|
|
173
|
+
$contentHeight: contentHeight
|
|
174
174
|
}, children)), portalRoot) : null);
|
|
175
175
|
});
|
|
176
176
|
MapLegendPanelFactory.deps = [_mapControlTooltip["default"], _mapControlPanel["default"], _mapLegend["default"]];
|
|
@@ -193,6 +193,7 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
193
193
|
actionIcons = _ref3$actionIcons === void 0 ? defaultActionIcons : _ref3$actionIcons,
|
|
194
194
|
mapState = _ref3.mapState,
|
|
195
195
|
onLayerVisConfigChange = _ref3.onLayerVisConfigChange,
|
|
196
|
+
onToggleLayerVisibility = _ref3.onToggleLayerVisibility,
|
|
196
197
|
onToggleSplitMapViewport = _ref3.onToggleSplitMapViewport,
|
|
197
198
|
onClickControlBtn = _ref3.onClickControlBtn,
|
|
198
199
|
activeSidePanel = _ref3.activeSidePanel,
|
|
@@ -242,7 +243,8 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
242
243
|
mapState: mapState,
|
|
243
244
|
disableEdit: disableEdit,
|
|
244
245
|
isExport: isExport,
|
|
245
|
-
onLayerVisConfigChange: onLayerVisConfigChange
|
|
246
|
+
onLayerVisConfigChange: onLayerVisConfigChange,
|
|
247
|
+
onToggleLayerVisibility: onToggleLayerVisibility
|
|
246
248
|
})) : null;
|
|
247
249
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, active ? (0, _utils.hasPortableWidth)(_styles.breakPointValues) ? legendPanel : isExport ? /*#__PURE__*/_react["default"].createElement(ImageExportLegend, {
|
|
248
250
|
isSidePanelShown: isSidePanelShown,
|
|
@@ -272,4 +274,4 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
|
|
|
272
274
|
};
|
|
273
275
|
}
|
|
274
276
|
var _default = exports["default"] = MapLegendPanelFactory;
|
|
275
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiRFJBR19SRVNJWkVfSUQiLCJEUkFHX01PVkVfSUQiLCJTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJtYXhDb250ZW50SGVpZ2h0IiwiY29uY2F0IiwiY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJkcmFnZ2FibGVNb3ZlIiwidXNlRHJhZ2dhYmxlIiwiaWQiLCJkcmFnZ2FibGVSZXNpemUiLCJyZWZzIiwidXNlTWVyZ2VSZWZzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwidHJhbnNmb3JtIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwiRHJhZ2dhYmxlRG90cyIsImhlaWdodCIsIkhvcml6b250YWxSZXNpemVIYW5kbGUiLCJEcmFnZ2FibGVMZWdlbmQiLCJ3aXRoVGhlbWUiLCJfcmVmIiwiX21hcENvbnRyb2xzJG1hcExlZ2VuIiwiaXNTaWRlUGFuZWxTaG93biIsIm1hcENvbnRyb2xzIiwic2V0TWFwQ29udHJvbFNldHRpbmdzIiwibWFwU3RhdGUiLCJzZXR0aW5ncyIsIm1hcExlZ2VuZCIsImxlZ2VuZENvbnRlbnRSZWYiLCJ1c2VSZWYiLCJvbkNoYW5nZVNldHRpbmdzIiwidXNlQ2FsbGJhY2siLCJuZXdTZXR0aW5ncyIsIl91c2VMZWdlbmRQb3NpdGlvbiIsInVzZUxlZ2VuZFBvc2l0aW9uIiwibWFwSGVpZ2h0IiwibWFwV2lkdGgiLCJ3aWR0aCIsInVwZGF0ZVBvc2l0aW9uIiwic3RhcnRSZXNpemUiLCJyZXNpemUiLCJoYW5kbGVEcmFnU3RhcnQiLCJldmVudCIsImFjdGl2ZSIsImhhbmRsZURyYWdFbmQiLCJoYW5kbGVEcmFnTW92ZSIsImRlbHRhIiwieSIsIkRuZENvbnRleHQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ01vdmUiLCJvbkRyYWdFbmQiLCJtb2RpZmllcnMiLCJyZXN0cmljdFRvV2luZG93RWRnZXMiLCJJbWFnZUV4cG9ydExlZ2VuZCIsIl9yZWYyIiwiX2NvbnRhaW5lclJlZiRjdXJyZW50IiwiY29udGFpbmVyUmVmIiwiX3VzZUxlZ2VuZFBvc2l0aW9uMiIsInBvcnRhbFJvb3QiLCJjdXJyZW50IiwiY2xvc2VzdCIsInF1ZXJ5U2VsZWN0b3IiLCJjcmVhdGVQb3J0YWwiLCJwb3NpdGlvbiIsIk1hcExlZ2VuZFBhbmVsRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sUGFuZWxGYWN0b3J5IiwiTWFwTGVnZW5kRmFjdG9yeSIsImRlZmF1bHRBY3Rpb25JY29ucyIsImxlZ2VuZCIsIkxlZ2VuZCIsIk1hcExlZ2VuZFBhbmVsQ29tcG9uZW50IiwiX3JlZjMiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4yIiwiX3Jvb3RDb250ZXh0JGN1cnJlbnQiLCJsYXllcnMiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0Iiwib25DbGlja0NvbnRyb2xCdG4iLCJhY3RpdmVTaWRlUGFuZWwiLCJfcmVmMyRpc1ZpZXdwb3J0VW5zeW4iLCJpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTWFwTGVnZW5kIiwiQm9vbGVhbiIsIl9yZWY0IiwiZGlzYWJsZUVkaXQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIm9uQ2xpY2siLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIm1hcERyYXciLCJvbkNsb3NlQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNob3ciLCJsZWdlbmRQYW5lbCIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwiRnJhZ21lbnQiLCJoYXNQb3J0YWJsZVdpZHRoIiwiYnJlYWtQb2ludFZhbHVlcyIsImRvY3VtZW50IiwiYm9keSIsIm1lc3NhZ2UiLCJNYXBDb250cm9sQnV0dG9uIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtbGVnZW5kLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIEZDLFxuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlQ29udGV4dCxcbiAgdXNlUmVmLFxuICBQcm9wc1dpdGhDaGlsZHJlblxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7RG5kQ29udGV4dCwgdXNlRHJhZ2dhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7Q1NTfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHt1c2VNZXJnZVJlZnN9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgc2V0TWFwQ29udHJvbFNldHRpbmdzLCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHticmVha1BvaW50VmFsdWVzfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBDb250cm9sTWFwTGVnZW5kLCBNYXBDb250cm9scywgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtoYXNQb3J0YWJsZVdpZHRofSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TWFwTGVnZW5kQ29udHJvbFNldHRpbmdzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtMZWdlbmQsIERyYWdnYWJsZURvdHMsIEhvcml6b250YWxSZXNpemVIYW5kbGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB1c2VMZWdlbmRQb3NpdGlvbiBmcm9tICcuLi9ob29rcy91c2UtbGVnZW5kLXBvc2l0aW9uJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcExlZ2VuZEZhY3RvcnkgZnJvbSAnLi9tYXAtbGVnZW5kJztcbmltcG9ydCB7cmVzdHJpY3RUb1dpbmRvd0VkZ2VzfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBEUkFHX1JFU0laRV9JRCA9ICdtYXAtbGVnZW5kLXJlc2l6ZSc7XG5jb25zdCBEUkFHX01PVkVfSUQgPSAnbWFwLWxlZ2VuZC1tb3ZlJztcblxuY29uc3QgU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBjb250ZW50SGVpZ2h0PzogbnVtYmVyO1xuICBtYXhDb250ZW50SGVpZ2h0PzogbnVtYmVyO1xufT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAubGVnZW5kLWlucHV0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICYuaXMtZHJhZ2dpbmcgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICAubGVnZW5kLW1vdmUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgLmxlZ2VuZC1yZXNpemUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgfVxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLm1heENvbnRlbnRIZWlnaHQgPyBgJHtwcm9wcy5tYXhDb250ZW50SGVpZ2h0fXB4YCA6ICdjYWxjKDEwMHZoIC0gMTAwcHgpJ307XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHotaW5kZXg6IDI7XG4gIC5tYXAtY29udHJvbC1wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRNb3ZlSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogI2Y3ZjhmYTtcbiAgei1pbmRleDogMjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuYDtcblxuY29uc3QgU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7Y29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuXG4gIC8qIEhpZGUgc2Nyb2xsYmFycyBpbiBleHBvcnQgdG8gYXZvaWQgT1MgZGVmYXVsdCBzdHlsaW5nIGRpZmZlcmVuY2VzICovXG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kIHtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBvbGQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICB9XG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDsgLyogQ2hyb21lLCBTYWZhcmksIG5ldyBFZGdlICovXG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsRmFjdG9yeURlcHMgPSBbXG4gIHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksXG4gIHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5LFxuICB0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeVxuXTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIG1heENvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIHBvc2l0aW9uU3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZENvbnRlbnQgPSBmb3J3YXJkUmVmKChwcm9wczogRHJhZ2dhYmxlTGVnZW5kQ29udGVudFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjaGlsZHJlbiwgY29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodH0gPSBwcm9wcztcbiAgY29uc3QgZHJhZ2dhYmxlTW92ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfTU9WRV9JRH0pO1xuICBjb25zdCBkcmFnZ2FibGVSZXNpemUgPSB1c2VEcmFnZ2FibGUoe2lkOiBEUkFHX1JFU0laRV9JRH0pO1xuICBjb25zdCByZWZzID0gdXNlTWVyZ2VSZWZzKFtkcmFnZ2FibGVNb3ZlLnNldE5vZGVSZWYsIHJlZl0pO1xuICBjb25zdCBpc0RyYWdnaW5nID0gZHJhZ2dhYmxlTW92ZS5pc0RyYWdnaW5nIHx8IGRyYWdnYWJsZVJlc2l6ZS5pc0RyYWdnaW5nO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICByZWY9e3JlZnN9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2RyYWdnYWJsZS1sZWdlbmQnLCB7J2lzLWRyYWdnaW5nJzogaXNEcmFnZ2luZ30pfVxuICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKGRyYWdnYWJsZU1vdmUudHJhbnNmb3JtKX19XG4gICAgICBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH1cbiAgICAgIHsuLi5kcmFnZ2FibGVNb3ZlLmF0dHJpYnV0ZXN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAge2lzRHJhZ2dpbmcgPyA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC1pbnB1dC1ibG9ja1wiIC8+IDogbnVsbH1cbiAgICAgIDxTdHlsZWRNb3ZlSGFuZGxlIGNsYXNzTmFtZT1cImxlZ2VuZC1tb3ZlLWhhbmRsZVwiIHsuLi5kcmFnZ2FibGVNb3ZlLmxpc3RlbmVyc30+XG4gICAgICAgIDxEcmFnZ2FibGVEb3RzIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgPC9TdHlsZWRNb3ZlSGFuZGxlPlxuICAgICAgPFN0eWxlZFJlc2l6ZUhhbmRsZVxuICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmQtcmVzaXplLWhhbmRsZVwiXG4gICAgICAgIHJlZj17ZHJhZ2dhYmxlUmVzaXplLnNldE5vZGVSZWZ9XG4gICAgICAgIHsuLi5kcmFnZ2FibGVSZXNpemUubGlzdGVuZXJzfVxuICAgICAgPlxuICAgICAgICA8SG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDwvU3R5bGVkUmVzaXplSGFuZGxlPlxuICAgIDwvU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudD5cbiAgKTtcbn0pO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZFByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIHNldE1hcENvbnRyb2xTZXR0aW5nczogdHlwZW9mIHNldE1hcENvbnRyb2xTZXR0aW5ncztcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbn0+O1xuXG5jb25zdCBEcmFnZ2FibGVMZWdlbmQgPSB3aXRoVGhlbWUoXG4gICh7XG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICBjaGlsZHJlbixcbiAgICBtYXBDb250cm9scyxcbiAgICBzZXRNYXBDb250cm9sU2V0dGluZ3MsXG4gICAgbWFwU3RhdGUsXG4gICAgdGhlbWVcbiAgfTogRHJhZ2dhYmxlTGVnZW5kUHJvcHMgJiB7dGhlbWU6IGFueX0pID0+IHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gICAgY29uc3QgbGVnZW5kQ29udGVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3Qgb25DaGFuZ2VTZXR0aW5ncyA9IHVzZUNhbGxiYWNrKFxuICAgICAgbmV3U2V0dGluZ3MgPT4gc2V0TWFwQ29udHJvbFNldHRpbmdzKCdtYXBMZWdlbmQnLCBuZXdTZXR0aW5ncyksXG4gICAgICBbc2V0TWFwQ29udHJvbFNldHRpbmdzXVxuICAgICk7XG4gICAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCB1cGRhdGVQb3NpdGlvbiwgc3RhcnRSZXNpemUsIHJlc2l6ZSwgY29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodH0gPVxuICAgICAgdXNlTGVnZW5kUG9zaXRpb24oe1xuICAgICAgICBsZWdlbmRDb250ZW50UmVmLFxuICAgICAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgICAgICB0aGVtZSxcbiAgICAgICAgc2V0dGluZ3MsXG4gICAgICAgIG9uQ2hhbmdlU2V0dGluZ3MsXG4gICAgICAgIG1hcEhlaWdodDogbWFwU3RhdGU/LmhlaWdodCxcbiAgICAgICAgbWFwV2lkdGg6IG1hcFN0YXRlPy53aWR0aFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5hY3RpdmUuaWQpIHtcbiAgICAgICAgICBjYXNlIERSQUdfUkVTSVpFX0lEOlxuICAgICAgICAgICAgc3RhcnRSZXNpemUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB1cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW3VwZGF0ZVBvc2l0aW9uLCBzdGFydFJlc2l6ZV1cbiAgICApO1xuICAgIGNvbnN0IGhhbmRsZURyYWdFbmQgPSB1c2VDYWxsYmFjayh1cGRhdGVQb3NpdGlvbiwgW3VwZGF0ZVBvc2l0aW9uXSk7XG4gICAgY29uc3QgaGFuZGxlRHJhZ01vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5hY3RpdmUuaWQpIHtcbiAgICAgICAgICBjYXNlIERSQUdfUkVTSVpFX0lEOlxuICAgICAgICAgICAgcmVzaXplKGV2ZW50LmRlbHRhLnkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbcmVzaXplXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgb25EcmFnU3RhcnQ9e2hhbmRsZURyYWdTdGFydH1cbiAgICAgICAgb25EcmFnTW92ZT17aGFuZGxlRHJhZ01vdmV9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlRHJhZ0VuZH1cbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1dpbmRvd0VkZ2VzXX1cbiAgICAgID5cbiAgICAgICAgPERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgICAgICByZWY9e2xlZ2VuZENvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25TdHlsZXM9e3Bvc2l0aW9uU3R5bGVzfVxuICAgICAgICAgIGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9XG4gICAgICAgICAgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9EcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgICk7XG4gIH1cbikgYXMgRkM8RHJhZ2dhYmxlTGVnZW5kUHJvcHM+O1xuXG50eXBlIEltYWdlRXhwb3J0TGVnZW5kUHJvcHMgPSB7XG4gIHNldHRpbmdzPzogTWFwTGVnZW5kQ29udHJvbFNldHRpbmdzO1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSW1hZ2VFeHBvcnRMZWdlbmQgPSB3aXRoVGhlbWUoKHtzZXR0aW5ncywgaXNTaWRlUGFuZWxTaG93biwgdGhlbWUsIGNoaWxkcmVufSkgPT4ge1xuICBjb25zdCBjb250YWluZXJSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGVnZW5kQ29udGVudFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+ID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgY29udGVudEhlaWdodH0gPSB1c2VMZWdlbmRQb3NpdGlvbih7XG4gICAgbGVnZW5kQ29udGVudFJlZixcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIHRoZW1lLFxuICAgIHNldHRpbmdzLFxuICAgIG9uQ2hhbmdlU2V0dGluZ3M6ICgpID0+IHtcbiAgICAgIC8vIGRvIG5vdGhpbmcgYnkgZGVmYXVsdFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgcG9ydGFsUm9vdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgPy5jbG9zZXN0KCcuZXhwb3J0LW1hcC1pbnN0YW5jZScpXG4gICAgPy5xdWVyeVNlbGVjdG9yKCcjZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cbiAgICAgIHtwb3J0YWxSb290XG4gICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZC1sZWdlbmRcIlxuICAgICAgICAgICAgICByZWY9e2xlZ2VuZENvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgIHN0eWxlPXt7Li4ucG9zaXRpb25TdHlsZXMsIHBvc2l0aW9uOiAnYWJzb2x1dGUnfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEZpeGVkTGVnZW5kQ29udGVudCBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgIDwvU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgcG9ydGFsUm9vdFxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufSkgYXMgUmVhY3QuRkM8SW1hZ2VFeHBvcnRMZWdlbmRQcm9wcz47XG5cbk1hcExlZ2VuZFBhbmVsRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSwgTWFwTGVnZW5kRmFjdG9yeV07XG5cbmludGVyZmFjZSBNYXBMZWdlbmRQYW5lbEljb25zIHtcbiAgbGVnZW5kOiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsUHJvcHMgPSB7XG4gIHRoZW1lOiBhbnk7XG4gIGxheWVyczogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0PjtcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrQ29udHJvbEJ0bj86IChlPzogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHNldHRpbmdzOiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3M7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIGFjdGl2ZVNpZGVQYW5lbDogc3RyaW5nIHwgbnVsbDtcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiBhbnk7XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cyA9IHtcbiAgTWFwQ29udHJvbFRvb2x0aXA6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeT47XG4gIE1hcENvbnRyb2xQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFBhbmVsRmFjdG9yeT47XG4gIE1hcExlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeT47XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50VHlwZSA9IFJlYWN0LkZDPE1hcExlZ2VuZFBhbmVsUHJvcHM+O1xuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGxlZ2VuZDogcHJvcHMgPT4gPExlZ2VuZCB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPlxufTtcblxuY29uc3QgTWFwTGVnZW5kUGFuZWxDb21wb25lbnQgPSAoe1xuICBsYXllcnMsXG4gIG1hcENvbnRyb2xzLFxuICBzY2FsZSxcbiAgb25Ub2dnbGVNYXBDb250cm9sLFxuICBpc0V4cG9ydCxcbiAgbG9nb0NvbXBvbmVudCxcbiAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gIG1hcFN0YXRlLFxuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQsXG4gIG9uQ2xpY2tDb250cm9sQnRuLFxuICBhY3RpdmVTaWRlUGFuZWwsXG4gIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQgPSB0cnVlLFxuICBjbGFzc05hbWUsXG4gIE1hcENvbnRyb2xUb29sdGlwLFxuICBNYXBDb250cm9sUGFuZWwsXG4gIE1hcExlZ2VuZFxufTogTWFwTGVnZW5kUGFuZWxQcm9wcyAmIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cykgPT4ge1xuICBjb25zdCBpc1NpZGVQYW5lbFNob3duID0gQm9vbGVhbihhY3RpdmVTaWRlUGFuZWwpO1xuICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gIGNvbnN0IG1hcExlZ2VuZCA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQgfHwgKHt9IGFzIE1hcENvbnRyb2xNYXBMZWdlbmQpO1xuICBjb25zdCB7YWN0aXZlLCBkaXNhYmxlRWRpdH0gPSBtYXBMZWdlbmQgfHwge307XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG5cbiAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsaWNrQ29udHJvbEJ0bj8uKCk7XG4gICAgaWYgKG1hcENvbnRyb2xzPy5tYXBEcmF3Py5hY3RpdmUpIHtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpO1xuICAgIH1cbiAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICB9LCBbb25DbGlja0NvbnRyb2xCdG4sIG9uVG9nZ2xlTWFwQ29udHJvbCwgbWFwQ29udHJvbHNdKTtcbiAgY29uc3Qgb25DbG9zZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICAgIH0sXG4gICAgW29uVG9nZ2xlTWFwQ29udHJvbF1cbiAgKTtcblxuICBpZiAoIW1hcExlZ2VuZC5zaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsZWdlbmRQYW5lbCA9IGFjdGl2ZSA/IChcbiAgICA8TWFwQ29udHJvbFBhbmVsXG4gICAgICBzY2FsZT17c2NhbGV9XG4gICAgICBoZWFkZXI9XCJoZWFkZXIubGF5ZXJMZWdlbmRcIlxuICAgICAgey4uLntvbkNsaWNrOiBvbkNsb3NlQ2xpY2ssIHBpbm5hYmxlOiBmYWxzZSwgZGlzYWJsZUNsb3NlOiBmYWxzZX19XG4gICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICBsb2dvQ29tcG9uZW50PXtsb2dvQ29tcG9uZW50fVxuICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PXtvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9XG4gICAgICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD17aXNWaWV3cG9ydFVuc3luY0FsbG93ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICA+XG4gICAgICA8TWFwTGVnZW5kXG4gICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgLz5cbiAgICA8L01hcENvbnRyb2xQYW5lbD5cbiAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2FjdGl2ZSA/IChcbiAgICAgICAgaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKSA/IChcbiAgICAgICAgICBsZWdlbmRQYW5lbFxuICAgICAgICApIDogaXNFeHBvcnQgPyAoXG4gICAgICAgICAgPEltYWdlRXhwb3J0TGVnZW5kIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259IHNldHRpbmdzPXtzZXR0aW5nc30+XG4gICAgICAgICAgICB7bGVnZW5kUGFuZWx9XG4gICAgICAgICAgPC9JbWFnZUV4cG9ydExlZ2VuZD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kXG4gICAgICAgICAgICAgIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259XG4gICAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgICAgc2V0TWFwQ29udHJvbFNldHRpbmdzPXtzZXRNYXBDb250cm9sU2V0dGluZ3N9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgICAgPC9EcmFnZ2FibGVMZWdlbmQ+LFxuICAgICAgICAgICAgcm9vdENvbnRleHQ/LmN1cnJlbnQgPz8gZG9jdW1lbnQuYm9keVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IWlzRXhwb3J0ID8gKFxuICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXAgaWQ9XCJzaG93LWxlZ2VuZFwiIG1lc3NhZ2U9XCJ0b29sdGlwLnNob3dMZWdlbmRcIj5cbiAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvbiBjbGFzc05hbWU9XCJtYXAtY29udHJvbC1idXR0b24gc2hvdy1sZWdlbmRcIiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgICAgIDxhY3Rpb25JY29ucy5sZWdlbmQgaGVpZ2h0PVwiMjJweFwiIC8+XG4gICAgICAgICAgPC9NYXBDb250cm9sQnV0dG9uPlxuICAgICAgICA8L01hcENvbnRyb2xUb29sdGlwPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC8+XG4gICk7XG59O1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+LFxuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+XG4pOiBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUge1xuICByZXR1cm4gKHByb3BzOiBNYXBMZWdlbmRQYW5lbFByb3BzKSA9PiAoXG4gICAgPE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBNYXBDb250cm9sVG9vbHRpcD17TWFwQ29udHJvbFRvb2x0aXB9XG4gICAgICBNYXBDb250cm9sUGFuZWw9e01hcENvbnRyb2xQYW5lbH1cbiAgICAgIE1hcExlZ2VuZD17TWFwTGVnZW5kfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcExlZ2VuZFBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFTQSxJQUFBSSxpQkFBQSxHQUFBRCx1QkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBSUEsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBRUEsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsa0JBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFFBQUEsR0FBQVosT0FBQTtBQUNB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
|
|
277
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiRFJBR19SRVNJWkVfSUQiLCJEUkFHX01PVkVfSUQiLCJTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCIkbWF4Q29udGVudEhlaWdodCIsImNvbmNhdCIsIiRjb250ZW50SGVpZ2h0IiwiU3R5bGVkTW92ZUhhbmRsZSIsIlN0eWxlZFJlc2l6ZUhhbmRsZSIsIlN0eWxlZEZpeGVkTGVnZW5kQ29udGVudCIsIkRyYWdnYWJsZUxlZ2VuZENvbnRlbnQiLCJmb3J3YXJkUmVmIiwicmVmIiwicG9zaXRpb25TdHlsZXMiLCJjaGlsZHJlbiIsImNvbnRlbnRIZWlnaHQiLCJtYXhDb250ZW50SGVpZ2h0IiwiZHJhZ2dhYmxlTW92ZSIsInVzZURyYWdnYWJsZSIsImlkIiwiZHJhZ2dhYmxlUmVzaXplIiwicmVmcyIsInVzZU1lcmdlUmVmcyIsInNldE5vZGVSZWYiLCJpc0RyYWdnaW5nIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJzdHlsZSIsInRyYW5zZm9ybSIsIkNTUyIsIlRyYW5zbGF0ZSIsInRvU3RyaW5nIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsIkRyYWdnYWJsZURvdHMiLCJoZWlnaHQiLCJIb3Jpem9udGFsUmVzaXplSGFuZGxlIiwiRHJhZ2dhYmxlTGVnZW5kIiwid2l0aFRoZW1lIiwiX3JlZiIsIl9tYXBDb250cm9scyRtYXBMZWdlbiIsImlzU2lkZVBhbmVsU2hvd24iLCJtYXBDb250cm9scyIsInNldE1hcENvbnRyb2xTZXR0aW5ncyIsIm1hcFN0YXRlIiwic2V0dGluZ3MiLCJtYXBMZWdlbmQiLCJsZWdlbmRDb250ZW50UmVmIiwidXNlUmVmIiwib25DaGFuZ2VTZXR0aW5ncyIsInVzZUNhbGxiYWNrIiwibmV3U2V0dGluZ3MiLCJfdXNlTGVnZW5kUG9zaXRpb24iLCJ1c2VMZWdlbmRQb3NpdGlvbiIsIm1hcEhlaWdodCIsIm1hcFdpZHRoIiwid2lkdGgiLCJ1cGRhdGVQb3NpdGlvbiIsInN0YXJ0UmVzaXplIiwicmVzaXplIiwiaGFuZGxlRHJhZ1N0YXJ0IiwiZXZlbnQiLCJhY3RpdmUiLCJoYW5kbGVEcmFnRW5kIiwiaGFuZGxlRHJhZ01vdmUiLCJkZWx0YSIsInkiLCJEbmRDb250ZXh0Iiwib25EcmFnU3RhcnQiLCJvbkRyYWdNb3ZlIiwib25EcmFnRW5kIiwibW9kaWZpZXJzIiwicmVzdHJpY3RUb1dpbmRvd0VkZ2VzIiwiSW1hZ2VFeHBvcnRMZWdlbmQiLCJfcmVmMiIsIl9jb250YWluZXJSZWYkY3VycmVudCIsImNvbnRhaW5lclJlZiIsIl91c2VMZWdlbmRQb3NpdGlvbjIiLCJwb3J0YWxSb290IiwiY3VycmVudCIsImNsb3Nlc3QiLCJxdWVyeVNlbGVjdG9yIiwiY3JlYXRlUG9ydGFsIiwicG9zaXRpb24iLCJNYXBMZWdlbmRQYW5lbEZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJsZWdlbmQiLCJMZWdlbmQiLCJNYXBMZWdlbmRQYW5lbENvbXBvbmVudCIsIl9yZWYzIiwiX21hcENvbnRyb2xzJG1hcExlZ2VuMiIsIl9yb290Q29udGV4dCRjdXJyZW50IiwibGF5ZXJzIiwic2NhbGUiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJpc0V4cG9ydCIsImxvZ29Db21wb25lbnQiLCJfcmVmMyRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwib25MYXllclZpc0NvbmZpZ0NoYW5nZSIsIm9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5Iiwib25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0Iiwib25DbGlja0NvbnRyb2xCdG4iLCJhY3RpdmVTaWRlUGFuZWwiLCJfcmVmMyRpc1ZpZXdwb3J0VW5zeW4iLCJpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTWFwTGVnZW5kIiwiQm9vbGVhbiIsIl9yZWY0IiwiZGlzYWJsZUVkaXQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIm9uQ2xpY2siLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIm1hcERyYXciLCJvbkNsb3NlQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNob3ciLCJsZWdlbmRQYW5lbCIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwiRnJhZ21lbnQiLCJoYXNQb3J0YWJsZVdpZHRoIiwiYnJlYWtQb2ludFZhbHVlcyIsImRvY3VtZW50IiwiYm9keSIsIm1lc3NhZ2UiLCJNYXBDb250cm9sQnV0dG9uIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtbGVnZW5kLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIEZDLFxuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlQ29udGV4dCxcbiAgdXNlUmVmLFxuICBQcm9wc1dpdGhDaGlsZHJlblxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7RG5kQ29udGV4dCwgdXNlRHJhZ2dhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7Q1NTfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHt1c2VNZXJnZVJlZnN9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgc2V0TWFwQ29udHJvbFNldHRpbmdzLCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHticmVha1BvaW50VmFsdWVzfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBDb250cm9sTWFwTGVnZW5kLCBNYXBDb250cm9scywgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtoYXNQb3J0YWJsZVdpZHRofSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TWFwTGVnZW5kQ29udHJvbFNldHRpbmdzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtMZWdlbmQsIERyYWdnYWJsZURvdHMsIEhvcml6b250YWxSZXNpemVIYW5kbGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB1c2VMZWdlbmRQb3NpdGlvbiBmcm9tICcuLi9ob29rcy91c2UtbGVnZW5kLXBvc2l0aW9uJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcExlZ2VuZEZhY3RvcnkgZnJvbSAnLi9tYXAtbGVnZW5kJztcbmltcG9ydCB7cmVzdHJpY3RUb1dpbmRvd0VkZ2VzfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBEUkFHX1JFU0laRV9JRCA9ICdtYXAtbGVnZW5kLXJlc2l6ZSc7XG5jb25zdCBEUkFHX01PVkVfSUQgPSAnbWFwLWxlZ2VuZC1tb3ZlJztcblxuY29uc3QgU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICAkY29udGVudEhlaWdodD86IG51bWJlcjtcbiAgJG1heENvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG59PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLWluLW91dDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC5sZWdlbmQtaW5wdXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJi5pcy1kcmFnZ2luZyAubGVnZW5kLWlucHV0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICY6aG92ZXIsXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIC5sZWdlbmQtbW92ZS1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICAubGVnZW5kLXJlc2l6ZS1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICB9XG4gIC5tYXAtY29udHJvbF9fcGFuZWwtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogJHtwcm9wcyA9PlxuICAgICAgcHJvcHMuJG1heENvbnRlbnRIZWlnaHQgPyBgJHtwcm9wcy4kbWF4Q29udGVudEhlaWdodH1weGAgOiAnY2FsYygxMDB2aCAtIDEwMHB4KSd9O1xuICAgICR7cHJvcHMgPT4gKHByb3BzLiRjb250ZW50SGVpZ2h0ID8gYGhlaWdodDogJHtwcm9wcy4kY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHotaW5kZXg6IDI7XG4gIC5tYXAtY29udHJvbC1wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRNb3ZlSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogI2Y3ZjhmYTtcbiAgei1pbmRleDogMjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuYDtcblxuY29uc3QgU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7JGNvbnRlbnRIZWlnaHQ/OiBudW1iZXJ9PmBcbiAgLm1hcC1jb250cm9sX19wYW5lbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xuICAgICR7cHJvcHMgPT4gKHByb3BzLiRjb250ZW50SGVpZ2h0ID8gYGhlaWdodDogJHtwcm9wcy4kY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuXG4gIC8qIEhpZGUgc2Nyb2xsYmFycyBpbiBleHBvcnQgdG8gYXZvaWQgT1MgZGVmYXVsdCBzdHlsaW5nIGRpZmZlcmVuY2VzICovXG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kIHtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBvbGQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICB9XG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDsgLyogQ2hyb21lLCBTYWZhcmksIG5ldyBFZGdlICovXG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsRmFjdG9yeURlcHMgPSBbXG4gIHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksXG4gIHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5LFxuICB0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeVxuXTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIG1heENvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIHBvc2l0aW9uU3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZENvbnRlbnQgPSBmb3J3YXJkUmVmKChwcm9wczogRHJhZ2dhYmxlTGVnZW5kQ29udGVudFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjaGlsZHJlbiwgY29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodH0gPSBwcm9wcztcbiAgY29uc3QgZHJhZ2dhYmxlTW92ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfTU9WRV9JRH0pO1xuICBjb25zdCBkcmFnZ2FibGVSZXNpemUgPSB1c2VEcmFnZ2FibGUoe2lkOiBEUkFHX1JFU0laRV9JRH0pO1xuICBjb25zdCByZWZzID0gdXNlTWVyZ2VSZWZzKFtkcmFnZ2FibGVNb3ZlLnNldE5vZGVSZWYsIHJlZl0pO1xuICBjb25zdCBpc0RyYWdnaW5nID0gZHJhZ2dhYmxlTW92ZS5pc0RyYWdnaW5nIHx8IGRyYWdnYWJsZVJlc2l6ZS5pc0RyYWdnaW5nO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICByZWY9e3JlZnN9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2RyYWdnYWJsZS1sZWdlbmQnLCB7J2lzLWRyYWdnaW5nJzogaXNEcmFnZ2luZ30pfVxuICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKGRyYWdnYWJsZU1vdmUudHJhbnNmb3JtKX19XG4gICAgICAkY29udGVudEhlaWdodD17Y29udGVudEhlaWdodH1cbiAgICAgICRtYXhDb250ZW50SGVpZ2h0PXttYXhDb250ZW50SGVpZ2h0fVxuICAgICAgey4uLmRyYWdnYWJsZU1vdmUuYXR0cmlidXRlc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7aXNEcmFnZ2luZyA/IDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLWlucHV0LWJsb2NrXCIgLz4gOiBudWxsfVxuICAgICAgPFN0eWxlZE1vdmVIYW5kbGUgY2xhc3NOYW1lPVwibGVnZW5kLW1vdmUtaGFuZGxlXCIgey4uLmRyYWdnYWJsZU1vdmUubGlzdGVuZXJzfT5cbiAgICAgICAgPERyYWdnYWJsZURvdHMgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZE1vdmVIYW5kbGU+XG4gICAgICA8U3R5bGVkUmVzaXplSGFuZGxlXG4gICAgICAgIGNsYXNzTmFtZT1cImxlZ2VuZC1yZXNpemUtaGFuZGxlXCJcbiAgICAgICAgcmVmPXtkcmFnZ2FibGVSZXNpemUuc2V0Tm9kZVJlZn1cbiAgICAgICAgey4uLmRyYWdnYWJsZVJlc2l6ZS5saXN0ZW5lcnN9XG4gICAgICA+XG4gICAgICAgIDxIb3Jpem9udGFsUmVzaXplSGFuZGxlIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgPC9TdHlsZWRSZXNpemVIYW5kbGU+XG4gICAgPC9TdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICApO1xufSk7XG5cbnR5cGUgRHJhZ2dhYmxlTGVnZW5kUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiB0eXBlb2Ygc2V0TWFwQ29udHJvbFNldHRpbmdzO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xufT47XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZCA9IHdpdGhUaGVtZShcbiAgKHtcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIGNoaWxkcmVuLFxuICAgIG1hcENvbnRyb2xzLFxuICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgICBtYXBTdGF0ZSxcbiAgICB0aGVtZVxuICB9OiBEcmFnZ2FibGVMZWdlbmRQcm9wcyAmIHt0aGVtZTogYW55fSkgPT4ge1xuICAgIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgICBjb25zdCBsZWdlbmRDb250ZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBvbkNoYW5nZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdTZXR0aW5ncyA9PiBzZXRNYXBDb250cm9sU2V0dGluZ3MoJ21hcExlZ2VuZCcsIG5ld1NldHRpbmdzKSxcbiAgICAgIFtzZXRNYXBDb250cm9sU2V0dGluZ3NdXG4gICAgKTtcbiAgICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIHVwZGF0ZVBvc2l0aW9uLCBzdGFydFJlc2l6ZSwgcmVzaXplLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9XG4gICAgICB1c2VMZWdlbmRQb3NpdGlvbih7XG4gICAgICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBzZXR0aW5ncyxcbiAgICAgICAgb25DaGFuZ2VTZXR0aW5ncyxcbiAgICAgICAgbWFwSGVpZ2h0OiBtYXBTdGF0ZT8uaGVpZ2h0LFxuICAgICAgICBtYXBXaWR0aDogbWFwU3RhdGU/LndpZHRoXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZURyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICBzdGFydFJlc2l6ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplXVxuICAgICk7XG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKHVwZGF0ZVBvc2l0aW9uLCBbdXBkYXRlUG9zaXRpb25dKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICByZXNpemUoZXZlbnQuZGVsdGEueSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtyZXNpemVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RG5kQ29udGV4dFxuICAgICAgICBvbkRyYWdTdGFydD17aGFuZGxlRHJhZ1N0YXJ0fVxuICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgb25EcmFnRW5kPXtoYW5kbGVEcmFnRW5kfVxuICAgICAgICBtb2RpZmllcnM9e1tyZXN0cmljdFRvV2luZG93RWRnZXNdfVxuICAgICAgPlxuICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kQ29udGVudFxuICAgICAgICAgIHJlZj17bGVnZW5kQ29udGVudFJlZn1cbiAgICAgICAgICBwb3NpdGlvblN0eWxlcz17cG9zaXRpb25TdHlsZXN9XG4gICAgICAgICAgY29udGVudEhlaWdodD17Y29udGVudEhlaWdodH1cbiAgICAgICAgICBtYXhDb250ZW50SGVpZ2h0PXttYXhDb250ZW50SGVpZ2h0fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0RyYWdnYWJsZUxlZ2VuZENvbnRlbnQ+XG4gICAgICA8L0RuZENvbnRleHQ+XG4gICAgKTtcbiAgfVxuKSBhcyBGQzxEcmFnZ2FibGVMZWdlbmRQcm9wcz47XG5cbnR5cGUgSW1hZ2VFeHBvcnRMZWdlbmRQcm9wcyA9IHtcbiAgc2V0dGluZ3M/OiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3M7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBJbWFnZUV4cG9ydExlZ2VuZCA9IHdpdGhUaGVtZSgoe3NldHRpbmdzLCBpc1NpZGVQYW5lbFNob3duLCB0aGVtZSwgY2hpbGRyZW59KSA9PiB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+ID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBsZWdlbmRDb250ZW50UmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjb250ZW50SGVpZ2h0fSA9IHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICBsZWdlbmRDb250ZW50UmVmLFxuICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgdGhlbWUsXG4gICAgc2V0dGluZ3MsXG4gICAgb25DaGFuZ2VTZXR0aW5nczogKCkgPT4ge1xuICAgICAgLy8gZG8gbm90aGluZyBieSBkZWZhdWx0XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBwb3J0YWxSb290ID0gY29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICA/LmNsb3Nlc3QoJy5leHBvcnQtbWFwLWluc3RhbmNlJylcbiAgICA/LnF1ZXJ5U2VsZWN0b3IoJyNkZWZhdWx0LWRlY2tnbC1vdmVybGF5LXdyYXBwZXInKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxuICAgICAge3BvcnRhbFJvb3RcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkLWxlZ2VuZFwiXG4gICAgICAgICAgICAgIHJlZj17bGVnZW5kQ29udGVudFJlZn1cbiAgICAgICAgICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgcG9zaXRpb246ICdhYnNvbHV0ZSd9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3R5bGVkRml4ZWRMZWdlbmRDb250ZW50ICRjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgIDwvU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgcG9ydGFsUm9vdFxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufSkgYXMgUmVhY3QuRkM8SW1hZ2VFeHBvcnRMZWdlbmRQcm9wcz47XG5cbk1hcExlZ2VuZFBhbmVsRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSwgTWFwTGVnZW5kRmFjdG9yeV07XG5cbmludGVyZmFjZSBNYXBMZWdlbmRQYW5lbEljb25zIHtcbiAgbGVnZW5kOiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsUHJvcHMgPSB7XG4gIHRoZW1lOiBhbnk7XG4gIGxheWVyczogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2tDb250cm9sQnRuPzogKGU/OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmcgfCBudWxsO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IGFueTtcbn07XG5cbnR5cGUgTWFwTGVnZW5kUGFuZWxDb21wb25lbnRzID0ge1xuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PjtcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PjtcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5Pjtcbn07XG5cbnR5cGUgTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlID0gUmVhY3QuRkM8TWFwTGVnZW5kUGFuZWxQcm9wcz47XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgbGVnZW5kOiBwcm9wcyA9PiA8TGVnZW5kIHsuLi5wcm9wc30gaGVpZ2h0PVwiMThweFwiIC8+XG59O1xuXG5jb25zdCBNYXBMZWdlbmRQYW5lbENvbXBvbmVudCA9ICh7XG4gIGxheWVycyxcbiAgbWFwQ29udHJvbHMsXG4gIHNjYWxlLFxuICBvblRvZ2dsZU1hcENvbnRyb2wsXG4gIGlzRXhwb3J0LFxuICBsb2dvQ29tcG9uZW50LFxuICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgbWFwU3RhdGUsXG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5LFxuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQsXG4gIG9uQ2xpY2tDb250cm9sQnRuLFxuICBhY3RpdmVTaWRlUGFuZWwsXG4gIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQgPSB0cnVlLFxuICBjbGFzc05hbWUsXG4gIE1hcENvbnRyb2xUb29sdGlwLFxuICBNYXBDb250cm9sUGFuZWwsXG4gIE1hcExlZ2VuZFxufTogTWFwTGVnZW5kUGFuZWxQcm9wcyAmIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cykgPT4ge1xuICBjb25zdCBpc1NpZGVQYW5lbFNob3duID0gQm9vbGVhbihhY3RpdmVTaWRlUGFuZWwpO1xuICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gIGNvbnN0IG1hcExlZ2VuZCA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQgfHwgKHt9IGFzIE1hcENvbnRyb2xNYXBMZWdlbmQpO1xuICBjb25zdCB7YWN0aXZlLCBkaXNhYmxlRWRpdH0gPSBtYXBMZWdlbmQgfHwge307XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG5cbiAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsaWNrQ29udHJvbEJ0bj8uKCk7XG4gICAgaWYgKG1hcENvbnRyb2xzPy5tYXBEcmF3Py5hY3RpdmUpIHtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpO1xuICAgIH1cbiAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICB9LCBbb25DbGlja0NvbnRyb2xCdG4sIG9uVG9nZ2xlTWFwQ29udHJvbCwgbWFwQ29udHJvbHNdKTtcbiAgY29uc3Qgb25DbG9zZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICAgIH0sXG4gICAgW29uVG9nZ2xlTWFwQ29udHJvbF1cbiAgKTtcblxuICBpZiAoIW1hcExlZ2VuZC5zaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsZWdlbmRQYW5lbCA9IGFjdGl2ZSA/IChcbiAgICA8TWFwQ29udHJvbFBhbmVsXG4gICAgICBzY2FsZT17c2NhbGV9XG4gICAgICBoZWFkZXI9XCJoZWFkZXIubGF5ZXJMZWdlbmRcIlxuICAgICAgey4uLntvbkNsaWNrOiBvbkNsb3NlQ2xpY2ssIHBpbm5hYmxlOiBmYWxzZSwgZGlzYWJsZUNsb3NlOiBmYWxzZX19XG4gICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICBsb2dvQ29tcG9uZW50PXtsb2dvQ29tcG9uZW50fVxuICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PXtvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9XG4gICAgICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD17aXNWaWV3cG9ydFVuc3luY0FsbG93ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICA+XG4gICAgICA8TWFwTGVnZW5kXG4gICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT17b25Ub2dnbGVMYXllclZpc2liaWxpdHl9XG4gICAgICAvPlxuICAgIDwvTWFwQ29udHJvbFBhbmVsPlxuICApIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7YWN0aXZlID8gKFxuICAgICAgICBoYXNQb3J0YWJsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXMpID8gKFxuICAgICAgICAgIGxlZ2VuZFBhbmVsXG4gICAgICAgICkgOiBpc0V4cG9ydCA/IChcbiAgICAgICAgICA8SW1hZ2VFeHBvcnRMZWdlbmQgaXNTaWRlUGFuZWxTaG93bj17aXNTaWRlUGFuZWxTaG93bn0gc2V0dGluZ3M9e3NldHRpbmdzfT5cbiAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICA8L0ltYWdlRXhwb3J0TGVnZW5kPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxEcmFnZ2FibGVMZWdlbmRcbiAgICAgICAgICAgICAgaXNTaWRlUGFuZWxTaG93bj17aXNTaWRlUGFuZWxTaG93bn1cbiAgICAgICAgICAgICAgbWFwQ29udHJvbHM9e21hcENvbnRyb2xzfVxuICAgICAgICAgICAgICBzZXRNYXBDb250cm9sU2V0dGluZ3M9e3NldE1hcENvbnRyb2xTZXR0aW5nc31cbiAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bGVnZW5kUGFuZWx9XG4gICAgICAgICAgICA8L0RyYWdnYWJsZUxlZ2VuZD4sXG4gICAgICAgICAgICByb290Q29udGV4dD8uY3VycmVudCA/PyBkb2N1bWVudC5ib2R5XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIDogbnVsbH1cbiAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgIDxNYXBDb250cm9sVG9vbHRpcCBpZD1cInNob3ctbGVnZW5kXCIgbWVzc2FnZT1cInRvb2x0aXAuc2hvd0xlZ2VuZFwiPlxuICAgICAgICAgIDxNYXBDb250cm9sQnV0dG9uIGNsYXNzTmFtZT1cIm1hcC1jb250cm9sLWJ1dHRvbiBzaG93LWxlZ2VuZFwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICAgICAgPGFjdGlvbkljb25zLmxlZ2VuZCBoZWlnaHQ9XCIyMnB4XCIgLz5cbiAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgIDwvTWFwQ29udHJvbFRvb2x0aXA+XG4gICAgICApIDogbnVsbH1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmZ1bmN0aW9uIE1hcExlZ2VuZFBhbmVsRmFjdG9yeShcbiAgTWFwQ29udHJvbFRvb2x0aXA6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeT4sXG4gIE1hcENvbnRyb2xQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFBhbmVsRmFjdG9yeT4sXG4gIE1hcExlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeT5cbik6IE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50VHlwZSB7XG4gIHJldHVybiAocHJvcHM6IE1hcExlZ2VuZFBhbmVsUHJvcHMpID0+IChcbiAgICA8TWFwTGVnZW5kUGFuZWxDb21wb25lbnRcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIE1hcENvbnRyb2xUb29sdGlwPXtNYXBDb250cm9sVG9vbHRpcH1cbiAgICAgIE1hcENvbnRyb2xQYW5lbD17TWFwQ29udHJvbFBhbmVsfVxuICAgICAgTWFwTGVnZW5kPXtNYXBMZWdlbmR9XG4gICAgLz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kUGFuZWxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQVNBLElBQUFJLGlCQUFBLEdBQUFELHVCQUFBLENBQUFILE9BQUE7QUFFQSxJ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
|
package/dist/map/map-legend.d.ts
CHANGED
|
@@ -5,18 +5,18 @@ import { LayerVisConfig, MapState, RGBColor } from '@kepler.gl/types';
|
|
|
5
5
|
import PanelHeaderActionFactory from '../side-panel/panel-header-action';
|
|
6
6
|
interface StyledMapControlLegendProps {
|
|
7
7
|
width?: number;
|
|
8
|
-
last?: boolean;
|
|
8
|
+
$last?: boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare const StyledMapControlLegend: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledMapControlLegendProps>>;
|
|
11
11
|
export declare const VisualChannelMetric: ({ name }: {
|
|
12
12
|
name: any;
|
|
13
13
|
}) => React.JSX.Element;
|
|
14
|
-
export
|
|
14
|
+
export type LayerSizeLegendProps = {
|
|
15
15
|
label: string;
|
|
16
16
|
name: string | undefined;
|
|
17
17
|
};
|
|
18
18
|
export declare const LayerDefaultLegend: React.FC<LayerSizeLegendProps>;
|
|
19
|
-
export
|
|
19
|
+
export type SingleColorLegendProps = {
|
|
20
20
|
color: RGBColor;
|
|
21
21
|
label?: string;
|
|
22
22
|
};
|
|
@@ -24,7 +24,7 @@ export declare function SingleColorLegendFactory(LegendRow: ReturnType<typeof Le
|
|
|
24
24
|
export declare namespace SingleColorLegendFactory {
|
|
25
25
|
var deps: (typeof LegendRowFactory)[];
|
|
26
26
|
}
|
|
27
|
-
export
|
|
27
|
+
export type LayerColorLegendProps = {
|
|
28
28
|
description: VisualChannelDescription;
|
|
29
29
|
config: LayerBaseConfig;
|
|
30
30
|
colorChannel: VisualChannel;
|
|
@@ -39,11 +39,11 @@ export declare function LayerColorLegendFactory(ColorLegend: ReturnType<typeof C
|
|
|
39
39
|
export declare namespace LayerColorLegendFactory {
|
|
40
40
|
var deps: (typeof PanelHeaderActionFactory | typeof ColorLegendFactory | typeof SingleColorLegendFactory)[];
|
|
41
41
|
}
|
|
42
|
-
export
|
|
42
|
+
export type MapLegendIcons = {
|
|
43
43
|
expanded: ComponentType<any>;
|
|
44
44
|
collapsed: ComponentType<any>;
|
|
45
45
|
};
|
|
46
|
-
export
|
|
46
|
+
export type LayerRadiusLegendProps = {
|
|
47
47
|
layer: Layer;
|
|
48
48
|
mapState?: MapState;
|
|
49
49
|
width: number;
|
|
@@ -51,15 +51,16 @@ export declare type LayerRadiusLegendProps = {
|
|
|
51
51
|
visualChannel: VisualChannel;
|
|
52
52
|
};
|
|
53
53
|
export declare const LayerRadiusLegend: FC<LayerRadiusLegendProps>;
|
|
54
|
-
export
|
|
54
|
+
export type LayerLegendHeaderProps = {
|
|
55
55
|
layer: Layer;
|
|
56
56
|
options?: {
|
|
57
57
|
showLayerName?: boolean;
|
|
58
58
|
};
|
|
59
59
|
isExport?: boolean;
|
|
60
|
+
onToggleLayerVisibility?: (layer: Layer) => void;
|
|
60
61
|
};
|
|
61
62
|
export declare function LayerLegendHeaderFactory(): React.FC<LayerLegendHeaderProps>;
|
|
62
|
-
export
|
|
63
|
+
export type LayerLegendContentProps = {
|
|
63
64
|
layer: Layer;
|
|
64
65
|
containerW: number;
|
|
65
66
|
mapState?: MapState;
|
|
@@ -72,7 +73,7 @@ export declare function LayerLegendContentFactory(LayerColorLegend: ReturnType<t
|
|
|
72
73
|
export declare namespace LayerLegendContentFactory {
|
|
73
74
|
var deps: (typeof LayerColorLegendFactory)[];
|
|
74
75
|
}
|
|
75
|
-
export
|
|
76
|
+
export type MapLegendProps = {
|
|
76
77
|
layers?: ReadonlyArray<Layer>;
|
|
77
78
|
width?: number;
|
|
78
79
|
mapState?: MapState;
|
|
@@ -82,6 +83,7 @@ export declare type MapLegendProps = {
|
|
|
82
83
|
disableEdit?: boolean;
|
|
83
84
|
isExport?: boolean;
|
|
84
85
|
onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
|
|
86
|
+
onToggleLayerVisibility?: (layer: Layer) => void;
|
|
85
87
|
actionIcons?: MapLegendIcons;
|
|
86
88
|
};
|
|
87
89
|
declare function MapLegendFactory(LayerLegendHeader: ReturnType<typeof LayerLegendHeaderFactory>, LayerLegendContent: ReturnType<typeof LayerLegendContentFactory>): React.FC<MapLegendProps>;
|