@kepler.gl/components 3.0.0-alpha.0 → 3.0.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/bottom-widget.d.ts +11 -38
- package/dist/bottom-widget.js +43 -99
- package/dist/common/action-panel.d.ts +2 -2
- package/dist/common/action-panel.js +4 -4
- package/dist/common/animation-control/animation-control.d.ts +19 -18
- package/dist/common/animation-control/animation-control.js +59 -81
- package/dist/common/animation-control/animation-controller.d.ts +6 -2
- package/dist/common/animation-control/animation-controller.js +50 -36
- package/dist/common/animation-control/animation-speed-slider.js +2 -2
- package/dist/common/animation-control/animation-window-control.js +1 -1
- package/dist/common/animation-control/floating-time-display.d.ts +2 -2
- package/dist/common/animation-control/floating-time-display.js +2 -2
- package/dist/common/animation-control/play-control.d.ts +2 -2
- package/dist/common/animation-control/play-control.js +1 -1
- package/dist/common/animation-control/playback-controls.d.ts +7 -7
- package/dist/common/animation-control/playback-controls.js +6 -6
- package/dist/common/animation-control/reset-control.d.ts +2 -2
- package/dist/common/animation-control/reset-control.js +1 -1
- package/dist/common/animation-control/speed-control.d.ts +2 -2
- package/dist/common/animation-control/speed-control.js +2 -2
- package/dist/common/animation-control/window-action-control.d.ts +2 -2
- package/dist/common/animation-control/window-action-control.js +1 -1
- package/dist/common/checkbox.d.ts +2 -2
- package/dist/common/checkbox.js +3 -3
- package/dist/common/color-legend.d.ts +3 -3
- package/dist/common/color-legend.js +11 -17
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/button.js +2 -2
- package/dist/common/data-table/canvas.js +2 -2
- package/dist/common/data-table/cell-size.js +44 -13
- package/dist/common/data-table/display-format.d.ts +25 -0
- package/dist/common/data-table/display-format.js +169 -0
- package/dist/common/data-table/grid.d.ts +5 -2
- package/dist/common/data-table/grid.js +45 -5
- package/dist/common/data-table/header-cell.d.ts +4 -1
- package/dist/common/data-table/header-cell.js +66 -29
- package/dist/common/data-table/index.d.ts +27 -34
- package/dist/common/data-table/index.js +148 -62
- package/dist/common/data-table/option-dropdown.d.ts +17 -3
- package/dist/common/data-table/option-dropdown.js +86 -13
- package/dist/common/dataset-label.d.ts +2 -2
- package/dist/common/dataset-label.js +3 -3
- package/dist/common/error-boundary.d.ts +6 -2
- package/dist/common/error-boundary.js +2 -2
- package/dist/common/field-selector.d.ts +9 -3
- package/dist/common/field-selector.js +3 -3
- package/dist/common/field-token.d.ts +8 -0
- package/dist/common/field-token.js +7 -3
- package/dist/common/file-uploader/file-drop.d.ts +3 -2
- package/dist/common/file-uploader/file-drop.js +2 -2
- package/dist/common/file-uploader/file-upload-progress.js +2 -2
- package/dist/common/file-uploader/file-upload.d.ts +2 -6
- package/dist/common/file-uploader/file-upload.js +2 -2
- package/dist/common/file-uploader/upload-button.d.ts +1 -0
- package/dist/common/file-uploader/upload-button.js +2 -2
- package/dist/common/histogram-plot.d.ts +2 -2
- package/dist/common/histogram-plot.js +18 -12
- package/dist/common/icon-button.d.ts +2 -1
- package/dist/common/icon-button.js +2 -2
- package/dist/common/icons/add.d.ts +2 -2
- package/dist/common/icons/add.js +2 -2
- package/dist/common/icons/anchor_window.d.ts +2 -2
- package/dist/common/icons/anchor_window.js +2 -2
- package/dist/common/icons/arrow-down-alt.d.ts +2 -2
- package/dist/common/icons/arrow-down-alt.js +2 -2
- package/dist/common/icons/arrow-down-solid.d.ts +2 -2
- package/dist/common/icons/arrow-down-solid.js +2 -2
- package/dist/common/icons/arrow-down.d.ts +2 -2
- package/dist/common/icons/arrow-down.js +2 -2
- package/dist/common/icons/arrow-left.d.ts +2 -2
- package/dist/common/icons/arrow-left.js +2 -2
- package/dist/common/icons/arrow-right.d.ts +2 -2
- package/dist/common/icons/arrow-right.js +2 -2
- package/dist/common/icons/arrow-up-alt.d.ts +2 -2
- package/dist/common/icons/arrow-up-alt.js +2 -2
- package/dist/common/icons/arrow-up-solid.d.ts +2 -2
- package/dist/common/icons/arrow-up-solid.js +2 -2
- package/dist/common/icons/arrow-up.d.ts +2 -2
- package/dist/common/icons/arrow-up.js +2 -2
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/base.js +2 -2
- package/dist/common/icons/bug.d.ts +2 -2
- package/dist/common/icons/bug.js +2 -2
- package/dist/common/icons/cancel.d.ts +2 -2
- package/dist/common/icons/cancel.js +2 -2
- package/dist/common/icons/checkmark.d.ts +2 -2
- package/dist/common/icons/checkmark.js +2 -2
- package/dist/common/icons/clipboard.d.ts +2 -2
- package/dist/common/icons/clipboard.js +2 -2
- package/dist/common/icons/clock.d.ts +2 -2
- package/dist/common/icons/clock.js +2 -2
- package/dist/common/icons/close.d.ts +2 -2
- package/dist/common/icons/close.js +2 -2
- package/dist/common/icons/code-alt.d.ts +2 -2
- package/dist/common/icons/code-alt.js +2 -2
- package/dist/common/icons/copy.d.ts +2 -2
- package/dist/common/icons/copy.js +2 -2
- package/dist/common/icons/crosshairs.d.ts +2 -2
- package/dist/common/icons/crosshairs.js +2 -2
- package/dist/common/icons/cube-3d.d.ts +2 -2
- package/dist/common/icons/cube-3d.js +2 -2
- package/dist/common/icons/cursor-click.d.ts +2 -2
- package/dist/common/icons/cursor-click.js +2 -2
- package/dist/common/icons/cursor-point.d.ts +14 -0
- package/dist/common/icons/cursor-point.js +89 -0
- package/dist/common/icons/data-table.d.ts +2 -2
- package/dist/common/icons/data-table.js +2 -2
- package/dist/common/icons/db.d.ts +2 -2
- package/dist/common/icons/db.js +2 -2
- package/dist/common/icons/delete.d.ts +2 -2
- package/dist/common/icons/delete.js +2 -2
- package/dist/common/icons/docs.d.ts +2 -2
- package/dist/common/icons/docs.js +2 -2
- package/dist/common/icons/drag-n-drop.d.ts +2 -2
- package/dist/common/icons/drag-n-drop.js +2 -2
- package/dist/common/icons/draw-polygon.d.ts +2 -2
- package/dist/common/icons/draw-polygon.js +2 -2
- package/dist/common/icons/email.d.ts +2 -2
- package/dist/common/icons/email.js +2 -2
- package/dist/common/icons/expand.d.ts +2 -2
- package/dist/common/icons/expand.js +2 -2
- package/dist/common/icons/eye-seen.d.ts +2 -2
- package/dist/common/icons/eye-seen.js +2 -2
- package/dist/common/icons/eye-unseen.d.ts +2 -2
- package/dist/common/icons/eye-unseen.js +2 -2
- package/dist/common/icons/file-type.d.ts +2 -2
- package/dist/common/icons/file-type.js +2 -2
- package/dist/common/icons/file.d.ts +2 -2
- package/dist/common/icons/file.js +2 -2
- package/dist/common/icons/files.d.ts +1 -1
- package/dist/common/icons/files.js +2 -2
- package/dist/common/icons/filter-funnel.d.ts +2 -2
- package/dist/common/icons/filter-funnel.js +2 -2
- package/dist/common/icons/free-window.d.ts +2 -2
- package/dist/common/icons/free-window.js +2 -2
- package/dist/common/icons/gear.d.ts +2 -2
- package/dist/common/icons/gear.js +2 -2
- package/dist/common/icons/hash.d.ts +2 -2
- package/dist/common/icons/hash.js +2 -2
- package/dist/common/icons/histogram.d.ts +1 -1
- package/dist/common/icons/histogram.js +2 -2
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/common/icons/index.js +10 -2
- package/dist/common/icons/info.d.ts +2 -2
- package/dist/common/icons/info.js +2 -2
- package/dist/common/icons/layers.d.ts +2 -2
- package/dist/common/icons/layers.js +2 -2
- package/dist/common/icons/left-arrow.d.ts +2 -2
- package/dist/common/icons/left-arrow.js +2 -2
- package/dist/common/icons/legend.d.ts +2 -2
- package/dist/common/icons/legend.js +2 -2
- package/dist/common/icons/line-chart.d.ts +2 -2
- package/dist/common/icons/line-chart.js +2 -2
- package/dist/common/icons/login.d.ts +2 -2
- package/dist/common/icons/login.js +2 -2
- package/dist/common/icons/logout.d.ts +2 -2
- package/dist/common/icons/logout.js +2 -2
- package/dist/common/icons/map-icon.d.ts +2 -2
- package/dist/common/icons/map-icon.js +2 -2
- package/dist/common/icons/map.d.ts +2 -2
- package/dist/common/icons/map.js +2 -2
- package/dist/common/icons/messages.d.ts +2 -2
- package/dist/common/icons/messages.js +2 -2
- package/dist/common/icons/minus.d.ts +2 -2
- package/dist/common/icons/minus.js +2 -2
- package/dist/common/icons/order-by-dataset.d.ts +2 -2
- package/dist/common/icons/order-by-dataset.js +2 -2
- package/dist/common/icons/order-by-list.d.ts +2 -2
- package/dist/common/icons/order-by-list.js +2 -2
- package/dist/common/icons/pause.d.ts +2 -2
- package/dist/common/icons/pause.js +2 -2
- package/dist/common/icons/picture.d.ts +1 -1
- package/dist/common/icons/picture.js +2 -2
- package/dist/common/icons/pin.d.ts +2 -2
- package/dist/common/icons/pin.js +2 -2
- package/dist/common/icons/play.d.ts +2 -2
- package/dist/common/icons/play.js +2 -2
- package/dist/common/icons/polygon.d.ts +2 -2
- package/dist/common/icons/polygon.js +2 -2
- package/dist/common/icons/rectangle.d.ts +2 -2
- package/dist/common/icons/rectangle.js +2 -2
- package/dist/common/icons/reduce.d.ts +2 -2
- package/dist/common/icons/reduce.js +2 -2
- package/dist/common/icons/reset.d.ts +2 -2
- package/dist/common/icons/reset.js +2 -2
- package/dist/common/icons/rocket.d.ts +2 -2
- package/dist/common/icons/rocket.js +2 -2
- package/dist/common/icons/save.d.ts +2 -2
- package/dist/common/icons/save.js +2 -2
- package/dist/common/icons/save2.d.ts +2 -2
- package/dist/common/icons/save2.js +2 -2
- package/dist/common/icons/search.d.ts +2 -2
- package/dist/common/icons/search.js +2 -2
- package/dist/common/icons/settings.d.ts +2 -2
- package/dist/common/icons/settings.js +2 -2
- package/dist/common/icons/share.d.ts +2 -2
- package/dist/common/icons/share.js +2 -2
- package/dist/common/icons/split.d.ts +2 -2
- package/dist/common/icons/split.js +2 -2
- package/dist/common/icons/square-select.d.ts +2 -2
- package/dist/common/icons/square-select.js +2 -2
- package/dist/common/icons/trash.d.ts +2 -2
- package/dist/common/icons/trash.js +2 -2
- package/dist/common/icons/vert-dots.d.ts +2 -2
- package/dist/common/icons/vert-dots.js +2 -2
- package/dist/common/icons/vert-three-dots.d.ts +2 -2
- package/dist/common/icons/vert-three-dots.js +2 -2
- package/dist/common/icons/warning-sign.d.ts +2 -2
- package/dist/common/icons/warning-sign.js +2 -2
- package/dist/common/icons/warning.d.ts +2 -2
- package/dist/common/icons/warning.js +2 -2
- package/dist/common/image-preview.d.ts +2 -2
- package/dist/common/image-preview.js +2 -2
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.js +8 -2
- package/dist/common/info-helper.d.ts +2 -2
- package/dist/common/info-helper.js +2 -2
- package/dist/common/item-selector/accessor.js +2 -2
- package/dist/common/item-selector/chickleted-input.js +2 -2
- package/dist/common/item-selector/dropdown-list.d.ts +28 -8
- package/dist/common/item-selector/dropdown-list.js +144 -25
- package/dist/common/item-selector/item-selector.d.ts +2 -3
- package/dist/common/item-selector/item-selector.js +7 -3
- package/dist/common/item-selector/typeahead.d.ts +16 -12
- package/dist/common/item-selector/typeahead.js +24 -13
- package/dist/common/line-chart.d.ts +2 -2
- package/dist/common/line-chart.js +2 -2
- package/dist/common/loading-spinner.js +2 -2
- package/dist/common/logo.d.ts +2 -2
- package/dist/common/logo.js +2 -2
- package/dist/common/map-layer-selector.d.ts +2 -2
- package/dist/common/map-layer-selector.js +3 -4
- package/dist/common/modal.d.ts +24 -11
- package/dist/common/modal.js +2 -2
- package/dist/common/portaled.d.ts +513 -2
- package/dist/common/portaled.js +2 -2
- package/dist/common/progress-bar.d.ts +2 -2
- package/dist/common/progress-bar.js +2 -2
- package/dist/common/range-brush.js +2 -2
- package/dist/common/range-plot.d.ts +6 -2
- package/dist/common/range-plot.js +4 -3
- package/dist/common/range-slider.d.ts +5 -1
- package/dist/common/range-slider.js +9 -3
- package/dist/common/slider/mouse-event.js +2 -2
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-bar-handle.js +2 -2
- package/dist/common/slider/slider-handle.d.ts +1 -1
- package/dist/common/slider/slider-handle.js +2 -2
- package/dist/common/slider/slider.d.ts +7 -5
- package/dist/common/slider/slider.js +8 -5
- package/dist/common/styled-components.d.ts +5 -0
- package/dist/common/styled-components.js +161 -47
- package/dist/common/switch.d.ts +3 -2
- package/dist/common/switch.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +2 -2
- package/dist/common/time-range-slider-time-title.js +2 -2
- package/dist/common/time-range-slider.d.ts +6 -3
- package/dist/common/time-range-slider.js +33 -14
- package/dist/common/time-slider-marker.d.ts +1 -1
- package/dist/common/time-slider-marker.js +3 -3
- package/dist/common/timeline-slider.d.ts +13 -0
- package/dist/common/timeline-slider.js +173 -0
- package/dist/common/tippy-tooltip.d.ts +4 -2
- package/dist/common/tippy-tooltip.js +23 -11
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar-item.js +6 -4
- package/dist/common/toolbar.js +2 -2
- package/dist/common/vertical-toolbar.js +2 -2
- package/dist/connect/keplergl-connect.d.ts +5 -1
- package/dist/connect/keplergl-connect.js +2 -2
- package/dist/connect/with-local-selector.js +2 -2
- package/dist/container.js +2 -2
- package/dist/context.js +4 -3
- package/dist/dnd-context.d.ts +13 -0
- package/dist/dnd-context.js +252 -0
- package/dist/editor/editor.d.ts +11 -10
- package/dist/editor/editor.js +97 -103
- package/dist/editor/feature-action-panel.d.ts +8 -6
- package/dist/editor/feature-action-panel.js +75 -22
- package/dist/effects/effect-configurator.d.ts +18 -0
- package/dist/effects/effect-configurator.js +237 -0
- package/dist/effects/effect-list.d.ts +15 -0
- package/dist/effects/effect-list.js +173 -0
- package/dist/effects/effect-manager.d.ts +21 -0
- package/dist/effects/effect-manager.js +129 -0
- package/dist/effects/effect-panel-header.d.ts +33 -0
- package/dist/effects/effect-panel-header.js +174 -0
- package/dist/effects/effect-panel.d.ts +24 -0
- package/dist/effects/effect-panel.js +162 -0
- package/dist/effects/effect-time-configurator.d.ts +13 -0
- package/dist/effects/effect-time-configurator.js +191 -0
- package/dist/effects/effect-type-selector.d.ts +11 -0
- package/dist/effects/effect-type-selector.js +117 -0
- package/dist/effects/side-panel-title.d.ts +7 -0
- package/dist/effects/side-panel-title.js +67 -0
- package/dist/filter-animation-controller.d.ts +17 -0
- package/dist/filter-animation-controller.js +91 -0
- package/dist/filters/components.js +2 -2
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +3 -3
- package/dist/filters/filter-panels/multi-select-filter-panel.js +3 -3
- package/dist/filters/filter-panels/new-filter-panel.js +2 -2
- package/dist/filters/filter-panels/polygon-filter-panel.js +3 -3
- package/dist/filters/filter-panels/range-filter-panel.js +3 -3
- package/dist/filters/filter-panels/single-select-filter-panel.js +3 -3
- package/dist/filters/filter-panels/time-range-filter-panel.js +25 -8
- package/dist/filters/filter-panels/types.d.ts +2 -1
- package/dist/filters/filter-panels/types.js +1 -1
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.js +18 -2
- package/dist/filters/multi-select-filter.js +2 -2
- package/dist/filters/polygon-filter.js +14 -4
- package/dist/filters/range-filter.js +6 -4
- package/dist/filters/single-select-filter.js +2 -2
- package/dist/filters/time-range-filter.d.ts +2 -1
- package/dist/filters/time-range-filter.js +10 -7
- package/dist/filters/time-widget-top.d.ts +8 -0
- package/dist/filters/time-widget-top.js +123 -0
- package/dist/filters/time-widget.d.ts +3 -7
- package/dist/filters/time-widget.js +35 -92
- package/dist/filters/types.d.ts +7 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +1 -3
- package/dist/geocoder/geocoder.js +2 -2
- package/dist/geocoder-panel.d.ts +9 -3
- package/dist/geocoder-panel.js +30 -19
- package/dist/hooks/useFeatureFlags.js +1 -1
- package/dist/index.d.ts +68 -20
- package/dist/index.js +599 -99
- package/dist/injector.d.ts +4 -4
- package/dist/injector.js +2 -2
- package/dist/kepler-gl.d.ts +58 -17
- package/dist/kepler-gl.js +78 -31
- package/dist/layer-animation-controller.d.ts +13 -0
- package/dist/layer-animation-controller.js +76 -0
- package/dist/map/coordinate-info.js +2 -2
- package/dist/map/effects/effect-control.d.ts +16 -0
- package/dist/map/effects/effect-control.js +81 -0
- package/dist/map/layer-hover-info.d.ts +2 -2
- package/dist/map/layer-hover-info.js +26 -10
- package/dist/map/layer-selector-panel.js +2 -2
- package/dist/map/lazy-tippy.js +1 -1
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.d.ts +6 -0
- package/dist/map/map-control-panel.js +65 -9
- package/dist/map/map-control-toolbar.js +3 -3
- package/dist/map/map-control-tooltip.js +2 -2
- package/dist/map/map-control.d.ts +15 -7
- package/dist/map/map-control.js +6 -7
- package/dist/map/map-draw-panel.d.ts +2 -2
- package/dist/map/map-draw-panel.js +2 -9
- package/dist/map/map-legend-panel.d.ts +12 -1
- package/dist/map/map-legend-panel.js +27 -14
- package/dist/map/map-legend.d.ts +1 -1
- package/dist/map/map-legend.js +2 -2
- package/dist/map/map-popover-content.d.ts +28 -0
- package/dist/map/map-popover-content.js +51 -0
- package/dist/map/map-popover.d.ts +11 -14
- package/dist/map/map-popover.js +94 -15
- package/dist/map/split-map-button.js +2 -2
- package/dist/map/toggle-3d-button.js +2 -2
- package/dist/map-container.d.ts +33 -9
- package/dist/map-container.js +530 -161
- package/dist/map-view-state-context.d.ts +12 -0
- package/dist/map-view-state-context.js +116 -0
- package/dist/maps-layout.d.ts +5 -2
- package/dist/maps-layout.js +7 -3
- package/dist/modal-container.d.ts +2 -6
- package/dist/modal-container.js +8 -6
- package/dist/modals/add-map-style-modal.d.ts +1 -3
- package/dist/modals/add-map-style-modal.js +12 -6
- package/dist/modals/cloud-tile.js +2 -2
- package/dist/modals/data-table-modal.d.ts +11 -2
- package/dist/modals/data-table-modal.js +75 -24
- package/dist/modals/delete-data-modal.js +2 -2
- package/dist/modals/error-display.js +2 -2
- package/dist/modals/export-data-modal.d.ts +1 -3
- package/dist/modals/export-data-modal.js +2 -2
- package/dist/modals/export-image-modal.d.ts +1 -3
- package/dist/modals/export-image-modal.js +2 -2
- package/dist/modals/export-map-modal/components.d.ts +2 -2
- package/dist/modals/export-map-modal/components.js +2 -2
- package/dist/modals/export-map-modal/export-html-map.js +2 -2
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.js +2 -2
- package/dist/modals/export-map-modal/export-map-modal.d.ts +2 -2
- package/dist/modals/export-map-modal/export-map-modal.js +2 -2
- package/dist/modals/image-modal-container.d.ts +1 -0
- package/dist/modals/image-modal-container.js +2 -2
- package/dist/modals/load-data-modal.js +2 -2
- package/dist/modals/load-storage-map.js +2 -2
- package/dist/modals/loading-dialog.js +2 -2
- package/dist/modals/modal-dialog.js +2 -2
- package/dist/modals/modal-tabs.d.ts +1 -1
- package/dist/modals/modal-tabs.js +2 -2
- package/dist/modals/overwrite-map-modal.js +2 -2
- package/dist/modals/provider-modal-container.d.ts +3 -2
- package/dist/modals/provider-modal-container.js +2 -2
- package/dist/modals/save-map-modal.js +2 -2
- package/dist/modals/share-map-modal.js +2 -2
- package/dist/modals/status-panel.js +2 -2
- package/dist/modals/storage-map-viewer.d.ts +1 -1
- package/dist/modals/storage-map-viewer.js +2 -2
- package/dist/notification-panel/notification-item.d.ts +7 -10
- package/dist/notification-panel/notification-item.js +45 -13
- package/dist/notification-panel.js +2 -2
- package/dist/plot-container.js +20 -8
- package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
- package/dist/side-panel/add-by-dataset-button.js +173 -0
- package/dist/side-panel/cloud-storage-dropdown.d.ts +2 -2
- package/dist/side-panel/cloud-storage-dropdown.js +2 -2
- package/dist/side-panel/common/dataset-info.d.ts +10 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +15 -1
- package/dist/side-panel/common/dataset-tag.js +14 -11
- package/dist/side-panel/common/dataset-title.d.ts +16 -2
- package/dist/side-panel/common/dataset-title.js +71 -105
- package/dist/side-panel/common/source-data-catalog.d.ts +22 -3
- package/dist/side-panel/common/source-data-catalog.js +2 -2
- package/dist/side-panel/common/source-data-selector.js +2 -2
- package/dist/side-panel/common/types.d.ts +7 -27
- package/dist/side-panel/common/types.js +1 -1
- package/dist/side-panel/custom-panel.d.ts +6 -7
- package/dist/side-panel/custom-panel.js +2 -2
- package/dist/side-panel/filter-manager.d.ts +18 -6
- package/dist/side-panel/filter-manager.js +176 -65
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
- package/dist/side-panel/filter-panel/add-filter-button.js +50 -0
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +6 -3
- package/dist/side-panel/filter-panel/filter-panel-header.js +4 -4
- package/dist/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/side-panel/interaction-manager.d.ts +6 -3
- package/dist/side-panel/interaction-manager.js +21 -8
- package/dist/side-panel/interaction-panel/brush-config.d.ts +2 -2
- package/dist/side-panel/interaction-panel/brush-config.js +2 -2
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +5 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +12 -5
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -9
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +25 -42
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +2 -3
- package/dist/side-panel/interaction-panel/tooltip-config.js +9 -7
- package/dist/side-panel/layer-manager.d.ts +8 -10
- package/dist/side-panel/layer-manager.js +71 -37
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +3 -5
- package/dist/side-panel/layer-panel/add-layer-button.js +13 -139
- package/dist/side-panel/layer-panel/color-palette.js +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
- package/dist/side-panel/layer-panel/color-selector.d.ts +15 -24
- package/dist/side-panel/layer-panel/color-selector.js +175 -127
- package/dist/side-panel/layer-panel/column-selector.js +2 -2
- package/dist/side-panel/layer-panel/custom-palette.d.ts +7 -2
- package/dist/side-panel/layer-panel/custom-palette.js +6 -5
- package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -36
- package/dist/side-panel/layer-panel/custom-picker.js +2 -2
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +3 -2
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -2
- package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -3
- package/dist/side-panel/layer-panel/dataset-section.js +6 -7
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -2
- package/dist/side-panel/layer-panel/how-to-button.js +2 -2
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
- package/dist/side-panel/layer-panel/layer-color-selector.js +134 -0
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +15 -9
- package/dist/side-panel/layer-panel/layer-column-config.js +35 -13
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -2
- package/dist/side-panel/layer-panel/layer-config-group.js +19 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +10 -35
- package/dist/side-panel/layer-panel/layer-configurator.js +61 -110
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
- package/dist/side-panel/layer-panel/layer-error-message.js +58 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +4 -3
- package/dist/side-panel/layer-panel/layer-list.js +112 -89
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +22 -10
- package/dist/side-panel/layer-panel/layer-panel-header.js +106 -67
- package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -1
- package/dist/side-panel/layer-panel/layer-panel.js +24 -11
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +12 -3
- package/dist/side-panel/layer-panel/layer-type-list-item.js +12 -4
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +2 -1
- package/dist/side-panel/layer-panel/layer-type-selector.js +5 -3
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +4 -2
- package/dist/side-panel/layer-panel/text-label-panel.js +62 -15
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -3
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +2 -2
- package/dist/side-panel/layer-panel/vis-config-slider.js +2 -2
- package/dist/side-panel/layer-panel/vis-config-switch.js +2 -2
- package/dist/side-panel/map-manager.d.ts +13 -6
- package/dist/side-panel/map-manager.js +56 -45
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +116 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +131 -0
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +16 -12
- package/dist/side-panel/map-style-panel/map-layer-selector.js +34 -51
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +11 -4
- package/dist/side-panel/map-style-panel/map-style-selector.js +54 -20
- package/dist/side-panel/panel-dropdown.d.ts +3 -2
- package/dist/side-panel/panel-dropdown.js +2 -2
- package/dist/side-panel/panel-header-action.d.ts +4 -2
- package/dist/side-panel/panel-header-action.js +11 -4
- package/dist/side-panel/panel-header.d.ts +13 -8
- package/dist/side-panel/panel-header.js +2 -2
- package/dist/side-panel/panel-tab.d.ts +2 -2
- package/dist/side-panel/panel-tab.js +2 -2
- package/dist/side-panel/panel-title.d.ts +6 -3
- package/dist/side-panel/panel-title.js +31 -14
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-toggle.js +2 -2
- package/dist/side-panel/{layer-panel/panel-view-list-toggle.d.ts → panel-view-list-toggle.d.ts} +19 -8
- package/dist/side-panel/panel-view-list-toggle.js +143 -0
- package/dist/side-panel/side-bar.d.ts +15 -16
- package/dist/side-panel/side-bar.js +8 -6
- package/dist/side-panel.d.ts +2 -117
- package/dist/side-panel.js +14 -20
- package/dist/types.d.ts +16 -9
- package/dist/types.js +1 -1
- package/package.json +41 -34
- package/dist/editor/constants.d.ts +0 -17
- package/dist/editor/constants.js +0 -47
- package/dist/editor/feature-styles.d.ts +0 -37
- package/dist/editor/feature-styles.js +0 -92
- package/dist/editor/handle-style.d.ts +0 -42
- package/dist/editor/handle-style.js +0 -100
- package/dist/side-panel/layer-panel/panel-view-list-toggle.js +0 -143
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -29,10 +29,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
29
29
|
});
|
|
30
30
|
exports["default"] = exports.ListItem = exports.classList = void 0;
|
|
31
31
|
|
|
32
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
33
|
+
|
|
32
34
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
33
35
|
|
|
34
36
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
35
37
|
|
|
38
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
39
|
+
|
|
36
40
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
37
41
|
|
|
38
42
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
@@ -49,18 +53,22 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
49
53
|
|
|
50
54
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
51
55
|
|
|
52
|
-
var
|
|
56
|
+
var _constants = require("@kepler.gl/constants");
|
|
57
|
+
|
|
58
|
+
var _templateObject, _templateObject2;
|
|
53
59
|
|
|
54
60
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
55
61
|
|
|
56
62
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
57
63
|
|
|
64
|
+
var LEFT_BUTTON = 0;
|
|
58
65
|
var classList = {
|
|
59
66
|
list: 'list-selector',
|
|
60
67
|
listHeader: 'list__header',
|
|
61
68
|
listSection: 'list__section',
|
|
62
69
|
listItem: 'list__item',
|
|
63
|
-
listItemAnchor: 'list__item__anchor'
|
|
70
|
+
listItemAnchor: 'list__item__anchor',
|
|
71
|
+
listItemFixed: 'list__item__fixed'
|
|
64
72
|
};
|
|
65
73
|
exports.classList = classList;
|
|
66
74
|
|
|
@@ -72,10 +80,15 @@ var ListItem = function ListItem(_ref) {
|
|
|
72
80
|
var value = _ref.value,
|
|
73
81
|
_ref$displayOption = _ref.displayOption,
|
|
74
82
|
displayOption = _ref$displayOption === void 0 ? defaultDisplay : _ref$displayOption,
|
|
83
|
+
disabled = _ref.disabled,
|
|
75
84
|
light = _ref.light;
|
|
85
|
+
var displayValue = displayOption(value);
|
|
76
86
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
77
|
-
|
|
78
|
-
|
|
87
|
+
title: displayValue,
|
|
88
|
+
className: (0, _classnames["default"])(classList.listItemAnchor, {
|
|
89
|
+
disabled: disabled
|
|
90
|
+
})
|
|
91
|
+
}, displayValue);
|
|
79
92
|
};
|
|
80
93
|
|
|
81
94
|
exports.ListItem = ListItem;
|
|
@@ -88,30 +101,135 @@ var DropdownListWrapper = _styledComponents["default"].div(_templateObject || (_
|
|
|
88
101
|
return props.light ? props.theme.dropdownListLT : props.theme.dropdownList;
|
|
89
102
|
});
|
|
90
103
|
|
|
104
|
+
var DropdownFooterWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n height: '0px';\n"])));
|
|
105
|
+
|
|
91
106
|
var DropdownList = /*#__PURE__*/function (_Component) {
|
|
92
107
|
(0, _inherits2["default"])(DropdownList, _Component);
|
|
93
108
|
|
|
94
109
|
var _super = _createSuper(DropdownList);
|
|
95
110
|
|
|
96
|
-
function DropdownList() {
|
|
111
|
+
function DropdownList(props) {
|
|
112
|
+
var _this;
|
|
113
|
+
|
|
97
114
|
(0, _classCallCheck2["default"])(this, DropdownList);
|
|
98
|
-
|
|
115
|
+
_this = _super.call(this, props);
|
|
116
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initNumberOfOptions", void 0);
|
|
117
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "page", void 0);
|
|
118
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "prevY", void 0);
|
|
119
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "loadingRef", void 0);
|
|
120
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "observer", void 0);
|
|
121
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleObserver", function (entities) {
|
|
122
|
+
var y = entities[0].boundingClientRect.y;
|
|
123
|
+
|
|
124
|
+
if (_this.prevY > y) {
|
|
125
|
+
var options = _this._getOptions(_this.page);
|
|
126
|
+
|
|
127
|
+
if (options) _this.setState({
|
|
128
|
+
options: options
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
_this.prevY = y;
|
|
133
|
+
});
|
|
134
|
+
_this.state = {
|
|
135
|
+
options: []
|
|
136
|
+
};
|
|
137
|
+
_this.initNumberOfOptions = _constants.INIT_FILTER_ITEMS_IN_DROPDOWN;
|
|
138
|
+
_this.page = 0;
|
|
139
|
+
_this.prevY = 0;
|
|
140
|
+
_this.loadingRef = /*#__PURE__*/_react["default"].createRef();
|
|
141
|
+
return _this;
|
|
99
142
|
}
|
|
100
143
|
|
|
101
144
|
(0, _createClass2["default"])(DropdownList, [{
|
|
145
|
+
key: "componentDidMount",
|
|
146
|
+
value: function componentDidMount() {
|
|
147
|
+
var options = this._getOptions(this.page);
|
|
148
|
+
|
|
149
|
+
this.setState({
|
|
150
|
+
options: options
|
|
151
|
+
});
|
|
152
|
+
var divOptions = {
|
|
153
|
+
root: null,
|
|
154
|
+
rootMargin: '0%',
|
|
155
|
+
threshold: 1.0
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
if (this.loadingRef.current) {
|
|
159
|
+
this.observer = new IntersectionObserver(this.handleObserver, divOptions);
|
|
160
|
+
this.observer.observe(this.loadingRef.current);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
key: "getSnapshotBeforeUpdate",
|
|
165
|
+
value: function getSnapshotBeforeUpdate(prevProps, prevState) {
|
|
166
|
+
if (prevProps.options !== this.props.options) {
|
|
167
|
+
// check if user searching, reset state.options at the first time
|
|
168
|
+
var options = this._getOptions(0);
|
|
169
|
+
|
|
170
|
+
this.setState({
|
|
171
|
+
options: options
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return null;
|
|
176
|
+
} // prevent console warning: getSnapshotBeforeUpdate() should be used with componentDidUpdate().
|
|
177
|
+
|
|
178
|
+
}, {
|
|
179
|
+
key: "componentDidUpdate",
|
|
180
|
+
value: function componentDidUpdate(prevProps, prevState, snapshot) {}
|
|
181
|
+
}, {
|
|
182
|
+
key: "componentWillUnmount",
|
|
183
|
+
value: function componentWillUnmount() {
|
|
184
|
+
if (this.loadingRef.current) {
|
|
185
|
+
var _this$observer;
|
|
186
|
+
|
|
187
|
+
(_this$observer = this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.unobserve(this.loadingRef.current);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}, {
|
|
191
|
+
key: "_getOptions",
|
|
192
|
+
value: function _getOptions(page) {
|
|
193
|
+
if (!this.props.options) {
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
var n = this.props.options.length;
|
|
198
|
+
|
|
199
|
+
if (n === 0) {
|
|
200
|
+
return [];
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
var start = page * this.initNumberOfOptions;
|
|
204
|
+
var end = start + this.initNumberOfOptions > n ? n : start + this.initNumberOfOptions;
|
|
205
|
+
|
|
206
|
+
if (start < end && end <= n) {
|
|
207
|
+
this.page = page + 1; // in case of user searching, props.options will be updated
|
|
208
|
+
// so "page" value will be set to 0 and previous state.options will be discarded
|
|
209
|
+
|
|
210
|
+
return [].concat((0, _toConsumableArray2["default"])(page > 0 ? this.state.options || [] : []), (0, _toConsumableArray2["default"])(this.props.options.slice(start, end)));
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}, {
|
|
102
216
|
key: "_onClick",
|
|
103
217
|
value: function _onClick(result, event) {
|
|
104
|
-
|
|
218
|
+
event.preventDefault(); // only work when left is clicked
|
|
105
219
|
|
|
106
|
-
event.
|
|
107
|
-
|
|
220
|
+
if (event.type === 'mousedown' && event.button === LEFT_BUTTON || event.type === 'click') {
|
|
221
|
+
var _this$props$onOptionS, _this$props;
|
|
222
|
+
|
|
223
|
+
(_this$props$onOptionS = (_this$props = this.props).onOptionSelected) === null || _this$props$onOptionS === void 0 ? void 0 : _this$props$onOptionS.call(_this$props, result, event);
|
|
224
|
+
}
|
|
108
225
|
}
|
|
109
226
|
}, {
|
|
110
227
|
key: "render",
|
|
111
228
|
value: function render() {
|
|
112
229
|
var _this$props$options,
|
|
113
|
-
_this
|
|
114
|
-
|
|
230
|
+
_this$props$customCla,
|
|
231
|
+
_this2 = this,
|
|
232
|
+
_this$state$options;
|
|
115
233
|
|
|
116
234
|
var _this$props2 = this.props,
|
|
117
235
|
fixedOptions = _this$props2.fixedOptions,
|
|
@@ -124,7 +242,7 @@ var DropdownList = /*#__PURE__*/function (_Component) {
|
|
|
124
242
|
display = _this$props$displayOp === void 0 ? defaultDisplay : _this$props$displayOp; // Don't render if there are no options to display
|
|
125
243
|
|
|
126
244
|
if (!((_this$props$options = this.props.options) !== null && _this$props$options !== void 0 && _this$props$options.length) && allowCustomValues <= 0) {
|
|
127
|
-
return
|
|
245
|
+
return /*#__PURE__*/_react["default"].createElement("div", null);
|
|
128
246
|
}
|
|
129
247
|
|
|
130
248
|
var valueOffset = Array.isArray(fixedOptions) ? fixedOptions.length : 0; // For some reason onClick is not fired when clicked on an option
|
|
@@ -134,42 +252,43 @@ var DropdownList = /*#__PURE__*/function (_Component) {
|
|
|
134
252
|
className: classList.list,
|
|
135
253
|
light: light
|
|
136
254
|
}, this.props.customListHeaderComponent ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
137
|
-
className: classList.listHeader
|
|
255
|
+
className: (0, _classnames["default"])(classList.listHeader, (_this$props$customCla = this.props.customClasses) === null || _this$props$customCla === void 0 ? void 0 : _this$props$customCla.listHeader)
|
|
138
256
|
}, /*#__PURE__*/_react["default"].createElement(this.props.customListHeaderComponent, null)) : null, valueOffset > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
139
257
|
className: classList.listSection
|
|
140
258
|
}, fixedOptions === null || fixedOptions === void 0 ? void 0 : fixedOptions.map(function (value, i) {
|
|
141
259
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
|
-
className: (0, _classnames["default"])(classList.listItem, {
|
|
143
|
-
hover:
|
|
144
|
-
|
|
145
|
-
}),
|
|
260
|
+
className: (0, _classnames["default"])(classList.listItem, (0, _defineProperty2["default"])({
|
|
261
|
+
hover: _this2.props.selectionIndex === i
|
|
262
|
+
}, classList.listItemFixed, true)),
|
|
146
263
|
key: "".concat(display(value), "_").concat(i),
|
|
147
264
|
onMouseDown: function onMouseDown(e) {
|
|
148
|
-
return
|
|
265
|
+
return _this2._onClick(value, e);
|
|
149
266
|
},
|
|
150
267
|
onClick: function onClick(e) {
|
|
151
|
-
return
|
|
268
|
+
return _this2._onClick(value, e);
|
|
152
269
|
}
|
|
153
270
|
}, /*#__PURE__*/_react["default"].createElement(CustomListItemComponent, {
|
|
154
271
|
value: value,
|
|
155
272
|
displayOption: display
|
|
156
273
|
}));
|
|
157
|
-
})) : null, (_this$
|
|
274
|
+
})) : null, (_this$state$options = this.state.options) === null || _this$state$options === void 0 ? void 0 : _this$state$options.map(function (value, i) {
|
|
158
275
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
276
|
className: (0, _classnames["default"])(classList.listItem, {
|
|
160
|
-
hover:
|
|
277
|
+
hover: _this2.props.selectionIndex === i + valueOffset
|
|
161
278
|
}),
|
|
162
279
|
key: "".concat(display(value), "_").concat(i),
|
|
163
280
|
onMouseDown: function onMouseDown(e) {
|
|
164
|
-
return
|
|
281
|
+
return _this2._onClick(value, e);
|
|
165
282
|
},
|
|
166
283
|
onClick: function onClick(e) {
|
|
167
|
-
return
|
|
284
|
+
return _this2._onClick(value, e);
|
|
168
285
|
}
|
|
169
286
|
}, /*#__PURE__*/_react["default"].createElement(CustomListItemComponent, {
|
|
170
287
|
value: value,
|
|
171
288
|
displayOption: display
|
|
172
289
|
}));
|
|
290
|
+
}), /*#__PURE__*/_react["default"].createElement(DropdownFooterWrapper, {
|
|
291
|
+
ref: this.loadingRef
|
|
173
292
|
}));
|
|
174
293
|
}
|
|
175
294
|
}]);
|
|
@@ -188,4 +307,4 @@ exports["default"] = DropdownList;
|
|
|
188
307
|
defaultClassNames: true,
|
|
189
308
|
selectionIndex: null
|
|
190
309
|
});
|
|
191
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0LnRzeCJdLCJuYW1lcyI6WyJjbGFzc0xpc3QiLCJsaXN0IiwibGlzdEhlYWRlciIsImxpc3RTZWN0aW9uIiwibGlzdEl0ZW0iLCJsaXN0SXRlbUFuY2hvciIsImRlZmF1bHREaXNwbGF5IiwiZCIsIkxpc3RJdGVtIiwidmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwibGlnaHQiLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsImRyb3Bkb3duTGlzdEJnZExUIiwiZHJvcGRvd25MaXN0QmdkIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wTFQiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3AiLCJkcm9wZG93bkxpc3RMVCIsImRyb3Bkb3duTGlzdCIsIkRyb3Bkb3duTGlzdCIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJvbk9wdGlvblNlbGVjdGVkIiwiZml4ZWRPcHRpb25zIiwiYWxsb3dDdXN0b21WYWx1ZXMiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiZGlzcGxheSIsIm9wdGlvbnMiLCJsZW5ndGgiLCJ2YWx1ZU9mZnNldCIsIkFycmF5IiwiaXNBcnJheSIsImN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQiLCJtYXAiLCJpIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsImZpeGVkIiwiZSIsIl9vbkNsaWNrIiwiQ29tcG9uZW50IiwiY3VzdG9tQ2xhc3NlcyIsImN1c3RvbVZhbHVlcyIsImRlZmF1bHRDbGFzc05hbWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVPLElBQU1BLFNBQVMsR0FBRztBQUN2QkMsRUFBQUEsSUFBSSxFQUFFLGVBRGlCO0FBRXZCQyxFQUFBQSxVQUFVLEVBQUUs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LENBQUM7QUFBQSxtQkFBSSxLQUFJLENBQUNDLFFBQUwsQ0FBY3BDLEtBQWQsRUFBcUJtQyxDQUFyQixDQUFKO0FBQUEsV0FMaEI7QUFNRSxVQUFBLE9BQU8sRUFBRSxpQkFBQUEsQ0FBQztBQUFBLG1CQUFJLEtBQUksQ0FBQ0MsUUFBTCxDQUFjcEMsS0FBZCxFQUFxQm1DLENBQXJCLENBQUo7QUFBQTtBQU5aLHdCQVFFLGdDQUFDLHVCQUFEO0FBQXlCLFVBQUEsS0FBSyxFQUFFbkMsS0FBaEM7QUFBdUMsVUFBQSxhQUFhLEVBQUV1QjtBQUF0RCxVQVJGLENBRHVCO0FBQUEsT0FBeEIsQ0F6QkgsQ0FERjtBQXdDRDs7O0VBNUV1Q2MsZ0I7OztpQ0FBckJ2QixZLGtCQUNHO0FBQ3BCd0IsRUFBQUEsYUFBYSxFQUFFLEVBREs7QUFFcEJqQixFQUFBQSx1QkFBdUIsRUFBRXRCLFFBRkw7QUFHcEI4QixFQUFBQSx5QkFBeUIsRUFBRSxJQUhQO0FBSXBCVCxFQUFBQSxpQkFBaUIsRUFBRSxDQUpDO0FBS3BCbUIsRUFBQUEsWUFBWSxFQUFFLEVBTE07QUFNcEJ0QyxFQUFBQSxhQUFhLEVBQUVKLGNBTks7QUFPcEJxQixFQUFBQSxnQkFBZ0IsRUFBRSw0QkFBTSxDQUFFLENBUE47QUFRcEJzQixFQUFBQSxpQkFBaUIsRUFBRSxJQVJDO0FBU3BCUCxFQUFBQSxjQUFjLEVBQUU7QUFUSSxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBFbGVtZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG59O1xuXG5jb25zdCBkZWZhdWx0RGlzcGxheSA9IGQgPT4gZDtcbmV4cG9ydCBjb25zdCBMaXN0SXRlbSA9ICh7dmFsdWUsIGRpc3BsYXlPcHRpb24gPSBkZWZhdWx0RGlzcGxheSwgbGlnaHR9KSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RJdGVtQW5jaG9yfT57ZGlzcGxheU9wdGlvbih2YWx1ZSl9PC9zcGFuPlxuKTtcblxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcyB7XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn1cblxuY29uc3QgRHJvcGRvd25MaXN0V3JhcHBlciA9IHN0eWxlZC5kaXY8RHJvcGRvd25MaXN0V3JhcHBlclByb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2R9O1xuICBib3JkZXItdG9wOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdCl9O1xuYDtcblxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFByb3BzIHtcbiAgb3B0aW9ucz86IGFueVtdO1xuICBhbGxvd0N1c3RvbVZhbHVlcz86IG51bWJlcjtcbiAgY3VzdG9tQ2xhc3Nlcz86IG9iamVjdDtcbiAgY3VzdG9tVmFsdWVzPzogYW55W107XG4gIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PzogRWxlbWVudFR5cGU7XG4gIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgc2VsZWN0aW9uSW5kZXg/OiBudW1iZXI7XG4gIG9uT3B0aW9uU2VsZWN0ZWQ/OiBGdW5jdGlvbjtcbiAgZGlzcGxheU9wdGlvbj86IEZ1bmN0aW9uO1xuICBkZWZhdWx0Q2xhc3NOYW1lcz86IGJvb2xlYW47XG4gIGFyZVJlc3VsdHNUcnVuY2F0ZWQ/OiBib29sZWFuO1xuICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZT86IHN0cmluZztcbiAgbGlzdEl0ZW1Db21wb25lbnQ/OiBGdW5jdGlvbjtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICBmaXhlZE9wdGlvbnM/OiBhbnlbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50PERyb3Bkb3duTGlzdFByb3BzPiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY3VzdG9tQ2xhc3Nlczoge30sXG4gICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ6IExpc3RJdGVtLFxuICAgIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ6IG51bGwsXG4gICAgYWxsb3dDdXN0b21WYWx1ZXM6IDAsXG4gICAgY3VzdG9tVmFsdWVzOiBbXSxcbiAgICBkaXNwbGF5T3B0aW9uOiBkZWZhdWx0RGlzcGxheSxcbiAgICBvbk9wdGlvblNlbGVjdGVkOiAoKSA9PiB7fSxcbiAgICBkZWZhdWx0Q2xhc3NOYW1lczogdHJ1ZSxcbiAgICBzZWxlY3Rpb25JbmRleDogbnVsbFxuICB9O1xuXG4gIF9vbkNsaWNrKHJlc3VsdCwgZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucHJvcHMub25PcHRpb25TZWxlY3RlZD8uKHJlc3VsdCwgZXZlbnQpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGZpeGVkT3B0aW9ucyxcbiAgICAgIGxpZ2h0LFxuICAgICAgYWxsb3dDdXN0b21WYWx1ZXMgPSAwLFxuICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ6IEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50ID0gTGlzdEl0ZW1cbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZGlzcGxheU9wdGlvbjogZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5fSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyBEb24ndCByZW5kZXIgaWYgdGhlcmUgYXJlIG5vIG9wdGlvbnMgdG8gZGlzcGxheVxuICAgIGlmICghdGhpcy5wcm9wcy5vcHRpb25zPy5sZW5ndGggJiYgYWxsb3dDdXN0b21WYWx1ZXMgPD0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlT2Zmc2V0ID0gQXJyYXkuaXNBcnJheShmaXhlZE9wdGlvbnMpID8gZml4ZWRPcHRpb25zLmxlbmd0aCA6IDA7XG5cbiAgICAvLyBGb3Igc29tZSByZWFzb24gb25DbGljayBpcyBub3QgZmlyZWQgd2hlbiBjbGlja2VkIG9uIGFuIG9wdGlvblxuICAgIC8vIG9uTW91c2VEb3duIGlzIHVzZWQgaGVyZSBhcyBhIHdvcmthcm91bmQgb2YgIzIwNSBhbmQgb3RoZXJcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duTGlzdFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdH0gbGlnaHQ9e2xpZ2h0fT5cbiAgICAgICAge3RoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RIZWFkZXJ9PlxuICAgICAgICAgICAgPHRoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dmFsdWVPZmZzZXQgPiAwID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdFNlY3Rpb259PlxuICAgICAgICAgICAge2ZpeGVkT3B0aW9ucz8ubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SXRlbSwge1xuICAgICAgICAgICAgICAgICAgaG92ZXI6IHRoaXMucHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGksXG4gICAgICAgICAgICAgICAgICBmaXhlZDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgdmFsdWU9e3ZhbHVlfSBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5fSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dGhpcy5wcm9wcy5vcHRpb25zPy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SXRlbSwge1xuICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSArIHZhbHVlT2Zmc2V0XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGRpc3BsYXlPcHRpb249e2Rpc3BsYXl9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkpfVxuICAgICAgPC9Ecm9wZG93bkxpc3RXcmFwcGVyPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
310
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0LnRzeCJdLCJuYW1lcyI6WyJMRUZUX0JVVFRPTiIsImNsYXNzTGlzdCIsImxpc3QiLCJsaXN0SGVhZGVyIiwibGlzdFNlY3Rpb24iLCJsaXN0SXRlbSIsImxpc3RJdGVtQW5jaG9yIiwibGlzdEl0ZW1GaXhlZCIsImRlZmF1bHREaXNwbGF5IiwiZCIsIkxpc3RJdGVtIiwidmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwiZGlzYWJsZWQiLCJsaWdodCIsImRpc3BsYXlWYWx1ZSIsIkRyb3Bkb3duTGlzdFdyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsInRoZW1lIiwiZHJvcGRvd25MaXN0QmdkTFQiLCJkcm9wZG93bkxpc3RCZ2QiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsImRyb3Bkb3duTGlzdExUIiwiZHJvcGRvd25MaXN0IiwiRHJvcGRvd25Gb290ZXJXcmFwcGVyIiwiRHJvcGRvd25MaXN0IiwiZW50aXRpZXMiLCJ5IiwiYm91bmRpbmdDbGllbnRSZWN0IiwicHJldlkiLCJvcHRpb25zIiwiX2dldE9wdGlvbnMiLCJwYWdlIiwic2V0U3RhdGUiLCJzdGF0ZSIsImluaXROdW1iZXJPZk9wdGlvbnMiLCJJTklUX0ZJTFRFUl9JVEVNU19JTl9EUk9QRE9XTiIsImxvYWRpbmdSZWYiLCJSZWFjdCIsImNyZWF0ZVJlZiIsImRpdk9wdGlvbnMiLCJyb290Iiwicm9vdE1hcmdpbiIsInRocmVzaG9sZCIsImN1cnJlbnQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiaGFuZGxlT2JzZXJ2ZXIiLCJvYnNlcnZlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwic25hcHNob3QiLCJ1bm9ic2VydmUiLCJuIiwibGVuZ3RoIiwic3RhcnQiLCJlbmQiLCJzbGljZSIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiYnV0dG9uIiwib25PcHRpb25TZWxlY3RlZCIsImZpeGVkT3B0aW9ucyIsImFsbG93Q3VzdG9tVmFsdWVzIiwiY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQiLCJDdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsImRpc3BsYXkiLCJ2YWx1ZU9mZnNldCIsIkFycmF5IiwiaXNBcnJheSIsImN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQiLCJjdXN0b21DbGFzc2VzIiwibWFwIiwiaSIsImhvdmVyIiwic2VsZWN0aW9uSW5kZXgiLCJlIiwiX29uQ2xpY2siLCJDb21wb25lbnQiLCJjdXN0b21WYWx1ZXMiLCJkZWZhdWx0Q2xhc3NOYW1lcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBTUEsV0FBVyxHQUFHLENBQXBCO0FBRU8sSUFBTUMsU0FBUyxHQUFHO0FBQ3ZCQyxFQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLEVBQUFBLFVBQVUsRUFBRSxjQUZXO0FBR3ZCQyxFQUFBQSxXQUFXLEVBQUUsZUFIVTtBQUl2QkMsRUFBQUEsUUFBUSxFQUFFLFlBSmE7QUFLdkJDLEVBQUFBLGNBQWMsRUFBRSxvQkFMTztBQU12QkMsRUFBQUEsYUFBYSxFQUFFO0FBTlEsQ0FBbEI7OztBQVNQLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUo7QUFBQSxDQUF4Qjs7QUFDTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxPQUE4RDtBQUFBLE1BQTVEQyxLQUE0RCxRQUE1REEsS0FBNEQ7QUFBQSxnQ0FBckRDLGFBQXFEO0FBQUEsTUFBckRBLGFBQXFELG1DQUFyQ0osY0FBcUM7QUFBQSxNQUFyQkssUUFBcUIsUUFBckJBLFFBQXFCO0FBQUEsTUFBWEMsS0FBVyxRQUFYQSxLQUFXO0FBQ3BGLE1BQU1DLFlBQVksR0FBR0gsYUFBYSxDQUFDRCxLQUFE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RUFBQUEsaUJBQWlCLEVBQUUsSUFSQztBQVNwQkwsRUFBQUEsY0FBYyxFQUFFO0FBVEksQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0lOSVRfRklMVEVSX0lURU1TX0lOX0RST1BET1dOfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InLFxuICBsaXN0SXRlbUZpeGVkOiAnbGlzdF9faXRlbV9fZml4ZWQnXG59O1xuXG5jb25zdCBkZWZhdWx0RGlzcGxheSA9IGQgPT4gZDtcbmV4cG9ydCBjb25zdCBMaXN0SXRlbSA9ICh7dmFsdWUsIGRpc3BsYXlPcHRpb24gPSBkZWZhdWx0RGlzcGxheSwgZGlzYWJsZWQsIGxpZ2h0fSkgPT4ge1xuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBkaXNwbGF5T3B0aW9uKHZhbHVlKTtcbiAgcmV0dXJuIChcbiAgICA8c3BhbiB0aXRsZT17ZGlzcGxheVZhbHVlfSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RJdGVtQW5jaG9yLCB7ZGlzYWJsZWR9KX0+XG4gICAgICB7ZGlzcGxheVZhbHVlfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBEcm9wZG93bkxpc3RXcmFwcGVyUHJvcHMge1xuICBsaWdodD86IGJvb2xlYW47XG59XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXIgPSBzdHlsZWQuZGl2PERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcz5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gICR7cHJvcHMgPT4gKHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0TFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3QpfTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duRm9vdGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogJzBweCc7XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0UHJvcHMge1xuICBvcHRpb25zPzogYW55W107XG4gIGFsbG93Q3VzdG9tVmFsdWVzPzogbnVtYmVyO1xuICBjdXN0b21DbGFzc2VzPzoge2xpc3RIZWFkZXI/OiBzdHJpbmd9O1xuICBjdXN0b21WYWx1ZXM/OiBhbnlbXTtcbiAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBzZWxlY3Rpb25JbmRleD86IG51bWJlcjtcbiAgb25PcHRpb25TZWxlY3RlZD86IEZ1bmN0aW9uO1xuICBkaXNwbGF5T3B0aW9uPzogRnVuY3Rpb247XG4gIGRlZmF1bHRDbGFzc05hbWVzPzogYm9vbGVhbjtcbiAgYXJlUmVzdWx0c1RydW5jYXRlZD86IGJvb2xlYW47XG4gIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlPzogc3RyaW5nO1xuICBsaXN0SXRlbUNvbXBvbmVudD86IEZ1bmN0aW9uO1xuICBsaWdodD86IGJvb2xlYW47XG4gIGZpeGVkT3B0aW9ucz86IGFueVtdO1xufVxuXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0U3RhdGUge1xuICBvcHRpb25zOiBBcnJheTxhbnk+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50PERyb3Bkb3duTGlzdFByb3BzLCBEcm9wZG93bkxpc3RTdGF0ZT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGN1c3RvbUNsYXNzZXM6IHt9LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGN1c3RvbVZhbHVlczogW10sXG4gICAgZGlzcGxheU9wdGlvbjogZGVmYXVsdERpc3BsYXksXG4gICAgb25PcHRpb25TZWxlY3RlZDogKCkgPT4ge30sXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bGxcbiAgfTtcblxuICBpbml0TnVtYmVyT2ZPcHRpb25zOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcHJldlk6IG51bWJlcjtcbiAgbG9hZGluZ1JlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtvcHRpb25zOiBbXX07XG4gICAgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID0gSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV047XG4gICAgdGhpcy5wYWdlID0gMDtcbiAgICB0aGlzLnByZXZZID0gMDtcbiAgICB0aGlzLmxvYWRpbmdSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zKHRoaXMucGFnZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3B0aW9uc30pO1xuXG4gICAgY29uc3QgZGl2T3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IG51bGwsXG4gICAgICByb290TWFyZ2luOiAnMCUnLFxuICAgICAgdGhyZXNob2xkOiAxLjBcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaGFuZGxlT2JzZXJ2ZXIsIGRpdk9wdGlvbnMpO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHM6IERyb3Bkb3duTGlzdFByb3BzLCBwcmV2U3RhdGU6IERyb3Bkb3duTGlzdFN0YXRlKSB7XG4gICAgaWYgKHByZXZQcm9wcy5vcHRpb25zICE9PSB0aGlzLnByb3BzLm9wdGlvbnMpIHtcbiAgICAgIC8vIGNoZWNrIGlmIHVzZXIgc2VhcmNoaW5nLCByZXNldCBzdGF0ZS5vcHRpb25zIGF0IHRoZSBmaXJzdCB0aW1lXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucygwKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBwcmV2ZW50IGNvbnNvbGUgd2FybmluZzogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBzaG91bGQgYmUgdXNlZCB3aXRoIGNvbXBvbmVudERpZFVwZGF0ZSgpLlxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KSB7fVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPYnNlcnZlciA9IGVudGl0aWVzID0+IHtcbiAgICBjb25zdCB5ID0gZW50aXRpZXNbMF0uYm91bmRpbmdDbGllbnRSZWN0Lnk7XG4gICAgaWYgKHRoaXMucHJldlkgPiB5KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucyh0aGlzLnBhZ2UpO1xuICAgICAgaWYgKG9wdGlvbnMpIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgdGhpcy5wcmV2WSA9IHk7XG4gIH07XG5cbiAgX2dldE9wdGlvbnMocGFnZSkge1xuICAgIGlmICghdGhpcy5wcm9wcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbiA9IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGg7XG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnQgPSBwYWdlICogdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zO1xuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID4gbiA/IG4gOiBzdGFydCArIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucztcblxuICAgIGlmIChzdGFydCA8IGVuZCAmJiBlbmQgPD0gbikge1xuICAgICAgdGhpcy5wYWdlID0gcGFnZSArIDE7XG4gICAgICAvLyBpbiBjYXNlIG9mIHVzZXIgc2VhcmNoaW5nLCBwcm9wcy5vcHRpb25zIHdpbGwgYmUgdXBkYXRlZFxuICAgICAgLy8gc28gXCJwYWdlXCIgdmFsdWUgd2lsbCBiZSBzZXQgdG8gMCBhbmQgcHJldmlvdXMgc3RhdGUub3B0aW9ucyB3aWxsIGJlIGRpc2NhcmRlZFxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKHBhZ2UgPiAwID8gdGhpcy5zdGF0ZS5vcHRpb25zIHx8IFtdIDogW10pLFxuICAgICAgICAuLi50aGlzLnByb3BzLm9wdGlvbnMuc2xpY2Uoc3RhcnQsIGVuZClcbiAgICAgIF07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfb25DbGljayhyZXN1bHQsIGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyBvbmx5IHdvcmsgd2hlbiBsZWZ0IGlzIGNsaWNrZWRcbiAgICBpZiAoKGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nICYmIGV2ZW50LmJ1dHRvbiA9PT0gTEVGVF9CVVRUT04pIHx8IGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMucHJvcHMub25PcHRpb25TZWxlY3RlZD8uKHJlc3VsdCwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBmaXhlZE9wdGlvbnMsXG4gICAgICBsaWdodCxcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWVzID0gMCxcbiAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBDdXN0b21MaXN0SXRlbUNvbXBvbmVudCA9IExpc3RJdGVtXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2Rpc3BsYXlPcHRpb246IGRpc3BsYXkgPSBkZWZhdWx0RGlzcGxheX0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gRG9uJ3QgcmVuZGVyIGlmIHRoZXJlIGFyZSBubyBvcHRpb25zIHRvIGRpc3BsYXlcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucz8ubGVuZ3RoICYmIGFsbG93Q3VzdG9tVmFsdWVzIDw9IDApIHtcbiAgICAgIHJldHVybiA8ZGl2IC8+O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlT2Zmc2V0ID0gQXJyYXkuaXNBcnJheShmaXhlZE9wdGlvbnMpID8gZml4ZWRPcHRpb25zLmxlbmd0aCA6IDA7XG5cbiAgICAvLyBGb3Igc29tZSByZWFzb24gb25DbGljayBpcyBub3QgZmlyZWQgd2hlbiBjbGlja2VkIG9uIGFuIG9wdGlvblxuICAgIC8vIG9uTW91c2VEb3duIGlzIHVzZWQgaGVyZSBhcyBhIHdvcmthcm91bmQgb2YgIzIwNSBhbmQgb3RoZXJcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duTGlzdFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdH0gbGlnaHQ9e2xpZ2h0fT5cbiAgICAgICAge3RoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdEhlYWRlciwgdGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5saXN0SGVhZGVyKX0+XG4gICAgICAgICAgICA8dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHt2YWx1ZU9mZnNldCA+IDAgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0U2VjdGlvbn0+XG4gICAgICAgICAgICB7Zml4ZWRPcHRpb25zPy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSxcbiAgICAgICAgICAgICAgICAgIFtjbGFzc0xpc3QubGlzdEl0ZW1GaXhlZF06IHRydWVcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge3RoaXMuc3RhdGUub3B0aW9ucz8ubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgaG92ZXI6IHRoaXMucHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGkgKyB2YWx1ZU9mZnNldFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgb25DbGljaz17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgdmFsdWU9e3ZhbHVlfSBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5fSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApKX1cblxuICAgICAgICA8RHJvcGRvd25Gb290ZXJXcmFwcGVyIHJlZj17dGhpcy5sb2FkaW5nUmVmfSAvPlxuICAgICAgPC9Ecm9wZG93bkxpc3RXcmFwcGVyPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -15,6 +15,7 @@ export declare type ItemSelectorProps = {
|
|
|
15
15
|
fixedOptions?: ReadonlyArray<string | number | boolean | object> | null;
|
|
16
16
|
erasable?: boolean;
|
|
17
17
|
showArrow?: boolean;
|
|
18
|
+
searchOptions?: (value: any, opt: any) => any;
|
|
18
19
|
searchable?: boolean;
|
|
19
20
|
displayOption?: string | ((opt: any) => any);
|
|
20
21
|
getOptionValue?: string | ((opt: any) => any);
|
|
@@ -37,9 +38,7 @@ export declare type ItemSelectorProps = {
|
|
|
37
38
|
className?: string;
|
|
38
39
|
showDropdownOnMount?: boolean;
|
|
39
40
|
};
|
|
40
|
-
declare const _default: React.
|
|
41
|
-
forwardedRef?: React.Ref<any> | undefined;
|
|
42
|
-
} & React.RefAttributes<any>> & {
|
|
41
|
+
declare const _default: React.FC<import("react-intl").WithIntlProps<ItemSelectorProps>> & {
|
|
43
42
|
WrappedComponent: React.ComponentType<ItemSelectorProps>;
|
|
44
43
|
};
|
|
45
44
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -275,6 +275,7 @@ var ItemSelectorUnmemoized = /*#__PURE__*/function (_Component) {
|
|
|
275
275
|
customListItemComponent: this.props.DropDownLineItemRenderComponent,
|
|
276
276
|
displayOption: _accessor["default"].generateOptionToStringFor(this.props.displayOption),
|
|
277
277
|
searchable: this.props.searchable,
|
|
278
|
+
searchOptions: this.props.searchOptions,
|
|
278
279
|
showOptionsWhenEmpty: true,
|
|
279
280
|
selectedItems: (0, _utils.toArray)(this.props.selectedItems),
|
|
280
281
|
light: this.props.inputTheme === 'light'
|
|
@@ -289,6 +290,7 @@ var ItemSelectorUnmemoized = /*#__PURE__*/function (_Component) {
|
|
|
289
290
|
var displayOption = _accessor["default"].generateOptionToStringFor(this.props.displayOption);
|
|
290
291
|
|
|
291
292
|
var _this$props = this.props,
|
|
293
|
+
disabled = _this$props.disabled,
|
|
292
294
|
_this$props$inputThem = _this$props.inputTheme,
|
|
293
295
|
inputTheme = _this$props$inputThem === void 0 ? 'primary' : _this$props$inputThem,
|
|
294
296
|
_this$props$DropDownL = _this$props.DropDownLineItemRenderComponent,
|
|
@@ -298,7 +300,7 @@ var ItemSelectorUnmemoized = /*#__PURE__*/function (_Component) {
|
|
|
298
300
|
active: this.state.showTypeahead
|
|
299
301
|
}),
|
|
300
302
|
displayOption: displayOption,
|
|
301
|
-
disabled:
|
|
303
|
+
disabled: disabled,
|
|
302
304
|
onClick: this._showTypeahead,
|
|
303
305
|
error: this.props.isError,
|
|
304
306
|
inputTheme: inputTheme,
|
|
@@ -320,11 +322,13 @@ var ItemSelectorUnmemoized = /*#__PURE__*/function (_Component) {
|
|
|
320
322
|
inputTheme: inputTheme
|
|
321
323
|
})) : /*#__PURE__*/_react["default"].createElement(StyledDropdownSelect, dropdownSelectProps, /*#__PURE__*/_react["default"].createElement(DropdownSelectValue, {
|
|
322
324
|
hasPlaceholder: !hasValue,
|
|
325
|
+
disabled: disabled,
|
|
323
326
|
inputTheme: inputTheme,
|
|
324
327
|
className: "item-selector__dropdown__value"
|
|
325
328
|
}, hasValue ? /*#__PURE__*/_react["default"].createElement(DropDownLineItemRenderComponent, {
|
|
326
329
|
displayOption: displayOption,
|
|
327
330
|
value: selected[0],
|
|
331
|
+
disabled: disabled,
|
|
328
332
|
light: inputTheme === 'light'
|
|
329
333
|
}) : /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
330
334
|
id: this.props.placeholder || 'placeholder.selectValue'
|
|
@@ -356,4 +360,4 @@ ItemSelector.displayName = 'ItemSelector';
|
|
|
356
360
|
var _default = (0, _reactIntl.injectIntl)(ItemSelectorUnmemoized);
|
|
357
361
|
|
|
358
362
|
exports["default"] = _default;
|
|
359
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWREcm9wZG93blNlbGVjdCIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJpbnB1dFRoZW1lIiwidGhlbWUiLCJzZWNvbmRhcnlJbnB1dCIsImlucHV0TFQiLCJpbnB1dCIsInNpemUiLCJpbnB1dEJveEhlaWdodFNtYWxsIiwiaW5wdXRCb3hIZWlnaHQiLCJkcm9wZG93bkxpc3RBbmNob3IiLCJEcm9wZG93blNlbGVjdFZhbHVlIiwic3BhbiIsImhhc1BsYWNlaG9sZGVyIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlciIsInNlbGVjdENvbG9yTFQiLCJzZWxlY3RDb2xvciIsImRyb3Bkb3duTGlzdEl0ZW1MVCIsImRyb3Bkb3duTGlzdEl0ZW0iLCJkcm9wZG93bkxpc3RBbmNob3JMVCIsIkRyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3IiLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwid2lkdGgiLCJJdGVtU2VsZWN0b3JVbm1lbW9pemVkIiwic2hvd1R5cGVhaGVhZCIsImRpbWVuc2lvbnMiLCJfaGlkZVR5cGVhaGVhZCIsInNldFN0YXRlIiwiX29uQmx1ciIsIm9uQmx1ciIsIml0ZW0iLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJtdWx0aVNlbGVjdGVkSXRlbXMiLCJzZWxlY3RlZEl0ZW1zIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJ0IiwiaXRlbXMiLCJzbGljZSIsImxlbmd0aCIsIm9uQ2hhbmdlIiwiY2xvc2VPblNlbGVjdCIsImdldFZhbHVlIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yIiwiZ2V0T3B0aW9uVmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwicHJldmlvdXNTZWxlY3RlZCIsIm11bHRpU2VsZWN0IiwiY29uY2F0IiwiZGlzYWJsZWQiLCJzaG93RHJvcGRvd25Pbk1vdW50Iiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIl9oYW5kbGVSZXNpemUiLCJpbnRsIiwicGxhY2VtZW50Iiwic3RhdGUiLCJyZXN1bHRzIiwibGlzdEl0ZW0iLCJsaXN0QW5jaG9yIiwib3B0aW9ucyIsImZpbHRlck9wdGlvbiIsImZpeGVkT3B0aW9ucyIsInR5cGVhaGVhZFBsYWNlaG9sZGVyIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiX3NlbGVjdEl0ZW0iLCJEcm9wRG93blJlbmRlckNvbXBvbmVudCIsIkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50IiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzZWxlY3RlZCIsImhhc1ZhbHVlIiwiTGlzdEl0ZW0iLCJkcm9wZG93blNlbGVjdFByb3BzIiwiYWN0aXZlIiwib25DbGljayIsIl9zaG93VHlwZWFoZWFkIiwiZXJyb3IiLCJpc0Vycm9yIiwicG9zaXRpb24iLCJwbGFjZWhvbGRlciIsIl9yZW1vdmVJdGVtIiwiQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQiLCJlcmFzYWJsZSIsIl9vbkVyYXNlIiwic2hvd0Fycm93IiwiX3JlbmRlckRyb3Bkb3duIiwiQ29tcG9uZW50IiwiRHJvcGRvd25MaXN0IiwiSXRlbVNlbGVjdG9yIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBUU8sSUFBTUEsb0JBQW9CLEdBQUdDLDZCQUFPQyxHQUFQLENBQVdDLEtBQVgsQ0FBaUIsVUFBQUMsS0FBSztBQUFBLFNBQUs7QUFDN0RDLElB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cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIENvbXBvbmVudFR5cGUsIE1vdXNlRXZlbnRIYW5kbGVyLCBSZWZPYmplY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gudW5pcWJ5JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgQWNjZXNzb3IgZnJvbSAnLi9hY2Nlc3Nvcic7XG5pbXBvcnQgQ2hpY2tsZXRlZElucHV0IGZyb20gJy4vY2hpY2tsZXRlZC1pbnB1dCc7XG5pbXBvcnQgVHlwZWFoZWFkIGZyb20gJy4vdHlwZWFoZWFkJztcbmltcG9ydCB7RGVsZXRlLCBBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi8uLi9jb21tb24vcG9ydGFsZWQnO1xuaW1wb3J0IHt0b0FycmF5LCBvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9uc30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZERyb3Bkb3duU2VsZWN0UHJvcHMge1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWREcm9wZG93blNlbGVjdCA9IHN0eWxlZC5kaXYuYXR0cnMocHJvcHMgPT4gKHtcbiAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKCdpdGVtLXNlbGVjdG9yX19kcm9wZG93bicsIHByb3BzLmNsYXNzTmFtZSlcbn0pKTxTdHlsZWREcm9wZG93blNlbGVjdFByb3BzPmBcbiAgJHtwcm9wcyA9PlxuICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdzZWNvbmRhcnknXG4gICAgICA/IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0XG4gICAgICA6IHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuaW5wdXRMVFxuICAgICAgOiBwcm9wcy50aGVtZS5pbnB1dH07XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgcHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJyA/IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0U21hbGwgOiBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodH07XG5cbiAgLmxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3J9O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25TZWxlY3RWYWx1ZVByb3BzIHtcbiAgaGFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBEcm9wZG93blNlbGVjdFZhbHVlID0gc3R5bGVkLnNwYW48RHJvcGRvd25TZWxlY3RWYWx1ZVByb3BzPmBcbiAgY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5oYXNQbGFjZWhvbGRlciAmJiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yUGxhY2VIb2xkZXJMVFxuICAgICAgOiBwcm9wcy5oYXNQbGFjZWhvbGRlclxuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvclBsYWNlSG9sZGVyXG4gICAgICA6IHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JMVFxuICAgICAgOiBwcm9wcy50aGVtZS5zZWxlY3RDb2xvcn07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIC5saXN0X19pdGVtIHtcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbUxUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gIH1cblxuICAubGlzdF9faXRlbV9fYW5jaG9yIHtcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICAgID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yTFRcbiAgICAgICAgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3J9O1xuICB9XG5gO1xuXG5jb25zdCBEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0ID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG5cbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25XcmFwcGVyUHJvcHMge1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG59XG5cbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXY8RHJvcGRvd25XcmFwcGVyUHJvcHM+YFxuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbmA7XG5cbmV4cG9ydCB0eXBlIEl0ZW1TZWxlY3RvclByb3BzID0ge1xuICBzZWxlY3RlZEl0ZW1zPzpcbiAgICB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdD5cbiAgICB8IHN0cmluZ1xuICAgIHwgbnVtYmVyXG4gICAgfCBib29sZWFuXG4gICAgfCBvYmplY3RcbiAgICB8IG51bGw7XG4gIG9wdGlvbnM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdD47XG4gIG9uQ2hhbmdlOiAoXG4gICAgaXRlbXM6XG4gICAgICB8IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdD5cbiAgICAgIHwgc3RyaW5nXG4gICAgICB8IG51bWJlclxuICAgICAgfCBib29sZWFuXG4gICAgICB8IG9iamVjdFxuICAgICAgfCBudWxsXG4gICkgPT4gdm9pZDtcbiAgZml4ZWRPcHRpb25zPzogUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PiB8IG51bGw7XG4gIGVyYXNhYmxlPzogYm9vbGVhbjtcbiAgc2hvd0Fycm93PzogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG9wdDogYW55KSA9PiBhbnkpO1xuICBnZXRPcHRpb25WYWx1ZT86IHN0cmluZyB8ICgob3B0OiBhbnkpID0+IGFueSk7XG4gIGZpbHRlck9wdGlvbj86IHN0cmluZyB8ICgob3B0OiBhbnkpID0+IGFueSk7XG4gIHBsYWNlbWVudD86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbiAgbXVsdGlTZWxlY3Q/OiBib29sZWFuO1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nO1xuICBvbkJsdXI/OiAoKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgY2xvc2VPblNlbGVjdD86IGJvb2xlYW47XG4gIHR5cGVhaGVhZFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBEcm9wZG93bkhlYWRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PiB8IG51bGw7XG4gIERyb3BEb3duUmVuZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBDdXN0b21DaGlja2xldENvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcbiAgaW50bDogSW50bFNoYXBlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHNob3dEcm9wZG93bk9uTW91bnQ/OiBib29sZWFuO1xufTtcblxuY2xhc3MgSXRlbVNlbGVjdG9yVW5tZW1vaXplZCBleHRlbmRzIENvbXBvbmVudDxJdGVtU2VsZWN0b3JQcm9wcz4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXIuZW50ZXJWYWx1ZScsXG4gICAgY2xvc2VPblNlbGVjdDogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50OiBEcm9wZG93bkxpc3QsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogTGlzdEl0ZW1cbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBzaG93VHlwZWFoZWFkOiBmYWxzZSxcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogMjAwXG4gICAgfVxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dEcm9wZG93bk9uTW91bnQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJvb3Q6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4gPSBjcmVhdGVSZWYoKTtcblxuICBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgdGhpcy5faGlkZVR5cGVhaGVhZCgpO1xuICB9O1xuXG4gIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtkaW1lbnNpb25zfSk7XG4gIH07XG5cbiAgX2hpZGVUeXBlYWhlYWQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkJsdXIoKTtcbiAgfTtcblxuICBfb25CbHVyID0gKCkgPT4ge1xuICAgIC8vIG5vdGU6IGNoaWNrbGV0ZWQgaW5wdXQgaXMgbm90IGEgcmVhbCBmb3JtIGVsZW1lbnQgc28gd2UgY2FsbCBvbkJsdXIoKVxuICAgIC8vIHdoZW4gd2UgZmVlbCB0aGUgZXZlbnRzIGFyZSBhcHByb3ByaWF0ZVxuICAgIGlmICh0aGlzLnByb3BzLm9uQmx1cikge1xuICAgICAgdGhpcy5wcm9wcy5vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbW92ZUl0ZW0gPSAoaXRlbSwgZSkgPT4ge1xuICAgIC8vIG9ubHkgdXNlZCB3aGVuIG11bHRpU2VsZWN0ID0gdHJ1ZVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IG11bHRpU2VsZWN0ZWRJdGVtcyA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBpbmRleCA9IG11bHRpU2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgodCA9PiB0ID09PSBpdGVtKTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IFtcbiAgICAgIC4uLm11bHRpU2VsZWN0ZWRJdGVtcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi5tdWx0aVNlbGVjdGVkSXRlbXMuc2xpY2UoaW5kZXggKyAxLCBtdWx0aVNlbGVjdGVkSXRlbXMubGVuZ3RoKVxuICAgIF07XG5cbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3NlbGVjdEl0ZW0gPSBpdGVtID0+IHtcbiAgICBjb25zdCBnZXRWYWx1ZSA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoXG4gICAgICB0aGlzLnByb3BzLmdldE9wdGlvblZhbHVlIHx8IHRoaXMucHJvcHMuZGlzcGxheU9wdGlvblxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkID0gdG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgaWYgKHRoaXMucHJvcHMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdW5pcUJ5KHByZXZpb3VzU2VsZWN0ZWQuY29uY2F0KHRvQXJyYXkoaXRlbSkpLCBnZXRWYWx1ZSk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShnZXRWYWx1ZShpdGVtKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICAgIHRoaXMuX29uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfb25FcmFzZTogTW91c2VFdmVudEhhbmRsZXIgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UobnVsbCk7XG4gIH07XG5cbiAgX3Nob3dUeXBlYWhlYWQ6IE1vdXNlRXZlbnRIYW5kbGVyID0gZSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzaG93VHlwZWFoZWFkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlckRyb3Bkb3duKGludGw6IEludGxTaGFwZSkge1xuICAgIGNvbnN0IHtwbGFjZW1lbnQgPSAnYm90dG9tJ30gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtkaW1lbnNpb25zfSA9IHRoaXMuc3RhdGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFBvcnRhbGVkIGxlZnQ9ezB9IHRvcD17MH0gaXNPcGVuZWQ9e3RoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZH0gb25DbG9zZT17dGhpcy5faGlkZVR5cGVhaGVhZH0+XG4gICAgICAgIDxEcm9wZG93bldyYXBwZXIgcGxhY2VtZW50PXtwbGFjZW1lbnR9IHdpZHRoPXtkaW1lbnNpb25zPy53aWR0aH0+XG4gICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz17e1xuICAgICAgICAgICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICAgIGxpc3RJdGVtOiAnbGlzdF9faXRlbScsXG4gICAgICAgICAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb3B0aW9ucz17dGhpcy5wcm9wcy5vcHRpb25zfVxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uPXt0aGlzLnByb3BzLmZpbHRlck9wdGlvbn1cbiAgICAgICAgICAgIGZpeGVkT3B0aW9ucz17dGhpcy5wcm9wcy5maXhlZE9wdGlvbnN9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMudHlwZWFoZWFkUGxhY2Vob2xkZXIgfHwgaW50bFxuICAgICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3BsYWNlaG9sZGVyLnNlYXJjaCd9KVxuICAgICAgICAgICAgICAgIDogJ1NlYXJjaCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX3NlbGVjdEl0ZW19XG4gICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duUmVuZGVyQ29tcG9uZW50fVxuICAgICAgICAgICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wZG93bkhlYWRlckNvbXBvbmVudH1cbiAgICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKHRoaXMucHJvcHMuZGlzcGxheU9wdGlvbil9XG4gICAgICAgICAgICBzZWFyY2hhYmxlPXt0aGlzLnByb3BzLnNlYXJjaGFibGV9XG4gICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpfVxuICAgICAgICAgICAgbGlnaHQ9e3RoaXMucHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0Ryb3Bkb3duV3JhcHBlcj5cbiAgICAgIDwvUG9ydGFsZWQ+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IHNlbGVjdGVkLmxlbmd0aDtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IHtpbnB1dFRoZW1lID0gJ3ByaW1hcnknLCBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50ID0gTGlzdEl0ZW19ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRyb3Bkb3duU2VsZWN0UHJvcHMgPSB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoe1xuICAgICAgICBhY3RpdmU6IHRoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZFxuICAgICAgfSksXG4gICAgICBkaXNwbGF5T3B0aW9uLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMucHJvcHMuZGlzYWJsZWQsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9zaG93VHlwZWFoZWFkLFxuICAgICAgZXJyb3I6IHRoaXMucHJvcHMuaXNFcnJvcixcbiAgICAgIGlucHV0VGhlbWUsXG4gICAgICBzaXplOiB0aGlzLnByb3BzLnNpemVcbiAgICB9O1xuICAgIGNvbnN0IGludGwgPSB0aGlzLnByb3BzLmludGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2l0ZW0tc2VsZWN0b3InLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9IHJlZj17dGhpcy5yb290fT5cbiAgICAgICAgPGRpdiBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIGxhYmVsICovfVxuICAgICAgICAgIHt0aGlzLnByb3BzLm11bHRpU2VsZWN0ID8gKFxuICAgICAgICAgICAgPENoaWNrbGV0ZWRJbnB1dFxuICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgcmVtb3ZlSXRlbT17dGhpcy5fcmVtb3ZlSXRlbX1cbiAgICAgICAgICAgICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ9e3RoaXMucHJvcHMuQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgIGlucHV0VGhlbWU9e2lucHV0VGhlbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8U3R5bGVkRHJvcGRvd25TZWxlY3Qgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9PlxuICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RWYWx1ZVxuICAgICAgICAgICAgICAgIGhhc1BsYWNlaG9sZGVyPXshaGFzVmFsdWV9XG4gICAgICAgICAgICAgICAgaW5wdXRUaGVtZT17aW5wdXRUaGVtZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpdGVtLXNlbGVjdG9yX19kcm9wZG93bl9fdmFsdWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2hhc1ZhbHVlID8gKFxuICAgICAgICAgICAgICAgICAgPERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkWzBdfVxuICAgICAgICAgICAgICAgICAgICBsaWdodD17aW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyIHx8ICdwbGFjZWhvbGRlci5zZWxlY3RWYWx1ZSd9IC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Ecm9wZG93blNlbGVjdFZhbHVlPlxuICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5lcmFzYWJsZSAmJiBoYXNWYWx1ZSA/IChcbiAgICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e3RoaXMuX29uRXJhc2V9IC8+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICApIDogdGhpcy5wcm9wcy5zaG93QXJyb3cgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICAgICA8QXJyb3dEb3duIGhlaWdodD1cIjE0cHhcIiBvbkNsaWNrPXt0aGlzLl9zaG93VHlwZWFoZWFkfSAvPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0eWxlZERyb3Bkb3duU2VsZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGJ1aWx0IHRoZSBsaXN0ICovfVxuICAgICAgICAgIHt0aGlzLl9yZW5kZXJEcm9wZG93bihpbnRsKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IEl0ZW1TZWxlY3RvciA9IFJlYWN0Lm1lbW8oSXRlbVNlbGVjdG9yVW5tZW1vaXplZCk7XG5JdGVtU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnSXRlbVNlbGVjdG9yJztcblxuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChJdGVtU2VsZWN0b3JVbm1lbW9pemVkKTtcbiJdfQ==
|
|
363
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWREcm9wZG93blNlbGVjdCIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJpbnB1dFRoZW1lIiwidGhlbWUiLCJzZWNvbmRhcnlJbnB1dCIsImlucHV0TFQiLCJpbnB1dCIsInNpemUiLCJpbnB1dEJveEhlaWdodFNtYWxsIiwiaW5wdXRCb3hIZWlnaHQiLCJkcm9wZG93bkxpc3RBbmNob3IiLCJEcm9wZG93blNlbGVjdFZhbHVlIiwic3BhbiIsImhhc1BsYWNlaG9sZGVyIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlciIsInNlbGVjdENvbG9yTFQiLCJzZWxlY3RDb2xvciIsImRyb3Bkb3duTGlzdEl0ZW1MVCIsImRyb3Bkb3duTGlzdEl0ZW0iLCJkcm9wZG93bkxpc3RBbmNob3JMVCIsIkRyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3IiLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwid2lkdGgiLCJJdGVtU2VsZWN0b3JVbm1lbW9pemVkIiwic2hvd1R5cGVhaGVhZCIsImRpbWVuc2lvbnMiLCJfaGlkZVR5cGVhaGVhZCIsInNldFN0YXRlIiwiX29uQmx1ciIsIm9uQmx1ciIsIml0ZW0iLCJlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJtdWx0aVNlbGVjdGVkSXRlbXMiLCJzZWxlY3RlZEl0ZW1zIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJ0IiwiaXRlbXMiLCJzbGljZSIsImxlbmd0aCIsIm9uQ2hhbmdlIiwiY2xvc2VPblNlbGVjdCIsImdldFZhbHVlIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yIiwiZ2V0T3B0aW9uVmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwicHJldmlvdXNTZWxlY3RlZCIsIm11bHRpU2VsZWN0IiwiY29uY2F0IiwiZGlzYWJsZWQiLCJzaG93RHJvcGRvd25Pbk1vdW50Iiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIl9oYW5kbGVSZXNpemUiLCJpbnRsIiwicGxhY2VtZW50Iiwic3RhdGUiLCJyZXN1bHRzIiwibGlzdEl0ZW0iLCJsaXN0QW5jaG9yIiwib3B0aW9ucyIsImZpbHRlck9wdGlvbiIsImZpeGVkT3B0aW9ucyIsInR5cGVhaGVhZFBsYWNlaG9sZGVyIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiX3NlbGVjdEl0ZW0iLCJEcm9wRG93blJlbmRlckNvbXBvbmVudCIsIkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50IiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzZWFyY2hPcHRpb25zIiwic2VsZWN0ZWQiLCJoYXNWYWx1ZSIsIkxpc3RJdGVtIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJfc2hvd1R5cGVhaGVhZCIsImVycm9yIiwiaXNFcnJvciIsInBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCJfcmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiZXJhc2FibGUiLCJfb25FcmFzZSIsInNob3dBcnJvdyIsIl9yZW5kZXJEcm9wZG93biIsIkNvbXBvbmVudCIsIkRyb3Bkb3duTGlzdCIsIkl0ZW1TZWxlY3RvciIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQVFPLElBQU1BLG9CQUFvQixHQUFHQyw2QkFBT0MsR0FBUCxDQUFXQyxLQUFYLENBQWlCLFVBQUFDLEtBQUs7QUFB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Qzs7QUFpT3hCLElBQU1pQixZQUFZLGdCQUFHQyxrQkFBTUMsSUFBTixDQUFXMUUsc0JBQVgsQ0FBckI7O0FBQ0F3RSxZQUFZLENBQUNHLFdBQWIsR0FBMkIsY0FBM0I7O2VBRWUsMkJBQVczRSxzQkFBWCxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIENvbXBvbmVudFR5cGUsIE1vdXNlRXZlbnRIYW5kbGVyLCBSZWZPYmplY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gudW5pcWJ5JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgQWNjZXNzb3IgZnJvbSAnLi9hY2Nlc3Nvcic7XG5pbXBvcnQgQ2hpY2tsZXRlZElucHV0IGZyb20gJy4vY2hpY2tsZXRlZC1pbnB1dCc7XG5pbXBvcnQgVHlwZWFoZWFkIGZyb20gJy4vdHlwZWFoZWFkJztcbmltcG9ydCB7RGVsZXRlLCBBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi8uLi9jb21tb24vcG9ydGFsZWQnO1xuaW1wb3J0IHt0b0FycmF5LCBvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9uc30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZERyb3Bkb3duU2VsZWN0UHJvcHMge1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWREcm9wZG93blNlbGVjdCA9IHN0eWxlZC5kaXYuYXR0cnMocHJvcHMgPT4gKHtcbiAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKCdpdGVtLXNlbGVjdG9yX19kcm9wZG93bicsIHByb3BzLmNsYXNzTmFtZSlcbn0pKTxTdHlsZWREcm9wZG93blNlbGVjdFByb3BzPmBcbiAgJHtwcm9wcyA9PlxuICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdzZWNvbmRhcnknXG4gICAgICA/IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0XG4gICAgICA6IHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuaW5wdXRMVFxuICAgICAgOiBwcm9wcy50aGVtZS5pbnB1dH07XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgcHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJyA/IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0U21hbGwgOiBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodH07XG5cbiAgLmxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3J9O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25TZWxlY3RWYWx1ZVByb3BzIHtcbiAgaGFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmNvbnN0IERyb3Bkb3duU2VsZWN0VmFsdWUgPSBzdHlsZWQuc3BhbjxEcm9wZG93blNlbGVjdFZhbHVlUHJvcHM+YFxuICBjb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmhhc1BsYWNlaG9sZGVyICYmIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUXG4gICAgICA6IHByb3BzLmhhc1BsYWNlaG9sZGVyXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yUGxhY2VIb2xkZXJcbiAgICAgIDogcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvckxUXG4gICAgICA6IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLmxpc3RfX2l0ZW0ge1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCcgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtfTtcbiAgfVxuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgICAgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3JMVFxuICAgICAgICA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEFuY2hvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcblxuICA6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cbmA7XG5cbmludGVyZmFjZSBEcm9wZG93bldyYXBwZXJQcm9wcyB7XG4gIHBsYWNlbWVudD86IHN0cmluZztcbiAgd2lkdGg6IG51bWJlcjtcbn1cblxuY29uc3QgRHJvcGRvd25XcmFwcGVyID0gc3R5bGVkLmRpdjxEcm9wZG93bldyYXBwZXJQcm9wcz5gXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuYDtcblxuZXhwb3J0IHR5cGUgSXRlbVNlbGVjdG9yUHJvcHMgPSB7XG4gIHNlbGVjdGVkSXRlbXM/OlxuICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PlxuICAgIHwgc3RyaW5nXG4gICAgfCBudW1iZXJcbiAgICB8IGJvb2xlYW5cbiAgICB8IG9iamVjdFxuICAgIHwgbnVsbDtcbiAgb3B0aW9uczogUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PjtcbiAgb25DaGFuZ2U6IChcbiAgICBpdGVtczpcbiAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PlxuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgbnVtYmVyXG4gICAgICB8IGJvb2xlYW5cbiAgICAgIHwgb2JqZWN0XG4gICAgICB8IG51bGxcbiAgKSA9PiB2b2lkO1xuICBmaXhlZE9wdGlvbnM/OiBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+IHwgbnVsbDtcbiAgZXJhc2FibGU/OiBib29sZWFuO1xuICBzaG93QXJyb3c/OiBib29sZWFuO1xuICBzZWFyY2hPcHRpb25zPzogKHZhbHVlOiBhbnksIG9wdDogYW55KSA9PiBhbnk7XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBkaXNwbGF5T3B0aW9uPzogc3RyaW5nIHwgKChvcHQ6IGFueSkgPT4gYW55KTtcbiAgZ2V0T3B0aW9uVmFsdWU/OiBzdHJpbmcgfCAoKG9wdDogYW55KSA9PiBhbnkpO1xuICBmaWx0ZXJPcHRpb24/OiBzdHJpbmcgfCAoKG9wdDogYW55KSA9PiBhbnkpO1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNFcnJvcj86IGJvb2xlYW47XG4gIG11bHRpU2VsZWN0PzogYm9vbGVhbjtcbiAgaW5wdXRUaGVtZT86IHN0cmluZztcbiAgc2l6ZT86IHN0cmluZztcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGNsb3NlT25TZWxlY3Q/OiBib29sZWFuO1xuICB0eXBlYWhlYWRQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgRHJvcGRvd25IZWFkZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT4gfCBudWxsO1xuICBEcm9wRG93blJlbmRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcbiAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcbiAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XG4gIGludGw6IEludGxTaGFwZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBzaG93RHJvcGRvd25Pbk1vdW50PzogYm9vbGVhbjtcbn07XG5cbmNsYXNzIEl0ZW1TZWxlY3RvclVubWVtb2l6ZWQgZXh0ZW5kcyBDb21wb25lbnQ8SXRlbVNlbGVjdG9yUHJvcHM+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyLmVudGVyVmFsdWUnLFxuICAgIGNsb3NlT25TZWxlY3Q6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudDogRHJvcGRvd25MaXN0LFxuICAgIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ6IExpc3RJdGVtXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc2hvd1R5cGVhaGVhZDogZmFsc2UsXG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDIwMFxuICAgIH1cbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93RHJvcGRvd25Pbk1vdW50KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICByb290OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+ID0gY3JlYXRlUmVmKCk7XG5cbiAgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgIHRoaXMuX2hpZGVUeXBlYWhlYWQoKTtcbiAgfTtcblxuICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICB9O1xuXG4gIF9oaWRlVHlwZWFoZWFkID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgdGhpcy5fb25CbHVyKCk7XG4gIH07XG5cbiAgX29uQmx1ciA9ICgpID0+IHtcbiAgICAvLyBub3RlOiBjaGlja2xldGVkIGlucHV0IGlzIG5vdCBhIHJlYWwgZm9ybSBlbGVtZW50IHNvIHdlIGNhbGwgb25CbHVyKClcbiAgICAvLyB3aGVuIHdlIGZlZWwgdGhlIGV2ZW50cyBhcmUgYXBwcm9wcmlhdGVcbiAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgIHRoaXMucHJvcHMub25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW1vdmVJdGVtID0gKGl0ZW0sIGUpID0+IHtcbiAgICAvLyBvbmx5IHVzZWQgd2hlbiBtdWx0aVNlbGVjdCA9IHRydWVcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBtdWx0aVNlbGVjdGVkSXRlbXMgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgY29uc3QgaW5kZXggPSBtdWx0aVNlbGVjdGVkSXRlbXMuZmluZEluZGV4KHQgPT4gdCA9PT0gaXRlbSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAuLi5tdWx0aVNlbGVjdGVkSXRlbXMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgLi4ubXVsdGlTZWxlY3RlZEl0ZW1zLnNsaWNlKGluZGV4ICsgMSwgbXVsdGlTZWxlY3RlZEl0ZW1zLmxlbmd0aClcbiAgICBdO1xuXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiBmYWxzZX0pO1xuICAgICAgdGhpcy5fb25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9zZWxlY3RJdGVtID0gaXRlbSA9PiB7XG4gICAgY29uc3QgZ2V0VmFsdWUgPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKFxuICAgICAgdGhpcy5wcm9wcy5nZXRPcHRpb25WYWx1ZSB8fCB0aGlzLnByb3BzLmRpc3BsYXlPcHRpb25cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLm11bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXFCeShwcmV2aW91c1NlbGVjdGVkLmNvbmNhdCh0b0FycmF5KGl0ZW0pKSwgZ2V0VmFsdWUpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZ2V0VmFsdWUoaXRlbSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX29uRXJhc2U6IE1vdXNlRXZlbnRIYW5kbGVyID0gZSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKG51bGwpO1xuICB9O1xuXG4gIF9zaG93VHlwZWFoZWFkOiBNb3VzZUV2ZW50SGFuZGxlciA9IGUgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLnByb3BzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2hvd1R5cGVhaGVhZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW5kZXJEcm9wZG93bihpbnRsOiBJbnRsU2hhcGUpIHtcbiAgICBjb25zdCB7cGxhY2VtZW50ID0gJ2JvdHRvbSd9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZGltZW5zaW9uc30gPSB0aGlzLnN0YXRlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQb3J0YWxlZCBsZWZ0PXswfSB0b3A9ezB9IGlzT3BlbmVkPXt0aGlzLnN0YXRlLnNob3dUeXBlYWhlYWR9IG9uQ2xvc2U9e3RoaXMuX2hpZGVUeXBlYWhlYWR9PlxuICAgICAgICA8RHJvcGRvd25XcmFwcGVyIHBsYWNlbWVudD17cGxhY2VtZW50fSB3aWR0aD17ZGltZW5zaW9ucz8ud2lkdGh9PlxuICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgcmVzdWx0czogJ2xpc3Qtc2VsZWN0b3InLFxuICAgICAgICAgICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgICBsaXN0QW5jaG9yOiAnbGlzdF9faXRlbV9fYW5jaG9yJ1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9wdGlvbnM9e3RoaXMucHJvcHMub3B0aW9uc31cbiAgICAgICAgICAgIGZpbHRlck9wdGlvbj17dGhpcy5wcm9wcy5maWx0ZXJPcHRpb259XG4gICAgICAgICAgICBmaXhlZE9wdGlvbnM9e3RoaXMucHJvcHMuZml4ZWRPcHRpb25zfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICB0aGlzLnByb3BzLnR5cGVhaGVhZFBsYWNlaG9sZGVyIHx8IGludGxcbiAgICAgICAgICAgICAgICA/IGludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdwbGFjZWhvbGRlci5zZWFyY2gnfSlcbiAgICAgICAgICAgICAgICA6ICdTZWFyY2gnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXt0aGlzLl9zZWxlY3RJdGVtfVxuICAgICAgICAgICAgY3VzdG9tTGlzdENvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93blJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICAgIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcGRvd25IZWFkZXJDb21wb25lbnR9XG4gICAgICAgICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50fVxuICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17QWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pfVxuICAgICAgICAgICAgc2VhcmNoYWJsZT17dGhpcy5wcm9wcy5zZWFyY2hhYmxlfVxuICAgICAgICAgICAgc2VhcmNoT3B0aW9ucz17dGhpcy5wcm9wcy5zZWFyY2hPcHRpb25zfVxuICAgICAgICAgICAgc2hvd09wdGlvbnNXaGVuRW1wdHlcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Ecm9wZG93bldyYXBwZXI+XG4gICAgICA8L1BvcnRhbGVkPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgY29uc3QgaGFzVmFsdWUgPSBzZWxlY3RlZC5sZW5ndGg7XG4gICAgY29uc3QgZGlzcGxheU9wdGlvbiA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IodGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uKTtcbiAgICBjb25zdCB7XG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGlucHV0VGhlbWUgPSAncHJpbWFyeScsXG4gICAgICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50ID0gTGlzdEl0ZW1cbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRyb3Bkb3duU2VsZWN0UHJvcHMgPSB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoe1xuICAgICAgICBhY3RpdmU6IHRoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZFxuICAgICAgfSksXG4gICAgICBkaXNwbGF5T3B0aW9uLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9zaG93VHlwZWFoZWFkLFxuICAgICAgZXJyb3I6IHRoaXMucHJvcHMuaXNFcnJvcixcbiAgICAgIGlucHV0VGhlbWUsXG4gICAgICBzaXplOiB0aGlzLnByb3BzLnNpemVcbiAgICB9O1xuICAgIGNvbnN0IGludGwgPSB0aGlzLnByb3BzLmludGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2l0ZW0tc2VsZWN0b3InLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9IHJlZj17dGhpcy5yb290fT5cbiAgICAgICAgPGRpdiBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIGxhYmVsICovfVxuICAgICAgICAgIHt0aGlzLnByb3BzLm11bHRpU2VsZWN0ID8gKFxuICAgICAgICAgICAgPENoaWNrbGV0ZWRJbnB1dFxuICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgcmVtb3ZlSXRlbT17dGhpcy5fcmVtb3ZlSXRlbX1cbiAgICAgICAgICAgICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ9e3RoaXMucHJvcHMuQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgIGlucHV0VGhlbWU9e2lucHV0VGhlbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8U3R5bGVkRHJvcGRvd25TZWxlY3Qgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9PlxuICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RWYWx1ZVxuICAgICAgICAgICAgICAgIGhhc1BsYWNlaG9sZGVyPXshaGFzVmFsdWV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIGlucHV0VGhlbWU9e2lucHV0VGhlbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd25fX3ZhbHVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtoYXNWYWx1ZSA/IChcbiAgICAgICAgICAgICAgICAgIDxEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFswXX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBsaWdodD17aW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyIHx8ICdwbGFjZWhvbGRlci5zZWxlY3RWYWx1ZSd9IC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Ecm9wZG93blNlbGVjdFZhbHVlPlxuICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5lcmFzYWJsZSAmJiBoYXNWYWx1ZSA/IChcbiAgICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e3RoaXMuX29uRXJhc2V9IC8+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICApIDogdGhpcy5wcm9wcy5zaG93QXJyb3cgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICAgICA8QXJyb3dEb3duIGhlaWdodD1cIjE0cHhcIiBvbkNsaWNrPXt0aGlzLl9zaG93VHlwZWFoZWFkfSAvPlxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1N0eWxlZERyb3Bkb3duU2VsZWN0PlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGJ1aWx0IHRoZSBsaXN0ICovfVxuICAgICAgICAgIHt0aGlzLl9yZW5kZXJEcm9wZG93bihpbnRsKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IEl0ZW1TZWxlY3RvciA9IFJlYWN0Lm1lbW8oSXRlbVNlbGVjdG9yVW5tZW1vaXplZCk7XG5JdGVtU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnSXRlbVNlbGVjdG9yJztcblxuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChJdGVtU2VsZWN0b3JVbm1lbW9pemVkKTtcbiJdfQ==
|
|
@@ -4,9 +4,8 @@ import { Search } from '../icons';
|
|
|
4
4
|
interface TypeaheadProps {
|
|
5
5
|
name?: string;
|
|
6
6
|
customClasses?: any;
|
|
7
|
-
maxVisible?: number;
|
|
8
7
|
resultsTruncatedMessage?: string;
|
|
9
|
-
options?: ReadonlyArray<string | number | boolean | object>;
|
|
8
|
+
options?: ReadonlyArray<string | number | boolean | object | undefined>;
|
|
10
9
|
fixedOptions?: ReadonlyArray<string | number | boolean | object> | null;
|
|
11
10
|
allowCustomValues?: number;
|
|
12
11
|
initialValue?: string;
|
|
@@ -37,10 +36,10 @@ interface TypeaheadProps {
|
|
|
37
36
|
inputIcon: ElementType;
|
|
38
37
|
className?: string;
|
|
39
38
|
selectedItems?: any[] | null;
|
|
39
|
+
maxVisible?: number;
|
|
40
40
|
}
|
|
41
41
|
interface TypeaheadState {
|
|
42
|
-
|
|
43
|
-
searchResults: (string | undefined)[];
|
|
42
|
+
searchResults: ReadonlyArray<string | number | boolean | object | undefined>;
|
|
44
43
|
entryValue?: string;
|
|
45
44
|
selection?: string;
|
|
46
45
|
selectionIndex: null;
|
|
@@ -69,11 +68,12 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
|
|
|
69
68
|
inputDisplayOption: null;
|
|
70
69
|
defaultClassNames: boolean;
|
|
71
70
|
customListComponent: typeof DropdownList;
|
|
72
|
-
customListItemComponent: ({ value, displayOption, light }: {
|
|
71
|
+
customListItemComponent: ({ value, displayOption, disabled, light }: {
|
|
73
72
|
value: any;
|
|
74
73
|
displayOption?: ((d: any) => any) | undefined;
|
|
74
|
+
disabled: any;
|
|
75
75
|
light: any;
|
|
76
|
-
}) => JSX.Element;
|
|
76
|
+
}) => React.JSX.Element;
|
|
77
77
|
inputIcon: typeof Search;
|
|
78
78
|
customListHeaderComponent: null;
|
|
79
79
|
showOptionsWhenEmpty: boolean;
|
|
@@ -81,7 +81,11 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
|
|
|
81
81
|
resultsTruncatedMessage: null;
|
|
82
82
|
};
|
|
83
83
|
static getDerivedStateFromProps(props: any, state: any): {
|
|
84
|
+
searchResults?: undefined;
|
|
85
|
+
prevOptions?: undefined;
|
|
86
|
+
} | {
|
|
84
87
|
searchResults: any;
|
|
88
|
+
prevOptions: any;
|
|
85
89
|
};
|
|
86
90
|
constructor(props: any);
|
|
87
91
|
componentDidMount(): void;
|
|
@@ -90,13 +94,13 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
|
|
|
90
94
|
focus: () => void;
|
|
91
95
|
_hasCustomValue: () => boolean;
|
|
92
96
|
_getCustomValue: () => string | null | undefined;
|
|
93
|
-
_renderIncrementalSearchResults(): JSX.Element;
|
|
97
|
+
_renderIncrementalSearchResults(): React.JSX.Element;
|
|
94
98
|
getSelection(): string | number | boolean | object | null | undefined;
|
|
95
|
-
_onOptionSelected: (option: any, event: any) =>
|
|
99
|
+
_onOptionSelected: (option: any, event: any) => void;
|
|
96
100
|
_onTextEntryUpdated: () => void;
|
|
97
|
-
_onEnter: (event: any) =>
|
|
101
|
+
_onEnter: (event: any) => void;
|
|
98
102
|
_onEscape: () => void;
|
|
99
|
-
_onTab: (event: any) =>
|
|
103
|
+
_onTab: (event: any) => void;
|
|
100
104
|
eventMap: () => {};
|
|
101
105
|
_nav: (delta: any) => void;
|
|
102
106
|
navDown: () => void;
|
|
@@ -105,9 +109,9 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
|
|
|
105
109
|
_onKeyDown: React.KeyboardEventHandler<HTMLDivElement>;
|
|
106
110
|
_onFocus: React.FocusEventHandler<HTMLDivElement>;
|
|
107
111
|
_onBlur: React.FocusEventHandler<HTMLInputElement>;
|
|
108
|
-
_renderHiddenInput(): JSX.Element | null;
|
|
112
|
+
_renderHiddenInput(): React.JSX.Element | null;
|
|
109
113
|
_hasHint(): boolean;
|
|
110
114
|
_hasFixedOptions(): number | false;
|
|
111
|
-
render(): JSX.Element;
|
|
115
|
+
render(): React.JSX.Element;
|
|
112
116
|
}
|
|
113
117
|
export default Typeahead;
|