kepler.gl 3.1.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -132
- package/dist/src/common-utils/src/data-type.d.ts +9 -1
- package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
- package/dist/src/components/src/common/data-table/index.d.ts +1 -0
- package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
- package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
- package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
- package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
- package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
- package/dist/src/components/src/geocoder-panel.d.ts +2 -2
- package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/dist/src/constants/src/default-settings.d.ts +14 -1
- package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
- package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
- package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
- package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
- package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
- package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
- package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
- package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
- package/dist/src/processors/src/data-processor.d.ts +15 -1
- package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
- package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
- package/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/dist/src/utils/src/application-config.d.ts +4 -3
- package/dist/src/utils/src/data-utils.d.ts +9 -3
- package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
- package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
- package/dist/src/utils/src/map-utils.d.ts +1 -1
- package/dist/src/utils/src/plot.d.ts +2 -2
- package/package.json +5 -5
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
- package/src/ai-assistant/package.json +7 -7
- package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/dist/data-type.d.ts +9 -1
- package/src/common-utils/dist/data-type.js +50 -1
- package/src/common-utils/package.json +3 -3
- package/src/common-utils/src/data-type.ts +49 -1
- package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
- package/src/components/dist/common/data-table/header-cell.js +2 -2
- package/src/components/dist/common/data-table/index.d.ts +1 -0
- package/src/components/dist/common/data-table/index.js +5 -1
- package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
- package/src/components/dist/common/file-uploader/file-drop.js +152 -167
- package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
- package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
- package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
- package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
- package/src/components/dist/common/range-brush.js +3 -3
- package/src/components/dist/geocoder/geocoder.d.ts +7 -0
- package/src/components/dist/geocoder/geocoder.js +19 -11
- package/src/components/dist/geocoder-panel.d.ts +2 -2
- package/src/components/dist/geocoder-panel.js +64 -91
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
- package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
- package/src/components/dist/hooks/use-legend-position.js +8 -4
- package/src/components/dist/map/map-legend-panel.js +2 -3
- package/src/components/dist/modal-container.js +8 -8
- package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
- package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
- package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
- package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
- package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
- package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
- package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
- package/src/components/package.json +16 -16
- package/src/components/src/common/data-table/header-cell.tsx +2 -1
- package/src/components/src/common/data-table/index.tsx +4 -0
- package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
- package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
- package/src/components/src/common/range-brush.tsx +2 -2
- package/src/components/src/geocoder/geocoder.tsx +16 -8
- package/src/components/src/geocoder-panel.tsx +95 -85
- package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
- package/src/components/src/hooks/use-legend-position.ts +5 -2
- package/src/components/src/map/map-legend-panel.tsx +1 -2
- package/src/components/src/modal-container.tsx +7 -7
- package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
- package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
- package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
- package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
- package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
- package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
- package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
- package/src/constants/dist/default-settings.d.ts +14 -1
- package/src/constants/dist/default-settings.js +20 -5
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/src/default-settings.ts +16 -1
- package/src/constants/umd/keplergl.min.js +2 -2
- package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
- package/src/deckgl-arrow-layers/dist/constants.js +4 -15
- package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
- package/src/deckgl-arrow-layers/dist/index.js +1 -8
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
- package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
- package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
- package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
- package/src/deckgl-arrow-layers/package.json +2 -1
- package/src/deckgl-arrow-layers/src/constants.ts +0 -13
- package/src/deckgl-arrow-layers/src/index.ts +0 -2
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
- package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
- package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
- package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
- package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
- package/src/deckgl-layers/package.json +5 -5
- package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
- package/src/duckdb/dist/components/monaco-editor.js +4 -5
- package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
- package/src/duckdb/dist/components/preview-data-panel.js +7 -8
- package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
- package/src/duckdb/dist/components/schema-panel.js +41 -24
- package/src/duckdb/dist/components/sql-panel.js +245 -56
- package/src/duckdb/dist/init.js +20 -14
- package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
- package/src/duckdb/dist/processors/data-processor.js +4 -4
- package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
- package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
- package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
- package/src/duckdb/dist/table/duckdb-table.js +153 -261
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/components/monaco-editor.tsx +3 -3
- package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
- package/src/duckdb/src/components/schema-panel.tsx +92 -21
- package/src/duckdb/src/components/sql-panel.tsx +160 -22
- package/src/duckdb/src/init.ts +4 -1
- package/src/duckdb/src/processors/data-processor.ts +2 -2
- package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
- package/src/duckdb/src/table/duckdb-table.ts +61 -92
- package/src/effects/package.json +5 -5
- package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
- package/src/layers/dist/arc-layer/arc-layer.js +2 -3
- package/src/layers/dist/base-layer.d.ts +7 -6
- package/src/layers/dist/base-layer.js +36 -19
- package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
- package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
- package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
- package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
- package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
- package/src/layers/dist/icon-layer/icon-layer.js +19 -11
- package/src/layers/dist/index.d.ts +1 -1
- package/src/layers/dist/index.js +1 -1
- package/src/layers/dist/layer-text-label.d.ts +9 -0
- package/src/layers/dist/layer-text-label.js +51 -6
- package/src/layers/dist/layer-utils.d.ts +39 -30
- package/src/layers/dist/layer-utils.js +69 -9
- package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
- package/src/layers/dist/line-layer/line-layer.js +2 -3
- package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
- package/src/layers/dist/point-layer/point-layer.js +16 -8
- package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
- package/src/layers/dist/trip-layer/trip-layer.js +4 -2
- package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
- package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
- package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
- package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
- package/src/layers/package.json +11 -10
- package/src/layers/src/arc-layer/arc-layer.ts +1 -1
- package/src/layers/src/base-layer.ts +50 -9
- package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
- package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
- package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
- package/src/layers/src/icon-layer/icon-layer.ts +7 -3
- package/src/layers/src/index.ts +1 -2
- package/src/layers/src/layer-text-label.ts +53 -4
- package/src/layers/src/layer-utils.ts +88 -9
- package/src/layers/src/line-layer/line-layer.ts +1 -1
- package/src/layers/src/point-layer/point-layer.ts +15 -11
- package/src/layers/src/trip-layer/trip-layer.ts +4 -2
- package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
- package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
- package/src/localization/package.json +1 -1
- package/src/processors/dist/data-processor.d.ts +15 -1
- package/src/processors/dist/data-processor.js +104 -11
- package/src/processors/package.json +8 -7
- package/src/processors/src/data-processor.ts +116 -13
- package/src/reducers/dist/export-utils.js +2 -2
- package/src/reducers/dist/layer-utils.js +1 -1
- package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
- package/src/reducers/dist/provider-state-updaters.js +5 -2
- package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
- package/src/reducers/dist/vis-state-updaters.js +23 -12
- package/src/reducers/package.json +16 -16
- package/src/reducers/src/export-utils.ts +1 -1
- package/src/reducers/src/layer-utils.ts +2 -1
- package/src/reducers/src/provider-state-updaters.ts +4 -1
- package/src/reducers/src/vis-state-updaters.ts +45 -10
- package/src/schemas/dist/dataset-schema.js +35 -6
- package/src/schemas/package.json +7 -7
- package/src/schemas/src/dataset-schema.ts +36 -8
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +2 -2
- package/src/table/dist/dataset-utils.js +23 -14
- package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
- package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
- package/src/table/dist/tileset/vector-tile-utils.js +122 -2
- package/src/table/package.json +5 -5
- package/src/table/src/dataset-utils.ts +16 -6
- package/src/table/src/tileset/vector-tile-utils.ts +131 -8
- package/src/tasks/package.json +2 -2
- package/src/types/actions.d.ts +1 -0
- package/src/types/layers.d.ts +1 -0
- package/src/types/package.json +1 -1
- package/src/types/types.d.ts +17 -0
- package/src/utils/dist/application-config.d.ts +4 -3
- package/src/utils/dist/application-config.js +3 -2
- package/src/utils/dist/data-scale-utils.js +4 -4
- package/src/utils/dist/data-utils.d.ts +9 -3
- package/src/utils/dist/data-utils.js +40 -7
- package/src/utils/dist/dataset-utils.js +23 -8
- package/src/utils/dist/indexed-data-container.d.ts +2 -2
- package/src/utils/dist/indexed-data-container.js +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
- package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
- package/src/utils/dist/plot.d.ts +2 -2
- package/src/utils/dist/plot.js +6 -6
- package/src/utils/map-utils.spec.js +1 -2
- package/src/utils/package.json +5 -4
- package/src/utils/src/application-config.ts +11 -8
- package/src/utils/src/data-scale-utils.ts +3 -3
- package/src/utils/src/data-utils.ts +36 -7
- package/src/utils/src/dataset-utils.ts +41 -9
- package/src/utils/src/indexed-data-container.ts +1 -1
- package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
- package/src/utils/src/plot.ts +5 -5
- package/umd/keplergl.min.js +1279 -1295
|
@@ -1,175 +1,28 @@
|
|
|
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
8
|
exports["default"] = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
11
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
11
|
var _window = _interopRequireDefault(require("global/window"));
|
|
16
|
-
function
|
|
17
|
-
function
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
// SPDX-License-Identifier: MIT
|
|
18
15
|
// Copyright contributors to the kepler.gl project
|
|
16
|
+
|
|
19
17
|
/**
|
|
20
18
|
* Copied from https://github.com/sarink/react-file-drop
|
|
21
19
|
* For React 16.8 compatibility
|
|
22
20
|
*/
|
|
23
|
-
/** @typedef {import('./file-drop').FileDropProps} FileDropProps */
|
|
24
|
-
/** @augments React.PureComponent<FileDropProps> */
|
|
25
|
-
var FileDrop = /*#__PURE__*/function (_React$PureComponent) {
|
|
26
|
-
function FileDrop() {
|
|
27
|
-
var _this;
|
|
28
|
-
(0, _classCallCheck2["default"])(this, FileDrop);
|
|
29
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
|
-
args[_key] = arguments[_key];
|
|
31
|
-
}
|
|
32
|
-
_this = _callSuper(this, FileDrop, [].concat(args));
|
|
33
|
-
(0, _defineProperty2["default"])(_this, "frameDragCounter", 0);
|
|
34
|
-
(0, _defineProperty2["default"])(_this, "state", {
|
|
35
|
-
draggingOverFrame: false,
|
|
36
|
-
draggingOverTarget: false
|
|
37
|
-
});
|
|
38
|
-
(0, _defineProperty2["default"])(_this, "resetDragging", function () {
|
|
39
|
-
_this.frameDragCounter = 0;
|
|
40
|
-
_this.setState({
|
|
41
|
-
draggingOverFrame: false,
|
|
42
|
-
draggingOverTarget: false
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
(0, _defineProperty2["default"])(_this, "handleWindowDragOverOrDrop", function (event) {
|
|
46
|
-
// This prevents the browser from trying to load whatever file the user dropped on the window
|
|
47
|
-
event.preventDefault();
|
|
48
|
-
});
|
|
49
|
-
(0, _defineProperty2["default"])(_this, "handleFrameDrag", function (event) {
|
|
50
|
-
// Only allow dragging of files
|
|
51
|
-
if (!FileDrop.eventHasFiles(event)) return;
|
|
52
21
|
|
|
53
|
-
|
|
54
|
-
// the event bubbles up to the frame. By keeping count of how many "dragenters" we get, we can tell if they are still
|
|
55
|
-
// "draggingOverFrame" (b/c you get one "dragenter" initially, and one "dragenter"/one "dragleave" for every bubble)
|
|
56
|
-
// This is far better than a "dragover" handler, which would be calling `setState` continuously.
|
|
57
|
-
_this.frameDragCounter += event.type === 'dragenter' ? 1 : -1;
|
|
58
|
-
if (_this.frameDragCounter === 1) {
|
|
59
|
-
_this.setState({
|
|
60
|
-
draggingOverFrame: true
|
|
61
|
-
});
|
|
62
|
-
if (_this.props.onFrameDragEnter) _this.props.onFrameDragEnter(event);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (_this.frameDragCounter === 0) {
|
|
66
|
-
_this.setState({
|
|
67
|
-
draggingOverFrame: false
|
|
68
|
-
});
|
|
69
|
-
if (_this.props.onFrameDragLeave) _this.props.onFrameDragLeave(event);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
(0, _defineProperty2["default"])(_this, "handleFrameDrop", function (event) {
|
|
74
|
-
event.preventDefault();
|
|
75
|
-
if (!_this.state.draggingOverTarget) {
|
|
76
|
-
_this.resetDragging();
|
|
77
|
-
if (_this.props.onFrameDrop) _this.props.onFrameDrop(event);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
(0, _defineProperty2["default"])(_this, "handleDragOver", function (event) {
|
|
81
|
-
if (FileDrop.eventHasFiles(event)) {
|
|
82
|
-
_this.setState({
|
|
83
|
-
draggingOverTarget: true
|
|
84
|
-
});
|
|
85
|
-
if (!FileDrop.isIE() && _this.props.dropEffect) event.dataTransfer.dropEffect = _this.props.dropEffect;
|
|
86
|
-
if (_this.props.onDragOver) _this.props.onDragOver(event);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
(0, _defineProperty2["default"])(_this, "handleDragLeave", function (event) {
|
|
90
|
-
_this.setState({
|
|
91
|
-
draggingOverTarget: false
|
|
92
|
-
});
|
|
93
|
-
if (_this.props.onDragLeave) _this.props.onDragLeave(event);
|
|
94
|
-
});
|
|
95
|
-
(0, _defineProperty2["default"])(_this, "handleDrop", function (event) {
|
|
96
|
-
if (_this.props.onDrop && FileDrop.eventHasFiles(event)) {
|
|
97
|
-
var files = event.dataTransfer ? event.dataTransfer.files : null;
|
|
98
|
-
_this.props.onDrop(files, event);
|
|
99
|
-
}
|
|
100
|
-
_this.resetDragging();
|
|
101
|
-
});
|
|
102
|
-
(0, _defineProperty2["default"])(_this, "stopFrameListeners", function (frame) {
|
|
103
|
-
if (frame) {
|
|
104
|
-
frame.removeEventListener('dragenter', _this.handleFrameDrag);
|
|
105
|
-
frame.removeEventListener('dragleave', _this.handleFrameDrag);
|
|
106
|
-
frame.removeEventListener('drop', _this.handleFrameDrop);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
(0, _defineProperty2["default"])(_this, "startFrameListeners", function (frame) {
|
|
110
|
-
if (frame) {
|
|
111
|
-
frame.addEventListener('dragenter', _this.handleFrameDrag);
|
|
112
|
-
frame.addEventListener('dragleave', _this.handleFrameDrag);
|
|
113
|
-
frame.addEventListener('drop', _this.handleFrameDrop);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
return _this;
|
|
117
|
-
}
|
|
118
|
-
(0, _inherits2["default"])(FileDrop, _React$PureComponent);
|
|
119
|
-
return (0, _createClass2["default"])(FileDrop, [{
|
|
120
|
-
key: "componentDidMount",
|
|
121
|
-
value: function componentDidMount() {
|
|
122
|
-
this.startFrameListeners(this.props.frame);
|
|
123
|
-
this.resetDragging();
|
|
124
|
-
_window["default"].addEventListener('dragover', this.handleWindowDragOverOrDrop);
|
|
125
|
-
_window["default"].addEventListener('drop', this.handleWindowDragOverOrDrop);
|
|
126
|
-
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "componentDidUpdate",
|
|
129
|
-
value: function componentDidUpdate(prevProps) {
|
|
130
|
-
if (prevProps.frame !== this.props.frame) {
|
|
131
|
-
this.resetDragging();
|
|
132
|
-
this.stopFrameListeners(prevProps.frame);
|
|
133
|
-
this.startFrameListeners(this.props.frame);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}, {
|
|
137
|
-
key: "componentWillUnmount",
|
|
138
|
-
value: function componentWillUnmount() {
|
|
139
|
-
this.stopFrameListeners(this.props.frame);
|
|
140
|
-
_window["default"].removeEventListener('dragover', this.handleWindowDragOverOrDrop);
|
|
141
|
-
_window["default"].removeEventListener('drop', this.handleWindowDragOverOrDrop);
|
|
142
|
-
}
|
|
143
|
-
}, {
|
|
144
|
-
key: "render",
|
|
145
|
-
value: function render() {
|
|
146
|
-
var _this$props = this.props,
|
|
147
|
-
children = _this$props.children,
|
|
148
|
-
className = _this$props.className,
|
|
149
|
-
targetClassName = _this$props.targetClassName,
|
|
150
|
-
draggingOverFrameClassName = _this$props.draggingOverFrameClassName,
|
|
151
|
-
draggingOverTargetClassName = _this$props.draggingOverTargetClassName;
|
|
152
|
-
var _this$state = this.state,
|
|
153
|
-
draggingOverTarget = _this$state.draggingOverTarget,
|
|
154
|
-
draggingOverFrame = _this$state.draggingOverFrame;
|
|
155
|
-
var fileDropTargetClassName = targetClassName;
|
|
156
|
-
if (draggingOverFrame) fileDropTargetClassName += " ".concat(draggingOverFrameClassName);
|
|
157
|
-
if (draggingOverTarget) fileDropTargetClassName += " ".concat(draggingOverTargetClassName);
|
|
158
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
|
-
className: className,
|
|
160
|
-
onDragOver: this.handleDragOver,
|
|
161
|
-
onDragLeave: this.handleDragLeave,
|
|
162
|
-
onDrop: this.handleDrop
|
|
163
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
164
|
-
className: fileDropTargetClassName
|
|
165
|
-
}, children));
|
|
166
|
-
}
|
|
167
|
-
}]);
|
|
168
|
-
}(_react["default"].PureComponent);
|
|
169
|
-
(0, _defineProperty2["default"])(FileDrop, "isIE", function () {
|
|
22
|
+
var isIE = function isIE() {
|
|
170
23
|
return _window["default"] && _window["default"].navigator && ((_window["default"].navigator.userAgent || []).includes('MSIE') || (_window["default"].navigator.appVersion || []).includes('Trident/'));
|
|
171
|
-
}
|
|
172
|
-
|
|
24
|
+
};
|
|
25
|
+
var eventHasFiles = function eventHasFiles(event) {
|
|
173
26
|
// In most browsers this is an array, but in IE11 it's an Object :(
|
|
174
27
|
|
|
175
28
|
var hasFiles = false;
|
|
@@ -183,14 +36,146 @@ var FileDrop = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
183
36
|
}
|
|
184
37
|
}
|
|
185
38
|
return hasFiles;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
dropEffect
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
39
|
+
};
|
|
40
|
+
var FileDrop = function FileDrop(_ref) {
|
|
41
|
+
var _ref$dropEffect = _ref.dropEffect,
|
|
42
|
+
dropEffect = _ref$dropEffect === void 0 ? 'copy' : _ref$dropEffect,
|
|
43
|
+
_ref$frame = _ref.frame,
|
|
44
|
+
frame = _ref$frame === void 0 ? _window["default"] ? _window["default"].document : undefined : _ref$frame,
|
|
45
|
+
_ref$className = _ref.className,
|
|
46
|
+
className = _ref$className === void 0 ? 'file-drop' : _ref$className,
|
|
47
|
+
_ref$targetClassName = _ref.targetClassName,
|
|
48
|
+
targetClassName = _ref$targetClassName === void 0 ? 'file-drop-target' : _ref$targetClassName,
|
|
49
|
+
_ref$draggingOverFram = _ref.draggingOverFrameClassName,
|
|
50
|
+
draggingOverFrameClassName = _ref$draggingOverFram === void 0 ? 'file-drop-dragging-over-frame' : _ref$draggingOverFram,
|
|
51
|
+
_ref$draggingOverTarg = _ref.draggingOverTargetClassName,
|
|
52
|
+
draggingOverTargetClassName = _ref$draggingOverTarg === void 0 ? 'file-drop-dragging-over-target' : _ref$draggingOverTarg,
|
|
53
|
+
onDragOver = _ref.onDragOver,
|
|
54
|
+
onDragLeave = _ref.onDragLeave,
|
|
55
|
+
onDrop = _ref.onDrop,
|
|
56
|
+
onFrameDragEnter = _ref.onFrameDragEnter,
|
|
57
|
+
onFrameDragLeave = _ref.onFrameDragLeave,
|
|
58
|
+
onFrameDrop = _ref.onFrameDrop,
|
|
59
|
+
children = _ref.children;
|
|
60
|
+
var _useState = (0, _react.useState)(false),
|
|
61
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
62
|
+
draggingOverTarget = _useState2[0],
|
|
63
|
+
setDraggingOverTarget = _useState2[1];
|
|
64
|
+
var _useState3 = (0, _react.useState)(false),
|
|
65
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
66
|
+
draggingOverFrame = _useState4[0],
|
|
67
|
+
setDraggingOverFrame = _useState4[1];
|
|
68
|
+
var _useState5 = (0, _react.useState)(0),
|
|
69
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
70
|
+
frameDragCounter = _useState6[0],
|
|
71
|
+
setFrameDragCounter = _useState6[1];
|
|
72
|
+
var prevFrame = (0, _react.useRef)(frame);
|
|
73
|
+
(0, _react.useEffect)(function () {
|
|
74
|
+
// componentDidMount
|
|
75
|
+
startFrameListeners(frame);
|
|
76
|
+
resetDragging();
|
|
77
|
+
_window["default"].addEventListener('dragover', handleWindowDragOverOrDrop);
|
|
78
|
+
_window["default"].addEventListener('drop', handleWindowDragOverOrDrop);
|
|
79
|
+
return function () {
|
|
80
|
+
// componentWillUnmount
|
|
81
|
+
stopFrameListeners(frame);
|
|
82
|
+
_window["default"].removeEventListener('dragover', handleWindowDragOverOrDrop);
|
|
83
|
+
_window["default"].removeEventListener('drop', handleWindowDragOverOrDrop);
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
87
|
+
}, []);
|
|
88
|
+
var resetDragging = (0, _react.useCallback)(function () {
|
|
89
|
+
setFrameDragCounter(0);
|
|
90
|
+
setDraggingOverTarget(false);
|
|
91
|
+
setDraggingOverFrame(false);
|
|
92
|
+
}, []);
|
|
93
|
+
var handleWindowDragOverOrDrop = (0, _react.useCallback)(function (event) {
|
|
94
|
+
// This prevents the browser from trying to load whatever file the user dropped on the window
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
}, []);
|
|
97
|
+
var handleFrameDrag = (0, _react.useCallback)(function (event) {
|
|
98
|
+
// Only allow dragging of files
|
|
99
|
+
if (!eventHasFiles(event)) return;
|
|
100
|
+
|
|
101
|
+
// We are listening for events on the 'frame', so every time the user drags over any element in the frame's tree,
|
|
102
|
+
// the event bubbles up to the frame. By keeping count of how many "dragenters" we get, we can tell if they are still
|
|
103
|
+
// "draggingOverFrame" (b/c you get one "dragenter" initially, and one "dragenter"/one "dragleave" for every bubble)
|
|
104
|
+
// This is far better than a "dragover" handler, which would be calling `setState` continuously.
|
|
105
|
+
var newDragCounterValue = frameDragCounter + (event.type === 'dragenter' ? 1 : -1);
|
|
106
|
+
setFrameDragCounter(newDragCounterValue);
|
|
107
|
+
if (newDragCounterValue === 1) {
|
|
108
|
+
setDraggingOverFrame(true);
|
|
109
|
+
if (onFrameDragEnter) onFrameDragEnter(event);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (newDragCounterValue === 0) {
|
|
113
|
+
setDraggingOverFrame(false);
|
|
114
|
+
if (onFrameDragLeave) onFrameDragLeave(event);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
}, [frameDragCounter, setDraggingOverFrame, onFrameDragEnter, onFrameDragLeave]);
|
|
118
|
+
var handleFrameDrop = (0, _react.useCallback)(function (event) {
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
if (!draggingOverTarget) {
|
|
121
|
+
resetDragging();
|
|
122
|
+
if (onFrameDrop) onFrameDrop(event);
|
|
123
|
+
}
|
|
124
|
+
}, [onFrameDrop, draggingOverTarget, resetDragging]);
|
|
125
|
+
var handleDragOver = (0, _react.useCallback)(function (event) {
|
|
126
|
+
if (eventHasFiles(event)) {
|
|
127
|
+
setDraggingOverTarget(true);
|
|
128
|
+
if (!isIE() && dropEffect) event.dataTransfer.dropEffect = dropEffect;
|
|
129
|
+
if (onDragOver) onDragOver(event);
|
|
130
|
+
}
|
|
131
|
+
}, [dropEffect, onDragOver]);
|
|
132
|
+
var handleDragLeave = (0, _react.useCallback)(function (event) {
|
|
133
|
+
setDraggingOverTarget(false);
|
|
134
|
+
if (onDragLeave) onDragLeave(event);
|
|
135
|
+
}, [onDragLeave]);
|
|
136
|
+
var handleDrop = (0, _react.useCallback)(function (event) {
|
|
137
|
+
if (onDrop && eventHasFiles(event)) {
|
|
138
|
+
var files = event.dataTransfer ? event.dataTransfer.files : null;
|
|
139
|
+
onDrop(files, event);
|
|
140
|
+
}
|
|
141
|
+
resetDragging();
|
|
142
|
+
}, [onDrop, resetDragging]);
|
|
143
|
+
var stopFrameListeners = (0, _react.useCallback)(function (frame) {
|
|
144
|
+
if (frame) {
|
|
145
|
+
frame.removeEventListener('dragenter', handleFrameDrag);
|
|
146
|
+
frame.removeEventListener('dragleave', handleFrameDrag);
|
|
147
|
+
frame.removeEventListener('drop', handleFrameDrop);
|
|
148
|
+
}
|
|
149
|
+
}, [handleFrameDrag, handleFrameDrop]);
|
|
150
|
+
var startFrameListeners = (0, _react.useCallback)(function (frame) {
|
|
151
|
+
if (frame) {
|
|
152
|
+
frame.addEventListener('dragenter', handleFrameDrag);
|
|
153
|
+
frame.addEventListener('dragleave', handleFrameDrag);
|
|
154
|
+
frame.addEventListener('drop', handleFrameDrop);
|
|
155
|
+
}
|
|
156
|
+
}, [handleFrameDrag, handleFrameDrop]);
|
|
157
|
+
(0, _react.useEffect)(function () {
|
|
158
|
+
// componentDidUpdate
|
|
159
|
+
if (prevFrame.current !== frame) {
|
|
160
|
+
resetDragging();
|
|
161
|
+
stopFrameListeners(prevFrame.current);
|
|
162
|
+
startFrameListeners(frame);
|
|
163
|
+
prevFrame.current = frame;
|
|
164
|
+
}
|
|
165
|
+
}, [frame, resetDragging, stopFrameListeners, startFrameListeners]);
|
|
166
|
+
|
|
167
|
+
// Render
|
|
168
|
+
var fileDropTargetClassName = targetClassName;
|
|
169
|
+
if (draggingOverFrame) fileDropTargetClassName += " ".concat(draggingOverFrameClassName);
|
|
170
|
+
if (draggingOverTarget) fileDropTargetClassName += " ".concat(draggingOverTargetClassName);
|
|
171
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
172
|
+
className: className,
|
|
173
|
+
onDragOver: handleDragOver,
|
|
174
|
+
onDragLeave: handleDragLeave,
|
|
175
|
+
onDrop: handleDrop
|
|
176
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
177
|
+
className: fileDropTargetClassName
|
|
178
|
+
}, children));
|
|
179
|
+
};
|
|
195
180
|
var _default = exports["default"] = FileDrop;
|
|
196
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl93aW5kb3ciLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIkZpbGVEcm9wIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkcmFnZ2luZ092ZXJGcmFtZSIsImRyYWdnaW5nT3ZlclRhcmdldCIsImZyYW1lRHJhZ0NvdW50ZXIiLCJzZXRTdGF0ZSIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJldmVudEhhc0ZpbGVzIiwidHlwZSIsInByb3BzIiwib25GcmFtZURyYWdFbnRlciIsIm9uRnJhbWVEcmFnTGVhdmUiLCJzdGF0ZSIsInJlc2V0RHJhZ2dpbmciLCJvbkZyYW1lRHJvcCIsImlzSUUiLCJkcm9wRWZmZWN0IiwiZGF0YVRyYW5zZmVyIiwib25EcmFnT3ZlciIsIm9uRHJhZ0xlYXZlIiwib25Ecm9wIiwiZmlsZXMiLCJmcmFtZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVGcmFtZURyYWciLCJoYW5kbGVGcmFtZURyb3AiLCJhZGRFdmVudExpc3RlbmVyIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50Iiwic3RhcnRGcmFtZUxpc3RlbmVycyIsIldpbmRvdyIsImhhbmRsZVdpbmRvd0RyYWdPdmVyT3JEcm9wIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwic3RvcEZyYW1lTGlzdGVuZXJzIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwidGFyZ2V0Q2xhc3NOYW1lIiwiZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWUiLCJkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWUiLCJfdGhpcyRzdGF0ZSIsImZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lIiwiY3JlYXRlRWxlbWVudCIsImhhbmRsZURyYWdPdmVyIiwiaGFuZGxlRHJhZ0xlYXZlIiwiaGFuZGxlRHJvcCIsIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImluY2x1ZGVzIiwiYXBwVmVyc2lvbiIsImhhc0ZpbGVzIiwidHlwZXMiLCJrZXlPckluZGV4IiwiZG9jdW1lbnQiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS1kcm9wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXJpbmsvcmVhY3QtZmlsZS1kcm9wXG4gKiBGb3IgUmVhY3QgMTYuOCBjb21wYXRpYmlsaXR5XG4gKi9cbmltcG9ydCBSZWFjdCwge1JlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcblxuZXhwb3J0IHR5cGUgRmlsZURyb3BQcm9wcyA9IHtcbiAgZHJvcEVmZmVjdD86ICdjb3B5JyB8ICdtb3ZlJyB8ICdsaW5rJyB8ICdub25lJztcbiAgZnJhbWU/OiB0eXBlb2YgZG9jdW1lbnQgfCB0eXBlb2YgV2luZG93IHwgSFRNTEVsZW1lbnQ7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgdGFyZ2V0Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZT86IHN0cmluZztcbiAgZHJhZ2dpbmdPdmVyVGFyZ2V0Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBvbkRyYWdPdmVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRHJhZ0xlYXZlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRHJvcD86IChmaWxlTGlzdDogRmlsZUxpc3QsIGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRnJhbWVEcmFnRW50ZXI/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25GcmFtZURyYWdMZWF2ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkZyYW1lRHJvcD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2ZpbGUtZHJvcCcpLkZpbGVEcm9wUHJvcHN9IEZpbGVEcm9wUHJvcHMgKi9cblxuLyoqIEBhdWdtZW50cyBSZWFjdC5QdXJlQ29tcG9uZW50PEZpbGVEcm9wUHJvcHM+ICovXG5jbGFzcyBGaWxlRHJvcCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8RmlsZURyb3BQcm9wcz4ge1xuICBzdGF0aWMgaXNJRSA9ICgpID0+XG4gICAgV2luZG93ICYmXG4gICAgV2luZG93Lm5hdmlnYXRvciAmJlxuICAgICgoV2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgfHwgW10pLmluY2x1ZGVzKCdNU0lFJykgfHxcbiAgICAgIChXaW5kb3cubmF2aWdhdG9yLmFwcFZlcnNpb24gfHwgW10pLmluY2x1ZGVzKCdUcmlkZW50LycpKTtcblxuICBzdGF0aWMgZXZlbnRIYXNGaWxlcyA9IGV2ZW50ID0+IHtcbiAgICAvLyBJbiBtb3N0IGJyb3dzZXJzIHRoaXMgaXMgYW4gYXJyYXksIGJ1dCBpbiBJRTExIGl0J3MgYW4gT2JqZWN0IDooXG5cbiAgICBsZXQgaGFzRmlsZXMgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBjb25zdCB0eXBlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcztcbiAgICAgIGZvciAoY29uc3Qga2V5T3JJbmRleCBpbiB0eXBlcykge1xuICAgICAgICBpZiAodHlwZXNba2V5T3JJbmRleF0gPT09ICdGaWxlcycpIHtcbiAgICAgICAgICBoYXNGaWxlcyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc0ZpbGVzO1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZHJvcEVmZmVjdDogJ2NvcHknLFxuICAgIGZyYW1lOiBXaW5kb3cgPyBXaW5kb3cuZG9jdW1lbnQgOiB1bmRlZmluZWQsXG4gICAgY2xhc3NOYW1lOiAnZmlsZS1kcm9wJyxcbiAgICB0YXJnZXRDbGFzc05hbWU6ICdmaWxlLWRyb3AtdGFyZ2V0JyxcbiAgICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZTogJ2ZpbGUtZHJvcC1kcmFnZ2luZy1vdmVyLWZyYW1lJyxcbiAgICBkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWU6ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci10YXJnZXQnXG4gIH07XG5cbiAgZnJhbWVEcmFnQ291bnRlciA9IDA7XG4gIHN0YXRlID0ge2RyYWdnaW5nT3ZlckZyYW1lOiBmYWxzZSwgZHJhZ2dpbmdPdmVyVGFyZ2V0OiBmYWxzZX07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5zdGFydEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIHRoaXMucmVzZXREcmFnZ2luZygpO1xuICAgIFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3ApO1xuICAgIFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgaWYgKHByZXZQcm9wcy5mcmFtZSAhPT0gdGhpcy5wcm9wcy5mcmFtZSkge1xuICAgICAgdGhpcy5yZXNldERyYWdnaW5nKCk7XG4gICAgICB0aGlzLnN0b3BGcmFtZUxpc3RlbmVycyhwcmV2UHJvcHMuZnJhbWUpO1xuICAgICAgdGhpcy5zdGFydEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuc3RvcEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3ApO1xuICAgIFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gIH1cblxuICByZXNldERyYWdnaW5nID0gKCkgPT4ge1xuICAgIHRoaXMuZnJhbWVEcmFnQ291bnRlciA9IDA7XG4gICAgdGhpcy5zZXRTdGF0ZSh7ZHJhZ2dpbmdPdmVyRnJhbWU6IGZhbHNlLCBkcmFnZ2luZ092ZXJUYXJnZXQ6IGZhbHNlfSk7XG4gIH07XG5cbiAgaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3AgPSBldmVudCA9PiB7XG4gICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tIHRyeWluZyB0byBsb2FkIHdoYXRldmVyIGZpbGUgdGhlIHVzZXIgZHJvcHBlZCBvbiB0aGUgd2luZG93XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBoYW5kbGVGcmFtZURyYWcgPSBldmVudCA9PiB7XG4gICAgLy8gT25seSBhbGxvdyBkcmFnZ2luZyBvZiBmaWxlc1xuICAgIGlmICghRmlsZURyb3AuZXZlbnRIYXNGaWxlcyhldmVudCkpIHJldHVybjtcblxuICAgIC8vIFdlIGFyZSBsaXN0ZW5pbmcgZm9yIGV2ZW50cyBvbiB0aGUgJ2ZyYW1lJywgc28gZXZlcnkgdGltZSB0aGUgdXNlciBkcmFncyBvdmVyIGFueSBlbGVtZW50IGluIHRoZSBmcmFtZSdzIHRyZWUsXG4gICAgLy8gdGhlIGV2ZW50IGJ1YmJsZXMgdXAgdG8gdGhlIGZyYW1lLiBCeSBrZWVwaW5nIGNvdW50IG9mIGhvdyBtYW55IFwiZHJhZ2VudGVyc1wiIHdlIGdldCwgd2UgY2FuIHRlbGwgaWYgdGhleSBhcmUgc3RpbGxcbiAgICAvLyBcImRyYWdnaW5nT3ZlckZyYW1lXCIgKGIvYyB5b3UgZ2V0IG9uZSBcImRyYWdlbnRlclwiIGluaXRpYWxseSwgYW5kIG9uZSBcImRyYWdlbnRlclwiL29uZSBcImRyYWdsZWF2ZVwiIGZvciBldmVyeSBidWJibGUpXG4gICAgLy8gVGhpcyBpcyBmYXIgYmV0dGVyIHRoYW4gYSBcImRyYWdvdmVyXCIgaGFuZGxlciwgd2hpY2ggd291bGQgYmUgY2FsbGluZyBgc2V0U3RhdGVgIGNvbnRpbnVvdXNseS5cbiAgICB0aGlzLmZyYW1lRHJhZ0NvdW50ZXIgKz0gZXZlbnQudHlwZSA9PT0gJ2RyYWdlbnRlcicgPyAxIDogLTE7XG5cbiAgICBpZiAodGhpcy5mcmFtZURyYWdDb3VudGVyID09PSAxKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJGcmFtZTogdHJ1ZX0pO1xuICAgICAgaWYgKHRoaXMucHJvcHMub25GcmFtZURyYWdFbnRlcikgdGhpcy5wcm9wcy5vbkZyYW1lRHJhZ0VudGVyKGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mcmFtZURyYWdDb3VudGVyID09PSAwKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJGcmFtZTogZmFsc2V9KTtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRnJhbWVEcmFnTGVhdmUpIHRoaXMucHJvcHMub25GcmFtZURyYWdMZWF2ZShldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZUZyYW1lRHJvcCA9IGV2ZW50ID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5zdGF0ZS5kcmFnZ2luZ092ZXJUYXJnZXQpIHtcbiAgICAgIHRoaXMucmVzZXREcmFnZ2luZygpO1xuICAgICAgaWYgKHRoaXMucHJvcHMub25GcmFtZURyb3ApIHRoaXMucHJvcHMub25GcmFtZURyb3AoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVEcmFnT3ZlciA9IGV2ZW50ID0+IHtcbiAgICBpZiAoRmlsZURyb3AuZXZlbnRIYXNGaWxlcyhldmVudCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RyYWdnaW5nT3ZlclRhcmdldDogdHJ1ZX0pO1xuICAgICAgaWYgKCFGaWxlRHJvcC5pc0lFKCkgJiYgdGhpcy5wcm9wcy5kcm9wRWZmZWN0KVxuICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IHRoaXMucHJvcHMuZHJvcEVmZmVjdDtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRHJhZ092ZXIpIHRoaXMucHJvcHMub25EcmFnT3ZlcihldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZURyYWdMZWF2ZSA9IGV2ZW50ID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJUYXJnZXQ6IGZhbHNlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25EcmFnTGVhdmUpIHRoaXMucHJvcHMub25EcmFnTGVhdmUoZXZlbnQpO1xuICB9O1xuXG4gIGhhbmRsZURyb3AgPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMub25Ecm9wICYmIEZpbGVEcm9wLmV2ZW50SGFzRmlsZXMoZXZlbnQpKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyA6IG51bGw7XG4gICAgICB0aGlzLnByb3BzLm9uRHJvcChmaWxlcywgZXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0RHJhZ2dpbmcoKTtcbiAgfTtcblxuICBzdG9wRnJhbWVMaXN0ZW5lcnMgPSBmcmFtZSA9PiB7XG4gICAgaWYgKGZyYW1lKSB7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCB0aGlzLmhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVGcmFtZURyb3ApO1xuICAgIH1cbiAgfTtcblxuICBzdGFydEZyYW1lTGlzdGVuZXJzID0gZnJhbWUgPT4ge1xuICAgIGlmIChmcmFtZSkge1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgdGhpcy5oYW5kbGVGcmFtZURyYWcpO1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVGcmFtZURyYWcpO1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMuaGFuZGxlRnJhbWVEcm9wKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgdGFyZ2V0Q2xhc3NOYW1lLFxuICAgICAgZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWUsXG4gICAgICBkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWVcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZHJhZ2dpbmdPdmVyVGFyZ2V0LCBkcmFnZ2luZ092ZXJGcmFtZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lID0gdGFyZ2V0Q2xhc3NOYW1lO1xuICAgIGlmIChkcmFnZ2luZ092ZXJGcmFtZSkgZmlsZURyb3BUYXJnZXRDbGFzc05hbWUgKz0gYCAke2RyYWdnaW5nT3ZlckZyYW1lQ2xhc3NOYW1lfWA7XG4gICAgaWYgKGRyYWdnaW5nT3ZlclRhcmdldCkgZmlsZURyb3BUYXJnZXRDbGFzc05hbWUgKz0gYCAke2RyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZX1gO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uRHJhZ092ZXI9e3RoaXMuaGFuZGxlRHJhZ092ZXJ9XG4gICAgICAgIG9uRHJhZ0xlYXZlPXt0aGlzLmhhbmRsZURyYWdMZWF2ZX1cbiAgICAgICAgb25Ecm9wPXt0aGlzLmhhbmRsZURyb3B9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtmaWxlRHJvcFRhcmdldENsYXNzTmFtZX0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGaWxlRHJvcDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU9BLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFtQyxTQUFBRSxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENB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
|
|
181
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImlzSUUiLCJXaW5kb3ciLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJpbmNsdWRlcyIsImFwcFZlcnNpb24iLCJldmVudEhhc0ZpbGVzIiwiZXZlbnQiLCJoYXNGaWxlcyIsImRhdGFUcmFuc2ZlciIsInR5cGVzIiwia2V5T3JJbmRleCIsIkZpbGVEcm9wIiwiX3JlZiIsIl9yZWYkZHJvcEVmZmVjdCIsImRyb3BFZmZlY3QiLCJfcmVmJGZyYW1lIiwiZnJhbWUiLCJkb2N1bWVudCIsInVuZGVmaW5lZCIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3JlZiR0YXJnZXRDbGFzc05hbWUiLCJ0YXJnZXRDbGFzc05hbWUiLCJfcmVmJGRyYWdnaW5nT3ZlckZyYW0iLCJkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZSIsIl9yZWYkZHJhZ2dpbmdPdmVyVGFyZyIsImRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZSIsIm9uRHJhZ092ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJvcCIsIm9uRnJhbWVEcmFnRW50ZXIiLCJvbkZyYW1lRHJhZ0xlYXZlIiwib25GcmFtZURyb3AiLCJjaGlsZHJlbiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRyYWdnaW5nT3ZlclRhcmdldCIsInNldERyYWdnaW5nT3ZlclRhcmdldCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZHJhZ2dpbmdPdmVyRnJhbWUiLCJzZXREcmFnZ2luZ092ZXJGcmFtZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZnJhbWVEcmFnQ291bnRlciIsInNldEZyYW1lRHJhZ0NvdW50ZXIiLCJwcmV2RnJhbWUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJzdGFydEZyYW1lTGlzdGVuZXJzIiwicmVzZXREcmFnZ2luZyIsImFkZEV2ZW50TGlzdGVuZXIiLCJoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCIsInN0b3BGcmFtZUxpc3RlbmVycyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1c2VDYWxsYmFjayIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRnJhbWVEcmFnIiwibmV3RHJhZ0NvdW50ZXJWYWx1ZSIsInR5cGUiLCJoYW5kbGVGcmFtZURyb3AiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyYWdMZWF2ZSIsImhhbmRsZURyb3AiLCJmaWxlcyIsImN1cnJlbnQiLCJmaWxlRHJvcFRhcmdldENsYXNzTmFtZSIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS1kcm9wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXJpbmsvcmVhY3QtZmlsZS1kcm9wXG4gKiBGb3IgUmVhY3QgMTYuOCBjb21wYXRpYmlsaXR5XG4gKi9cbmltcG9ydCBSZWFjdCwge1JlYWN0Tm9kZSwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcblxuY29uc3QgaXNJRSA9ICgpID0+XG4gIFdpbmRvdyAmJlxuICBXaW5kb3cubmF2aWdhdG9yICYmXG4gICgoV2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgfHwgW10pLmluY2x1ZGVzKCdNU0lFJykgfHxcbiAgICAoV2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uIHx8IFtdKS5pbmNsdWRlcygnVHJpZGVudC8nKSk7XG5cbmNvbnN0IGV2ZW50SGFzRmlsZXMgPSBldmVudCA9PiB7XG4gIC8vIEluIG1vc3QgYnJvd3NlcnMgdGhpcyBpcyBhbiBhcnJheSwgYnV0IGluIElFMTEgaXQncyBhbiBPYmplY3QgOihcblxuICBsZXQgaGFzRmlsZXMgPSBmYWxzZTtcbiAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgIGNvbnN0IHR5cGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzO1xuICAgIGZvciAoY29uc3Qga2V5T3JJbmRleCBpbiB0eXBlcykge1xuICAgICAgaWYgKHR5cGVzW2tleU9ySW5kZXhdID09PSAnRmlsZXMnKSB7XG4gICAgICAgIGhhc0ZpbGVzID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBoYXNGaWxlcztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbGVEcm9wUHJvcHMgPSB7XG4gIGRyb3BFZmZlY3Q/OiAnY29weScgfCAnbW92ZScgfCAnbGluaycgfCAnbm9uZSc7XG4gIGZyYW1lPzogdHlwZW9mIGRvY3VtZW50IHwgdHlwZW9mIFdpbmRvdyB8IEhUTUxFbGVtZW50O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHRhcmdldENsYXNzTmFtZT86IHN0cmluZztcbiAgZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZT86IHN0cmluZztcbiAgb25EcmFnT3Zlcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkRyYWdMZWF2ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkRyb3A/OiAoZmlsZUxpc3Q6IEZpbGVMaXN0LCBldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkZyYW1lRHJhZ0VudGVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRnJhbWVEcmFnTGVhdmU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25GcmFtZURyb3A/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGaWxlRHJvcCA9ICh7XG4gIGRyb3BFZmZlY3QgPSAnY29weScsXG4gIGZyYW1lID0gV2luZG93ID8gV2luZG93LmRvY3VtZW50IDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWUgPSAnZmlsZS1kcm9wJyxcbiAgdGFyZ2V0Q2xhc3NOYW1lID0gJ2ZpbGUtZHJvcC10YXJnZXQnLFxuICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZSA9ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci1mcmFtZScsXG4gIGRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZSA9ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci10YXJnZXQnLFxuICBvbkRyYWdPdmVyLFxuICBvbkRyYWdMZWF2ZSxcbiAgb25Ecm9wLFxuICBvbkZyYW1lRHJhZ0VudGVyLFxuICBvbkZyYW1lRHJhZ0xlYXZlLFxuICBvbkZyYW1lRHJvcCxcbiAgY2hpbGRyZW5cbn06IEZpbGVEcm9wUHJvcHMpID0+IHtcbiAgY29uc3QgW2RyYWdnaW5nT3ZlclRhcmdldCwgc2V0RHJhZ2dpbmdPdmVyVGFyZ2V0XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2RyYWdnaW5nT3ZlckZyYW1lLCBzZXREcmFnZ2luZ092ZXJGcmFtZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmcmFtZURyYWdDb3VudGVyLCBzZXRGcmFtZURyYWdDb3VudGVyXSA9IHVzZVN0YXRlKDApO1xuXG4gIGNvbnN0IHByZXZGcmFtZSA9IHVzZVJlZihmcmFtZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBjb21wb25lbnREaWRNb3VudFxuICAgIHN0YXJ0RnJhbWVMaXN0ZW5lcnMoZnJhbWUpO1xuICAgIHJlc2V0RHJhZ2dpbmcoKTtcbiAgICBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gICAgV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gY29tcG9uZW50V2lsbFVubW91bnRcbiAgICAgIHN0b3BGcmFtZUxpc3RlbmVycyhmcmFtZSk7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIGhhbmRsZVdpbmRvd0RyYWdPdmVyT3JEcm9wKTtcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmVzZXREcmFnZ2luZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRGcmFtZURyYWdDb3VudGVyKDApO1xuICAgIHNldERyYWdnaW5nT3ZlclRhcmdldChmYWxzZSk7XG4gICAgc2V0RHJhZ2dpbmdPdmVyRnJhbWUoZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3AgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tIHRyeWluZyB0byBsb2FkIHdoYXRldmVyIGZpbGUgdGhlIHVzZXIgZHJvcHBlZCBvbiB0aGUgd2luZG93XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUZyYW1lRHJhZyA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIC8vIE9ubHkgYWxsb3cgZHJhZ2dpbmcgb2YgZmlsZXNcbiAgICAgIGlmICghZXZlbnRIYXNGaWxlcyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gV2UgYXJlIGxpc3RlbmluZyBmb3IgZXZlbnRzIG9uIHRoZSAnZnJhbWUnLCBzbyBldmVyeSB0aW1lIHRoZSB1c2VyIGRyYWdzIG92ZXIgYW55IGVsZW1lbnQgaW4gdGhlIGZyYW1lJ3MgdHJlZSxcbiAgICAgIC8vIHRoZSBldmVudCBidWJibGVzIHVwIHRvIHRoZSBmcmFtZS4gQnkga2VlcGluZyBjb3VudCBvZiBob3cgbWFueSBcImRyYWdlbnRlcnNcIiB3ZSBnZXQsIHdlIGNhbiB0ZWxsIGlmIHRoZXkgYXJlIHN0aWxsXG4gICAgICAvLyBcImRyYWdnaW5nT3ZlckZyYW1lXCIgKGIvYyB5b3UgZ2V0IG9uZSBcImRyYWdlbnRlclwiIGluaXRpYWxseSwgYW5kIG9uZSBcImRyYWdlbnRlclwiL29uZSBcImRyYWdsZWF2ZVwiIGZvciBldmVyeSBidWJibGUpXG4gICAgICAvLyBUaGlzIGlzIGZhciBiZXR0ZXIgdGhhbiBhIFwiZHJhZ292ZXJcIiBoYW5kbGVyLCB3aGljaCB3b3VsZCBiZSBjYWxsaW5nIGBzZXRTdGF0ZWAgY29udGludW91c2x5LlxuICAgICAgY29uc3QgbmV3RHJhZ0NvdW50ZXJWYWx1ZSA9IGZyYW1lRHJhZ0NvdW50ZXIgKyAoZXZlbnQudHlwZSA9PT0gJ2RyYWdlbnRlcicgPyAxIDogLTEpO1xuICAgICAgc2V0RnJhbWVEcmFnQ291bnRlcihuZXdEcmFnQ291bnRlclZhbHVlKTtcblxuICAgICAgaWYgKG5ld0RyYWdDb3VudGVyVmFsdWUgPT09IDEpIHtcbiAgICAgICAgc2V0RHJhZ2dpbmdPdmVyRnJhbWUodHJ1ZSk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJhZ0VudGVyKSBvbkZyYW1lRHJhZ0VudGVyKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobmV3RHJhZ0NvdW50ZXJWYWx1ZSA9PT0gMCkge1xuICAgICAgICBzZXREcmFnZ2luZ092ZXJGcmFtZShmYWxzZSk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJhZ0xlYXZlKSBvbkZyYW1lRHJhZ0xlYXZlKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2ZyYW1lRHJhZ0NvdW50ZXIsIHNldERyYWdnaW5nT3ZlckZyYW1lLCBvbkZyYW1lRHJhZ0VudGVyLCBvbkZyYW1lRHJhZ0xlYXZlXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUZyYW1lRHJvcCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoIWRyYWdnaW5nT3ZlclRhcmdldCkge1xuICAgICAgICByZXNldERyYWdnaW5nKCk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJvcCkgb25GcmFtZURyb3AoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uRnJhbWVEcm9wLCBkcmFnZ2luZ092ZXJUYXJnZXQsIHJlc2V0RHJhZ2dpbmddXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnRIYXNGaWxlcyhldmVudCkpIHtcbiAgICAgICAgc2V0RHJhZ2dpbmdPdmVyVGFyZ2V0KHRydWUpO1xuICAgICAgICBpZiAoIWlzSUUoKSAmJiBkcm9wRWZmZWN0KSBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IGRyb3BFZmZlY3Q7XG4gICAgICAgIGlmIChvbkRyYWdPdmVyKSBvbkRyYWdPdmVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkcm9wRWZmZWN0LCBvbkRyYWdPdmVyXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZURyYWdMZWF2ZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIHNldERyYWdnaW5nT3ZlclRhcmdldChmYWxzZSk7XG5cbiAgICAgIGlmIChvbkRyYWdMZWF2ZSkgb25EcmFnTGVhdmUoZXZlbnQpO1xuICAgIH0sXG4gICAgW29uRHJhZ0xlYXZlXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBpZiAob25Ecm9wICYmIGV2ZW50SGFzRmlsZXMoZXZlbnQpKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIDogbnVsbDtcbiAgICAgICAgb25Ecm9wKGZpbGVzLCBldmVudCk7XG4gICAgICB9XG4gICAgICByZXNldERyYWdnaW5nKCk7XG4gICAgfSxcbiAgICBbb25Ecm9wLCByZXNldERyYWdnaW5nXVxuICApO1xuXG4gIGNvbnN0IHN0b3BGcmFtZUxpc3RlbmVycyA9IHVzZUNhbGxiYWNrKFxuICAgIGZyYW1lID0+IHtcbiAgICAgIGlmIChmcmFtZSkge1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCBoYW5kbGVGcmFtZURyYWcpO1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCBoYW5kbGVGcmFtZURyYWcpO1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgaGFuZGxlRnJhbWVEcm9wKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVGcmFtZURyYWcsIGhhbmRsZUZyYW1lRHJvcF1cbiAgKTtcblxuICBjb25zdCBzdGFydEZyYW1lTGlzdGVuZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgZnJhbWUgPT4ge1xuICAgICAgaWYgKGZyYW1lKSB7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIGhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIGhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVGcmFtZURyb3ApO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUZyYW1lRHJhZywgaGFuZGxlRnJhbWVEcm9wXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gY29tcG9uZW50RGlkVXBkYXRlXG4gICAgaWYgKHByZXZGcmFtZS5jdXJyZW50ICE9PSBmcmFtZSkge1xuICAgICAgcmVzZXREcmFnZ2luZygpO1xuICAgICAgc3RvcEZyYW1lTGlzdGVuZXJzKHByZXZGcmFtZS5jdXJyZW50KTtcbiAgICAgIHN0YXJ0RnJhbWVMaXN0ZW5lcnMoZnJhbWUpO1xuXG4gICAgICBwcmV2RnJhbWUuY3VycmVudCA9IGZyYW1lO1xuICAgIH1cbiAgfSwgW2ZyYW1lLCByZXNldERyYWdnaW5nLCBzdG9wRnJhbWVMaXN0ZW5lcnMsIHN0YXJ0RnJhbWVMaXN0ZW5lcnNdKTtcblxuICAvLyBSZW5kZXJcbiAgbGV0IGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lID0gdGFyZ2V0Q2xhc3NOYW1lO1xuICBpZiAoZHJhZ2dpbmdPdmVyRnJhbWUpIGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lICs9IGAgJHtkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZX1gO1xuICBpZiAoZHJhZ2dpbmdPdmVyVGFyZ2V0KSBmaWxlRHJvcFRhcmdldENsYXNzTmFtZSArPSBgICR7ZHJhZ2dpbmdPdmVyVGFyZ2V0Q2xhc3NOYW1lfWA7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uRHJhZ092ZXI9e2hhbmRsZURyYWdPdmVyfVxuICAgICAgb25EcmFnTGVhdmU9e2hhbmRsZURyYWdMZWF2ZX1cbiAgICAgIG9uRHJvcD17aGFuZGxlRHJvcH1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17ZmlsZURyb3BUYXJnZXRDbGFzc05hbWV9PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVEcm9wO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFPQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBbUMsU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFMLHdCQUFBSyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FB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
|
|
@@ -14,7 +14,7 @@ export declare type ListItemProps<Option> = {
|
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
light?: boolean;
|
|
16
16
|
};
|
|
17
|
-
export declare const ListItem: ({ value, displayOption, disabled
|
|
17
|
+
export declare const ListItem: ({ value, displayOption, disabled }: ListItemProps<any>) => React.JSX.Element;
|
|
18
18
|
export declare type DropdownListWrapperProps = BaseComponentProps & {
|
|
19
19
|
light?: boolean;
|
|
20
20
|
};
|
|
@@ -47,7 +47,7 @@ interface DropdownListState {
|
|
|
47
47
|
export default class DropdownList extends Component<DropdownListProps, DropdownListState> {
|
|
48
48
|
static defaultProps: {
|
|
49
49
|
customClasses: {};
|
|
50
|
-
customListItemComponent: ({ value, displayOption, disabled
|
|
50
|
+
customListItemComponent: ({ value, displayOption, disabled }: ListItemProps<any>) => React.JSX.Element;
|
|
51
51
|
customListHeaderComponent: null;
|
|
52
52
|
allowCustomValues: number;
|
|
53
53
|
customValues: never[];
|
|
@@ -40,8 +40,7 @@ var ListItem = exports.ListItem = function ListItem(_ref) {
|
|
|
40
40
|
var value = _ref.value,
|
|
41
41
|
_ref$displayOption = _ref.displayOption,
|
|
42
42
|
displayOption = _ref$displayOption === void 0 ? defaultDisplay : _ref$displayOption,
|
|
43
|
-
disabled = _ref.disabled
|
|
44
|
-
light = _ref.light;
|
|
43
|
+
disabled = _ref.disabled;
|
|
45
44
|
var displayValue = displayOption(value);
|
|
46
45
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
47
46
|
title: displayValue,
|
|
@@ -256,4 +255,4 @@ var DropdownList = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
256
255
|
defaultClassNames: true,
|
|
257
256
|
selectionIndex: null
|
|
258
257
|
});
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJMRUZUX0JVVFRPTiIsImNsYXNzTGlzdCIsImV4cG9ydHMiLCJsaXN0IiwibGlzdEhlYWRlciIsImxpc3RTZWN0aW9uIiwibGlzdEl0ZW0iLCJsaXN0SXRlbUFuY2hvciIsImxpc3RJdGVtRml4ZWQiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJMaXN0SXRlbSIsIl9yZWYiLCJ2YWx1ZSIsIl9yZWYkZGlzcGxheU9wdGlvbiIsImRpc3BsYXlPcHRpb24iLCJkaXNhYmxlZCIsImxpZ2h0IiwiZGlzcGxheVZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInRpdGxlIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsIkRyb3Bkb3duTGlzdFdyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcExUIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiZHJvcGRvd25MaXN0TFQiLCJkcm9wZG93bkxpc3QiLCJEcm9wZG93bkZvb3RlcldyYXBwZXIiLCJEcm9wZG93bkxpc3QiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImVudGl0aWVzIiwieSIsImJvdW5kaW5nQ2xpZW50UmVjdCIsInByZXZZIiwib3B0aW9ucyIsIl9nZXRPcHRpb25zIiwicGFnZSIsInNldFN0YXRlIiwic3RhdGUiLCJpbml0TnVtYmVyT2ZPcHRpb25zIiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJsb2FkaW5nUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudERpZE1vdW50IiwiZGl2T3B0aW9ucyIsInJvb3QiLCJyb290TWFyZ2luIiwidGhyZXNob2xkIiwiY3VycmVudCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJoYW5kbGVPYnNlcnZlciIsIm9ic2VydmUiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudERpZFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX3RoaXMkb2JzZXJ2ZXIiLCJfdGhpcyRsb2FkaW5nUmVmIiwidW5vYnNlcnZlIiwibGVuZ3RoIiwic3RhcnQiLCJlbmQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJfb25DbGljayIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiYnV0dG9uIiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJvbk9wdGlvblNlbGVjdGVkIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMkb3B0aW9ucyIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJfdGhpczIiLCJfdGhpcyRzdGF0ZSRvcHRpb25zIiwiX3RoaXMkcHJvcHMyIiwiZml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMyJGFsbG93Q3VzIiwiYWxsb3dDdXN0b21WYWx1ZXMiLCJfdGhpcyRwcm9wczIkY3VzdG9tTGkiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiX3RoaXMkcHJvcHMkZGlzcGxheU9wIiwiZGlzcGxheSIsInZhbHVlT2Zmc2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IiwibWFwIiwiX3RoaXMyJHByb3BzJGN1c3RvbUNsIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsIm9uTW91c2VEb3duIiwib25DbGljayIsIl90aGlzMiRwcm9wcyRjdXN0b21DbDIiLCJzZWxlY3RlZCIsInNlbGVjdGVkSXRlbXMiLCJmaW5kIiwiaXRlbSIsInJlZiIsIkNvbXBvbmVudCIsImN1c3RvbVZhbHVlcyIsImRlZmF1bHRDbGFzc05hbWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7SU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV059IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InLFxuICBsaXN0SXRlbUZpeGVkOiAnbGlzdF9faXRlbV9fZml4ZWQnXG59O1xuXG5leHBvcnQgdHlwZSBMaXN0SXRlbVByb3BzPE9wdGlvbj4gPSB7XG4gIHZhbHVlOiBPcHRpb247XG4gIGRpc3BsYXlPcHRpb246IChvcHQ6IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHREaXNwbGF5ID0gZCA9PiBkO1xuZXhwb3J0IGNvbnN0IExpc3RJdGVtID0gKHtcbiAgdmFsdWUsXG4gIGRpc3BsYXlPcHRpb24gPSBkZWZhdWx0RGlzcGxheSxcbiAgZGlzYWJsZWQsXG4gIGxpZ2h0XG59OiBMaXN0SXRlbVByb3BzPGFueT4pID0+IHtcbiAgY29uc3QgZGlzcGxheVZhbHVlID0gZGlzcGxheU9wdGlvbih2YWx1ZSk7XG4gIHJldHVybiAoXG4gICAgPHNwYW4gdGl0bGU9e2Rpc3BsYXlWYWx1ZX0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SXRlbUFuY2hvciwge2Rpc2FibGVkfSl9PlxuICAgICAge2Rpc3BsYXlWYWx1ZX1cbiAgICA8L3NwYW4+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wZG93bkxpc3RXcmFwcGVyUHJvcHMgPSBCYXNlQ29tcG9uZW50UHJvcHMgJiB7XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXI6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBEcm9wZG93bkxpc3RXcmFwcGVyUHJvcHNcbj4gPSBzdHlsZWQuZGl2PERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcz5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gICR7cHJvcHMgPT4gKHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0TFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3QpfTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duRm9vdGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogJzBweCc7XG5gO1xuXG50eXBlIE9wdGlvbiA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCBhbnk7XG4vLyBUT0RPOiBtYWtlIE9wdGlvbiBhIGdlbmVyaWMgdHlwZVxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFByb3BzIHtcbiAgb3B0aW9ucz86IE9wdGlvbltdO1xuICBhbGxvd0N1c3RvbVZhbHVlcz86IG51bWJlcjtcbiAgY3VzdG9tQ2xhc3Nlcz86IHtsaXN0SGVhZGVyPzogc3RyaW5nOyBsaXN0SXRlbT86IHN0cmluZzsgcmVzdWx0cz86IHN0cmluZ307XG4gIGN1c3RvbVZhbHVlcz86IGFueVtdO1xuICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PzogRWxlbWVudFR5cGU7XG4gIHNlbGVjdGlvbkluZGV4PzogbnVtYmVyO1xuICBvbk9wdGlvblNlbGVjdGVkPzogKG9wdGlvbjogT3B0aW9uLCBldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgZGlzcGxheU9wdGlvbj86IChvcHRpb246IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkZWZhdWx0Q2xhc3NOYW1lcz86IGJvb2xlYW47XG4gIGFyZVJlc3VsdHNUcnVuY2F0ZWQ/OiBib29sZWFuO1xuICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZT86IHN0cmluZztcbiAgbGlzdEl0ZW1Db21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICBmaXhlZE9wdGlvbnM/OiBhbnlbXTtcbiAgc2VsZWN0ZWRJdGVtcz86IGFueVtdOyAvLyBQYXNzZWQgdGhyb3VnaCBieSBUeXBlYWhlYWRcbn1cblxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFN0YXRlIHtcbiAgb3B0aW9uczogQXJyYXk8YW55PiB8IG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyb3Bkb3duTGlzdCBleHRlbmRzIENvbXBvbmVudDxEcm9wZG93bkxpc3RQcm9wcywgRHJvcGRvd25MaXN0U3RhdGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjdXN0b21DbGFzc2VzOiB7fSxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogbnVsbCxcbiAgICBhbGxvd0N1c3RvbVZhbHVlczogMCxcbiAgICBjdXN0b21WYWx1ZXM6IFtdLFxuICAgIGRpc3BsYXlPcHRpb246IGRlZmF1bHREaXNwbGF5LFxuICAgIG9uT3B0aW9uU2VsZWN0ZWQ6ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiB0cnVlLFxuICAgIHNlbGVjdGlvbkluZGV4OiBudWxsXG4gIH07XG5cbiAgaW5pdE51bWJlck9mT3B0aW9uczogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHByZXZZOiBudW1iZXI7XG4gIGxvYWRpbmdSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7b3B0aW9uczogW119O1xuICAgIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucyA9IElOSVRfRklMVEVSX0lURU1TX0lOX0RST1BET1dOO1xuICAgIHRoaXMucGFnZSA9IDA7XG4gICAgdGhpcy5wcmV2WSA9IDA7XG4gICAgdGhpcy5sb2FkaW5nUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucyh0aGlzLnBhZ2UpO1xuICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcblxuICAgIGNvbnN0IGRpdk9wdGlvbnMgPSB7XG4gICAgICByb290OiBudWxsLFxuICAgICAgcm9vdE1hcmdpbjogJzAlJyxcbiAgICAgIHRocmVzaG9sZDogMS4wXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLmhhbmRsZU9ic2VydmVyLCBkaXZPcHRpb25zKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBEcm9wZG93bkxpc3RQcm9wcykge1xuICAgIGlmIChwcmV2UHJvcHMub3B0aW9ucyAhPT0gdGhpcy5wcm9wcy5vcHRpb25zKSB7XG4gICAgICAvLyBjaGVjayBpZiB1c2VyIHNlYXJjaGluZywgcmVzZXQgc3RhdGUub3B0aW9ucyBhdCB0aGUgZmlyc3QgdGltZVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMoMCk7XG4gICAgICB0aGlzLnNldFN0YXRlKHtvcHRpb25zfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gcHJldmVudCBjb25zb2xlIHdhcm5pbmc6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZj8uY3VycmVudCk7XG4gICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgdGhpcy5wcmV2WSA9IDA7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT2JzZXJ2ZXIgPSBlbnRpdGllcyA9PiB7XG4gICAgY29uc3QgeSA9IGVudGl0aWVzWzBdLmJvdW5kaW5nQ2xpZW50UmVjdC55O1xuICAgIGlmICh0aGlzLnByZXZZID4geSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnModGhpcy5wYWdlKTtcbiAgICAgIGlmIChvcHRpb25zKSB0aGlzLnNldFN0YXRlKHtvcHRpb25zfSk7XG4gICAgfVxuICAgIHRoaXMucHJldlkgPSB5O1xuICB9O1xuXG4gIF9nZXRPcHRpb25zKHBhZ2UpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG4gPSB0aGlzLnByb3BzLm9wdGlvbnMubGVuZ3RoO1xuICAgIGlmIChuID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gcGFnZSAqIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucztcbiAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucyA+IG4gPyBuIDogc3RhcnQgKyB0aGlzLmluaXROdW1iZXJPZk9wdGlvbnM7XG5cbiAgICBpZiAoc3RhcnQgPCBlbmQgJiYgZW5kIDw9IG4pIHtcbiAgICAgIHRoaXMucGFnZSA9IHBhZ2UgKyAxO1xuICAgICAgLy8gaW4gY2FzZSBvZiB1c2VyIHNlYXJjaGluZywgcHJvcHMub3B0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcbiAgICAgIC8vIHNvIFwicGFnZVwiIHZhbHVlIHdpbGwgYmUgc2V0IHRvIDAgYW5kIHByZXZpb3VzIHN0YXRlLm9wdGlvbnMgd2lsbCBiZSBkaXNjYXJkZWRcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLihwYWdlID4gMCA/IHRoaXMuc3RhdGUub3B0aW9ucyB8fCBbXSA6IFtdKSxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vcHRpb25zLnNsaWNlKHN0YXJ0LCBlbmQpXG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgX29uQ2xpY2socmVzdWx0LCBldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gb25seSB3b3JrIHdoZW4gbGVmdCBpcyBjbGlja2VkXG4gICAgaWYgKChldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gPT09IExFRlRfQlVUVE9OKSB8fCBldmVudC50eXBlID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLnByb3BzLm9uT3B0aW9uU2VsZWN0ZWQ/LihyZXN1bHQsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZml4ZWRPcHRpb25zLFxuICAgICAgbGlnaHQsXG4gICAgICBhbGxvd0N1c3RvbVZhbHVlcyA9IDAsXG4gICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogQ3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgPSBMaXN0SXRlbVxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtkaXNwbGF5T3B0aW9uOiBkaXNwbGF5ID0gZGVmYXVsdERpc3BsYXl9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIERvbid0IHJlbmRlciBpZiB0aGVyZSBhcmUgbm8gb3B0aW9ucyB0byBkaXNwbGF5XG4gICAgaWYgKCF0aGlzLnByb3BzLm9wdGlvbnM/Lmxlbmd0aCAmJiBhbGxvd0N1c3RvbVZhbHVlcyA8PSAwKSB7XG4gICAgICByZXR1cm4gPGRpdiAvPjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZU9mZnNldCA9IEFycmF5LmlzQXJyYXkoZml4ZWRPcHRpb25zKSA/IGZpeGVkT3B0aW9ucy5sZW5ndGggOiAwO1xuXG4gICAgLy8gRm9yIHNvbWUgcmVhc29uIG9uQ2xpY2sgaXMgbm90IGZpcmVkIHdoZW4gY2xpY2tlZCBvbiBhbiBvcHRpb25cbiAgICAvLyBvbk1vdXNlRG93biBpcyB1c2VkIGhlcmUgYXMgYSB3b3JrYXJvdW5kIG9mICMyMDUgYW5kIG90aGVyXG4gICAgcmV0dXJuIChcbiAgICAgIDxEcm9wZG93bkxpc3RXcmFwcGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdCwgdGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5yZXN1bHRzKX1cbiAgICAgICAgbGlnaHQ9e2xpZ2h0fVxuICAgICAgPlxuICAgICAgICB7dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50ID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SGVhZGVyLCB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RIZWFkZXIpfT5cbiAgICAgICAgICAgIDx0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge3ZhbHVlT2Zmc2V0ID4gMCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RTZWN0aW9ufT5cbiAgICAgICAgICAgIHtmaXhlZE9wdGlvbnM/Lm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5saXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHRoaXMucHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGksXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0xpc3QubGlzdEl0ZW1GaXhlZF06IHRydWVcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RJdGVtXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gbGlnaHQ9e2xpZ2h0fSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dGhpcy5zdGF0ZS5vcHRpb25zPy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICBjbGFzc0xpc3QubGlzdEl0ZW0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSArIHZhbHVlT2Zmc2V0LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiAodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zIHx8IFtdKS5maW5kKFxuICAgICAgICAgICAgICAgICAgaXRlbSA9PiBkaXNwbGF5KGl0ZW0pID09PSBkaXNwbGF5KHZhbHVlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5saXN0SXRlbVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGRpc3BsYXlPcHRpb249e2Rpc3BsYXl9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkpfVxuXG4gICAgICAgIDxEcm9wZG93bkZvb3RlcldyYXBwZXIgcmVmPXt0aGlzLmxvYWRpbmdSZWZ9IC8+XG4gICAgICA8L0Ryb3Bkb3duTGlzdFdyYXBwZXI+XG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFB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
|
|
258
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJMRUZUX0JVVFRPTiIsImNsYXNzTGlzdCIsImV4cG9ydHMiLCJsaXN0IiwibGlzdEhlYWRlciIsImxpc3RTZWN0aW9uIiwibGlzdEl0ZW0iLCJsaXN0SXRlbUFuY2hvciIsImxpc3RJdGVtRml4ZWQiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJMaXN0SXRlbSIsIl9yZWYiLCJ2YWx1ZSIsIl9yZWYkZGlzcGxheU9wdGlvbiIsImRpc3BsYXlPcHRpb24iLCJkaXNhYmxlZCIsImRpc3BsYXlWYWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJ0aXRsZSIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcExUIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiZHJvcGRvd25MaXN0TFQiLCJkcm9wZG93bkxpc3QiLCJEcm9wZG93bkZvb3RlcldyYXBwZXIiLCJEcm9wZG93bkxpc3QiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImVudGl0aWVzIiwieSIsImJvdW5kaW5nQ2xpZW50UmVjdCIsInByZXZZIiwib3B0aW9ucyIsIl9nZXRPcHRpb25zIiwicGFnZSIsInNldFN0YXRlIiwic3RhdGUiLCJpbml0TnVtYmVyT2ZPcHRpb25zIiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJsb2FkaW5nUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudERpZE1vdW50IiwiZGl2T3B0aW9ucyIsInJvb3QiLCJyb290TWFyZ2luIiwidGhyZXNob2xkIiwiY3VycmVudCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJoYW5kbGVPYnNlcnZlciIsIm9ic2VydmUiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudERpZFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX3RoaXMkb2JzZXJ2ZXIiLCJfdGhpcyRsb2FkaW5nUmVmIiwidW5vYnNlcnZlIiwibGVuZ3RoIiwic3RhcnQiLCJlbmQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJfb25DbGljayIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiYnV0dG9uIiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJvbk9wdGlvblNlbGVjdGVkIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMkb3B0aW9ucyIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJfdGhpczIiLCJfdGhpcyRzdGF0ZSRvcHRpb25zIiwiX3RoaXMkcHJvcHMyIiwiZml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMyJGFsbG93Q3VzIiwiYWxsb3dDdXN0b21WYWx1ZXMiLCJfdGhpcyRwcm9wczIkY3VzdG9tTGkiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiX3RoaXMkcHJvcHMkZGlzcGxheU9wIiwiZGlzcGxheSIsInZhbHVlT2Zmc2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IiwibWFwIiwiX3RoaXMyJHByb3BzJGN1c3RvbUNsIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsIm9uTW91c2VEb3duIiwib25DbGljayIsIl90aGlzMiRwcm9wcyRjdXN0b21DbDIiLCJzZWxlY3RlZCIsInNlbGVjdGVkSXRlbXMiLCJmaW5kIiwiaXRlbSIsInJlZiIsIkNvbXBvbmVudCIsImN1c3RvbVZhbHVlcyIsImRlZmF1bHRDbGFzc05hbWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7SU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV059IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InLFxuICBsaXN0SXRlbUZpeGVkOiAnbGlzdF9faXRlbV9fZml4ZWQnXG59O1xuXG5leHBvcnQgdHlwZSBMaXN0SXRlbVByb3BzPE9wdGlvbj4gPSB7XG4gIHZhbHVlOiBPcHRpb247XG4gIGRpc3BsYXlPcHRpb246IChvcHQ6IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHREaXNwbGF5ID0gZCA9PiBkO1xuZXhwb3J0IGNvbnN0IExpc3RJdGVtID0gKHt2YWx1ZSwgZGlzcGxheU9wdGlvbiA9IGRlZmF1bHREaXNwbGF5LCBkaXNhYmxlZH06IExpc3RJdGVtUHJvcHM8YW55PikgPT4ge1xuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBkaXNwbGF5T3B0aW9uKHZhbHVlKTtcbiAgcmV0dXJuIChcbiAgICA8c3BhbiB0aXRsZT17ZGlzcGxheVZhbHVlfSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RJdGVtQW5jaG9yLCB7ZGlzYWJsZWR9KX0+XG4gICAgICB7ZGlzcGxheVZhbHVlfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgbGlnaHQ/OiBib29sZWFuO1xufTtcblxuY29uc3QgRHJvcGRvd25MaXN0V3JhcHBlcjogSVN0eWxlZENvbXBvbmVudDxcbiAgJ3dlYicsXG4gIERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wc1xuPiA9IHN0eWxlZC5kaXY8RHJvcGRvd25MaXN0V3JhcHBlclByb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2R9O1xuICBib3JkZXItdG9wOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdCl9O1xuYDtcblxuY29uc3QgRHJvcGRvd25Gb290ZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAnMHB4JztcbmA7XG5cbnR5cGUgT3B0aW9uID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IGFueTtcbi8vIFRPRE86IG1ha2UgT3B0aW9uIGEgZ2VuZXJpYyB0eXBlXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0UHJvcHMge1xuICBvcHRpb25zPzogT3B0aW9uW107XG4gIGFsbG93Q3VzdG9tVmFsdWVzPzogbnVtYmVyO1xuICBjdXN0b21DbGFzc2VzPzoge2xpc3RIZWFkZXI/OiBzdHJpbmc7IGxpc3RJdGVtPzogc3RyaW5nOyByZXN1bHRzPzogc3RyaW5nfTtcbiAgY3VzdG9tVmFsdWVzPzogYW55W107XG4gIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PzogRWxlbWVudFR5cGU7XG4gIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgc2VsZWN0aW9uSW5kZXg/OiBudW1iZXI7XG4gIG9uT3B0aW9uU2VsZWN0ZWQ/OiAob3B0aW9uOiBPcHRpb24sIGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBkaXNwbGF5T3B0aW9uPzogKG9wdGlvbjogT3B0aW9uKSA9PiBzdHJpbmc7XG4gIGRlZmF1bHRDbGFzc05hbWVzPzogYm9vbGVhbjtcbiAgYXJlUmVzdWx0c1RydW5jYXRlZD86IGJvb2xlYW47XG4gIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlPzogc3RyaW5nO1xuICBsaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBsaWdodD86IGJvb2xlYW47XG4gIGZpeGVkT3B0aW9ucz86IGFueVtdO1xuICBzZWxlY3RlZEl0ZW1zPzogYW55W107IC8vIFBhc3NlZCB0aHJvdWdoIGJ5IFR5cGVhaGVhZFxufVxuXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0U3RhdGUge1xuICBvcHRpb25zOiBBcnJheTxhbnk+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50PERyb3Bkb3duTGlzdFByb3BzLCBEcm9wZG93bkxpc3RTdGF0ZT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGN1c3RvbUNsYXNzZXM6IHt9LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGN1c3RvbVZhbHVlczogW10sXG4gICAgZGlzcGxheU9wdGlvbjogZGVmYXVsdERpc3BsYXksXG4gICAgb25PcHRpb25TZWxlY3RlZDogKCkgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bGxcbiAgfTtcblxuICBpbml0TnVtYmVyT2ZPcHRpb25zOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcHJldlk6IG51bWJlcjtcbiAgbG9hZGluZ1JlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtvcHRpb25zOiBbXX07XG4gICAgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID0gSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV047XG4gICAgdGhpcy5wYWdlID0gMDtcbiAgICB0aGlzLnByZXZZID0gMDtcbiAgICB0aGlzLmxvYWRpbmdSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zKHRoaXMucGFnZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3B0aW9uc30pO1xuXG4gICAgY29uc3QgZGl2T3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IG51bGwsXG4gICAgICByb290TWFyZ2luOiAnMCUnLFxuICAgICAgdGhyZXNob2xkOiAxLjBcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaGFuZGxlT2JzZXJ2ZXIsIGRpdk9wdGlvbnMpO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHM6IERyb3Bkb3duTGlzdFByb3BzKSB7XG4gICAgaWYgKHByZXZQcm9wcy5vcHRpb25zICE9PSB0aGlzLnByb3BzLm9wdGlvbnMpIHtcbiAgICAgIC8vIGNoZWNrIGlmIHVzZXIgc2VhcmNoaW5nLCByZXNldCBzdGF0ZS5vcHRpb25zIGF0IHRoZSBmaXJzdCB0aW1lXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucygwKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBwcmV2ZW50IGNvbnNvbGUgd2FybmluZzogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBzaG91bGQgYmUgdXNlZCB3aXRoIGNvbXBvbmVudERpZFVwZGF0ZSgpLlxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLm9ic2VydmVyPy51bm9ic2VydmUodGhpcy5sb2FkaW5nUmVmPy5jdXJyZW50KTtcbiAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICB0aGlzLnByZXZZID0gMDtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPYnNlcnZlciA9IGVudGl0aWVzID0+IHtcbiAgICBjb25zdCB5ID0gZW50aXRpZXNbMF0uYm91bmRpbmdDbGllbnRSZWN0Lnk7XG4gICAgaWYgKHRoaXMucHJldlkgPiB5KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucyh0aGlzLnBhZ2UpO1xuICAgICAgaWYgKG9wdGlvbnMpIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgdGhpcy5wcmV2WSA9IHk7XG4gIH07XG5cbiAgX2dldE9wdGlvbnMocGFnZSkge1xuICAgIGlmICghdGhpcy5wcm9wcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbiA9IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGg7XG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnQgPSBwYWdlICogdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zO1xuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID4gbiA/IG4gOiBzdGFydCArIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucztcblxuICAgIGlmIChzdGFydCA8IGVuZCAmJiBlbmQgPD0gbikge1xuICAgICAgdGhpcy5wYWdlID0gcGFnZSArIDE7XG4gICAgICAvLyBpbiBjYXNlIG9mIHVzZXIgc2VhcmNoaW5nLCBwcm9wcy5vcHRpb25zIHdpbGwgYmUgdXBkYXRlZFxuICAgICAgLy8gc28gXCJwYWdlXCIgdmFsdWUgd2lsbCBiZSBzZXQgdG8gMCBhbmQgcHJldmlvdXMgc3RhdGUub3B0aW9ucyB3aWxsIGJlIGRpc2NhcmRlZFxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKHBhZ2UgPiAwID8gdGhpcy5zdGF0ZS5vcHRpb25zIHx8IFtdIDogW10pLFxuICAgICAgICAuLi50aGlzLnByb3BzLm9wdGlvbnMuc2xpY2Uoc3RhcnQsIGVuZClcbiAgICAgIF07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfb25DbGljayhyZXN1bHQsIGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyBvbmx5IHdvcmsgd2hlbiBsZWZ0IGlzIGNsaWNrZWRcbiAgICBpZiAoKGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nICYmIGV2ZW50LmJ1dHRvbiA9PT0gTEVGVF9CVVRUT04pIHx8IGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMucHJvcHMub25PcHRpb25TZWxlY3RlZD8uKHJlc3VsdCwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBmaXhlZE9wdGlvbnMsXG4gICAgICBsaWdodCxcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWVzID0gMCxcbiAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBDdXN0b21MaXN0SXRlbUNvbXBvbmVudCA9IExpc3RJdGVtXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2Rpc3BsYXlPcHRpb246IGRpc3BsYXkgPSBkZWZhdWx0RGlzcGxheX0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gRG9uJ3QgcmVuZGVyIGlmIHRoZXJlIGFyZSBubyBvcHRpb25zIHRvIGRpc3BsYXlcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucz8ubGVuZ3RoICYmIGFsbG93Q3VzdG9tVmFsdWVzIDw9IDApIHtcbiAgICAgIHJldHVybiA8ZGl2IC8+O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlT2Zmc2V0ID0gQXJyYXkuaXNBcnJheShmaXhlZE9wdGlvbnMpID8gZml4ZWRPcHRpb25zLmxlbmd0aCA6IDA7XG5cbiAgICAvLyBGb3Igc29tZSByZWFzb24gb25DbGljayBpcyBub3QgZmlyZWQgd2hlbiBjbGlja2VkIG9uIGFuIG9wdGlvblxuICAgIC8vIG9uTW91c2VEb3duIGlzIHVzZWQgaGVyZSBhcyBhIHdvcmthcm91bmQgb2YgIzIwNSBhbmQgb3RoZXJcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duTGlzdFdyYXBwZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0LCB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LnJlc3VsdHMpfVxuICAgICAgICBsaWdodD17bGlnaHR9XG4gICAgICA+XG4gICAgICAgIHt0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RIZWFkZXIsIHRoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8ubGlzdEhlYWRlcil9PlxuICAgICAgICAgICAgPHRoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dmFsdWVPZmZzZXQgPiAwID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdFNlY3Rpb259PlxuICAgICAgICAgICAge2ZpeGVkT3B0aW9ucz8ubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0Lmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSxcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzTGlzdC5saXN0SXRlbUZpeGVkXTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8ubGlzdEl0ZW1cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgdmFsdWU9e3ZhbHVlfSBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5fSBsaWdodD17bGlnaHR9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHt0aGlzLnN0YXRlLm9wdGlvbnM/Lm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIGNsYXNzTGlzdC5saXN0SXRlbSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhvdmVyOiB0aGlzLnByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpICsgdmFsdWVPZmZzZXQsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6ICh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMgfHwgW10pLmZpbmQoXG4gICAgICAgICAgICAgICAgICBpdGVtID0+IGRpc3BsYXkoaXRlbSkgPT09IGRpc3BsYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RJdGVtXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAga2V5PXtgJHtkaXNwbGF5KHZhbHVlKX1fJHtpfWB9XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSl9XG5cbiAgICAgICAgPERyb3Bkb3duRm9vdGVyV3JhcHBlciByZWY9e3RoaXMubG9hZGluZ1JlZn0gLz5cbiAgICAgIDwvRHJvcGRvd25MaXN0V3JhcHBlcj5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFB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
|
|
@@ -47,7 +47,7 @@ declare class ItemSelectorUnmemoized extends Component<ItemSelectorProps<any>> {
|
|
|
47
47
|
closeOnSelect: boolean;
|
|
48
48
|
searchable: boolean;
|
|
49
49
|
DropDownRenderComponent: typeof DropdownList;
|
|
50
|
-
DropDownLineItemRenderComponent: ({ value, displayOption, disabled
|
|
50
|
+
DropDownLineItemRenderComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
|
|
51
51
|
DropDownWrapperComponent: IStyledComponent<"web", DropdownWrapperProps>;
|
|
52
52
|
reorderItems: undefined;
|
|
53
53
|
className: string;
|
|
@@ -95,7 +95,7 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
|
|
|
95
95
|
inputDisplayOption: null;
|
|
96
96
|
defaultClassNames: boolean;
|
|
97
97
|
customListComponent: typeof DropdownList;
|
|
98
|
-
customListItemComponent: ({ value, displayOption, disabled
|
|
98
|
+
customListItemComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
|
|
99
99
|
inputIcon: typeof Search;
|
|
100
100
|
customListHeaderComponent: null;
|
|
101
101
|
showOptionsWhenEmpty: boolean;
|