@carto/kepler.gl 0.0.86-alpha.deck9.1 → 0.0.86
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/actions/action-wrapper.js +41 -36
- package/dist/actions/actions.js +21 -15
- package/dist/actions/identity-actions.js +20 -14
- package/dist/actions/index.js +16 -16
- package/dist/actions/map-state-actions.js +18 -12
- package/dist/actions/map-style-actions.js +46 -30
- package/dist/actions/provider-actions.js +73 -49
- package/dist/actions/ui-state-actions.js +113 -73
- package/dist/actions/vis-state-actions.js +148 -152
- package/dist/cloud-providers/index.js +7 -6
- package/dist/cloud-providers/provider.js +279 -189
- package/dist/components/bottom-widget.js +117 -105
- package/dist/components/common/action-panel.js +74 -122
- package/dist/components/common/animation-control/animation-control.js +54 -69
- package/dist/components/common/animation-control/animation-controller.js +160 -134
- package/dist/components/common/animation-control/animation-speed-slider.js +54 -47
- package/dist/components/common/animation-control/floating-time-display.js +100 -120
- package/dist/components/common/animation-control/playback-controls.js +144 -147
- package/dist/components/common/animation-control/speed-control.js +23 -31
- package/dist/components/common/checkbox.js +70 -56
- package/dist/components/common/color-legend.js +110 -83
- package/dist/components/common/data-table/button.js +23 -31
- package/dist/components/common/data-table/canvas.js +5 -11
- package/dist/components/common/data-table/cell-size.js +61 -51
- package/dist/components/common/data-table/grid.js +59 -40
- package/dist/components/common/data-table/index.js +348 -464
- package/dist/components/common/data-table/option-dropdown.js +33 -50
- package/dist/components/common/dataset-label.js +13 -17
- package/dist/components/common/error-boundary.js +45 -27
- package/dist/components/common/field-selector.js +139 -99
- package/dist/components/common/field-token.js +9 -24
- package/dist/components/common/file-uploader/file-drop.js +115 -96
- package/dist/components/common/file-uploader/file-upload-progress.js +45 -68
- package/dist/components/common/file-uploader/file-upload.js +187 -215
- package/dist/components/common/file-uploader/upload-button.js +22 -35
- package/dist/components/common/histogram-plot.js +58 -47
- package/dist/components/common/icons/add.js +27 -14
- package/dist/components/common/icons/anchor_window.js +18 -16
- package/dist/components/common/icons/arrow-down-alt.js +27 -14
- package/dist/components/common/icons/arrow-down-solid.js +27 -14
- package/dist/components/common/icons/arrow-down.js +27 -14
- package/dist/components/common/icons/arrow-left.js +30 -17
- package/dist/components/common/icons/arrow-right.js +27 -14
- package/dist/components/common/icons/arrow-up-alt.js +28 -15
- package/dist/components/common/icons/arrow-up-solid.js +27 -14
- package/dist/components/common/icons/arrow-up.js +27 -14
- package/dist/components/common/icons/base.js +57 -39
- package/dist/components/common/icons/bug.js +29 -16
- package/dist/components/common/icons/cancel.js +27 -14
- package/dist/components/common/icons/checkmark.js +31 -18
- package/dist/components/common/icons/chevron-right.js +33 -20
- package/dist/components/common/icons/clipboard.js +28 -15
- package/dist/components/common/icons/clock.js +29 -16
- package/dist/components/common/icons/close.js +32 -19
- package/dist/components/common/icons/code-alt.js +29 -16
- package/dist/components/common/icons/copy.js +31 -18
- package/dist/components/common/icons/crosshairs.js +29 -16
- package/dist/components/common/icons/cube-3d.js +31 -18
- package/dist/components/common/icons/cursor-click.js +31 -18
- package/dist/components/common/icons/data-table.js +28 -15
- package/dist/components/common/icons/db.js +28 -15
- package/dist/components/common/icons/delete.js +29 -16
- package/dist/components/common/icons/docs.js +43 -30
- package/dist/components/common/icons/drag-n-drop.js +29 -16
- package/dist/components/common/icons/draw-polygon.js +46 -33
- package/dist/components/common/icons/email.js +31 -18
- package/dist/components/common/icons/expand.js +29 -16
- package/dist/components/common/icons/eye-seen.js +29 -16
- package/dist/components/common/icons/eye-unseen.js +29 -16
- package/dist/components/common/icons/file-type.js +19 -35
- package/dist/components/common/icons/file.js +27 -14
- package/dist/components/common/icons/files.js +26 -14
- package/dist/components/common/icons/filter-funnel.js +27 -14
- package/dist/components/common/icons/free-window.js +18 -16
- package/dist/components/common/icons/gear.js +29 -16
- package/dist/components/common/icons/hash.js +27 -14
- package/dist/components/common/icons/histogram.js +27 -15
- package/dist/components/common/icons/index.js +156 -156
- package/dist/components/common/icons/info.js +38 -25
- package/dist/components/common/icons/layers.js +27 -14
- package/dist/components/common/icons/left-arrow.js +29 -16
- package/dist/components/common/icons/legend.js +27 -14
- package/dist/components/common/icons/line-chart.js +27 -14
- package/dist/components/common/icons/login.js +30 -17
- package/dist/components/common/icons/logout.js +29 -16
- package/dist/components/common/icons/map-icon.js +32 -18
- package/dist/components/common/icons/map.js +32 -18
- package/dist/components/common/icons/messages.js +27 -14
- package/dist/components/common/icons/minus.js +27 -14
- package/dist/components/common/icons/order-by-dataset.js +17 -15
- package/dist/components/common/icons/order-by-list.js +9 -7
- package/dist/components/common/icons/pause.js +27 -14
- package/dist/components/common/icons/picture.js +26 -14
- package/dist/components/common/icons/pin.js +30 -17
- package/dist/components/common/icons/play.js +27 -14
- package/dist/components/common/icons/polygon.js +48 -35
- package/dist/components/common/icons/rectangle.js +49 -36
- package/dist/components/common/icons/reduce.js +30 -17
- package/dist/components/common/icons/reset.js +27 -14
- package/dist/components/common/icons/rocket.js +27 -14
- package/dist/components/common/icons/save.js +29 -16
- package/dist/components/common/icons/save2.js +33 -20
- package/dist/components/common/icons/search.js +29 -16
- package/dist/components/common/icons/settings.js +29 -16
- package/dist/components/common/icons/share.js +27 -14
- package/dist/components/common/icons/split.js +55 -42
- package/dist/components/common/icons/square-select.js +29 -16
- package/dist/components/common/icons/swap-horizontal.js +31 -18
- package/dist/components/common/icons/table.js +27 -14
- package/dist/components/common/icons/trash.js +29 -16
- package/dist/components/common/icons/upload.js +27 -14
- package/dist/components/common/icons/vert-dots.js +65 -52
- package/dist/components/common/icons/vert-three-dots.js +40 -27
- package/dist/components/common/icons/warning.js +39 -26
- package/dist/components/common/image-preview.js +33 -71
- package/dist/components/common/info-helper.js +29 -36
- package/dist/components/common/item-selector/accessor.js +13 -7
- package/dist/components/common/item-selector/chickleted-input.js +56 -72
- package/dist/components/common/item-selector/dropdown-list.js +214 -182
- package/dist/components/common/item-selector/item-selector-submenu.js +55 -34
- package/dist/components/common/item-selector/item-selector.js +194 -183
- package/dist/components/common/item-selector/typeahead.js +248 -236
- package/dist/components/common/line-chart.js +58 -80
- package/dist/components/common/loading-spinner.js +31 -46
- package/dist/components/common/logo.js +48 -61
- package/dist/components/common/map-layer-selector.js +25 -31
- package/dist/components/common/modal.js +106 -167
- package/dist/components/common/portaled.js +189 -169
- package/dist/components/common/progress-bar.js +24 -27
- package/dist/components/common/range-brush.js +215 -176
- package/dist/components/common/range-plot.js +63 -52
- package/dist/components/common/range-slider.js +231 -206
- package/dist/components/common/slider/mouse-event.js +66 -59
- package/dist/components/common/slider/slider-bar-handle.js +61 -51
- package/dist/components/common/slider/slider-handle.js +102 -127
- package/dist/components/common/slider/slider.js +162 -143
- package/dist/components/common/styled-components.js +256 -518
- package/dist/components/common/switch.js +11 -11
- package/dist/components/common/time-range-slider-time-title.js +32 -49
- package/dist/components/common/time-range-slider.js +45 -56
- package/dist/components/common/time-slider-marker.js +52 -71
- package/dist/components/common/tippy-tooltip.js +59 -89
- package/dist/components/common/toolbar-item.js +45 -53
- package/dist/components/common/toolbar.js +18 -24
- package/dist/components/common/vertical-toolbar.js +6 -13
- package/dist/components/container.js +119 -87
- package/dist/components/context.js +8 -6
- package/dist/components/editor/constants.js +4 -4
- package/dist/components/editor/editor.js +157 -122
- package/dist/components/editor/feature-action-panel.js +59 -52
- package/dist/components/editor/feature-styles.js +29 -46
- package/dist/components/editor/handle-style.js +29 -38
- package/dist/components/filters/components.js +4 -8
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +43 -33
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +21 -20
- package/dist/components/filters/filter-panels/new-filter-panel.js +31 -24
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +31 -26
- package/dist/components/filters/filter-panels/range-filter-panel.js +21 -20
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +21 -20
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +31 -28
- package/dist/components/filters/index.js +10 -10
- package/dist/components/filters/multi-select-filter.js +9 -11
- package/dist/components/filters/polygon-filter.js +41 -26
- package/dist/components/filters/range-filter.js +7 -9
- package/dist/components/filters/single-select-filter.js +13 -11
- package/dist/components/filters/time-range-filter.js +14 -16
- package/dist/components/filters/time-widget.js +84 -125
- package/dist/components/geocoder/geocoder.js +177 -158
- package/dist/components/geocoder-panel.js +87 -66
- package/dist/components/index.js +329 -328
- package/dist/components/injector.js +63 -44
- package/dist/components/kepler-gl.js +361 -325
- package/dist/components/map/coordinate-info.js +16 -18
- package/dist/components/map/layer-hover-info.js +86 -108
- package/dist/components/map/layer-selector-panel.js +48 -50
- package/dist/components/map/locale-panel.js +44 -38
- package/dist/components/map/map-control-panel.js +47 -70
- package/dist/components/map/map-control-toolbar.js +6 -9
- package/dist/components/map/map-control-tooltip.js +8 -10
- package/dist/components/map/map-control.js +27 -35
- package/dist/components/map/map-draw-panel.js +48 -38
- package/dist/components/map/map-legend-panel.js +50 -47
- package/dist/components/map/map-legend.js +116 -133
- package/dist/components/map/map-popover.js +100 -155
- package/dist/components/map/split-map-button.js +34 -30
- package/dist/components/map/toggle-3d-button.js +27 -25
- package/dist/components/map-container.js +359 -313
- package/dist/components/maps-layout.js +26 -16
- package/dist/components/modal-container.js +355 -359
- package/dist/components/modals/add-map-style-modal.js +194 -233
- package/dist/components/modals/cloud-tile.js +67 -96
- package/dist/components/modals/data-table-modal.js +152 -155
- package/dist/components/modals/delete-data-modal.js +20 -20
- package/dist/components/modals/error-display.js +7 -9
- package/dist/components/modals/export-data-modal.js +140 -118
- package/dist/components/modals/export-image-modal.js +69 -82
- package/dist/components/modals/export-map-modal/components.js +18 -20
- package/dist/components/modals/export-map-modal/export-html-map.js +74 -82
- package/dist/components/modals/export-map-modal/export-json-map.js +45 -65
- package/dist/components/modals/export-map-modal/export-map-modal.js +47 -42
- package/dist/components/modals/image-modal-container.js +21 -20
- package/dist/components/modals/load-data-modal.js +30 -28
- package/dist/components/modals/load-storage-map.js +178 -277
- package/dist/components/modals/loading-dialog.js +19 -41
- package/dist/components/modals/modal-dialog.js +6 -4
- package/dist/components/modals/modal-tabs.js +48 -83
- package/dist/components/modals/overwrite-map-modal.js +30 -41
- package/dist/components/modals/provider-modal-container.js +42 -23
- package/dist/components/modals/save-map-modal.js +83 -107
- package/dist/components/modals/share-map-modal.js +95 -101
- package/dist/components/modals/status-panel.js +43 -63
- package/dist/components/modals/storage-map-viewer.js +70 -133
- package/dist/components/notification-panel/notification-item.js +97 -94
- package/dist/components/notification-panel.js +43 -35
- package/dist/components/performance.js +53 -49
- package/dist/components/plot-container.js +169 -151
- package/dist/components/side-panel/cloud-storage-dropdown.js +15 -13
- package/dist/components/side-panel/common/dataset-info.js +12 -16
- package/dist/components/side-panel/common/dataset-tag.js +27 -48
- package/dist/components/side-panel/common/dataset-title.js +116 -119
- package/dist/components/side-panel/common/source-data-catalog.js +32 -31
- package/dist/components/side-panel/common/source-data-selector.js +77 -52
- package/dist/components/side-panel/custom-panel.js +8 -6
- package/dist/components/side-panel/filter-manager.js +62 -48
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +25 -35
- package/dist/components/side-panel/filter-panel/filter-panel.js +64 -46
- package/dist/components/side-panel/interaction-manager.js +18 -20
- package/dist/components/side-panel/interaction-panel/brush-config.js +17 -17
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +95 -76
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +143 -118
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +76 -95
- package/dist/components/side-panel/layer-manager.js +115 -105
- package/dist/components/side-panel/layer-panel/add-layer-button.js +54 -92
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +5 -5
- package/dist/components/side-panel/layer-panel/color-palette.js +37 -50
- package/dist/components/side-panel/layer-panel/color-range-selector.js +207 -196
- package/dist/components/side-panel/layer-panel/color-selector.js +110 -104
- package/dist/components/side-panel/layer-panel/column-selector.js +22 -34
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +4 -4
- package/dist/components/side-panel/layer-panel/custom-palette.js +205 -248
- package/dist/components/side-panel/layer-panel/custom-picker.js +69 -51
- package/dist/components/side-panel/layer-panel/dataset-layer-group.js +42 -37
- package/dist/components/side-panel/layer-panel/dataset-layer-section.js +27 -31
- package/dist/components/side-panel/layer-panel/dataset-section.js +35 -45
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +13 -14
- package/dist/components/side-panel/layer-panel/hex-column-config.js +55 -32
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +5 -5
- package/dist/components/side-panel/layer-panel/layer-column-config.js +46 -42
- package/dist/components/side-panel/layer-panel/layer-config-group.js +144 -178
- package/dist/components/side-panel/layer-panel/layer-configurator.js +830 -826
- package/dist/components/side-panel/layer-panel/layer-list.js +94 -101
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +82 -124
- package/dist/components/side-panel/layer-panel/layer-panel.js +105 -111
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +58 -67
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +32 -47
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +41 -30
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +43 -42
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +57 -55
- package/dist/components/side-panel/layer-panel/single-color-palette.js +33 -48
- package/dist/components/side-panel/layer-panel/text-label-panel.js +116 -81
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +102 -88
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +85 -99
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +29 -38
- package/dist/components/side-panel/map-manager.js +89 -70
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +60 -72
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +42 -64
- package/dist/components/side-panel/panel-dropdown.js +37 -21
- package/dist/components/side-panel/panel-header-action.js +65 -60
- package/dist/components/side-panel/panel-header.js +184 -165
- package/dist/components/side-panel/panel-tab.js +29 -35
- package/dist/components/side-panel/panel-title.js +18 -15
- package/dist/components/side-panel/panel-toggle.js +31 -30
- package/dist/components/side-panel/side-bar.js +91 -100
- package/dist/components/side-panel.js +123 -108
- package/dist/connect/keplergl-connect.js +26 -17
- package/dist/connect/with-local-selector.js +63 -31
- package/dist/constants/action-types.js +115 -113
- package/dist/constants/color-palette.js +16 -14
- package/dist/constants/color-ranges.js +28 -23
- package/dist/constants/custom-color-ranges.js +12 -12
- package/dist/constants/default-settings.js +254 -323
- package/dist/constants/index.js +63 -63
- package/dist/constants/keyevent.js +4 -4
- package/dist/constants/tooltip.js +5 -5
- package/dist/constants/user-feedbacks.js +5 -9
- package/dist/constants/user-guides.js +10 -10
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +63 -37
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +56 -52
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +168 -165
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +43 -24
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +40 -27
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +40 -27
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +68 -60
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +282 -276
- package/dist/deckgl-layers/layer-utils/shader-utils.js +2 -2
- package/dist/deckgl-layers/line-layer/line-layer.js +70 -62
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +51 -37
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +85 -65
- package/dist/index.js +16 -15
- package/dist/layers/aggregation-layer.js +331 -299
- package/dist/layers/arc-layer/arc-layer-icon.js +41 -27
- package/dist/layers/arc-layer/arc-layer.js +201 -174
- package/dist/layers/base-layer.js +1544 -1371
- package/dist/layers/cluster-layer/cluster-layer-icon.js +44 -30
- package/dist/layers/cluster-layer/cluster-layer.js +103 -89
- package/dist/layers/default-layer-icon.js +53 -39
- package/dist/layers/geojson-layer/geojson-layer-icon.js +55 -42
- package/dist/layers/geojson-layer/geojson-layer.js +353 -292
- package/dist/layers/geojson-layer/geojson-utils.js +36 -31
- package/dist/layers/grid-layer/grid-layer-icon.js +100 -87
- package/dist/layers/grid-layer/grid-layer.js +61 -51
- package/dist/layers/grid-layer/grid-utils.js +9 -13
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +35 -21
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +260 -225
- package/dist/layers/h3-hexagon-layer/h3-utils.js +16 -16
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +52 -39
- package/dist/layers/heatmap-layer/heatmap-layer.js +171 -140
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +64 -51
- package/dist/layers/hexagon-layer/hexagon-layer.js +63 -49
- package/dist/layers/hexagon-layer/hexagon-utils.js +14 -15
- package/dist/layers/icon-layer/icon-info-modal.js +75 -82
- package/dist/layers/icon-layer/icon-layer-icon.js +37 -24
- package/dist/layers/icon-layer/icon-layer.js +303 -274
- package/dist/layers/index.js +29 -43
- package/dist/layers/layer-factory.js +41 -25
- package/dist/layers/layer-text-label.js +23 -21
- package/dist/layers/layer-update.js +18 -16
- package/dist/layers/line-layer/line-layer-icon.js +43 -30
- package/dist/layers/line-layer/line-layer.js +142 -123
- package/dist/layers/mapbox-utils.js +62 -61
- package/dist/layers/mapboxgl-layer.js +169 -124
- package/dist/layers/point-layer/point-layer-icon.js +59 -45
- package/dist/layers/point-layer/point-layer.js +386 -355
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +238 -208
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +35 -21
- package/dist/layers/s2-geometry-layer/s2-utils.js +8 -9
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +25 -24
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +115 -102
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +172 -148
- package/dist/layers/trip-layer/trip-info-modal.js +30 -50
- package/dist/layers/trip-layer/trip-layer-icon.js +53 -40
- package/dist/layers/trip-layer/trip-layer.js +307 -239
- package/dist/layers/trip-layer/trip-utils.js +50 -34
- package/dist/layers/types.js +2 -2
- package/dist/localization/formatted-message.js +10 -8
- package/dist/localization/index.js +7 -7
- package/dist/localization/locales.js +9 -6
- package/dist/localization/messages.js +10 -13
- package/dist/localization/translations/ca.js +13 -11
- package/dist/localization/translations/cn.js +13 -11
- package/dist/localization/translations/en.js +13 -11
- package/dist/localization/translations/es.js +13 -11
- package/dist/localization/translations/fi.js +13 -11
- package/dist/localization/translations/ja.js +13 -11
- package/dist/localization/translations/pt.js +13 -11
- package/dist/localization/translations/ru.js +13 -11
- package/dist/middleware/index.js +5 -3
- package/dist/processors/data-processor.js +201 -164
- package/dist/processors/file-handler.js +233 -111
- package/dist/processors/index.js +4 -4
- package/dist/reducers/combined-updaters.js +41 -41
- package/dist/reducers/composer-helpers.js +45 -20
- package/dist/reducers/composers.js +8 -9
- package/dist/reducers/core.js +35 -31
- package/dist/reducers/index.js +22 -21
- package/dist/reducers/map-state-updaters.js +47 -65
- package/dist/reducers/map-state.js +15 -23
- package/dist/reducers/map-style-updaters.js +159 -233
- package/dist/reducers/map-style.js +16 -30
- package/dist/reducers/provider-state-updaters.js +229 -217
- package/dist/reducers/provider-state.js +17 -29
- package/dist/reducers/root.js +58 -86
- package/dist/reducers/ui-state-updaters.js +218 -337
- package/dist/reducers/ui-state.js +16 -45
- package/dist/reducers/vis-state-merger.js +209 -205
- package/dist/reducers/vis-state-selectors.js +19 -5
- package/dist/reducers/vis-state-updaters.js +876 -1003
- package/dist/reducers/vis-state.js +16 -75
- package/dist/schemas/dataset-schema.js +108 -84
- package/dist/schemas/index.js +29 -28
- package/dist/schemas/map-state-schema.js +18 -21
- package/dist/schemas/map-style-schema.js +55 -47
- package/dist/schemas/schema-manager.js +161 -147
- package/dist/schemas/schema-utils.js +9 -8
- package/dist/schemas/schema.js +87 -72
- package/dist/schemas/versions.js +3 -3
- package/dist/schemas/vis-state-schema.js +583 -441
- package/dist/styles/base.js +1021 -1217
- package/dist/styles/index.js +3 -3
- package/dist/styles/media-breakpoints.js +18 -23
- package/dist/tasks/tasks.js +39 -36
- package/dist/templates/export-map-html.js +4 -233
- package/dist/utils/aggregate-utils.js +16 -13
- package/dist/utils/color-utils.js +37 -29
- package/dist/utils/custom-scales.js +3 -3
- package/dist/utils/data-scale-utils.js +13 -6
- package/dist/utils/data-utils.js +83 -60
- package/dist/utils/dataset-utils.js +77 -48
- package/dist/utils/dom-to-image.js +163 -108
- package/dist/utils/dom-utils.js +105 -88
- package/dist/utils/export-utils.js +103 -116
- package/dist/utils/filter-utils.js +374 -379
- package/dist/utils/gl-utils.js +15 -16
- package/dist/utils/gpu-filter-utils.js +73 -54
- package/dist/utils/index.js +48 -47
- package/dist/utils/interaction-utils.js +46 -53
- package/dist/utils/layer-utils.js +78 -89
- package/dist/utils/locale-utils.js +16 -24
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +76 -67
- package/dist/utils/map-style-utils/mapbox-utils.js +3 -4
- package/dist/utils/mapbox-utils.js +4 -3
- package/dist/utils/notifications-utils.js +38 -33
- package/dist/utils/observe-dimensions.js +54 -42
- package/dist/utils/projection-utils.js +11 -14
- package/dist/utils/split-map-utils.js +33 -30
- package/dist/utils/table-utils/data-container-utils.js +14 -15
- package/dist/utils/table-utils/data-row.js +65 -58
- package/dist/utils/table-utils/index.js +2 -2
- package/dist/utils/table-utils/indexed-data-container.js +173 -105
- package/dist/utils/table-utils/kepler-table.js +386 -362
- package/dist/utils/table-utils/row-data-container.js +164 -99
- package/dist/utils/utils.js +30 -29
- package/package.json +1 -1
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
|
-
exports
|
|
8
|
+
exports["default"] = exports.SaveExportDropdownFactory = exports.PanelHeaderDropdownFactory = exports.PanelAction = exports.CloudStorageDropdownFactory = void 0;
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
8
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
16
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
19
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
20
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -18,9 +26,8 @@ var _panelDropdown = _interopRequireDefault(require("./panel-dropdown"));
|
|
|
18
26
|
var _toolbar = _interopRequireDefault(require("../common/toolbar"));
|
|
19
27
|
var _toolbarItem = _interopRequireDefault(require("../common/toolbar-item"));
|
|
20
28
|
var _localization = require("../../localization");
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// Copyright (c) 2022 Uber Technologies, Inc.
|
|
29
|
+
var _excluded = ["appName", "appWebsite", "version", "actionItems", "visibleDropdown", "showExportDropdown", "hideExportDropdown"];
|
|
30
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5; // Copyright (c) 2022 Uber Technologies, Inc.
|
|
24
31
|
//
|
|
25
32
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
26
33
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -39,244 +46,256 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
39
46
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
40
47
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
41
48
|
// THE SOFTWARE.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}))
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
50
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
51
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
52
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
53
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
54
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
55
|
+
var StyledPanelHeader = _styledComponents["default"].div.attrs(function (props) {
|
|
56
|
+
return {
|
|
57
|
+
className: (0, _classnames["default"])('side-side-panel__header', props.className)
|
|
58
|
+
};
|
|
59
|
+
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n padding: 12px 16px 0 16px;\n"])), function (props) {
|
|
60
|
+
return props.theme.sidePanelHeaderBg;
|
|
61
|
+
});
|
|
62
|
+
var StyledPanelHeaderTop = _styledComponents["default"].div.attrs(function (props) {
|
|
63
|
+
return {
|
|
64
|
+
className: (0, _classnames["default"])('side-panel__header__top', props.className)
|
|
65
|
+
};
|
|
66
|
+
})(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n margin-bottom: 16px;\n width: 100%;\n"])));
|
|
67
|
+
var StyledPanelTopActions = _styledComponents["default"].div.attrs({
|
|
58
68
|
className: 'side-panel__top__actions'
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
`;
|
|
62
|
-
const StyledPanelAction = _styledComponents.default.div.attrs({
|
|
69
|
+
})(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
|
|
70
|
+
var StyledPanelAction = _styledComponents["default"].div.attrs({
|
|
63
71
|
className: 'side-panel__panel-header__action'
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
margin-right: 6px;
|
|
77
|
-
}
|
|
78
|
-
a {
|
|
79
|
-
height: 20px;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
:hover {
|
|
83
|
-
cursor: pointer;
|
|
84
|
-
color: ${props => props.theme.textColorHl};
|
|
85
|
-
|
|
86
|
-
a {
|
|
87
|
-
color: ${props => props.theme.textColorHl};
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
`;
|
|
91
|
-
const StyledToolbar = (0, _styledComponents.default)(_toolbar.default)`
|
|
92
|
-
position: absolute;
|
|
93
|
-
`;
|
|
94
|
-
const PanelAction = _ref => {
|
|
95
|
-
let {
|
|
96
|
-
item,
|
|
97
|
-
onClick
|
|
98
|
-
} = _ref;
|
|
99
|
-
return /*#__PURE__*/_react.default.createElement(StyledPanelAction, {
|
|
72
|
+
})(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n align-items: center;\n border-radius: 2px;\n color: ", ";\n display: flex;\n height: 26px;\n justify-content: space-between;\n margin-left: 4px;\n padding: 5px;\n font-weight: bold;\n p {\n display: inline-block;\n margin-right: 6px;\n }\n a {\n height: 20px;\n }\n\n :hover {\n cursor: pointer;\n color: ", ";\n\n a {\n color: ", ";\n }\n }\n"])), function (props) {
|
|
73
|
+
return props.active ? props.theme.textColorHl : props.theme.subtextColor;
|
|
74
|
+
}, function (props) {
|
|
75
|
+
return props.theme.textColorHl;
|
|
76
|
+
}, function (props) {
|
|
77
|
+
return props.theme.textColorHl;
|
|
78
|
+
});
|
|
79
|
+
var StyledToolbar = (0, _styledComponents["default"])(_toolbar["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n"])));
|
|
80
|
+
var PanelAction = exports.PanelAction = function PanelAction(_ref) {
|
|
81
|
+
var item = _ref.item,
|
|
82
|
+
onClick = _ref.onClick;
|
|
83
|
+
return /*#__PURE__*/_react["default"].createElement(StyledPanelAction, {
|
|
100
84
|
"data-tip": true,
|
|
101
|
-
"data-for":
|
|
85
|
+
"data-for": "".concat(item.id, "-action"),
|
|
102
86
|
onClick: onClick
|
|
103
|
-
}, item.label ? /*#__PURE__*/_react
|
|
87
|
+
}, item.label ? /*#__PURE__*/_react["default"].createElement("p", null, item.label) : null, /*#__PURE__*/_react["default"].createElement("a", {
|
|
104
88
|
target: item.blank ? '_blank' : '',
|
|
105
89
|
href: item.href,
|
|
106
90
|
rel: "noreferrer"
|
|
107
|
-
}, /*#__PURE__*/_react
|
|
91
|
+
}, /*#__PURE__*/_react["default"].createElement(item.iconComponent, (0, _extends2["default"])({
|
|
108
92
|
height: "20px"
|
|
109
|
-
}, item.iconComponentProps))), item.tooltip ? /*#__PURE__*/_react
|
|
110
|
-
id:
|
|
93
|
+
}, item.iconComponentProps))), item.tooltip ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
94
|
+
id: "".concat(item.id, "-action"),
|
|
111
95
|
place: "bottom",
|
|
112
96
|
delayShow: 500,
|
|
113
97
|
effect: "solid"
|
|
114
|
-
}, /*#__PURE__*/_react
|
|
98
|
+
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
115
99
|
id: item.tooltip
|
|
116
100
|
})) : null);
|
|
117
101
|
};
|
|
118
|
-
exports.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
id
|
|
126
|
-
} = _ref2;
|
|
127
|
-
return /*#__PURE__*/_react.default.createElement(StyledToolbar, {
|
|
102
|
+
var PanelHeaderDropdownFactory = exports.PanelHeaderDropdownFactory = function PanelHeaderDropdownFactory() {
|
|
103
|
+
var PanelHeaderDropdown = function PanelHeaderDropdown(_ref2) {
|
|
104
|
+
var items = _ref2.items,
|
|
105
|
+
show = _ref2.show,
|
|
106
|
+
onClose = _ref2.onClose,
|
|
107
|
+
id = _ref2.id;
|
|
108
|
+
return /*#__PURE__*/_react["default"].createElement(StyledToolbar, {
|
|
128
109
|
show: show,
|
|
129
|
-
className:
|
|
130
|
-
}, /*#__PURE__*/_react
|
|
110
|
+
className: "".concat(id, "-dropdown")
|
|
111
|
+
}, /*#__PURE__*/_react["default"].createElement(_panelDropdown["default"], {
|
|
131
112
|
className: "panel-header-dropdown__inner",
|
|
132
113
|
show: show,
|
|
133
114
|
onClose: onClose
|
|
134
|
-
}, items.map(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
115
|
+
}, items.map(function (item) {
|
|
116
|
+
return /*#__PURE__*/_react["default"].createElement(_toolbarItem["default"], {
|
|
117
|
+
id: item.key,
|
|
118
|
+
key: item.key,
|
|
119
|
+
label: item.label,
|
|
120
|
+
icon: item.icon,
|
|
121
|
+
onClick: item.onClick,
|
|
122
|
+
onClose: onClose
|
|
123
|
+
});
|
|
124
|
+
})));
|
|
142
125
|
};
|
|
143
126
|
return PanelHeaderDropdown;
|
|
144
127
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
id: "save-export"
|
|
128
|
+
var getDropdownItemsSelector = function getDropdownItemsSelector() {
|
|
129
|
+
return (0, _reselect.createSelector)(function (props) {
|
|
130
|
+
return props;
|
|
131
|
+
}, function (props) {
|
|
132
|
+
return (props.items || []).map(function (t) {
|
|
133
|
+
return _objectSpread(_objectSpread({}, t), {}, {
|
|
134
|
+
onClick: t.onClick && t.onClick(props) ? t.onClick(props) : null
|
|
135
|
+
});
|
|
136
|
+
}).filter(function (l) {
|
|
137
|
+
return l.onClick;
|
|
138
|
+
});
|
|
157
139
|
});
|
|
140
|
+
};
|
|
141
|
+
var SaveExportDropdownFactory = exports.SaveExportDropdownFactory = function SaveExportDropdownFactory(PanelHeaderDropdown) {
|
|
142
|
+
var dropdownItemsSelector = getDropdownItemsSelector();
|
|
143
|
+
var SaveExportDropdown = function SaveExportDropdown(props) {
|
|
144
|
+
return /*#__PURE__*/_react["default"].createElement(PanelHeaderDropdown, {
|
|
145
|
+
items: dropdownItemsSelector(props),
|
|
146
|
+
show: props.show,
|
|
147
|
+
onClose: props.onClose,
|
|
148
|
+
id: "save-export"
|
|
149
|
+
});
|
|
150
|
+
};
|
|
158
151
|
SaveExportDropdown.defaultProps = {
|
|
159
152
|
items: [{
|
|
160
153
|
label: 'toolbar.exportImage',
|
|
161
154
|
icon: _icons.Picture,
|
|
162
155
|
key: 'image',
|
|
163
|
-
onClick: props
|
|
156
|
+
onClick: function onClick(props) {
|
|
157
|
+
return props.onExportImage;
|
|
158
|
+
}
|
|
164
159
|
}, {
|
|
165
160
|
label: 'toolbar.exportData',
|
|
166
161
|
icon: _icons.DataTable,
|
|
167
162
|
key: 'data',
|
|
168
|
-
onClick: props
|
|
163
|
+
onClick: function onClick(props) {
|
|
164
|
+
return props.onExportData;
|
|
165
|
+
}
|
|
169
166
|
}, {
|
|
170
167
|
label: 'toolbar.exportMap',
|
|
171
168
|
icon: _icons.Map,
|
|
172
169
|
key: 'map',
|
|
173
|
-
onClick: props
|
|
170
|
+
onClick: function onClick(props) {
|
|
171
|
+
return props.onExportMap;
|
|
172
|
+
}
|
|
174
173
|
}, {
|
|
175
174
|
label: 'toolbar.saveMap',
|
|
176
175
|
icon: _icons.Save2,
|
|
177
176
|
key: 'save',
|
|
178
|
-
onClick: props
|
|
177
|
+
onClick: function onClick(props) {
|
|
178
|
+
return props.onSaveMap;
|
|
179
|
+
}
|
|
179
180
|
}, {
|
|
180
181
|
label: 'toolbar.shareMapURL',
|
|
181
182
|
icon: _icons.Share,
|
|
182
183
|
key: 'share',
|
|
183
|
-
onClick: props
|
|
184
|
+
onClick: function onClick(props) {
|
|
185
|
+
return props.onShareMap;
|
|
186
|
+
}
|
|
184
187
|
}]
|
|
185
188
|
};
|
|
186
189
|
return SaveExportDropdown;
|
|
187
190
|
};
|
|
188
|
-
exports.SaveExportDropdownFactory = SaveExportDropdownFactory;
|
|
189
191
|
SaveExportDropdownFactory.deps = [PanelHeaderDropdownFactory];
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
var CloudStorageDropdownFactory = exports.CloudStorageDropdownFactory = function CloudStorageDropdownFactory(PanelHeaderDropdown) {
|
|
193
|
+
var dropdownItemsSelector = getDropdownItemsSelector();
|
|
194
|
+
var CloudStorageDropdown = function CloudStorageDropdown(props) {
|
|
195
|
+
return /*#__PURE__*/_react["default"].createElement(PanelHeaderDropdown, {
|
|
196
|
+
items: dropdownItemsSelector(props),
|
|
197
|
+
show: props.show,
|
|
198
|
+
onClose: props.onClose,
|
|
199
|
+
id: "cloud-storage"
|
|
200
|
+
});
|
|
201
|
+
};
|
|
198
202
|
CloudStorageDropdown.defaultProps = {
|
|
199
203
|
items: [{
|
|
200
204
|
label: 'Save',
|
|
201
205
|
icon: _icons.Save2,
|
|
202
206
|
key: 'save',
|
|
203
|
-
onClick: props
|
|
207
|
+
onClick: function onClick(props) {
|
|
208
|
+
return props.onSaveToStorage;
|
|
209
|
+
}
|
|
204
210
|
}, {
|
|
205
211
|
label: 'Save As',
|
|
206
212
|
icon: _icons.Save2,
|
|
207
213
|
key: 'saveAs',
|
|
208
|
-
onClick: props
|
|
214
|
+
onClick: function onClick(props) {
|
|
215
|
+
return props.onSaveAsToStorage;
|
|
216
|
+
}
|
|
209
217
|
}]
|
|
210
218
|
};
|
|
211
219
|
return CloudStorageDropdown;
|
|
212
220
|
};
|
|
213
|
-
exports.CloudStorageDropdownFactory = CloudStorageDropdownFactory;
|
|
214
221
|
CloudStorageDropdownFactory.deps = [PanelHeaderDropdownFactory];
|
|
215
222
|
PanelHeaderFactory.deps = [SaveExportDropdownFactory, CloudStorageDropdownFactory];
|
|
216
223
|
function PanelHeaderFactory(SaveExportDropdown, CloudStorageDropdown) {
|
|
217
224
|
var _PanelHeader;
|
|
218
|
-
return _PanelHeader =
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
225
|
+
return _PanelHeader = /*#__PURE__*/function (_Component) {
|
|
226
|
+
function PanelHeader() {
|
|
227
|
+
(0, _classCallCheck2["default"])(this, PanelHeader);
|
|
228
|
+
return _callSuper(this, PanelHeader, arguments);
|
|
229
|
+
}
|
|
230
|
+
(0, _inherits2["default"])(PanelHeader, _Component);
|
|
231
|
+
return (0, _createClass2["default"])(PanelHeader, [{
|
|
232
|
+
key: "render",
|
|
233
|
+
value: function render() {
|
|
234
|
+
var _this = this;
|
|
235
|
+
var _this$props = this.props,
|
|
236
|
+
appName = _this$props.appName,
|
|
237
|
+
appWebsite = _this$props.appWebsite,
|
|
238
|
+
version = _this$props.version,
|
|
239
|
+
actionItems = _this$props.actionItems,
|
|
240
|
+
visibleDropdown = _this$props.visibleDropdown,
|
|
241
|
+
showExportDropdown = _this$props.showExportDropdown,
|
|
242
|
+
hideExportDropdown = _this$props.hideExportDropdown,
|
|
243
|
+
dropdownCallbacks = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
|
|
244
|
+
var items = actionItems || [];
|
|
231
245
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
className: "side-panel__panel-header"
|
|
238
|
-
}, /*#__PURE__*/_react.default.createElement(StyledPanelHeaderTop, {
|
|
239
|
-
className: "side-panel__panel-header__top"
|
|
240
|
-
}, this.props.logoComponent && /*#__PURE__*/_react.default.createElement(this.props.logoComponent, {
|
|
241
|
-
appName: appName,
|
|
242
|
-
version: version,
|
|
243
|
-
appWebsite: appWebsite
|
|
244
|
-
}), /*#__PURE__*/_react.default.createElement(StyledPanelTopActions, null, items.map(item => /*#__PURE__*/_react.default.createElement("div", {
|
|
245
|
-
className: "side-panel__panel-header__right",
|
|
246
|
-
key: item.id,
|
|
247
|
-
style: {
|
|
248
|
-
position: 'relative'
|
|
246
|
+
// don't render cloud storage icon if onSaveToStorage is not provided
|
|
247
|
+
if (typeof this.props.onSaveToStorage !== 'function') {
|
|
248
|
+
items = items.filter(function (ai) {
|
|
249
|
+
return ai.id !== 'storage';
|
|
250
|
+
});
|
|
249
251
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
252
|
+
return /*#__PURE__*/_react["default"].createElement(StyledPanelHeader, {
|
|
253
|
+
className: "side-panel__panel-header"
|
|
254
|
+
}, /*#__PURE__*/_react["default"].createElement(StyledPanelHeaderTop, {
|
|
255
|
+
className: "side-panel__panel-header__top"
|
|
256
|
+
}, this.props.logoComponent && /*#__PURE__*/_react["default"].createElement(this.props.logoComponent, {
|
|
257
|
+
appName: appName,
|
|
258
|
+
version: version,
|
|
259
|
+
appWebsite: appWebsite
|
|
260
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledPanelTopActions, null, items.map(function (item) {
|
|
261
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
262
|
+
className: "side-panel__panel-header__right",
|
|
263
|
+
key: item.id,
|
|
264
|
+
style: {
|
|
265
|
+
position: 'relative'
|
|
266
|
+
}
|
|
267
|
+
}, /*#__PURE__*/_react["default"].createElement(PanelAction, {
|
|
268
|
+
item: item,
|
|
269
|
+
onClick: function onClick() {
|
|
270
|
+
if (item.dropdownComponent) {
|
|
271
|
+
showExportDropdown(item.id);
|
|
272
|
+
} else {
|
|
273
|
+
item.onClick && item.onClick(_this.props);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}), item.dropdownComponent ? /*#__PURE__*/_react["default"].createElement(item.dropdownComponent, (0, _extends2["default"])({
|
|
277
|
+
onClose: hideExportDropdown,
|
|
278
|
+
show: visibleDropdown === item.id
|
|
279
|
+
}, dropdownCallbacks)) : null);
|
|
280
|
+
}))));
|
|
281
|
+
}
|
|
282
|
+
}]);
|
|
283
|
+
}(_react.Component), (0, _defineProperty2["default"])(_PanelHeader, "defaultProps", {
|
|
284
|
+
logoComponent: _logo["default"],
|
|
266
285
|
actionItems: [{
|
|
267
286
|
id: 'storage',
|
|
268
287
|
iconComponent: _icons.Db,
|
|
269
288
|
tooltip: 'tooltip.cloudStorage',
|
|
270
|
-
onClick: ()
|
|
289
|
+
onClick: function onClick() {},
|
|
271
290
|
dropdownComponent: CloudStorageDropdown
|
|
272
291
|
}, {
|
|
273
292
|
id: 'save',
|
|
274
293
|
iconComponent: _icons.Save,
|
|
275
|
-
onClick: ()
|
|
294
|
+
onClick: function onClick() {},
|
|
276
295
|
label: 'Share',
|
|
277
296
|
dropdownComponent: SaveExportDropdown
|
|
278
297
|
}]
|
|
279
298
|
}), _PanelHeader;
|
|
280
299
|
}
|
|
281
|
-
var _default = exports
|
|
282
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9yZXNlbGVjdCIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9sb2dvIiwiX2ljb25zIiwiX3BhbmVsRHJvcGRvd24iLCJfdG9vbGJhciIsIl90b29sYmFySXRlbSIsIl9sb2NhbGl6YXRpb24iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRQYW5lbEhlYWRlciIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwidGhlbWUiLCJzaWRlUGFuZWxIZWFkZXJCZyIsIlN0eWxlZFBhbmVsSGVhZGVyVG9wIiwiU3R5bGVkUGFuZWxUb3BBY3Rpb25zIiwiU3R5bGVkUGFuZWxBY3Rpb24iLCJhY3RpdmUiLCJ0ZXh0Q29sb3JIbCIsInN1YnRleHRDb2xvciIsIlN0eWxlZFRvb2xiYXIiLCJUb29sYmFyIiwiUGFuZWxBY3Rpb24iLCJfcmVmIiwiaXRlbSIsIm9uQ2xpY2siLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJsYWJlbCIsInRhcmdldCIsImJsYW5rIiwiaHJlZiIsInJlbCIsImljb25Db21wb25lbnQiLCJfZXh0ZW5kczIiLCJoZWlnaHQiLCJpY29uQ29tcG9uZW50UHJvcHMiLCJ0b29sdGlwIiwiVG9vbHRpcCIsInBsYWNlIiwiZGVsYXlTaG93IiwiZWZmZWN0IiwiRm9ybWF0dGVkTWVzc2FnZSIsImV4cG9ydHMiLCJQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeSIsIlBhbmVsSGVhZGVyRHJvcGRvd24iLCJfcmVmMiIsIml0ZW1zIiwic2hvdyIsIm9uQ2xvc2UiLCJtYXAiLCJrZXkiLCJpY29uIiwiZ2V0RHJvcGRvd25JdGVtc1NlbGVjdG9yIiwiY3JlYXRlU2VsZWN0b3IiLCJmaWx0ZXIiLCJsIiwiU2F2ZUV4cG9ydERyb3Bkb3duRmFjdG9yeSIsImRyb3Bkb3duSXRlbXNTZWxlY3RvciIsIlNhdmVFeHBvcnREcm9wZG93biIsImRlZmF1bHRQcm9wcyIsIlBpY3R1cmUiLCJvbkV4cG9ydEltYWdlIiwiRGF0YVRhYmxlIiwib25FeHBvcnREYXRhIiwiTWFwSWNvbiIsIm9uRXhwb3J0TWFwIiwiU2F2ZTIiLCJvblNhdmVNYXAiLCJTaGFyZSIsIm9uU2hhcmVNYXAiLCJkZXBzIiwiQ2xvdWRTdG9yYWdlRHJvcGRvd25GYWN0b3J5IiwiQ2xvdWRTdG9yYWdlRHJvcGRvd24iLCJvblNhdmVUb1N0b3JhZ2UiLCJvblNhdmVBc1RvU3RvcmFnZSIsIlBhbmVsSGVhZGVyRmFjdG9yeSIsIl9QYW5lbEhlYWRlciIsIlBhbmVsSGVhZGVyIiwiQ29tcG9uZW50IiwicmVuZGVyIiwiYXBwTmFtZSIsImFwcFdlYnNpdGUiLCJ2ZXJzaW9uIiwiYWN0aW9uSXRlbXMiLCJ2aXNpYmxlRHJvcGRvd24iLCJzaG93RXhwb3J0RHJvcGRvd24iLCJoaWRlRXhwb3J0RHJvcGRvd24iLCJkcm9wZG93bkNhbGxiYWNrcyIsImFpIiwibG9nb0NvbXBvbmVudCIsInN0eWxlIiwicG9zaXRpb24iLCJkcm9wZG93bkNvbXBvbmVudCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJLZXBsZXJHbExvZ28iLCJEYiIsIlNhdmUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBLZXBsZXJHbExvZ28gZnJvbSAnY29tcG9uZW50cy9jb21tb24vbG9nbyc7XG5pbXBvcnQge1NhdmUsIERhdGFUYWJsZSwgU2F2ZTIsIFBpY3R1cmUsIERiLCBNYXAgYXMgTWFwSWNvbiwgU2hhcmV9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCBDbGlja091dHNpZGVDbG9zZURyb3Bkb3duIGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9wYW5lbC1kcm9wZG93bic7XG5pbXBvcnQgVG9vbGJhciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi90b29sYmFyJztcbmltcG9ydCBUb29sYmFySXRlbSwge1Rvb2xiYXJJdGVtUHJvcHN9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3Rvb2xiYXItaXRlbSc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1VpU3RhdGV9IGZyb20gJ3JlZHVjZXJzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucy9iYXNlJztcblxudHlwZSBTdHlsZWRQYW5lbEFjdGlvblByb3BzID0ge1xuICBhY3RpdmU/OiBib29sZWFuO1xufTtcblxudHlwZSBBY3Rpb25JdGVtID0ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgYmxhbms/OiBib29sZWFuO1xuICBocmVmPzogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBpY29uQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gIGljb25Db21wb25lbnRQcm9wcz86IEJhc2VQcm9wcztcbiAgZHJvcGRvd25Db21wb25lbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPERyb3Bkb3duQ29tcG9uZW50UHJvcHM+O1xuICBvbkNsaWNrPzogKHA6IFBhbmVsSGVhZGVyUHJvcHMpID0+IHZvaWQ7XG59O1xuXG50eXBlIFBhbmVsQWN0aW9uUHJvcHMgPSB7XG4gIGl0ZW06IEFjdGlvbkl0ZW07XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIFBhbmVsSGVhZGVyRHJvcGRvd25Qcm9wcyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgaXRlbXM6IFRvb2xiYXJJdGVtUHJvcHNbXTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIERyb3Bkb3duQ2FsbGJhY2tzID0ge1xuICBsb2dvQ29tcG9uZW50PzogUmVhY3QuQ29tcG9uZW50VHlwZTx7XG4gICAgYXBwTmFtZTogc3RyaW5nO1xuICAgIGFwcFdlYnNpdGU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gIH0+O1xuICBvbkV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xuICBvbkV4cG9ydERhdGE6ICgpID0+IHZvaWQ7XG4gIG9uRXhwb3J0Q29uZmlnPzogKCkgPT4gdm9pZDtcbiAgb25FeHBvcnRNYXA6ICgpID0+IHZvaWQ7XG4gIG9uU2F2ZVRvU3RvcmFnZTogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgb25TYXZlQXNUb1N0b3JhZ2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG4gIG9uU2F2ZU1hcD86ICgpID0+IHZvaWQ7XG4gIG9uU2hhcmVNYXA6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG59O1xuXG50eXBlIEl0ZW0gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAga2V5OiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChwOiBEcm9wZG93bkNvbXBvbmVudFByb3BzKSA9PiAoKCkgPT4gdm9pZCkgfCBudWxsO1xufTtcblxudHlwZSBEcm9wZG93bkNvbXBvbmVudFByb3BzID0ge1xuICBzaG93OiBib29sZWFuO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBpdGVtcz86IEl0ZW1bXTtcbn0gJiBEcm9wZG93bkNhbGxiYWNrcztcblxudHlwZSBQYW5lbEhlYWRlclByb3BzID0ge1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIGFwcFdlYnNpdGU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICB2aXNpYmxlRHJvcGRvd246IFVpU3RhdGVbJ3Zpc2libGVEcm9wZG93biddO1xuICBhY3Rpb25JdGVtcz86IEFjdGlvbkl0ZW1bXTtcbiAgc2hvd0V4cG9ydERyb3Bkb3duOiAoaTogc3RyaW5nKSA9PiB2b2lkO1xuICBoaWRlRXhwb3J0RHJvcGRvd246ICgpID0+IHZvaWQ7XG59ICYgRHJvcGRvd25DYWxsYmFja3M7XG5cbmNvbnN0IFN0eWxlZFBhbmVsSGVhZGVyID0gc3R5bGVkLmRpdi5hdHRycyhwcm9wcyA9PiAoe1xuICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ3NpZGUtc2lkZS1wYW5lbF9faGVhZGVyJywgcHJvcHMuY2xhc3NOYW1lKVxufSkpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbEhlYWRlckJnfTtcbiAgcGFkZGluZzogMTJweCAxNnB4IDAgMTZweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFBhbmVsSGVhZGVyVG9wID0gc3R5bGVkLmRpdi5hdHRycyhwcm9wcyA9PiAoe1xuICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ3NpZGUtcGFuZWxfX2hlYWRlcl9fdG9wJywgcHJvcHMuY2xhc3NOYW1lKVxufSkpYFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuY29uc3QgU3R5bGVkUGFuZWxUb3BBY3Rpb25zID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NpZGUtcGFuZWxfX3RvcF9fYWN0aW9ucydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuY29uc3QgU3R5bGVkUGFuZWxBY3Rpb24gPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2lkZS1wYW5lbF9fcGFuZWwtaGVhZGVyX19hY3Rpb24nXG59KTxTdHlsZWRQYW5lbEFjdGlvblByb3BzPmBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUudGV4dENvbG9ySGwgOiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3IpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuICBhIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRvb2xiYXIgPSBzdHlsZWQoVG9vbGJhcilgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQYW5lbEFjdGlvbjogUmVhY3QuRkM8UGFuZWxBY3Rpb25Qcm9wcz4gPSAoe2l0ZW0sIG9uQ2xpY2t9KSA9PiAoXG4gIDxTdHlsZWRQYW5lbEFjdGlvbiBkYXRhLXRpcCBkYXRhLWZvcj17YCR7aXRlbS5pZH0tYWN0aW9uYH0gb25DbGljaz17b25DbGlja30+XG4gICAge2l0ZW0ubGFiZWwgPyA8cD57aXRlbS5sYWJlbH08L3A+IDogbnVsbH1cbiAgICA8YSB0YXJnZXQ9e2l0ZW0uYmxhbmsgPyAnX2JsYW5rJyA6ICcnfSBocmVmPXtpdGVtLmhyZWZ9IHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgIDxpdGVtLmljb25Db21wb25lbnQgaGVpZ2h0PVwiMjBweFwiIHsuLi5pdGVtLmljb25Db21wb25lbnRQcm9wc30gLz5cbiAgICA8L2E+XG4gICAge2l0ZW0udG9vbHRpcCA/IChcbiAgICAgIDxUb29sdGlwIGlkPXtgJHtpdGVtLmlkfS1hY3Rpb25gfSBwbGFjZT1cImJvdHRvbVwiIGRlbGF5U2hvdz17NTAwfSBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aXRlbS50b29sdGlwfSAvPlxuICAgICAgPC9Ub29sdGlwPlxuICAgICkgOiBudWxsfVxuICA8L1N0eWxlZFBhbmVsQWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IFBhbmVsSGVhZGVyRHJvcGRvd25GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZWFjdC5GQzxQYW5lbEhlYWRlckRyb3Bkb3duUHJvcHM+ID0gKHtpdGVtcywgc2hvdywgb25DbG9zZSwgaWR9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRUb29sYmFyIHNob3c9e3Nob3d9IGNsYXNzTmFtZT17YCR7aWR9LWRyb3Bkb3duYH0+XG4gICAgICAgIDxDbGlja091dHNpZGVDbG9zZURyb3Bkb3duXG4gICAgICAgICAgY2xhc3NOYW1lPVwicGFuZWwtaGVhZGVyLWRyb3Bkb3duX19pbm5lclwiXG4gICAgICAgICAgc2hvdz17c2hvd31cbiAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgICA+XG4gICAgICAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICBpZD17aXRlbS5rZXl9XG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICBpY29uPXtpdGVtLmljb259XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2l0ZW0ub25DbGlja31cbiAgICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvQ2xpY2tPdXRzaWRlQ2xvc2VEcm9wZG93bj5cbiAgICAgIDwvU3R5bGVkVG9vbGJhcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBQYW5lbEhlYWRlckRyb3Bkb3duO1xufTtcblxuY29uc3QgZ2V0RHJvcGRvd25JdGVtc1NlbGVjdG9yID0gKCkgPT5cbiAgY3JlYXRlU2VsZWN0b3IoXG4gICAgKHByb3BzOiBEcm9wZG93bkNvbXBvbmVudFByb3BzKSA9PiBwcm9wcyxcbiAgICBwcm9wcyA9PlxuICAgICAgKHByb3BzLml0ZW1zIHx8IFtdKVxuICAgICAgICAubWFwKHQgPT4gKHtcbiAgICAgICAgICAuLi50LFxuICAgICAgICAgIG9uQ2xpY2s6IHQub25DbGljayAmJiB0Lm9uQ2xpY2socHJvcHMpID8gdC5vbkNsaWNrKHByb3BzKSA6IG51bGxcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIobCA9PiBsLm9uQ2xpY2spXG4gICk7XG5cbmV4cG9ydCBjb25zdCBTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5ID0gKFxuICBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeT5cbikgPT4ge1xuICBjb25zdCBkcm9wZG93bkl0ZW1zU2VsZWN0b3IgPSBnZXREcm9wZG93bkl0ZW1zU2VsZWN0b3IoKTtcblxuICBjb25zdCBTYXZlRXhwb3J0RHJvcGRvd246IFJlYWN0LkZDPERyb3Bkb3duQ29tcG9uZW50UHJvcHM+ID0gcHJvcHMgPT4gKFxuICAgIDxQYW5lbEhlYWRlckRyb3Bkb3duXG4gICAgICBpdGVtcz17ZHJvcGRvd25JdGVtc1NlbGVjdG9yKHByb3BzKX1cbiAgICAgIHNob3c9e3Byb3BzLnNob3d9XG4gICAgICBvbkNsb3NlPXtwcm9wcy5vbkNsb3NlfVxuICAgICAgaWQ9XCJzYXZlLWV4cG9ydFwiXG4gICAgLz5cbiAgKTtcblxuICBTYXZlRXhwb3J0RHJvcGRvd24uZGVmYXVsdFByb3BzID0ge1xuICAgIGl0ZW1zOiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5leHBvcnRJbWFnZScsXG4gICAgICAgIGljb246IFBpY3R1cmUsXG4gICAgICAgIGtleTogJ2ltYWdlJyxcbiAgICAgICAgb25DbGljazogcHJvcHMgPT4gcHJvcHMub25FeHBvcnRJbWFnZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICd0b29sYmFyLmV4cG9ydERhdGEnLFxuICAgICAgICBpY29uOiBEYXRhVGFibGUsXG4gICAgICAgIGtleTogJ2RhdGEnLFxuICAgICAgICBvbkNsaWNrOiBwcm9wcyA9PiBwcm9wcy5vbkV4cG9ydERhdGFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5leHBvcnRNYXAnLFxuICAgICAgICBpY29uOiBNYXBJY29uLFxuICAgICAgICBrZXk6ICdtYXAnLFxuICAgICAgICBvbkNsaWNrOiBwcm9wcyA9PiBwcm9wcy5vbkV4cG9ydE1hcFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICd0b29sYmFyLnNhdmVNYXAnLFxuICAgICAgICBpY29uOiBTYXZlMixcbiAgICAgICAga2V5OiAnc2F2ZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZU1hcCFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5zaGFyZU1hcFVSTCcsXG4gICAgICAgIGljb246IFNoYXJlLFxuICAgICAgICBrZXk6ICdzaGFyZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2hhcmVNYXBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIFNhdmVFeHBvcnREcm9wZG93bjtcbn07XG5TYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJEcm9wZG93bkZhY3RvcnldO1xuXG5leHBvcnQgY29uc3QgQ2xvdWRTdG9yYWdlRHJvcGRvd25GYWN0b3J5ID0gKFxuICBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeT5cbikgPT4ge1xuICBjb25zdCBkcm9wZG93bkl0ZW1zU2VsZWN0b3IgPSBnZXREcm9wZG93bkl0ZW1zU2VsZWN0b3IoKTtcblxuICBjb25zdCBDbG91ZFN0b3JhZ2VEcm9wZG93bjogUmVhY3QuRkM8RHJvcGRvd25Db21wb25lbnRQcm9wcz4gPSBwcm9wcyA9PiAoXG4gICAgPFBhbmVsSGVhZGVyRHJvcGRvd25cbiAgICAgIGl0ZW1zPXtkcm9wZG93bkl0ZW1zU2VsZWN0b3IocHJvcHMpfVxuICAgICAgc2hvdz17cHJvcHMuc2hvd31cbiAgICAgIG9uQ2xvc2U9e3Byb3BzLm9uQ2xvc2V9XG4gICAgICBpZD1cImNsb3VkLXN0b3JhZ2VcIlxuICAgIC8+XG4gICk7XG4gIENsb3VkU3RvcmFnZURyb3Bkb3duLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBpdGVtczogW1xuICAgICAge1xuICAgICAgICBsYWJlbDogJ1NhdmUnLFxuICAgICAgICBpY29uOiBTYXZlMixcbiAgICAgICAga2V5OiAnc2F2ZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZVRvU3RvcmFnZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdTYXZlIEFzJyxcbiAgICAgICAgaWNvbjogU2F2ZTIsXG4gICAgICAgIGtleTogJ3NhdmVBcycsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZUFzVG9TdG9yYWdlXG4gICAgICB9XG4gICAgXVxuICB9O1xuICByZXR1cm4gQ2xvdWRTdG9yYWdlRHJvcGRvd247XG59O1xuQ2xvdWRTdG9yYWdlRHJvcGRvd25GYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJEcm9wZG93bkZhY3RvcnldO1xuXG5QYW5lbEhlYWRlckZhY3RvcnkuZGVwcyA9IFtTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5LCBDbG91ZFN0b3JhZ2VEcm9wZG93bkZhY3RvcnldO1xuXG5mdW5jdGlvbiBQYW5lbEhlYWRlckZhY3RvcnkoXG4gIFNhdmVFeHBvcnREcm9wZG93bjogUmV0dXJuVHlwZTx0eXBlb2YgU2F2ZUV4cG9ydERyb3Bkb3duRmFjdG9yeT4sXG4gIENsb3VkU3RvcmFnZURyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBDbG91ZFN0b3JhZ2VEcm9wZG93bkZhY3Rvcnk+XG4pOiBSZWFjdC5Db21wb25lbnRUeXBlPFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgcmV0dXJuIGNsYXNzIFBhbmVsSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50PFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgbG9nb0NvbXBvbmVudDogS2VwbGVyR2xMb2dvLFxuICAgICAgYWN0aW9uSXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc3RvcmFnZScsXG4gICAgICAgICAgaWNvbkNvbXBvbmVudDogRGIsXG4gICAgICAgICAgdG9vbHRpcDogJ3Rvb2x0aXAuY2xvdWRTdG9yYWdlJyxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgICAgICAgICBkcm9wZG93bkNvbXBvbmVudDogQ2xvdWRTdG9yYWdlRHJvcGRvd25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc2F2ZScsXG4gICAgICAgICAgaWNvbkNvbXBvbmVudDogU2F2ZSxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgICAgICAgICBsYWJlbDogJ1NoYXJlJyxcbiAgICAgICAgICBkcm9wZG93bkNvbXBvbmVudDogU2F2ZUV4cG9ydERyb3Bkb3duXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhcHBOYW1lLFxuICAgICAgICBhcHBXZWJzaXRlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBhY3Rpb25JdGVtcyxcbiAgICAgICAgdmlzaWJsZURyb3Bkb3duLFxuICAgICAgICBzaG93RXhwb3J0RHJvcGRvd24sXG4gICAgICAgIGhpZGVFeHBvcnREcm9wZG93bixcbiAgICAgICAgLi4uZHJvcGRvd25DYWxsYmFja3NcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgbGV0IGl0ZW1zID0gYWN0aW9uSXRlbXMgfHwgW107XG5cbiAgICAgIC8vIGRvbid0IHJlbmRlciBjbG91ZCBzdG9yYWdlIGljb24gaWYgb25TYXZlVG9TdG9yYWdlIGlzIG5vdCBwcm92aWRlZFxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uU2F2ZVRvU3RvcmFnZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcihhaSA9PiBhaS5pZCAhPT0gJ3N0b3JhZ2UnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZFBhbmVsSGVhZGVyIGNsYXNzTmFtZT1cInNpZGUtcGFuZWxfX3BhbmVsLWhlYWRlclwiPlxuICAgICAgICAgIDxTdHlsZWRQYW5lbEhlYWRlclRvcCBjbGFzc05hbWU9XCJzaWRlLXBhbmVsX19wYW5lbC1oZWFkZXJfX3RvcFwiPlxuICAgICAgICAgICAge3RoaXMucHJvcHMubG9nb0NvbXBvbmVudCAmJiAoXG4gICAgICAgICAgICAgIDx0aGlzLnByb3BzLmxvZ29Db21wb25lbnRcbiAgICAgICAgICAgICAgICBhcHBOYW1lPXthcHBOYW1lfVxuICAgICAgICAgICAgICAgIHZlcnNpb249e3ZlcnNpb259XG4gICAgICAgICAgICAgICAgYXBwV2Vic2l0ZT17YXBwV2Vic2l0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8U3R5bGVkUGFuZWxUb3BBY3Rpb25zPlxuICAgICAgICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpZGUtcGFuZWxfX3BhbmVsLWhlYWRlcl9fcmlnaHRcIlxuICAgICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5kcm9wZG93bkNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0V4cG9ydERyb3Bkb3duKGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9uQ2xpY2sgJiYgaXRlbS5vbkNsaWNrKHRoaXMucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5kcm9wZG93bkNvbXBvbmVudCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGl0ZW0uZHJvcGRvd25Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXtoaWRlRXhwb3J0RHJvcGRvd259XG4gICAgICAgICAgICAgICAgICAgICAgc2hvdz17dmlzaWJsZURyb3Bkb3duID09PSBpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHsuLi5kcm9wZG93bkNhbGxiYWNrc31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU3R5bGVkUGFuZWxUb3BBY3Rpb25zPlxuICAgICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXJUb3A+XG4gICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxIZWFkZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFvQkEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtB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RUFBRTNCLElBQUksQ0FBQ0csRUFBRztRQUNiZ0UsS0FBSyxFQUFFO1VBQUNDLFFBQVEsRUFBRTtRQUFVO01BQUUsZ0JBRTlCekgsTUFBQSxDQUFBb0IsT0FBQSxDQUFBbUMsYUFBQSxDQUFDSixXQUFXO1FBQ1ZFLElBQUksRUFBRUEsSUFBSztRQUNYQyxPQUFPLEVBQUVBLENBQUEsS0FBTTtVQUNiLElBQUlELElBQUksQ0FBQ3FFLGlCQUFpQixFQUFFO1lBQzFCUCxrQkFBa0IsQ0FBQzlELElBQUksQ0FBQ0csRUFBRSxDQUFDO1VBQzdCLENBQUMsTUFBTTtZQUNMSCxJQUFJLENBQUNDLE9BQU8sSUFBSUQsSUFBSSxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDaEIsS0FBSyxDQUFDO1VBQzFDO1FBQ0Y7TUFBRSxDQUNILENBQUMsRUFDRGUsSUFBSSxDQUFDcUUsaUJBQWlCLGdCQUNyQjFILE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQW1DLGFBQUEsQ0FBQ0YsSUFBSSxDQUFDcUUsaUJBQWlCLE1BQUEzRCxTQUFBLENBQUEzQyxPQUFBO1FBQ3JCMEQsT0FBTyxFQUFFc0Msa0JBQW1CO1FBQzVCdkMsSUFBSSxFQUFFcUMsZUFBZSxLQUFLN0QsSUFBSSxDQUFDRztNQUFHLEdBQzlCNkQsaUJBQWlCLENBQ3RCLENBQUMsR0FDQSxJQUNELENBQ04sQ0FDb0IsQ0FDSCxDQUNMLENBQUM7SUFFeEI7RUFDRixDQUFDLE1BQUFNLGdCQUFBLENBQUF2RyxPQUFBLEVBQUFzRixZQUFBLGtCQS9FdUI7SUFDcEJhLGFBQWEsRUFBRUssYUFBWTtJQUMzQlgsV0FBVyxFQUFFLENBQ1g7TUFDRXpELEVBQUUsRUFBRSxTQUFTO01BQ2JNLGFBQWEsRUFBRStELFNBQUU7TUFDakIzRCxPQUFPLEVBQUUsc0JBQXNCO01BQy9CWixPQUFPLEVBQUVBLENBQUEsS0FBTSxDQUFDLENBQUM7TUFDakJvRSxpQkFBaUIsRUFBRXBCO0lBQ3JCLENBQUMsRUFDRDtNQUNFOUMsRUFBRSxFQUFFLE1BQU07TUFDVk0sYUFBYSxFQUFFZ0UsV0FBSTtNQUNuQnhFLE9BQU8sRUFBRUEsQ0FBQSxLQUFNLENBQUMsQ0FBQztNQUNqQkcsS0FBSyxFQUFFLE9BQU87TUFDZGlFLGlCQUFpQixFQUFFbEM7SUFDckIsQ0FBQztFQUVMLENBQUMsR0FBQWtCLFlBQUE7QUE4REw7QUFBQyxJQUFBcUIsUUFBQSxHQUFBdkQsT0FBQSxDQUFBcEQsT0FBQSxHQUVjcUYsa0JBQWtCIiwiaWdub3JlTGlzdCI6W119
|
|
300
|
+
var _default = exports["default"] = PanelHeaderFactory;
|
|
301
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9yZXNlbGVjdCIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9sb2dvIiwiX2ljb25zIiwiX3BhbmVsRHJvcGRvd24iLCJfdG9vbGJhciIsIl90b29sYmFySXRlbSIsIl9sb2NhbGl6YXRpb24iLCJfZXhjbHVkZWQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRQYW5lbEhlYWRlciIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwicHJvcHMiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJ0aGVtZSIsInNpZGVQYW5lbEhlYWRlckJnIiwiU3R5bGVkUGFuZWxIZWFkZXJUb3AiLCJTdHlsZWRQYW5lbFRvcEFjdGlvbnMiLCJTdHlsZWRQYW5lbEFjdGlvbiIsImFjdGl2ZSIsInRleHRDb2xvckhsIiwic3VidGV4dENvbG9yIiwiU3R5bGVkVG9vbGJhciIsIlRvb2xiYXIiLCJQYW5lbEFjdGlvbiIsImV4cG9ydHMiLCJfcmVmIiwiaXRlbSIsIm9uQ2xpY2siLCJjcmVhdGVFbGVtZW50IiwiY29uY2F0IiwiaWQiLCJsYWJlbCIsInRhcmdldCIsImJsYW5rIiwiaHJlZiIsInJlbCIsImljb25Db21wb25lbnQiLCJfZXh0ZW5kczIiLCJoZWlnaHQiLCJpY29uQ29tcG9uZW50UHJvcHMiLCJ0b29sdGlwIiwiVG9vbHRpcCIsInBsYWNlIiwiZGVsYXlTaG93IiwiZWZmZWN0IiwiRm9ybWF0dGVkTWVzc2FnZSIsIlBhbmVsSGVhZGVyRHJvcGRvd25GYWN0b3J5IiwiUGFuZWxIZWFkZXJEcm9wZG93biIsIl9yZWYyIiwiaXRlbXMiLCJzaG93Iiwib25DbG9zZSIsIm1hcCIsImtleSIsImljb24iLCJnZXREcm9wZG93bkl0ZW1zU2VsZWN0b3IiLCJjcmVhdGVTZWxlY3RvciIsImwiLCJTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5IiwiZHJvcGRvd25JdGVtc1NlbGVjdG9yIiwiU2F2ZUV4cG9ydERyb3Bkb3duIiwiZGVmYXVsdFByb3BzIiwiUGljdHVyZSIsIm9uRXhwb3J0SW1hZ2UiLCJEYXRhVGFibGUiLCJvbkV4cG9ydERhdGEiLCJNYXBJY29uIiwib25FeHBvcnRNYXAiLCJTYXZlMiIsIm9uU2F2ZU1hcCIsIlNoYXJlIiwib25TaGFyZU1hcCIsImRlcHMiLCJDbG91ZFN0b3JhZ2VEcm9wZG93bkZhY3RvcnkiLCJDbG91ZFN0b3JhZ2VEcm9wZG93biIsIm9uU2F2ZVRvU3RvcmFnZSIsIm9uU2F2ZUFzVG9TdG9yYWdlIiwiUGFuZWxIZWFkZXJGYWN0b3J5IiwiX1BhbmVsSGVhZGVyIiwiX0NvbXBvbmVudCIsIlBhbmVsSGVhZGVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJyZW5kZXIiLCJfdGhpcyIsIl90aGlzJHByb3BzIiwiYXBwTmFtZSIsImFwcFdlYnNpdGUiLCJ2ZXJzaW9uIiwiYWN0aW9uSXRlbXMiLCJ2aXNpYmxlRHJvcGRvd24iLCJzaG93RXhwb3J0RHJvcGRvd24iLCJoaWRlRXhwb3J0RHJvcGRvd24iLCJkcm9wZG93bkNhbGxiYWNrcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJhaSIsImxvZ29Db21wb25lbnQiLCJzdHlsZSIsInBvc2l0aW9uIiwiZHJvcGRvd25Db21wb25lbnQiLCJDb21wb25lbnQiLCJLZXBsZXJHbExvZ28iLCJEYiIsIlNhdmUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBLZXBsZXJHbExvZ28gZnJvbSAnY29tcG9uZW50cy9jb21tb24vbG9nbyc7XG5pbXBvcnQge1NhdmUsIERhdGFUYWJsZSwgU2F2ZTIsIFBpY3R1cmUsIERiLCBNYXAgYXMgTWFwSWNvbiwgU2hhcmV9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCBDbGlja091dHNpZGVDbG9zZURyb3Bkb3duIGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9wYW5lbC1kcm9wZG93bic7XG5pbXBvcnQgVG9vbGJhciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi90b29sYmFyJztcbmltcG9ydCBUb29sYmFySXRlbSwge1Rvb2xiYXJJdGVtUHJvcHN9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3Rvb2xiYXItaXRlbSc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1VpU3RhdGV9IGZyb20gJ3JlZHVjZXJzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucy9iYXNlJztcblxudHlwZSBTdHlsZWRQYW5lbEFjdGlvblByb3BzID0ge1xuICBhY3RpdmU/OiBib29sZWFuO1xufTtcblxudHlwZSBBY3Rpb25JdGVtID0ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgYmxhbms/OiBib29sZWFuO1xuICBocmVmPzogc3RyaW5nO1xuICB0b29sdGlwPzogc3RyaW5nO1xuICBpY29uQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gIGljb25Db21wb25lbnRQcm9wcz86IEJhc2VQcm9wcztcbiAgZHJvcGRvd25Db21wb25lbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPERyb3Bkb3duQ29tcG9uZW50UHJvcHM+O1xuICBvbkNsaWNrPzogKHA6IFBhbmVsSGVhZGVyUHJvcHMpID0+IHZvaWQ7XG59O1xuXG50eXBlIFBhbmVsQWN0aW9uUHJvcHMgPSB7XG4gIGl0ZW06IEFjdGlvbkl0ZW07XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIFBhbmVsSGVhZGVyRHJvcGRvd25Qcm9wcyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgaXRlbXM6IFRvb2xiYXJJdGVtUHJvcHNbXTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIERyb3Bkb3duQ2FsbGJhY2tzID0ge1xuICBsb2dvQ29tcG9uZW50PzogUmVhY3QuQ29tcG9uZW50VHlwZTx7XG4gICAgYXBwTmFtZTogc3RyaW5nO1xuICAgIGFwcFdlYnNpdGU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gIH0+O1xuICBvbkV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xuICBvbkV4cG9ydERhdGE6ICgpID0+IHZvaWQ7XG4gIG9uRXhwb3J0Q29uZmlnPzogKCkgPT4gdm9pZDtcbiAgb25FeHBvcnRNYXA6ICgpID0+IHZvaWQ7XG4gIG9uU2F2ZVRvU3RvcmFnZTogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgb25TYXZlQXNUb1N0b3JhZ2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG4gIG9uU2F2ZU1hcD86ICgpID0+IHZvaWQ7XG4gIG9uU2hhcmVNYXA6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG59O1xuXG50eXBlIEl0ZW0gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAga2V5OiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChwOiBEcm9wZG93bkNvbXBvbmVudFByb3BzKSA9PiAoKCkgPT4gdm9pZCkgfCBudWxsO1xufTtcblxudHlwZSBEcm9wZG93bkNvbXBvbmVudFByb3BzID0ge1xuICBzaG93OiBib29sZWFuO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBpdGVtcz86IEl0ZW1bXTtcbn0gJiBEcm9wZG93bkNhbGxiYWNrcztcblxudHlwZSBQYW5lbEhlYWRlclByb3BzID0ge1xuICBhcHBOYW1lOiBzdHJpbmc7XG4gIGFwcFdlYnNpdGU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICB2aXNpYmxlRHJvcGRvd246IFVpU3RhdGVbJ3Zpc2libGVEcm9wZG93biddO1xuICBhY3Rpb25JdGVtcz86IEFjdGlvbkl0ZW1bXTtcbiAgc2hvd0V4cG9ydERyb3Bkb3duOiAoaTogc3RyaW5nKSA9PiB2b2lkO1xuICBoaWRlRXhwb3J0RHJvcGRvd246ICgpID0+IHZvaWQ7XG59ICYgRHJvcGRvd25DYWxsYmFja3M7XG5cbmNvbnN0IFN0eWxlZFBhbmVsSGVhZGVyID0gc3R5bGVkLmRpdi5hdHRycyhwcm9wcyA9PiAoe1xuICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ3NpZGUtc2lkZS1wYW5lbF9faGVhZGVyJywgcHJvcHMuY2xhc3NOYW1lKVxufSkpYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbEhlYWRlckJnfTtcbiAgcGFkZGluZzogMTJweCAxNnB4IDAgMTZweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFBhbmVsSGVhZGVyVG9wID0gc3R5bGVkLmRpdi5hdHRycyhwcm9wcyA9PiAoe1xuICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoJ3NpZGUtcGFuZWxfX2hlYWRlcl9fdG9wJywgcHJvcHMuY2xhc3NOYW1lKVxufSkpYFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuYDtcblxuY29uc3QgU3R5bGVkUGFuZWxUb3BBY3Rpb25zID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NpZGUtcGFuZWxfX3RvcF9fYWN0aW9ucydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuY29uc3QgU3R5bGVkUGFuZWxBY3Rpb24gPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2lkZS1wYW5lbF9fcGFuZWwtaGVhZGVyX19hY3Rpb24nXG59KTxTdHlsZWRQYW5lbEFjdGlvblByb3BzPmBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuYWN0aXZlID8gcHJvcHMudGhlbWUudGV4dENvbG9ySGwgOiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3IpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuICBhIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRvb2xiYXIgPSBzdHlsZWQoVG9vbGJhcilgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQYW5lbEFjdGlvbjogUmVhY3QuRkM8UGFuZWxBY3Rpb25Qcm9wcz4gPSAoe2l0ZW0sIG9uQ2xpY2t9KSA9PiAoXG4gIDxTdHlsZWRQYW5lbEFjdGlvbiBkYXRhLXRpcCBkYXRhLWZvcj17YCR7aXRlbS5pZH0tYWN0aW9uYH0gb25DbGljaz17b25DbGlja30+XG4gICAge2l0ZW0ubGFiZWwgPyA8cD57aXRlbS5sYWJlbH08L3A+IDogbnVsbH1cbiAgICA8YSB0YXJnZXQ9e2l0ZW0uYmxhbmsgPyAnX2JsYW5rJyA6ICcnfSBocmVmPXtpdGVtLmhyZWZ9IHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgIDxpdGVtLmljb25Db21wb25lbnQgaGVpZ2h0PVwiMjBweFwiIHsuLi5pdGVtLmljb25Db21wb25lbnRQcm9wc30gLz5cbiAgICA8L2E+XG4gICAge2l0ZW0udG9vbHRpcCA/IChcbiAgICAgIDxUb29sdGlwIGlkPXtgJHtpdGVtLmlkfS1hY3Rpb25gfSBwbGFjZT1cImJvdHRvbVwiIGRlbGF5U2hvdz17NTAwfSBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aXRlbS50b29sdGlwfSAvPlxuICAgICAgPC9Ub29sdGlwPlxuICAgICkgOiBudWxsfVxuICA8L1N0eWxlZFBhbmVsQWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IFBhbmVsSGVhZGVyRHJvcGRvd25GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZWFjdC5GQzxQYW5lbEhlYWRlckRyb3Bkb3duUHJvcHM+ID0gKHtpdGVtcywgc2hvdywgb25DbG9zZSwgaWR9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRUb29sYmFyIHNob3c9e3Nob3d9IGNsYXNzTmFtZT17YCR7aWR9LWRyb3Bkb3duYH0+XG4gICAgICAgIDxDbGlja091dHNpZGVDbG9zZURyb3Bkb3duXG4gICAgICAgICAgY2xhc3NOYW1lPVwicGFuZWwtaGVhZGVyLWRyb3Bkb3duX19pbm5lclwiXG4gICAgICAgICAgc2hvdz17c2hvd31cbiAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgICA+XG4gICAgICAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAgICAgICAgICAgIDxUb29sYmFySXRlbVxuICAgICAgICAgICAgICBpZD17aXRlbS5rZXl9XG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICBpY29uPXtpdGVtLmljb259XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2l0ZW0ub25DbGlja31cbiAgICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvQ2xpY2tPdXRzaWRlQ2xvc2VEcm9wZG93bj5cbiAgICAgIDwvU3R5bGVkVG9vbGJhcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBQYW5lbEhlYWRlckRyb3Bkb3duO1xufTtcblxuY29uc3QgZ2V0RHJvcGRvd25JdGVtc1NlbGVjdG9yID0gKCkgPT5cbiAgY3JlYXRlU2VsZWN0b3IoXG4gICAgKHByb3BzOiBEcm9wZG93bkNvbXBvbmVudFByb3BzKSA9PiBwcm9wcyxcbiAgICBwcm9wcyA9PlxuICAgICAgKHByb3BzLml0ZW1zIHx8IFtdKVxuICAgICAgICAubWFwKHQgPT4gKHtcbiAgICAgICAgICAuLi50LFxuICAgICAgICAgIG9uQ2xpY2s6IHQub25DbGljayAmJiB0Lm9uQ2xpY2socHJvcHMpID8gdC5vbkNsaWNrKHByb3BzKSA6IG51bGxcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIobCA9PiBsLm9uQ2xpY2spXG4gICk7XG5cbmV4cG9ydCBjb25zdCBTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5ID0gKFxuICBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeT5cbikgPT4ge1xuICBjb25zdCBkcm9wZG93bkl0ZW1zU2VsZWN0b3IgPSBnZXREcm9wZG93bkl0ZW1zU2VsZWN0b3IoKTtcblxuICBjb25zdCBTYXZlRXhwb3J0RHJvcGRvd246IFJlYWN0LkZDPERyb3Bkb3duQ29tcG9uZW50UHJvcHM+ID0gcHJvcHMgPT4gKFxuICAgIDxQYW5lbEhlYWRlckRyb3Bkb3duXG4gICAgICBpdGVtcz17ZHJvcGRvd25JdGVtc1NlbGVjdG9yKHByb3BzKX1cbiAgICAgIHNob3c9e3Byb3BzLnNob3d9XG4gICAgICBvbkNsb3NlPXtwcm9wcy5vbkNsb3NlfVxuICAgICAgaWQ9XCJzYXZlLWV4cG9ydFwiXG4gICAgLz5cbiAgKTtcblxuICBTYXZlRXhwb3J0RHJvcGRvd24uZGVmYXVsdFByb3BzID0ge1xuICAgIGl0ZW1zOiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5leHBvcnRJbWFnZScsXG4gICAgICAgIGljb246IFBpY3R1cmUsXG4gICAgICAgIGtleTogJ2ltYWdlJyxcbiAgICAgICAgb25DbGljazogcHJvcHMgPT4gcHJvcHMub25FeHBvcnRJbWFnZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICd0b29sYmFyLmV4cG9ydERhdGEnLFxuICAgICAgICBpY29uOiBEYXRhVGFibGUsXG4gICAgICAgIGtleTogJ2RhdGEnLFxuICAgICAgICBvbkNsaWNrOiBwcm9wcyA9PiBwcm9wcy5vbkV4cG9ydERhdGFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5leHBvcnRNYXAnLFxuICAgICAgICBpY29uOiBNYXBJY29uLFxuICAgICAgICBrZXk6ICdtYXAnLFxuICAgICAgICBvbkNsaWNrOiBwcm9wcyA9PiBwcm9wcy5vbkV4cG9ydE1hcFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICd0b29sYmFyLnNhdmVNYXAnLFxuICAgICAgICBpY29uOiBTYXZlMixcbiAgICAgICAga2V5OiAnc2F2ZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZU1hcCFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAndG9vbGJhci5zaGFyZU1hcFVSTCcsXG4gICAgICAgIGljb246IFNoYXJlLFxuICAgICAgICBrZXk6ICdzaGFyZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2hhcmVNYXBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIFNhdmVFeHBvcnREcm9wZG93bjtcbn07XG5TYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJEcm9wZG93bkZhY3RvcnldO1xuXG5leHBvcnQgY29uc3QgQ2xvdWRTdG9yYWdlRHJvcGRvd25GYWN0b3J5ID0gKFxuICBQYW5lbEhlYWRlckRyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckRyb3Bkb3duRmFjdG9yeT5cbikgPT4ge1xuICBjb25zdCBkcm9wZG93bkl0ZW1zU2VsZWN0b3IgPSBnZXREcm9wZG93bkl0ZW1zU2VsZWN0b3IoKTtcblxuICBjb25zdCBDbG91ZFN0b3JhZ2VEcm9wZG93bjogUmVhY3QuRkM8RHJvcGRvd25Db21wb25lbnRQcm9wcz4gPSBwcm9wcyA9PiAoXG4gICAgPFBhbmVsSGVhZGVyRHJvcGRvd25cbiAgICAgIGl0ZW1zPXtkcm9wZG93bkl0ZW1zU2VsZWN0b3IocHJvcHMpfVxuICAgICAgc2hvdz17cHJvcHMuc2hvd31cbiAgICAgIG9uQ2xvc2U9e3Byb3BzLm9uQ2xvc2V9XG4gICAgICBpZD1cImNsb3VkLXN0b3JhZ2VcIlxuICAgIC8+XG4gICk7XG4gIENsb3VkU3RvcmFnZURyb3Bkb3duLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBpdGVtczogW1xuICAgICAge1xuICAgICAgICBsYWJlbDogJ1NhdmUnLFxuICAgICAgICBpY29uOiBTYXZlMixcbiAgICAgICAga2V5OiAnc2F2ZScsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZVRvU3RvcmFnZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdTYXZlIEFzJyxcbiAgICAgICAgaWNvbjogU2F2ZTIsXG4gICAgICAgIGtleTogJ3NhdmVBcycsXG4gICAgICAgIG9uQ2xpY2s6IHByb3BzID0+IHByb3BzLm9uU2F2ZUFzVG9TdG9yYWdlXG4gICAgICB9XG4gICAgXVxuICB9O1xuICByZXR1cm4gQ2xvdWRTdG9yYWdlRHJvcGRvd247XG59O1xuQ2xvdWRTdG9yYWdlRHJvcGRvd25GYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJEcm9wZG93bkZhY3RvcnldO1xuXG5QYW5lbEhlYWRlckZhY3RvcnkuZGVwcyA9IFtTYXZlRXhwb3J0RHJvcGRvd25GYWN0b3J5LCBDbG91ZFN0b3JhZ2VEcm9wZG93bkZhY3RvcnldO1xuXG5mdW5jdGlvbiBQYW5lbEhlYWRlckZhY3RvcnkoXG4gIFNhdmVFeHBvcnREcm9wZG93bjogUmV0dXJuVHlwZTx0eXBlb2YgU2F2ZUV4cG9ydERyb3Bkb3duRmFjdG9yeT4sXG4gIENsb3VkU3RvcmFnZURyb3Bkb3duOiBSZXR1cm5UeXBlPHR5cGVvZiBDbG91ZFN0b3JhZ2VEcm9wZG93bkZhY3Rvcnk+XG4pOiBSZWFjdC5Db21wb25lbnRUeXBlPFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgcmV0dXJuIGNsYXNzIFBhbmVsSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50PFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgbG9nb0NvbXBvbmVudDogS2VwbGVyR2xMb2dvLFxuICAgICAgYWN0aW9uSXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc3RvcmFnZScsXG4gICAgICAgICAgaWNvbkNvbXBvbmVudDogRGIsXG4gICAgICAgICAgdG9vbHRpcDogJ3Rvb2x0aXAuY2xvdWRTdG9yYWdlJyxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgICAgICAgICBkcm9wZG93bkNvbXBvbmVudDogQ2xvdWRTdG9yYWdlRHJvcGRvd25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc2F2ZScsXG4gICAgICAgICAgaWNvbkNvbXBvbmVudDogU2F2ZSxcbiAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7fSxcbiAgICAgICAgICBsYWJlbDogJ1NoYXJlJyxcbiAgICAgICAgICBkcm9wZG93bkNvbXBvbmVudDogU2F2ZUV4cG9ydERyb3Bkb3duXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhcHBOYW1lLFxuICAgICAgICBhcHBXZWJzaXRlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBhY3Rpb25JdGVtcyxcbiAgICAgICAgdmlzaWJsZURyb3Bkb3duLFxuICAgICAgICBzaG93RXhwb3J0RHJvcGRvd24sXG4gICAgICAgIGhpZGVFeHBvcnREcm9wZG93bixcbiAgICAgICAgLi4uZHJvcGRvd25DYWxsYmFja3NcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgbGV0IGl0ZW1zID0gYWN0aW9uSXRlbXMgfHwgW107XG5cbiAgICAgIC8vIGRvbid0IHJlbmRlciBjbG91ZCBzdG9yYWdlIGljb24gaWYgb25TYXZlVG9TdG9yYWdlIGlzIG5vdCBwcm92aWRlZFxuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uU2F2ZVRvU3RvcmFnZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcihhaSA9PiBhaS5pZCAhPT0gJ3N0b3JhZ2UnKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZFBhbmVsSGVhZGVyIGNsYXNzTmFtZT1cInNpZGUtcGFuZWxfX3BhbmVsLWhlYWRlclwiPlxuICAgICAgICAgIDxTdHlsZWRQYW5lbEhlYWRlclRvcCBjbGFzc05hbWU9XCJzaWRlLXBhbmVsX19wYW5lbC1oZWFkZXJfX3RvcFwiPlxuICAgICAgICAgICAge3RoaXMucHJvcHMubG9nb0NvbXBvbmVudCAmJiAoXG4gICAgICAgICAgICAgIDx0aGlzLnByb3BzLmxvZ29Db21wb25lbnRcbiAgICAgICAgICAgICAgICBhcHBOYW1lPXthcHBOYW1lfVxuICAgICAgICAgICAgICAgIHZlcnNpb249e3ZlcnNpb259XG4gICAgICAgICAgICAgICAgYXBwV2Vic2l0ZT17YXBwV2Vic2l0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8U3R5bGVkUGFuZWxUb3BBY3Rpb25zPlxuICAgICAgICAgICAgICB7aXRlbXMubWFwKGl0ZW0gPT4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpZGUtcGFuZWxfX3BhbmVsLWhlYWRlcl9fcmlnaHRcIlxuICAgICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFBhbmVsQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbS5kcm9wZG93bkNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0V4cG9ydERyb3Bkb3duKGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9uQ2xpY2sgJiYgaXRlbS5vbkNsaWNrKHRoaXMucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5kcm9wZG93bkNvbXBvbmVudCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGl0ZW0uZHJvcGRvd25Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlPXtoaWRlRXhwb3J0RHJvcGRvd259XG4gICAgICAgICAgICAgICAgICAgICAgc2hvdz17dmlzaWJsZURyb3Bkb3duID09PSBpdGVtLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHsuLi5kcm9wZG93bkNhbGxiYWNrc31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU3R5bGVkUGFuZWxUb3BBY3Rpb25zPlxuICAgICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXJUb3A+XG4gICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFuZWxIZWFkZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssa0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFlBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQVgsT0FBQTtBQUE4QyxJQUFBWSxTQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxF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QUFBMUIsSUFBSTtVQUFBLG9CQUNidEYsTUFBQSxZQUFBd0YsYUFBQTtZQUNFbEIsU0FBUyxFQUFDLGlDQUFpQztZQUMzQzJDLEdBQUcsRUFBRTNCLElBQUksQ0FBQ0ksRUFBRztZQUNicUUsS0FBSyxFQUFFO2NBQUNDLFFBQVEsRUFBRTtZQUFVO1VBQUUsZ0JBRTlCaEssTUFBQSxZQUFBd0YsYUFBQSxDQUFDTCxXQUFXO1lBQ1ZHLElBQUksRUFBRUEsSUFBSztZQUNYQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO2NBQ2IsSUFBSUQsSUFBSSxDQUFDMkUsaUJBQWlCLEVBQUU7Z0JBQzFCUixrQkFBa0IsQ0FBQ25FLElBQUksQ0FBQ0ksRUFBRSxDQUFDO2NBQzdCLENBQUMsTUFBTTtnQkFDTEosSUFBSSxDQUFDQyxPQUFPLElBQUlELElBQUksQ0FBQ0MsT0FBTyxDQUFDMkQsS0FBSSxDQUFDN0UsS0FBSyxDQUFDO2NBQzFDO1lBQ0Y7VUFBRSxDQUNILENBQUMsRUFDRGlCLElBQUksQ0FBQzJFLGlCQUFpQixnQkFDckJqSyxNQUFBLFlBQUF3RixhQUFBLENBQUNGLElBQUksQ0FBQzJFLGlCQUFpQixNQUFBaEUsU0FBQTtZQUNyQmMsT0FBTyxFQUFFMkMsa0JBQW1CO1lBQzVCNUMsSUFBSSxFQUFFMEMsZUFBZSxLQUFLbEUsSUFBSSxDQUFDSTtVQUFHLEdBQzlCaUUsaUJBQWlCLENBQ3RCLENBQUMsR0FDQSxJQUNELENBQUM7UUFBQSxDQUNQLENBQ29CLENBQ0gsQ0FDTCxDQUFDO01BRXhCO0lBQUM7RUFBQSxFQS9FOEJPLGdCQUFTLE9BQUFwRyxnQkFBQSxhQUFBNEUsWUFBQSxrQkFDbEI7SUFDcEJvQixhQUFhLEVBQUVLLGdCQUFZO0lBQzNCWixXQUFXLEVBQUUsQ0FDWDtNQUNFN0QsRUFBRSxFQUFFLFNBQVM7TUFDYk0sYUFBYSxFQUFFb0UsU0FBRTtNQUNqQmhFLE9BQU8sRUFBRSxzQkFBc0I7TUFDL0JiLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVEsQ0FBQyxDQUFDO01BQ2pCMEUsaUJBQWlCLEVBQUUzQjtJQUNyQixDQUFDLEVBQ0Q7TUFDRTVDLEVBQUUsRUFBRSxNQUFNO01BQ1ZNLGFBQWEsRUFBRXFFLFdBQUk7TUFDbkI5RSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRLENBQUMsQ0FBQztNQUNqQkksS0FBSyxFQUFFLE9BQU87TUFDZHNFLGlCQUFpQixFQUFFekM7SUFDckIsQ0FBQztFQUVMLENBQUMsR0FBQWtCLFlBQUE7QUE4REw7QUFBQyxJQUFBNEIsUUFBQSxHQUFBbEYsT0FBQSxjQUVjcUQsa0JBQWtCIiwiaWdub3JlTGlzdCI6W119
|