@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.js +1 -1
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/color-legend.js +3 -3
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +2 -2
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +10 -3
- package/dist/common/line-chart.js +219 -52
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -45
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +8 -4
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +628 -178
- package/dist/common/styled-components.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +13 -3
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -6
- package/dist/effects/effect-configurator.js +213 -52
- package/dist/effects/effect-manager.js +3 -3
- package/dist/effects/effect-panel-header.js +34 -17
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +3 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder/geocoder.js +61 -14
- package/dist/geocoder-panel.d.ts +3 -2
- package/dist/geocoder-panel.js +11 -8
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +17 -2
- package/dist/index.js +161 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +179 -27
- package/dist/kepler-gl.js +91 -12
- package/dist/loading-indicator.d.ts +3 -1
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +124 -55
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +33 -8
- package/dist/map/map-control.d.ts +14 -4
- package/dist/map/map-control.js +18 -8
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +25 -8
- package/dist/map/map-legend.d.ts +20 -3
- package/dist/map/map-legend.js +145 -31
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.d.ts +13 -3
- package/dist/map-container.js +269 -59
- package/dist/map-view-state-context.d.ts +1 -0
- package/dist/map-view-state-context.js +1 -1
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +3 -2
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +28 -0
- package/dist/modals/export-video-modal.js +371 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +41 -0
- package/dist/modals/hubble-utils.js +294 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.js +21 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +90 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +7 -6
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +26 -6
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +450 -76
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +2 -4
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +53 -48
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
|
@@ -12,7 +12,7 @@ var _d3Scale = require("d3-scale");
|
|
|
12
12
|
var _d3Color = require("d3-color");
|
|
13
13
|
var _d3Array = require("d3-array");
|
|
14
14
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
16
16
|
// Copyright contributors to the kepler.gl project
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
@@ -26,7 +26,7 @@ var HISTOGRAM_MASK_BGCOLOR = '#FFFFFF';
|
|
|
26
26
|
var HISTOGRAM_MASK_FGCOLOR = '#000000';
|
|
27
27
|
var histogramStyle = {
|
|
28
28
|
highlightW: 0.7,
|
|
29
|
-
unHighlightedW: 0.
|
|
29
|
+
unHighlightedW: 0.7
|
|
30
30
|
};
|
|
31
31
|
var HistogramWrapper = _styledComponents["default"].svg(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n overflow: visible;\n"])));
|
|
32
32
|
var HistogramMaskRect = _styledComponents["default"].rect(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n fill: ", ";\n"])), function (props) {
|
|
@@ -35,6 +35,9 @@ var HistogramMaskRect = _styledComponents["default"].rect(_templateObject2 || (_
|
|
|
35
35
|
var HistogramBreakLine = _styledComponents["default"].g(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n stroke: ", ";\n stroke-width: 1px;\n transform: translate(0, 0);\n"])), function (props) {
|
|
36
36
|
return props.theme.histogramBreakLineColor;
|
|
37
37
|
});
|
|
38
|
+
var YAxisTick = _styledComponents["default"].text(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 9px;\n fill: ", ";\n"])), function (props) {
|
|
39
|
+
return props.theme.textColor;
|
|
40
|
+
});
|
|
38
41
|
var BarUnmemoized = _styledComponents["default"].rect(function (_ref) {
|
|
39
42
|
var theme = _ref.theme,
|
|
40
43
|
$inRange = _ref.$inRange,
|
|
@@ -44,14 +47,11 @@ var BarUnmemoized = _styledComponents["default"].rect(function (_ref) {
|
|
|
44
47
|
});
|
|
45
48
|
var Bar = /*#__PURE__*/_react["default"].memo(BarUnmemoized);
|
|
46
49
|
Bar.displayName = 'Bar';
|
|
47
|
-
var isBarInRange = function isBarInRange(bar,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// if x1 >= domain[1] and current value[1] wasn't changed from the original domain
|
|
53
|
-
var x1Condition = index === list.length - 1 ? bar.x1 >= filterDomain[1] && filterDomain[1] === filterValue[1] : false;
|
|
54
|
-
return (x0Condition || bar.x0 >= filterValue[0]) && (x1Condition || bar.x1 <= filterValue[1]);
|
|
50
|
+
var isBarInRange = function isBarInRange(bar, _index, _list, _filterDomain, filterValue) {
|
|
51
|
+
return bar.x1 > filterValue[0] && bar.x0 < filterValue[1];
|
|
52
|
+
};
|
|
53
|
+
var undefinedToZero = function undefinedToZero(v) {
|
|
54
|
+
return v ? v : 0;
|
|
55
55
|
};
|
|
56
56
|
function HistogramPlotFactory() {
|
|
57
57
|
var HistogramPlot = function HistogramPlot(_ref2) {
|
|
@@ -61,6 +61,7 @@ function HistogramPlotFactory() {
|
|
|
61
61
|
colorsByGroup = _ref2.colorsByGroup,
|
|
62
62
|
_ref2$isMasked = _ref2.isMasked,
|
|
63
63
|
isMasked = _ref2$isMasked === void 0 ? HISTOGRAM_MASK_MODE.NoMask : _ref2$isMasked,
|
|
64
|
+
isEnlarged = _ref2.isEnlarged,
|
|
64
65
|
_ref2$countProp = _ref2.countProp,
|
|
65
66
|
countProp = _ref2$countProp === void 0 ? 'count' : _ref2$countProp,
|
|
66
67
|
margin = _ref2.margin,
|
|
@@ -69,9 +70,6 @@ function HistogramPlotFactory() {
|
|
|
69
70
|
value = _ref2.value,
|
|
70
71
|
brushComponent = _ref2.brushComponent,
|
|
71
72
|
breakLines = _ref2.breakLines;
|
|
72
|
-
var undefinedToZero = function undefinedToZero(x) {
|
|
73
|
-
return x ? x : 0;
|
|
74
|
-
};
|
|
75
73
|
var groupKeys = (0, _react.useMemo)(function () {
|
|
76
74
|
return Object.keys(histogramsByGroup)
|
|
77
75
|
// only keep non-empty groups
|
|
@@ -88,26 +86,23 @@ function HistogramPlotFactory() {
|
|
|
88
86
|
return histogramsByGroup[key][histogramsByGroup[key].length - 1].x1;
|
|
89
87
|
})) !== null && _max !== void 0 ? _max : 0];
|
|
90
88
|
}, [range, histogramsByGroup, groupKeys]);
|
|
91
|
-
var
|
|
89
|
+
var numBins = (0, _react.useMemo)(function () {
|
|
92
90
|
if (groupKeys.length === 0) return 0;
|
|
93
|
-
// find histogramsByGroup with max number of bins
|
|
94
91
|
var maxGroup = groupKeys.reduce(function (accu, key, _idx) {
|
|
95
92
|
if (histogramsByGroup[key].length > accu.length) {
|
|
96
93
|
return histogramsByGroup[key];
|
|
97
94
|
}
|
|
98
95
|
return accu;
|
|
99
96
|
}, histogramsByGroup[groupKeys[0]]);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var stdBinIdx = maxGroup.length > 1 ? 1 : 0;
|
|
103
|
-
var xStep = maxGroup[stdBinIdx].x1 - maxGroup[stdBinIdx].x0;
|
|
104
|
-
var maxBins = (domain[1] - domain[0]) / xStep;
|
|
105
|
-
if (!maxBins) return 0;
|
|
106
|
-
return width / maxBins / (isMasked ? 1 : groupKeys.length);
|
|
107
|
-
}, [histogramsByGroup, domain, groupKeys, width, isMasked]);
|
|
97
|
+
return maxGroup.length;
|
|
98
|
+
}, [histogramsByGroup, groupKeys]);
|
|
108
99
|
var x = (0, _react.useMemo)(function () {
|
|
109
|
-
return (0, _d3Scale.scaleLinear)().domain(domain).range([
|
|
110
|
-
}, [domain, width
|
|
100
|
+
return (0, _d3Scale.scaleLinear)().domain(domain).range([0, width]);
|
|
101
|
+
}, [domain, width]);
|
|
102
|
+
var fallbackBarWidth = (0, _react.useMemo)(function () {
|
|
103
|
+
if (numBins === 0) return 0;
|
|
104
|
+
return width / numBins;
|
|
105
|
+
}, [numBins, width]);
|
|
111
106
|
var y = (0, _react.useMemo)(function () {
|
|
112
107
|
return (0, _d3Scale.scaleLinear)().domain([0, Math.max(Number((0, _d3Array.max)(groupKeys, function (key) {
|
|
113
108
|
return (0, _d3Array.max)(histogramsByGroup[key], function (d) {
|
|
@@ -115,6 +110,19 @@ function HistogramPlotFactory() {
|
|
|
115
110
|
});
|
|
116
111
|
})), 1)]).range([0, height]);
|
|
117
112
|
}, [histogramsByGroup, groupKeys, height, countProp]);
|
|
113
|
+
var yAxisTicks = (0, _react.useMemo)(function () {
|
|
114
|
+
if (!isEnlarged) return null;
|
|
115
|
+
var yMax = Math.max(Number((0, _d3Array.max)(groupKeys, function (key) {
|
|
116
|
+
return (0, _d3Array.max)(histogramsByGroup[key], function (d) {
|
|
117
|
+
return d[countProp];
|
|
118
|
+
});
|
|
119
|
+
})), 1);
|
|
120
|
+
var tickCount = 3;
|
|
121
|
+
var ticks = (0, _d3Scale.scaleLinear)().domain([0, yMax]).ticks(tickCount);
|
|
122
|
+
return ticks;
|
|
123
|
+
}, [isEnlarged, groupKeys, histogramsByGroup, countProp]);
|
|
124
|
+
var clipIdRef = (0, _react.useRef)("histogram-clip-".concat(Math.random().toString(36).slice(2)));
|
|
125
|
+
var clipId = clipIdRef.current;
|
|
118
126
|
if (groupKeys.length === 0) {
|
|
119
127
|
return null;
|
|
120
128
|
}
|
|
@@ -125,7 +133,14 @@ function HistogramPlotFactory() {
|
|
|
125
133
|
style: {
|
|
126
134
|
margin: "".concat(margin.top, "px ").concat(margin.right, "px ").concat(margin.bottom, "px ").concat(margin.left, "px")
|
|
127
135
|
}
|
|
128
|
-
}, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("
|
|
136
|
+
}, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("clipPath", {
|
|
137
|
+
id: "".concat(clipId, "-mask")
|
|
138
|
+
}, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
139
|
+
x: "0",
|
|
140
|
+
y: "0",
|
|
141
|
+
width: width,
|
|
142
|
+
height: height + margin.bottom
|
|
143
|
+
})), /*#__PURE__*/_react["default"].createElement("mask", {
|
|
129
144
|
id: "histogram-mask"
|
|
130
145
|
}, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
131
146
|
x: "0",
|
|
@@ -139,14 +154,18 @@ function HistogramPlotFactory() {
|
|
|
139
154
|
}, histogramsByGroup.filteredBins.map(function (bar, idx, list) {
|
|
140
155
|
var inRange = isBarInRange(bar, idx, list, domain, value);
|
|
141
156
|
var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
|
|
157
|
+
var bx0 = x(undefinedToZero(bar.x0));
|
|
158
|
+
var bx1 = x(undefinedToZero(bar.x1));
|
|
159
|
+
var binW = Math.max(bx1 - bx0, 1);
|
|
160
|
+
var drawnW = binW * wRatio;
|
|
142
161
|
return /*#__PURE__*/_react["default"].createElement(Bar, {
|
|
143
162
|
$isOverlay: false,
|
|
144
163
|
$inRange: inRange,
|
|
145
164
|
$color: HISTOGRAM_MASK_FGCOLOR,
|
|
146
165
|
key: "mask-".concat(idx),
|
|
147
166
|
height: y(bar[countProp]),
|
|
148
|
-
width:
|
|
149
|
-
x:
|
|
167
|
+
width: drawnW,
|
|
168
|
+
x: bx0 + (binW - drawnW) / 2,
|
|
150
169
|
y: height - y(bar[countProp])
|
|
151
170
|
});
|
|
152
171
|
})))), /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -160,19 +179,24 @@ function HistogramPlotFactory() {
|
|
|
160
179
|
})), isMasked === HISTOGRAM_MASK_MODE.MaskWithOverlay && /*#__PURE__*/_react["default"].createElement("g", {
|
|
161
180
|
key: "bins",
|
|
162
181
|
transform: "translate(0,0)",
|
|
163
|
-
className: "overlay-histogram-bars"
|
|
182
|
+
className: "overlay-histogram-bars",
|
|
183
|
+
clipPath: "url(#".concat(clipId, "-mask)")
|
|
164
184
|
}, histogramsByGroup.bins.map(function (bar, idx, list) {
|
|
165
185
|
var filterBar = histogramsByGroup.filteredBins[idx];
|
|
166
186
|
var maskHeight = filterBar ? y(bar[countProp]) - y(filterBar[countProp]) : y(bar[countProp]);
|
|
167
187
|
var inRange = isBarInRange(bar, idx, list, domain, value);
|
|
168
188
|
var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
|
|
189
|
+
var bx0 = x(undefinedToZero(bar.x0));
|
|
190
|
+
var bx1 = x(undefinedToZero(bar.x1));
|
|
191
|
+
var binW = Math.max(bx1 - bx0, 1);
|
|
192
|
+
var drawnW = binW * wRatio;
|
|
169
193
|
return /*#__PURE__*/_react["default"].createElement(Bar, {
|
|
170
194
|
$inRange: inRange,
|
|
171
195
|
$isOverlay: true,
|
|
172
196
|
key: "bar-".concat(idx),
|
|
173
197
|
height: maskHeight,
|
|
174
|
-
width:
|
|
175
|
-
x:
|
|
198
|
+
width: drawnW,
|
|
199
|
+
x: bx0 + (binW - drawnW) / 2,
|
|
176
200
|
y: height - y(bar[countProp])
|
|
177
201
|
});
|
|
178
202
|
})), /*#__PURE__*/_react["default"].createElement(HistogramBreakLine, null, (breakLines !== null && breakLines !== void 0 ? breakLines : []).map(function (pos, idx) {
|
|
@@ -182,7 +206,7 @@ function HistogramPlotFactory() {
|
|
|
182
206
|
d: "M".concat(pos, ", 0 l0 100")
|
|
183
207
|
});
|
|
184
208
|
})), /*#__PURE__*/_react["default"].createElement("g", {
|
|
185
|
-
transform: "translate(".concat(isRanged ? 0 :
|
|
209
|
+
transform: "translate(".concat(isRanged ? 0 : fallbackBarWidth / 2, ", 0)")
|
|
186
210
|
}, brushComponent));
|
|
187
211
|
};
|
|
188
212
|
return isMasked ? maskedHistogram() : /*#__PURE__*/_react["default"].createElement(HistogramWrapper, {
|
|
@@ -191,33 +215,58 @@ function HistogramPlotFactory() {
|
|
|
191
215
|
style: {
|
|
192
216
|
margin: "".concat(margin.top, "px ").concat(margin.right, "px ").concat(margin.bottom, "px ").concat(margin.left, "px")
|
|
193
217
|
}
|
|
194
|
-
}, /*#__PURE__*/_react["default"].createElement("
|
|
218
|
+
}, /*#__PURE__*/_react["default"].createElement("defs", null, /*#__PURE__*/_react["default"].createElement("clipPath", {
|
|
219
|
+
id: clipId
|
|
220
|
+
}, /*#__PURE__*/_react["default"].createElement("rect", {
|
|
221
|
+
x: "0",
|
|
222
|
+
y: "0",
|
|
223
|
+
width: width,
|
|
224
|
+
height: height
|
|
225
|
+
}))), /*#__PURE__*/_react["default"].createElement("g", {
|
|
226
|
+
transform: "translate(".concat(isRanged ? 0 : fallbackBarWidth / 2, ", 0)")
|
|
227
|
+
}, brushComponent), /*#__PURE__*/_react["default"].createElement("g", {
|
|
228
|
+
clipPath: "url(#".concat(clipId, ")"),
|
|
229
|
+
style: {
|
|
230
|
+
pointerEvents: 'none'
|
|
231
|
+
}
|
|
232
|
+
}, groupKeys.map(function (key, i) {
|
|
195
233
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
196
234
|
key: key,
|
|
197
235
|
className: "histogram-bars"
|
|
198
236
|
}, histogramsByGroup[key].map(function (bar, idx, list) {
|
|
199
237
|
var inRange = isBarInRange(bar, idx, list, domain, value);
|
|
200
238
|
var wRatio = inRange ? histogramStyle.highlightW : histogramStyle.unHighlightedW;
|
|
201
|
-
var
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
239
|
+
var bx0 = x(undefinedToZero(bar.x0));
|
|
240
|
+
var bx1 = x(undefinedToZero(bar.x1));
|
|
241
|
+
var binW = Math.max(bx1 - bx0, 1);
|
|
242
|
+
var perGroupW = isMasked ? binW : binW / groupKeys.length;
|
|
243
|
+
var drawnWidth = perGroupW * wRatio;
|
|
244
|
+
var groupOffset = groupKeys.length > 1 ? perGroupW * i + (perGroupW - drawnWidth) / 2 : (binW - drawnWidth) / 2;
|
|
245
|
+
var startX = bx0 + groupOffset;
|
|
246
|
+
return /*#__PURE__*/_react["default"].createElement(Bar, {
|
|
247
|
+
$isOverlay: false,
|
|
248
|
+
$inRange: inRange,
|
|
249
|
+
$color: colorsByGroup === null || colorsByGroup === void 0 ? void 0 : colorsByGroup[key],
|
|
250
|
+
key: "bar-".concat(idx),
|
|
251
|
+
height: y(bar[countProp]),
|
|
252
|
+
width: drawnWidth,
|
|
253
|
+
x: startX,
|
|
254
|
+
rx: 1,
|
|
255
|
+
ry: 1,
|
|
256
|
+
y: height - y(bar[countProp])
|
|
257
|
+
});
|
|
217
258
|
}));
|
|
218
|
-
})), /*#__PURE__*/_react["default"].createElement("g", {
|
|
219
|
-
|
|
220
|
-
},
|
|
259
|
+
})), yAxisTicks ? /*#__PURE__*/_react["default"].createElement("g", {
|
|
260
|
+
className: "histogram-y-axis"
|
|
261
|
+
}, yAxisTicks.map(function (tick) {
|
|
262
|
+
return /*#__PURE__*/_react["default"].createElement(YAxisTick, {
|
|
263
|
+
key: tick,
|
|
264
|
+
x: -4,
|
|
265
|
+
y: height - y(tick),
|
|
266
|
+
textAnchor: "end",
|
|
267
|
+
dominantBaseline: "middle"
|
|
268
|
+
}, tick);
|
|
269
|
+
})) : null);
|
|
221
270
|
};
|
|
222
271
|
var HistogramPlotWithGroups = function HistogramPlotWithGroups(props) {
|
|
223
272
|
var groups = (0, _react.useMemo)(function () {
|
|
@@ -231,4 +280,4 @@ function HistogramPlotFactory() {
|
|
|
231
280
|
return HistogramPlotWithGroups;
|
|
232
281
|
}
|
|
233
282
|
var _default = exports["default"] = HistogramPlotFactory;
|
|
234
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZDNTY2FsZSIsIl9kM0NvbG9yIiwiX2QzQXJyYXkiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkhJU1RPR1JBTV9NQVNLX01PREUiLCJleHBvcnRzIiwiTm9NYXNrIiwiTWFzayIsIk1hc2tXaXRoT3ZlcmxheSIsIkhJU1RPR1JBTV9NQVNLX0JHQ09MT1IiLCJISVNUT0dSQU1fTUFTS19GR0NPTE9SIiwiaGlzdG9ncmFtU3R5bGUiLCJoaWdobGlnaHRXIiwidW5IaWdobGlnaHRlZFciLCJIaXN0b2dyYW1XcmFwcGVyIiwic3R5bGVkIiwic3ZnIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJIaXN0b2dyYW1NYXNrUmVjdCIsInJlY3QiLCJwcm9wcyIsInRoZW1lIiwicGFuZWxCYWNrZ3JvdW5kIiwiSGlzdG9ncmFtQnJlYWtMaW5lIiwiZyIsImhpc3RvZ3JhbUJyZWFrTGluZUNvbG9yIiwiQmFyVW5tZW1vaXplZCIsIl9yZWYiLCIkaW5SYW5nZSIsIiRpc092ZXJsYXkiLCIkY29sb3IiLCJjb25jYXQiLCJoaXN0b2dyYW1PdmVybGF5Q29sb3IiLCJoaXN0b2dyYW1GaWxsSW5SYW5nZSIsImhjbCIsImRhcmtlciIsImhpc3RvZ3JhbUZpbGxPdXRSYW5nZSIsIkJhciIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIiwiaXNCYXJJblJhbmdlIiwiYmFyIiwiaW5kZXgiLCJsaXN0IiwiZmlsdGVyRG9tYWluIiwiZmlsdGVyVmFsdWUiLCJ4MENvbmRpdGlvbiIsIngwIiwieDFDb25kaXRpb24iLCJsZW5ndGgiLCJ4MSIsIkhpc3RvZ3JhbVBsb3RGYWN0b3J5IiwiSGlzdG9ncmFtUGxvdCIsIl9yZWYyIiwid2lkdGgiLCJoZWlnaHQiLCJoaXN0b2dyYW1zQnlHcm91cCIsImNvbG9yc0J5R3JvdXAiLCJfcmVmMiRpc01hc2tlZCIsImlzTWFza2VkIiwiX3JlZjIkY291bnRQcm9wIiwiY291bnRQcm9wIiwibWFyZ2luIiwiaXNSYW5nZWQiLCJyYW5nZSIsInZhbHVlIiwiYnJ1c2hDb21wb25lbnQiLCJicmVha0xpbmVzIiwidW5kZWZpbmVkVG9aZXJvIiwieCIsImdyb3VwS2V5cyIsInVzZU1lbW8iLCJrZXlzIiwiZmlsdGVyIiwia2V5IiwiX2hpc3RvZ3JhbXNCeUdyb3VwJGtlIiwiZG9tYWluIiwiX21pbiIsIl9tYXgiLCJtaW4iLCJtYXgiLCJiYXJXaWR0aCIsIm1heEdyb3VwIiwicmVkdWNlIiwiYWNjdSIsIl9pZHgiLCJzdGRCaW5JZHgiLCJ4U3RlcCIsIm1heEJpbnMiLCJzY2FsZUxpbmVhciIsInkiLCJNYXRoIiwiTnVtYmVyIiwiZCIsIm1hc2tlZEhpc3RvZ3JhbSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsImlkIiwiZmlsbCIsImNsYXNzTmFtZSIsImZpbHRlcmVkQmlucyIsIm1hcCIsImlkeCIsImluUmFuZ2UiLCJ3UmF0aW8iLCJ0cmFuc2Zvcm0iLCJtYXNrIiwiYmlucyIsImZpbHRlckJhciIsIm1hc2tIZWlnaHQiLCJwb3MiLCJzdHJva2VEYXNoYXJyYXkiLCJzdGFydFgiLCJyeCIsInJ5IiwiSGlzdG9ncmFtUGxvdFdpdGhHcm91cHMiLCJncm91cHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vaGlzdG9ncmFtLXBsb3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge1JlYWN0RWxlbWVudCwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtzY2FsZUxpbmVhcn0gZnJvbSAnZDMtc2NhbGUnO1xuaW1wb3J0IHtoY2x9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7bWluLCBtYXh9IGZyb20gJ2QzLWFycmF5JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0JpbnN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG4vLyBjbGlwcGluZyBtYXNrIGNvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEhJU1RPR1JBTV9NQVNLX01PREUgPSB7XG4gIE5vTWFzazogMCxcbiAgTWFzazogMSxcbiAgTWFza1dpdGhPdmVybGF5OiAyXG59O1xuY29uc3QgSElTVE9HUkFNX01BU0tfQkdDT0xPUiA9ICcjRkZGRkZGJztcbmNvbnN0IEhJU1RPR1JBTV9NQVNLX0ZHQ09MT1IgPSAnIzAwMDAwMCc7XG5cbmNvbnN0IGhpc3RvZ3JhbVN0eWxlID0ge1xuICBoaWdobGlnaHRXOiAwLjcsXG4gIHVuSGlnaGxpZ2h0ZWRXOiAwLjRcbn07XG5cbmNvbnN0IEhpc3RvZ3JhbVdyYXBwZXIgPSBzdHlsZWQuc3ZnYFxuICBvdmVyZmxvdzogdmlzaWJsZTtcbmA7XG5cbmNvbnN0IEhpc3RvZ3JhbU1hc2tSZWN0ID0gc3R5bGVkLnJlY3RgXG4gIGZpbGw6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbmA7XG5cbmNvbnN0IEhpc3RvZ3JhbUJyZWFrTGluZSA9IHN0eWxlZC5nYFxuICBzdHJva2U6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaGlzdG9ncmFtQnJlYWtMaW5lQ29sb3J9O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG5gO1xuXG50eXBlIEJhclR5cGUgPSB7XG4gICRpblJhbmdlOiBib29sZWFuO1xuICAkaXNPdmVybGF5OiBib29sZWFuO1xuICAkY29sb3I/OiBzdHJpbmc7XG59O1xuY29uc3QgQmFyVW5tZW1vaXplZCA9IHN0eWxlZC5yZWN0PEJhclR5cGU+KFxuICAoe3RoZW1lLCAkaW5SYW5nZSwgJGlzT3ZlcmxheSwgJGNvbG9yfSkgPT4gYFxuICAke1xuICAgICRpc092ZXJsYXlcbiAgICAgID8gYGZpbGw6ICR7JGNvbG9yID8/IHRoZW1lLmhpc3RvZ3JhbU92ZXJsYXlDb2xvcn07YFxuICAgICAgOiAkaW5SYW5nZVxuICAgICAgPyBgZmlsbDogJHskY29sb3IgPz8gdGhlbWUuaGlzdG9ncmFtRmlsbEluUmFuZ2V9O2BcbiAgICAgIDogYGZpbGw6ICR7JGNvbG9yID8gaGNsKCRjb2xvcikuZGFya2VyKCkgOiB0aGVtZS5oaXN0b2dyYW1GaWxsT3V0UmFuZ2V9O2BcbiAgfVxuYFxuKTtcbmNvbnN0IEJhciA9IFJlYWN0Lm1lbW8oQmFyVW5tZW1vaXplZCk7XG5CYXIuZGlzcGxheU5hbWUgPSAnQmFyJztcblxuY29uc3QgaXNCYXJJblJhbmdlID0gKFxuICBiYXI6IHt4MDogbnVtYmVyOyB4MTogbnVtYmVyfSxcbiAgaW5kZXg6IG51bWJlcixcbiAgbGlzdDogYW55W10sXG4gIGZpbHRlckRvbWFpbjogYW55W10sXG4gIGZpbHRlclZhbHVlOiBhbnlbXVxuKSA9PiB7XG4gIC8vIGZpcnN0XG4gIC8vIGlmIHgwIDw9IGRvbWFpblswXSBhbmQgY3VycmVudCB2YWx1ZVswXSB3YXNuJ3QgY2hhbmdlZCBmcm9tIHRoZSBvcmlnaW5hbCBkb21haW5cbiAgY29uc3QgeDBDb25kaXRpb24gPVxuICAgIGluZGV4ID09PSAwID8gYmFyLngwIDw9IGZpbHRlckRvbWFpblswXSAmJiBmaWx0ZXJEb21haW5bMF0gPT09IGZpbHRlclZhbHVlWzBdIDogZmFsc2U7XG4gIC8vIExhc3RcbiAgLy8gaWYgeDEgPj0gZG9tYWluWzFdIGFuZCBjdXJyZW50IHZhbHVlWzFdIHdhc24ndCBjaGFuZ2VkIGZyb20gdGhlIG9yaWdpbmFsIGRvbWFpblxuICBjb25zdCB4MUNvbmRpdGlvbiA9XG4gICAgaW5kZXggPT09IGxpc3QubGVuZ3RoIC0gMVxuICAgICAgPyBiYXIueDEgPj0gZmlsdGVyRG9tYWluWzFdICYmIGZpbHRlckRvbWFpblsxXSA9PT0gZmlsdGVyVmFsdWVbMV1cbiAgICAgIDogZmFsc2U7XG4gIHJldHVybiAoeDBDb25kaXRpb24gfHwgYmFyLngwID49IGZpbHRlclZhbHVlWzBdKSAmJiAoeDFDb25kaXRpb24gfHwgYmFyLngxIDw9IGZpbHRlclZhbHVlWzFdKTtcbn07XG5cbmV4cG9ydCB0eXBlIEhpc3RvZ3JhbU1hc2tNb2RlVHlwZSA9IHtcbiAgTm9NYXNrOiBudW1iZXI7XG4gIE1hc2s6IG51bWJlcjtcbiAgTWFza1dpdGhPdmVybGF5OiBudW1iZXI7XG59O1xuXG5pbnRlcmZhY2UgSGlzdG9ncmFtUGxvdFByb3BzIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG1hcmdpbjoge3RvcDogbnVtYmVyOyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyByaWdodDogbnVtYmVyfTtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICB2YWx1ZTogbnVtYmVyW107XG4gIGlzTWFza2VkPzogbnVtYmVyO1xuICBicnVzaENvbXBvbmVudD86IFJlYWN0RWxlbWVudDtcbiAgaGlzdG9ncmFtc0J5R3JvdXA6IEJpbnM7XG4gIGNvbG9yc0J5R3JvdXA/OiBudWxsIHwge1tkYXRhSWQ6IHN0cmluZ106IHN0cmluZ307XG4gIGNvdW50UHJvcD86IHN0cmluZztcbiAgcmFuZ2U/OiBudW1iZXJbXTtcbiAgYnJlYWtMaW5lcz86IG51bWJlcltdO1xufVxuXG5mdW5jdGlvbiBIaXN0b2dyYW1QbG90RmFjdG9yeSgpIHtcbiAgY29uc3QgSGlzdG9ncmFtUGxvdCA9ICh7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIGhpc3RvZ3JhbXNCeUdyb3VwLFxuICAgIGNvbG9yc0J5R3JvdXAsXG4gICAgaXNNYXNrZWQgPSBISVNUT0dSQU1fTUFTS19NT0RFLk5vTWFzayxcbiAgICBjb3VudFByb3AgPSAnY291bnQnLFxuICAgIG1hcmdpbixcbiAgICBpc1JhbmdlZCxcbiAgICByYW5nZSxcbiAgICB2YWx1ZSxcbiAgICBicnVzaENvbXBvbmVudCxcbiAgICBicmVha0xpbmVzXG4gIH06IEhpc3RvZ3JhbVBsb3RQcm9wcykgPT4ge1xuICAgIGNvbnN0IHVuZGVmaW5lZFRvWmVybyA9ICh4OiBudW1iZXIgfCB1bmRlZmluZWQpID0+ICh4ID8geCA6IDApO1xuICAgIGNvbnN0IGdyb3VwS2V5cyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhoaXN0b2dyYW1zQnlHcm91cClcbiAgICAgICAgICAvLyBvbmx5IGtlZXAgbm9uLWVtcHR5IGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0/Lmxlbmd0aCA+IDApLFxuICAgICAgW2hpc3RvZ3JhbXNCeUdyb3VwXVxuICAgICk7XG5cbiAgICBjb25zdCBkb21haW4gPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgcmFuZ2UgPz8gW1xuICAgICAgICAgIG1pbihncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldWzBdLngwKSA/PyAwLFxuICAgICAgICAgIG1heChncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldW2hpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoIC0gMV0ueDEpID8/IDBcbiAgICAgICAgXSxcbiAgICAgIFtyYW5nZSwgaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c11cbiAgICApO1xuXG4gICAgY29uc3QgYmFyV2lkdGggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICAgIC8vIGZpbmQgaGlzdG9ncmFtc0J5R3JvdXAgd2l0aCBtYXggbnVtYmVyIG9mIGJpbnNcbiAgICAgIGNvbnN0IG1heEdyb3VwID0gZ3JvdXBLZXlzLnJlZHVjZSgoYWNjdSwga2V5LCBfaWR4KSA9PiB7XG4gICAgICAgIGlmIChoaXN0b2dyYW1zQnlHcm91cFtrZXldLmxlbmd0aCA+IGFjY3UubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbXNCeUdyb3VwW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCBoaXN0b2dyYW1zQnlHcm91cFtncm91cEtleXNbMF1dKTtcblxuICAgICAgLy8gZmluZCB0aGUgYmluIGZvciBtZWFzdXJpbmcgc3RlcFxuICAgICAgY29uc3Qgc3RkQmluSWR4ID0gbWF4R3JvdXAubGVuZ3RoID4gMSA/IDEgOiAwO1xuICAgICAgY29uc3QgeFN0ZXAgPSBtYXhHcm91cFtzdGRCaW5JZHhdLngxIC0gbWF4R3JvdXBbc3RkQmluSWR4XS54MDtcbiAgICAgIGNvbnN0IG1heEJpbnMgPSAoZG9tYWluWzFdIC0gZG9tYWluWzBdKSAvIHhTdGVwO1xuICAgICAgaWYgKCFtYXhCaW5zKSByZXR1cm4gMDtcbiAgICAgIHJldHVybiB3aWR0aCAvIG1heEJpbnMgLyAoaXNNYXNrZWQgPyAxIDogZ3JvdXBLZXlzLmxlbmd0aCk7XG4gICAgfSwgW2hpc3RvZ3JhbXNCeUdyb3VwLCBkb21haW4sIGdyb3VwS2V5cywgd2lkdGgsIGlzTWFza2VkXSk7XG5cbiAgICBjb25zdCB4ID0gdXNlTWVtbyhcbiAgICAgICgpID0+IHNjYWxlTGluZWFyKCkuZG9tYWluKGRvbWFpbikucmFuZ2UoW2JhcldpZHRoLCB3aWR0aF0pLFxuICAgICAgW2RvbWFpbiwgd2lkdGgsIGJhcldpZHRoXVxuICAgICk7XG5cbiAgICBjb25zdCB5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIHNjYWxlTGluZWFyKClcbiAgICAgICAgICAuZG9tYWluKFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgTnVtYmVyKG1heChncm91cEtleXMsIGtleSA9PiBtYXgoaGlzdG9ncmFtc0J5R3JvdXBba2V5XSwgZCA9PiBkW2NvdW50UHJvcF0pKSksXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICAgIC5yYW5nZShbMCwgaGVpZ2h0XSksXG4gICAgICBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5cywgaGVpZ2h0LCBjb3VudFByb3BdXG4gICAgKTtcblxuICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrZWRIaXN0b2dyYW0gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SGlzdG9ncmFtV3JhcHBlclxuICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICBzdHlsZT17e21hcmdpbjogYCR7bWFyZ2luLnRvcH1weCAke21hcmdpbi5yaWdodH1weCAke21hcmdpbi5ib3R0b219cHggJHttYXJnaW4ubGVmdH1weGB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8bWFzayBpZD1cImhpc3RvZ3JhbS1tYXNrXCI+XG4gICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgeD1cIjBcIlxuICAgICAgICAgICAgICAgIHk9XCIwXCJcbiAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWlnaHQgKyBtYXJnaW4uYm90dG9tfVxuICAgICAgICAgICAgICAgIGZpbGw9e0hJU1RPR1JBTV9NQVNLX0JHQ09MT1J9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxnIGtleT1cImZpbHRlcmVkLWJpbnNcIiBjbGFzc05hbWU9XCJoaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cC5maWx0ZXJlZEJpbnMubWFwKChiYXIsIGlkeCwgbGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpblJhbmdlXG4gICAgICAgICAgICAgICAgICAgID8gaGlzdG9ncmFtU3R5bGUuaGlnaGxpZ2h0V1xuICAgICAgICAgICAgICAgICAgICA6IGhpc3RvZ3JhbVN0eWxlLnVuSGlnaGxpZ2h0ZWRXO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICRjb2xvcj17SElTVE9HUkFNX01BU0tfRkdDT0xPUn1cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2BtYXNrLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyV2lkdGggKiB3UmF0aW99XG4gICAgICAgICAgICAgICAgICAgICAgeD17eChiYXIueDApICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDJ9XG4gICAgICAgICAgICAgICAgICAgICAgeT17aGVpZ2h0IC0geShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICA8L21hc2s+XG4gICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDApXCI+XG4gICAgICAgICAgICA8SGlzdG9ncmFtTWFza1JlY3RcbiAgICAgICAgICAgICAgeD1cIjBcIlxuICAgICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0ICsgbWFyZ2luLmJvdHRvbX1cbiAgICAgICAgICAgICAgbWFzaz1cInVybCgjaGlzdG9ncmFtLW1hc2spXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICAgIHtpc01hc2tlZCA9PT0gSElTVE9HUkFNX01BU0tfTU9ERS5NYXNrV2l0aE92ZXJsYXkgJiYgKFxuICAgICAgICAgICAgPGcga2V5PVwiYmluc1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDApXCIgY2xhc3NOYW1lPVwib3ZlcmxheS1oaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXAuYmlucy5tYXAoKGJhciwgaWR4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyQmFyID0gaGlzdG9ncmFtc0J5R3JvdXAuZmlsdGVyZWRCaW5zW2lkeF07XG4gICAgICAgICAgICAgICAgY29uc3QgbWFza0hlaWdodCA9IGZpbHRlckJhclxuICAgICAgICAgICAgICAgICAgPyB5KGJhcltjb3VudFByb3BdKSAtIHkoZmlsdGVyQmFyW2NvdW50UHJvcF0pXG4gICAgICAgICAgICAgICAgICA6IHkoYmFyW2NvdW50UHJvcF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0JhckluUmFuZ2UoYmFyLCBpZHgsIGxpc3QsIGRvbWFpbiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdSYXRpbyA9IGluUmFuZ2UgPyBoaXN0b2dyYW1TdHlsZS5oaWdobGlnaHRXIDogaGlzdG9ncmFtU3R5bGUudW5IaWdobGlnaHRlZFc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxCYXJcbiAgICAgICAgICAgICAgICAgICAgJGluUmFuZ2U9e2luUmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YGJhci0ke2lkeH1gfVxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e21hc2tIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtiYXJXaWR0aCAqIHdSYXRpb31cbiAgICAgICAgICAgICAgICAgICAgeD17eChiYXIueDApICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDJ9XG4gICAgICAgICAgICAgICAgICAgIHk9e2hlaWdodCAtIHkoYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxIaXN0b2dyYW1CcmVha0xpbmU+XG4gICAgICAgICAgICB7KGJyZWFrTGluZXMgPz8gW10pLm1hcCgocG9zLCBpZHgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8cGF0aCBrZXk9e2BtYXNrLWxpbmUtJHtpZHh9YH0gc3Ryb2tlRGFzaGFycmF5PVwiNCw0XCIgZD17YE0ke3Bvc30sIDAgbDAgMTAwYH0gLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvSGlzdG9ncmFtQnJlYWtMaW5lPlxuICAgICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke2lzUmFuZ2VkID8gMCA6IGJhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPC9IaXN0b2dyYW1XcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlzTWFza2VkID8gKFxuICAgICAgbWFza2VkSGlzdG9ncmFtKClcbiAgICApIDogKFxuICAgICAgPEhpc3RvZ3JhbVdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgc3R5bGU9e3ttYXJnaW46IGAke21hcmdpbi50b3B9cHggJHttYXJnaW4ucmlnaHR9cHggJHttYXJnaW4uYm90dG9tfXB4ICR7bWFyZ2luLmxlZnR9cHhgfX1cbiAgICAgID5cbiAgICAgICAgPGc+XG4gICAgICAgICAge2dyb3VwS2V5cy5tYXAoKGtleSwgaSkgPT4gKFxuICAgICAgICAgICAgPGcga2V5PXtrZXl9IGNsYXNzTmFtZT1cImhpc3RvZ3JhbS1iYXJzXCI+XG4gICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cFtrZXldLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpblJhbmdlID0gaXNCYXJJblJhbmdlKGJhciwgaWR4LCBsaXN0LCBkb21haW4sIHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHdSYXRpbyA9IGluUmFuZ2UgPyBoaXN0b2dyYW1TdHlsZS5oaWdobGlnaHRXIDogaGlzdG9ncmFtU3R5bGUudW5IaWdobGlnaHRlZFc7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRYID1cbiAgICAgICAgICAgICAgICAgIHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpICsgYmFyV2lkdGggKiBpICsgKGJhcldpZHRoICogKDEgLSB3UmF0aW8pKSAvIDI7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0WCA+IDAgJiYgc3RhcnRYICsgYmFyV2lkdGggKiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVyA8PSB3aWR0aCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPEJhclxuICAgICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICRjb2xvcj17Y29sb3JzQnlHcm91cD8uW2tleV19XG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17YmFyV2lkdGggKiB3UmF0aW99XG4gICAgICAgICAgICAgICAgICAgICAgeD17c3RhcnRYfVxuICAgICAgICAgICAgICAgICAgICAgIHJ4PXsxfVxuICAgICAgICAgICAgICAgICAgICAgIHJ5PXsxfVxuICAgICAgICAgICAgICAgICAgICAgIHk9e2hlaWdodCAtIHkoYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke2lzUmFuZ2VkID8gMCA6IGJhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgIDwvSGlzdG9ncmFtV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdyb3VwcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAocHJvcHMuaGlzdG9ncmFtc0J5R3JvdXAgPyBPYmplY3Qua2V5cyhwcm9wcy5oaXN0b2dyYW1zQnlHcm91cCkgOiBudWxsKSxcbiAgICAgIFtwcm9wcy5oaXN0b2dyYW1zQnlHcm91cF1cbiAgICApO1xuXG4gICAgaWYgKCFncm91cHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxIaXN0b2dyYW1QbG90IHsuLi5wcm9wc30gLz47XG4gIH07XG5cbiAgcmV0dXJuIEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzO1xufVxuZXhwb3J0IGRlZmF1bHQgSGlzdG9ncmFtUGxvdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFBdUMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVB2QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFYLHdCQUFBVyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxD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
|
|
283
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZDNTY2FsZSIsIl9kM0NvbG9yIiwiX2QzQXJyYXkiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJISVNUT0dSQU1fTUFTS19NT0RFIiwiZXhwb3J0cyIsIk5vTWFzayIsIk1hc2siLCJNYXNrV2l0aE92ZXJsYXkiLCJISVNUT0dSQU1fTUFTS19CR0NPTE9SIiwiSElTVE9HUkFNX01BU0tfRkdDT0xPUiIsImhpc3RvZ3JhbVN0eWxlIiwiaGlnaGxpZ2h0VyIsInVuSGlnaGxpZ2h0ZWRXIiwiSGlzdG9ncmFtV3JhcHBlciIsInN0eWxlZCIsInN2ZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiSGlzdG9ncmFtTWFza1JlY3QiLCJyZWN0IiwicHJvcHMiLCJ0aGVtZSIsInBhbmVsQmFja2dyb3VuZCIsIkhpc3RvZ3JhbUJyZWFrTGluZSIsImciLCJoaXN0b2dyYW1CcmVha0xpbmVDb2xvciIsIllBeGlzVGljayIsInRleHQiLCJ0ZXh0Q29sb3IiLCJCYXJVbm1lbW9pemVkIiwiX3JlZiIsIiRpblJhbmdlIiwiJGlzT3ZlcmxheSIsIiRjb2xvciIsImNvbmNhdCIsImhpc3RvZ3JhbU92ZXJsYXlDb2xvciIsImhpc3RvZ3JhbUZpbGxJblJhbmdlIiwiaGNsIiwiZGFya2VyIiwiaGlzdG9ncmFtRmlsbE91dFJhbmdlIiwiQmFyIiwiUmVhY3QiLCJtZW1vIiwiZGlzcGxheU5hbWUiLCJpc0JhckluUmFuZ2UiLCJiYXIiLCJfaW5kZXgiLCJfbGlzdCIsIl9maWx0ZXJEb21haW4iLCJmaWx0ZXJWYWx1ZSIsIngxIiwieDAiLCJ1bmRlZmluZWRUb1plcm8iLCJ2IiwiSGlzdG9ncmFtUGxvdEZhY3RvcnkiLCJIaXN0b2dyYW1QbG90IiwiX3JlZjIiLCJ3aWR0aCIsImhlaWdodCIsImhpc3RvZ3JhbXNCeUdyb3VwIiwiY29sb3JzQnlHcm91cCIsIl9yZWYyJGlzTWFza2VkIiwiaXNNYXNrZWQiLCJpc0VubGFyZ2VkIiwiX3JlZjIkY291bnRQcm9wIiwiY291bnRQcm9wIiwibWFyZ2luIiwiaXNSYW5nZWQiLCJyYW5nZSIsInZhbHVlIiwiYnJ1c2hDb21wb25lbnQiLCJicmVha0xpbmVzIiwiZ3JvdXBLZXlzIiwidXNlTWVtbyIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJfaGlzdG9ncmFtc0J5R3JvdXAka2UiLCJsZW5ndGgiLCJkb21haW4iLCJfbWluIiwiX21heCIsIm1pbiIsIm1heCIsIm51bUJpbnMiLCJtYXhHcm91cCIsInJlZHVjZSIsImFjY3UiLCJfaWR4IiwieCIsInNjYWxlTGluZWFyIiwiZmFsbGJhY2tCYXJXaWR0aCIsInkiLCJNYXRoIiwiTnVtYmVyIiwiZCIsInlBeGlzVGlja3MiLCJ5TWF4IiwidGlja0NvdW50IiwidGlja3MiLCJjbGlwSWRSZWYiLCJ1c2VSZWYiLCJyYW5kb20iLCJ0b1N0cmluZyIsInNsaWNlIiwiY2xpcElkIiwiY3VycmVudCIsIm1hc2tlZEhpc3RvZ3JhbSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsImlkIiwiZmlsbCIsImNsYXNzTmFtZSIsImZpbHRlcmVkQmlucyIsIm1hcCIsImlkeCIsImxpc3QiLCJpblJhbmdlIiwid1JhdGlvIiwiYngwIiwiYngxIiwiYmluVyIsImRyYXduVyIsInRyYW5zZm9ybSIsIm1hc2siLCJjbGlwUGF0aCIsImJpbnMiLCJmaWx0ZXJCYXIiLCJtYXNrSGVpZ2h0IiwicG9zIiwic3Ryb2tlRGFzaGFycmF5IiwicG9pbnRlckV2ZW50cyIsInBlckdyb3VwVyIsImRyYXduV2lkdGgiLCJncm91cE9mZnNldCIsInN0YXJ0WCIsInJ4IiwicnkiLCJ0aWNrIiwidGV4dEFuY2hvciIsImRvbWluYW50QmFzZWxpbmUiLCJIaXN0b2dyYW1QbG90V2l0aEdyb3VwcyIsImdyb3VwcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9oaXN0b2dyYW0tcGxvdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7UmVhY3RFbGVtZW50LCB1c2VNZW1vLCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7c2NhbGVMaW5lYXJ9IGZyb20gJ2QzLXNjYWxlJztcbmltcG9ydCB7aGNsfSBmcm9tICdkMy1jb2xvcic7XG5pbXBvcnQge21pbiwgbWF4fSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtCaW5zfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuLy8gY2xpcHBpbmcgbWFzayBjb25zdGFudHNcbmV4cG9ydCBjb25zdCBISVNUT0dSQU1fTUFTS19NT0RFID0ge1xuICBOb01hc2s6IDAsXG4gIE1hc2s6IDEsXG4gIE1hc2tXaXRoT3ZlcmxheTogMlxufTtcbmNvbnN0IEhJU1RPR1JBTV9NQVNLX0JHQ09MT1IgPSAnI0ZGRkZGRic7XG5jb25zdCBISVNUT0dSQU1fTUFTS19GR0NPTE9SID0gJyMwMDAwMDAnO1xuXG5jb25zdCBoaXN0b2dyYW1TdHlsZSA9IHtcbiAgaGlnaGxpZ2h0VzogMC43LFxuICB1bkhpZ2hsaWdodGVkVzogMC43XG59O1xuXG5jb25zdCBIaXN0b2dyYW1XcmFwcGVyID0gc3R5bGVkLnN2Z2BcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG5gO1xuXG5jb25zdCBIaXN0b2dyYW1NYXNrUmVjdCA9IHN0eWxlZC5yZWN0YFxuICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG5gO1xuXG5jb25zdCBIaXN0b2dyYW1CcmVha0xpbmUgPSBzdHlsZWQuZ2BcbiAgc3Ryb2tlOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhpc3RvZ3JhbUJyZWFrTGluZUNvbG9yfTtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuYDtcblxuY29uc3QgWUF4aXNUaWNrID0gc3R5bGVkLnRleHRgXG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5gO1xuXG50eXBlIEJhclR5cGUgPSB7XG4gICRpblJhbmdlOiBib29sZWFuO1xuICAkaXNPdmVybGF5OiBib29sZWFuO1xuICAkY29sb3I/OiBzdHJpbmc7XG59O1xuY29uc3QgQmFyVW5tZW1vaXplZCA9IHN0eWxlZC5yZWN0PEJhclR5cGU+KFxuICAoe3RoZW1lLCAkaW5SYW5nZSwgJGlzT3ZlcmxheSwgJGNvbG9yfSkgPT4gYFxuICAke1xuICAgICRpc092ZXJsYXlcbiAgICAgID8gYGZpbGw6ICR7JGNvbG9yID8/IHRoZW1lLmhpc3RvZ3JhbU92ZXJsYXlDb2xvcn07YFxuICAgICAgOiAkaW5SYW5nZVxuICAgICAgPyBgZmlsbDogJHskY29sb3IgPz8gdGhlbWUuaGlzdG9ncmFtRmlsbEluUmFuZ2V9O2BcbiAgICAgIDogYGZpbGw6ICR7JGNvbG9yID8gaGNsKCRjb2xvcikuZGFya2VyKCkgOiB0aGVtZS5oaXN0b2dyYW1GaWxsT3V0UmFuZ2V9O2BcbiAgfVxuYFxuKTtcbmNvbnN0IEJhciA9IFJlYWN0Lm1lbW8oQmFyVW5tZW1vaXplZCk7XG5CYXIuZGlzcGxheU5hbWUgPSAnQmFyJztcblxuY29uc3QgaXNCYXJJblJhbmdlID0gKFxuICBiYXI6IHt4MDogbnVtYmVyOyB4MTogbnVtYmVyfSxcbiAgX2luZGV4OiBudW1iZXIsXG4gIF9saXN0OiBhbnlbXSxcbiAgX2ZpbHRlckRvbWFpbjogYW55W10sXG4gIGZpbHRlclZhbHVlOiBhbnlbXVxuKSA9PiBiYXIueDEgPiBmaWx0ZXJWYWx1ZVswXSAmJiBiYXIueDAgPCBmaWx0ZXJWYWx1ZVsxXTtcblxuZXhwb3J0IHR5cGUgSGlzdG9ncmFtTWFza01vZGVUeXBlID0ge1xuICBOb01hc2s6IG51bWJlcjtcbiAgTWFzazogbnVtYmVyO1xuICBNYXNrV2l0aE92ZXJsYXk6IG51bWJlcjtcbn07XG5cbmNvbnN0IHVuZGVmaW5lZFRvWmVybyA9ICh2OiBudW1iZXIgfCB1bmRlZmluZWQpID0+ICh2ID8gdiA6IDApO1xuXG5pbnRlcmZhY2UgSGlzdG9ncmFtUGxvdFByb3BzIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG1hcmdpbjoge3RvcDogbnVtYmVyOyBib3R0b206IG51bWJlcjsgbGVmdDogbnVtYmVyOyByaWdodDogbnVtYmVyfTtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICBpc0VubGFyZ2VkPzogYm9vbGVhbjtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBpc01hc2tlZD86IG51bWJlcjtcbiAgYnJ1c2hDb21wb25lbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIGhpc3RvZ3JhbXNCeUdyb3VwOiBCaW5zO1xuICBjb2xvcnNCeUdyb3VwPzogbnVsbCB8IHtbZGF0YUlkOiBzdHJpbmddOiBzdHJpbmd9O1xuICBjb3VudFByb3A/OiBzdHJpbmc7XG4gIHJhbmdlPzogbnVtYmVyW107XG4gIGJyZWFrTGluZXM/OiBudW1iZXJbXTtcbn1cblxuZnVuY3Rpb24gSGlzdG9ncmFtUGxvdEZhY3RvcnkoKSB7XG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3QgPSAoe1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBoaXN0b2dyYW1zQnlHcm91cCxcbiAgICBjb2xvcnNCeUdyb3VwLFxuICAgIGlzTWFza2VkID0gSElTVE9HUkFNX01BU0tfTU9ERS5Ob01hc2ssXG4gICAgaXNFbmxhcmdlZCxcbiAgICBjb3VudFByb3AgPSAnY291bnQnLFxuICAgIG1hcmdpbixcbiAgICBpc1JhbmdlZCxcbiAgICByYW5nZSxcbiAgICB2YWx1ZSxcbiAgICBicnVzaENvbXBvbmVudCxcbiAgICBicmVha0xpbmVzXG4gIH06IEhpc3RvZ3JhbVBsb3RQcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwS2V5cyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhoaXN0b2dyYW1zQnlHcm91cClcbiAgICAgICAgICAvLyBvbmx5IGtlZXAgbm9uLWVtcHR5IGdyb3Vwc1xuICAgICAgICAgIC5maWx0ZXIoa2V5ID0+IGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0/Lmxlbmd0aCA+IDApLFxuICAgICAgW2hpc3RvZ3JhbXNCeUdyb3VwXVxuICAgICk7XG5cbiAgICBjb25zdCBkb21haW4gPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgcmFuZ2UgPz8gW1xuICAgICAgICAgIG1pbihncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldWzBdLngwKSA/PyAwLFxuICAgICAgICAgIG1heChncm91cEtleXMsIGtleSA9PiBoaXN0b2dyYW1zQnlHcm91cFtrZXldW2hpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoIC0gMV0ueDEpID8/IDBcbiAgICAgICAgXSxcbiAgICAgIFtyYW5nZSwgaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c11cbiAgICApO1xuXG4gICAgY29uc3QgbnVtQmlucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGdyb3VwS2V5cy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuICAgICAgY29uc3QgbWF4R3JvdXAgPSBncm91cEtleXMucmVkdWNlKChhY2N1LCBrZXksIF9pZHgpID0+IHtcbiAgICAgICAgaWYgKGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0ubGVuZ3RoID4gYWNjdS5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gaGlzdG9ncmFtc0J5R3JvdXBba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjdTtcbiAgICAgIH0sIGhpc3RvZ3JhbXNCeUdyb3VwW2dyb3VwS2V5c1swXV0pO1xuICAgICAgcmV0dXJuIG1heEdyb3VwLmxlbmd0aDtcbiAgICB9LCBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5c10pO1xuXG4gICAgY29uc3QgeCA9IHVzZU1lbW8oKCkgPT4gc2NhbGVMaW5lYXIoKS5kb21haW4oZG9tYWluKS5yYW5nZShbMCwgd2lkdGhdKSwgW2RvbWFpbiwgd2lkdGhdKTtcblxuICAgIGNvbnN0IGZhbGxiYWNrQmFyV2lkdGggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChudW1CaW5zID09PSAwKSByZXR1cm4gMDtcbiAgICAgIHJldHVybiB3aWR0aCAvIG51bUJpbnM7XG4gICAgfSwgW251bUJpbnMsIHdpZHRoXSk7XG5cbiAgICBjb25zdCB5ID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIHNjYWxlTGluZWFyKClcbiAgICAgICAgICAuZG9tYWluKFtcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgTnVtYmVyKG1heChncm91cEtleXMsIGtleSA9PiBtYXgoaGlzdG9ncmFtc0J5R3JvdXBba2V5XSwgZCA9PiBkW2NvdW50UHJvcF0pKSksXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdKVxuICAgICAgICAgIC5yYW5nZShbMCwgaGVpZ2h0XSksXG4gICAgICBbaGlzdG9ncmFtc0J5R3JvdXAsIGdyb3VwS2V5cywgaGVpZ2h0LCBjb3VudFByb3BdXG4gICAgKTtcblxuICAgIGNvbnN0IHlBeGlzVGlja3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmICghaXNFbmxhcmdlZCkgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCB5TWF4ID0gTWF0aC5tYXgoXG4gICAgICAgIE51bWJlcihtYXgoZ3JvdXBLZXlzLCBrZXkgPT4gbWF4KGhpc3RvZ3JhbXNCeUdyb3VwW2tleV0sIGQgPT4gZFtjb3VudFByb3BdKSkpLFxuICAgICAgICAxXG4gICAgICApO1xuICAgICAgY29uc3QgdGlja0NvdW50ID0gMztcbiAgICAgIGNvbnN0IHRpY2tzID0gc2NhbGVMaW5lYXIoKS5kb21haW4oWzAsIHlNYXhdKS50aWNrcyh0aWNrQ291bnQpO1xuICAgICAgcmV0dXJuIHRpY2tzO1xuICAgIH0sIFtpc0VubGFyZ2VkLCBncm91cEtleXMsIGhpc3RvZ3JhbXNCeUdyb3VwLCBjb3VudFByb3BdKTtcblxuICAgIGNvbnN0IGNsaXBJZFJlZiA9IHVzZVJlZihgaGlzdG9ncmFtLWNsaXAtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1gKTtcbiAgICBjb25zdCBjbGlwSWQgPSBjbGlwSWRSZWYuY3VycmVudDtcblxuICAgIGlmIChncm91cEtleXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXNrZWRIaXN0b2dyYW0gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SGlzdG9ncmFtV3JhcHBlclxuICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICBzdHlsZT17e21hcmdpbjogYCR7bWFyZ2luLnRvcH1weCAke21hcmdpbi5yaWdodH1weCAke21hcmdpbi5ib3R0b219cHggJHttYXJnaW4ubGVmdH1weGB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8Y2xpcFBhdGggaWQ9e2Ake2NsaXBJZH0tbWFza2B9PlxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodCArIG1hcmdpbi5ib3R0b219IC8+XG4gICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgPG1hc2sgaWQ9XCJoaXN0b2dyYW0tbWFza1wiPlxuICAgICAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAgICAgIHg9XCIwXCJcbiAgICAgICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0ICsgbWFyZ2luLmJvdHRvbX1cbiAgICAgICAgICAgICAgICBmaWxsPXtISVNUT0dSQU1fTUFTS19CR0NPTE9SfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8ZyBrZXk9XCJmaWx0ZXJlZC1iaW5zXCIgY2xhc3NOYW1lPVwiaGlzdG9ncmFtLWJhcnNcIj5cbiAgICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXAuZmlsdGVyZWRCaW5zLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGluUmFuZ2UgPSBpc0JhckluUmFuZ2UoYmFyLCBpZHgsIGxpc3QsIGRvbWFpbiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW5SYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IGhpc3RvZ3JhbVN0eWxlLmhpZ2hsaWdodFdcbiAgICAgICAgICAgICAgICAgICAgOiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVztcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJ4MCA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpO1xuICAgICAgICAgICAgICAgICAgY29uc3QgYngxID0geCh1bmRlZmluZWRUb1plcm8oYmFyLngxKSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBiaW5XID0gTWF0aC5tYXgoYngxIC0gYngwLCAxKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGRyYXduVyA9IGJpblcgKiB3UmF0aW87XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICAgJGlzT3ZlcmxheT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgJGluUmFuZ2U9e2luUmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgJGNvbG9yPXtISVNUT0dSQU1fTUFTS19GR0NPTE9SfVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17YG1hc2stJHtpZHh9YH1cbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9e3koYmFyW2NvdW50UHJvcF0pfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtkcmF3bld9XG4gICAgICAgICAgICAgICAgICAgICAgeD17YngwICsgKGJpblcgLSBkcmF3blcpIC8gMn1cbiAgICAgICAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvbWFzaz5cbiAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsMClcIj5cbiAgICAgICAgICAgIDxIaXN0b2dyYW1NYXNrUmVjdFxuICAgICAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgICAgIHk9XCIwXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgaGVpZ2h0PXtoZWlnaHQgKyBtYXJnaW4uYm90dG9tfVxuICAgICAgICAgICAgICBtYXNrPVwidXJsKCNoaXN0b2dyYW0tbWFzaylcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgICAge2lzTWFza2VkID09PSBISVNUT0dSQU1fTUFTS19NT0RFLk1hc2tXaXRoT3ZlcmxheSAmJiAoXG4gICAgICAgICAgICA8Z1xuICAgICAgICAgICAgICBrZXk9XCJiaW5zXCJcbiAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsMClcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJvdmVybGF5LWhpc3RvZ3JhbS1iYXJzXCJcbiAgICAgICAgICAgICAgY2xpcFBhdGg9e2B1cmwoIyR7Y2xpcElkfS1tYXNrKWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtoaXN0b2dyYW1zQnlHcm91cC5iaW5zLm1hcCgoYmFyLCBpZHgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJCYXIgPSBoaXN0b2dyYW1zQnlHcm91cC5maWx0ZXJlZEJpbnNbaWR4XTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXNrSGVpZ2h0ID0gZmlsdGVyQmFyXG4gICAgICAgICAgICAgICAgICA/IHkoYmFyW2NvdW50UHJvcF0pIC0geShmaWx0ZXJCYXJbY291bnRQcm9wXSlcbiAgICAgICAgICAgICAgICAgIDogeShiYXJbY291bnRQcm9wXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW5SYW5nZSA/IGhpc3RvZ3JhbVN0eWxlLmhpZ2hsaWdodFcgOiBoaXN0b2dyYW1TdHlsZS51bkhpZ2hsaWdodGVkVztcbiAgICAgICAgICAgICAgICBjb25zdCBieDAgPSB4KHVuZGVmaW5lZFRvWmVybyhiYXIueDApKTtcbiAgICAgICAgICAgICAgICBjb25zdCBieDEgPSB4KHVuZGVmaW5lZFRvWmVybyhiYXIueDEpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBiaW5XID0gTWF0aC5tYXgoYngxIC0gYngwLCAxKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkcmF3blcgPSBiaW5XICogd1JhdGlvO1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICRpblJhbmdlPXtpblJhbmdlfVxuICAgICAgICAgICAgICAgICAgICAkaXNPdmVybGF5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2BiYXItJHtpZHh9YH1cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXttYXNrSGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD17ZHJhd25XfVxuICAgICAgICAgICAgICAgICAgICB4PXtieDAgKyAoYmluVyAtIGRyYXduVykgLyAyfVxuICAgICAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KGJhcltjb3VudFByb3BdKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8SGlzdG9ncmFtQnJlYWtMaW5lPlxuICAgICAgICAgICAgeyhicmVha0xpbmVzID8/IFtdKS5tYXAoKHBvcywgaWR4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPHBhdGgga2V5PXtgbWFzay1saW5lLSR7aWR4fWB9IHN0cm9rZURhc2hhcnJheT1cIjQsNFwiIGQ9e2BNJHtwb3N9LCAwIGwwIDEwMGB9IC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L0hpc3RvZ3JhbUJyZWFrTGluZT5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtpc1JhbmdlZCA/IDAgOiBmYWxsYmFja0JhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPC9IaXN0b2dyYW1XcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGlzTWFza2VkID8gKFxuICAgICAgbWFza2VkSGlzdG9ncmFtKClcbiAgICApIDogKFxuICAgICAgPEhpc3RvZ3JhbVdyYXBwZXJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgc3R5bGU9e3ttYXJnaW46IGAke21hcmdpbi50b3B9cHggJHttYXJnaW4ucmlnaHR9cHggJHttYXJnaW4uYm90dG9tfXB4ICR7bWFyZ2luLmxlZnR9cHhgfX1cbiAgICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPGNsaXBQYXRoIGlkPXtjbGlwSWR9PlxuICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IC8+XG4gICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgICA8ZyB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoJHtpc1JhbmdlZCA/IDAgOiBmYWxsYmFja0JhcldpZHRoIC8gMn0sIDApYH0+e2JydXNoQ29tcG9uZW50fTwvZz5cbiAgICAgICAgPGcgY2xpcFBhdGg9e2B1cmwoIyR7Y2xpcElkfSlgfSBzdHlsZT17e3BvaW50ZXJFdmVudHM6ICdub25lJ319PlxuICAgICAgICAgIHtncm91cEtleXMubWFwKChrZXksIGkpID0+IChcbiAgICAgICAgICAgIDxnIGtleT17a2V5fSBjbGFzc05hbWU9XCJoaXN0b2dyYW0tYmFyc1wiPlxuICAgICAgICAgICAgICB7aGlzdG9ncmFtc0J5R3JvdXBba2V5XS5tYXAoKGJhciwgaWR4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5SYW5nZSA9IGlzQmFySW5SYW5nZShiYXIsIGlkeCwgbGlzdCwgZG9tYWluLCB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpblJhbmdlID8gaGlzdG9ncmFtU3R5bGUuaGlnaGxpZ2h0VyA6IGhpc3RvZ3JhbVN0eWxlLnVuSGlnaGxpZ2h0ZWRXO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ4MCA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ4MSA9IHgodW5kZWZpbmVkVG9aZXJvKGJhci54MSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpblcgPSBNYXRoLm1heChieDEgLSBieDAsIDEpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlckdyb3VwVyA9IGlzTWFza2VkID8gYmluVyA6IGJpblcgLyBncm91cEtleXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyYXduV2lkdGggPSBwZXJHcm91cFcgKiB3UmF0aW87XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBPZmZzZXQgPVxuICAgICAgICAgICAgICAgICAgZ3JvdXBLZXlzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICAgICAgPyBwZXJHcm91cFcgKiBpICsgKHBlckdyb3VwVyAtIGRyYXduV2lkdGgpIC8gMlxuICAgICAgICAgICAgICAgICAgICA6IChiaW5XIC0gZHJhd25XaWR0aCkgLyAyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0WCA9IGJ4MCArIGdyb3VwT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8QmFyXG4gICAgICAgICAgICAgICAgICAgICRpc092ZXJsYXk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAkaW5SYW5nZT17aW5SYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yPXtjb2xvcnNCeUdyb3VwPy5ba2V5XX1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgYmFyLSR7aWR4fWB9XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodD17eShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPXtkcmF3bldpZHRofVxuICAgICAgICAgICAgICAgICAgICB4PXtzdGFydFh9XG4gICAgICAgICAgICAgICAgICAgIHJ4PXsxfVxuICAgICAgICAgICAgICAgICAgICByeT17MX1cbiAgICAgICAgICAgICAgICAgICAgeT17aGVpZ2h0IC0geShiYXJbY291bnRQcm9wXSl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2c+XG4gICAgICAgIHt5QXhpc1RpY2tzID8gKFxuICAgICAgICAgIDxnIGNsYXNzTmFtZT1cImhpc3RvZ3JhbS15LWF4aXNcIj5cbiAgICAgICAgICAgIHt5QXhpc1RpY2tzLm1hcCh0aWNrID0+IChcbiAgICAgICAgICAgICAgPFlBeGlzVGlja1xuICAgICAgICAgICAgICAgIGtleT17dGlja31cbiAgICAgICAgICAgICAgICB4PXstNH1cbiAgICAgICAgICAgICAgICB5PXtoZWlnaHQgLSB5KHRpY2spfVxuICAgICAgICAgICAgICAgIHRleHRBbmNob3I9XCJlbmRcIlxuICAgICAgICAgICAgICAgIGRvbWluYW50QmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RpY2t9XG4gICAgICAgICAgICAgIDwvWUF4aXNUaWNrPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9nPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvSGlzdG9ncmFtV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdyb3VwcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAocHJvcHMuaGlzdG9ncmFtc0J5R3JvdXAgPyBPYmplY3Qua2V5cyhwcm9wcy5oaXN0b2dyYW1zQnlHcm91cCkgOiBudWxsKSxcbiAgICAgIFtwcm9wcy5oaXN0b2dyYW1zQnlHcm91cF1cbiAgICApO1xuXG4gICAgaWYgKCFncm91cHM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxIaXN0b2dyYW1QbG90IHsuLi5wcm9wc30gLz47XG4gIH07XG5cbiAgcmV0dXJuIEhpc3RvZ3JhbVBsb3RXaXRoR3JvdXBzO1xufVxuZXhwb3J0IGRlZmF1bHQgSGlzdG9ncmFtUGxvdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFBdUMsSUFBQU0sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVB2QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFB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
|
|
@@ -7,9 +7,7 @@ interface IconButtonProps extends ButtonProps {
|
|
|
7
7
|
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
8
8
|
children?: ReactNode;
|
|
9
9
|
}
|
|
10
|
-
export declare const IconButton: import("styled-components").
|
|
11
|
-
ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
12
|
-
}>, never>, "ref" | "link" | "small" | "width" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement> | "size" | "negative" | "secondary" | "floating" | "cta" | "large" | "inactive"> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
10
|
+
export declare const IconButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import("react").ClassAttributes<HTMLButtonElement> | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement>> & import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "small" | "ref" | "link" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement> | "negative" | "secondary" | "floating" | "cta" | "large" | "width" | "inactive" | "size"> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
13
11
|
className?: string;
|
|
14
12
|
ref?: React.ForwardedRef<HTMLElement>;
|
|
15
13
|
children?: React.ReactNode;
|
|
@@ -24,7 +22,56 @@ export declare const IconButton: import("styled-components").IStyledComponent<"w
|
|
|
24
22
|
width?: string;
|
|
25
23
|
inactive?: boolean;
|
|
26
24
|
size?: string;
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
}, "className"> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import("react").ClassAttributes<HTMLButtonElement> | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement>> & import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "small" | "ref" | "link" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement> | "negative" | "secondary" | "floating" | "cta" | "large" | "width" | "inactive" | "size"> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
26
|
+
className?: string;
|
|
27
|
+
ref?: React.ForwardedRef<HTMLElement>;
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
negative?: boolean;
|
|
30
|
+
secondary?: boolean;
|
|
31
|
+
link?: boolean;
|
|
32
|
+
floating?: boolean;
|
|
33
|
+
cta?: boolean;
|
|
34
|
+
large?: boolean;
|
|
35
|
+
small?: boolean;
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
width?: string;
|
|
38
|
+
inactive?: boolean;
|
|
39
|
+
size?: string;
|
|
40
|
+
}, "className">>, "as" | "forwardedAs"> & {
|
|
41
|
+
as?: import("styled-components").WebTarget | undefined;
|
|
42
|
+
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
43
|
+
}, keyof IconButtonProps> & IconButtonProps, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import("react").ClassAttributes<HTMLButtonElement> | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement>> & import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "small" | "ref" | "link" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement> | "negative" | "secondary" | "floating" | "cta" | "large" | "width" | "inactive" | "size"> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
44
|
+
className?: string;
|
|
45
|
+
ref?: React.ForwardedRef<HTMLElement>;
|
|
46
|
+
children?: React.ReactNode;
|
|
47
|
+
negative?: boolean;
|
|
48
|
+
secondary?: boolean;
|
|
49
|
+
link?: boolean;
|
|
50
|
+
floating?: boolean;
|
|
51
|
+
cta?: boolean;
|
|
52
|
+
large?: boolean;
|
|
53
|
+
small?: boolean;
|
|
54
|
+
disabled?: boolean;
|
|
55
|
+
width?: string;
|
|
56
|
+
inactive?: boolean;
|
|
57
|
+
size?: string;
|
|
58
|
+
}, "className"> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import("react").ClassAttributes<HTMLButtonElement> | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement>> & import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "small" | "ref" | "link" | keyof import("react").ButtonHTMLAttributes<HTMLButtonElement> | "negative" | "secondary" | "floating" | "cta" | "large" | "width" | "inactive" | "size"> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
59
|
+
className?: string;
|
|
60
|
+
ref?: React.ForwardedRef<HTMLElement>;
|
|
61
|
+
children?: React.ReactNode;
|
|
62
|
+
negative?: boolean;
|
|
63
|
+
secondary?: boolean;
|
|
64
|
+
link?: boolean;
|
|
65
|
+
floating?: boolean;
|
|
66
|
+
cta?: boolean;
|
|
67
|
+
large?: boolean;
|
|
68
|
+
small?: boolean;
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
width?: string;
|
|
71
|
+
inactive?: boolean;
|
|
72
|
+
size?: string;
|
|
73
|
+
}, "className">>, "as" | "forwardedAs"> & {
|
|
74
|
+
as?: import("styled-components").WebTarget | undefined;
|
|
75
|
+
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
76
|
+
}, keyof IconButtonProps> & IconButtonProps, never>>> & string;
|
|
30
77
|
export default IconButton;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
export default class AirplaneModelIcon extends Component {
|
|
4
|
+
static propTypes: {
|
|
5
|
+
/** Set the height of the icon, ex. '16px' */
|
|
6
|
+
height: PropTypes.Requireable<string>;
|
|
7
|
+
};
|
|
8
|
+
static defaultProps: {
|
|
9
|
+
height: string;
|
|
10
|
+
predefinedClassName: string;
|
|
11
|
+
viewBox: string;
|
|
12
|
+
};
|
|
13
|
+
render(): React.JSX.Element;
|
|
14
|
+
}
|