@kepler.gl/components 3.3.0-alpha.7 → 3.3.0-alpha.9
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/cjs/common/data-table/grid.js +2 -2
- package/dist/cjs/common/data-table/index.js +3 -3
- package/dist/cjs/common/file-uploader/file-upload.js +251 -40
- package/dist/cjs/common/icons/circle.js +54 -0
- package/dist/cjs/common/icons/index.js +8 -1
- package/dist/cjs/common/item-selector/item-selector.js +2 -2
- package/dist/cjs/common/portaled.js +3 -3
- package/dist/cjs/common/time-range-slider.js +2 -2
- package/dist/cjs/common/timeline-slider.js +2 -2
- package/dist/cjs/editor/editor.js +2 -2
- package/dist/cjs/effects/effect-configurator.js +2 -2
- package/dist/cjs/effects/effect-manager.js +32 -17
- package/dist/cjs/effects/effect-time-configurator.js +110 -42
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/cjs/filters/time-widget.js +2 -2
- package/dist/cjs/kepler-gl.js +6 -2
- package/dist/cjs/map/layer-hover-info.js +2 -2
- package/dist/cjs/map/map-control.js +2 -2
- package/dist/cjs/map/map-draw-panel.js +10 -1
- package/dist/cjs/map-container.js +2 -2
- package/dist/cjs/map-view-state-context.js +3 -3
- package/dist/cjs/modal-container.js +2 -2
- package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
- package/dist/cjs/modals/cloud-tile.js +39 -10
- package/dist/cjs/modals/export-map-modal/components.js +16 -7
- package/dist/cjs/modals/export-map-modal/export-html-map.js +5 -9
- package/dist/cjs/modals/export-map-modal/export-json-map.js +4 -8
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +21 -16
- package/dist/cjs/modals/image-modal-container.js +2 -2
- package/dist/cjs/modals/load-data-modal.js +3 -3
- package/dist/cjs/modals/load-storage-map.js +9 -6
- package/dist/cjs/modals/save-map-modal.js +4 -3
- package/dist/cjs/modals/share-map-modal.js +5 -4
- package/dist/cjs/modals/swipe-export-video-preview.js +2 -2
- package/dist/cjs/notification-panel/notification-item.js +58 -12
- package/dist/cjs/plot-container.js +12 -5
- package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
- package/dist/cjs/side-panel/common/dataset-info.js +187 -8
- package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
- package/dist/cjs/side-panel/common/dataset-title.js +76 -13
- package/dist/cjs/side-panel/common/source-data-catalog.js +31 -6
- package/dist/cjs/side-panel/filter-manager.js +7 -3
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/cjs/side-panel/layer-manager.js +14 -4
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/common/icons/circle.d.ts +10 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/effects/effect-manager.d.ts +1 -1
- package/dist/esm/common/data-table/grid.js +2 -2
- package/dist/esm/common/data-table/index.js +3 -3
- package/dist/esm/common/file-uploader/file-upload.js +252 -41
- package/dist/esm/common/icons/circle.js +48 -0
- package/dist/esm/common/icons/index.js +2 -1
- package/dist/esm/common/item-selector/item-selector.js +2 -2
- package/dist/esm/common/portaled.js +3 -3
- package/dist/esm/common/time-range-slider.js +2 -2
- package/dist/esm/common/timeline-slider.js +2 -2
- package/dist/esm/editor/editor.js +2 -2
- package/dist/esm/effects/effect-configurator.js +2 -2
- package/dist/esm/effects/effect-manager.js +34 -19
- package/dist/esm/effects/effect-time-configurator.js +111 -43
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/esm/filters/time-widget.js +2 -2
- package/dist/esm/kepler-gl.js +6 -2
- package/dist/esm/map/layer-hover-info.js +2 -2
- package/dist/esm/map/map-control.js +2 -2
- package/dist/esm/map/map-draw-panel.js +11 -2
- package/dist/esm/map-container.js +2 -2
- package/dist/esm/map-view-state-context.js +3 -3
- package/dist/esm/modal-container.js +2 -2
- package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
- package/dist/esm/modals/cloud-tile.js +39 -10
- package/dist/esm/modals/export-map-modal/components.js +16 -7
- package/dist/esm/modals/export-map-modal/export-html-map.js +6 -10
- package/dist/esm/modals/export-map-modal/export-json-map.js +5 -9
- package/dist/esm/modals/export-map-modal/export-map-modal.js +21 -14
- package/dist/esm/modals/image-modal-container.js +2 -2
- package/dist/esm/modals/load-data-modal.js +3 -3
- package/dist/esm/modals/load-storage-map.js +8 -3
- package/dist/esm/modals/save-map-modal.js +4 -3
- package/dist/esm/modals/share-map-modal.js +5 -4
- package/dist/esm/modals/swipe-export-video-preview.js +2 -2
- package/dist/esm/notification-panel/notification-item.js +60 -14
- package/dist/esm/plot-container.js +12 -5
- package/dist/esm/remote-dataset-refresh-controller.js +44 -0
- package/dist/esm/side-panel/common/dataset-info.js +186 -9
- package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
- package/dist/esm/side-panel/common/dataset-title.js +77 -14
- package/dist/esm/side-panel/common/source-data-catalog.js +29 -6
- package/dist/esm/side-panel/filter-manager.js +7 -3
- package/dist/esm/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/esm/side-panel/layer-manager.js +14 -4
- package/dist/esm/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/esm/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/kepler-gl.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
- package/dist/modals/export-map-modal/components.d.ts +14 -0
- package/dist/remote-dataset-refresh-controller.d.ts +11 -0
- package/dist/side-panel/common/dataset-info.d.ts +10 -0
- package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
- package/dist/side-panel/common/dataset-title.d.ts +5 -0
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
- package/package.json +17 -18
|
@@ -1,34 +1,213 @@
|
|
|
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"] = DatasetInfoFactory;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
-
var _react =
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
13
|
var _d3Format = require("d3-format");
|
|
14
|
+
var _reactIntl = require("react-intl");
|
|
12
15
|
var _constants = require("@kepler.gl/constants");
|
|
13
16
|
var _localization = require("@kepler.gl/localization");
|
|
14
|
-
var
|
|
17
|
+
var _icons = require("../../common/icons");
|
|
18
|
+
var _styledComponents2 = require("../../common/styled-components");
|
|
19
|
+
var _datasetRefreshProgress = _interopRequireDefault(require("./dataset-refresh-progress"));
|
|
20
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
|
|
15
21
|
// Copyright contributors to the kepler.gl project
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
23
|
var numFormat = (0, _d3Format.format)(',');
|
|
17
|
-
var StyledDataRowCount = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 11px;\n color: ", ";\n padding-left: 19px;\n"])), function (props) {
|
|
24
|
+
var StyledDataRowCount = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 11px;\n color: ", ";\n padding-left: 19px;\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n"])), function (props) {
|
|
18
25
|
return props.theme.subtextColor;
|
|
19
26
|
});
|
|
27
|
+
var StyledRefreshing = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: ", ";\n"])), function (props) {
|
|
28
|
+
return props.theme.inputColor;
|
|
29
|
+
});
|
|
30
|
+
var StyledRefreshSettings = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n"])));
|
|
31
|
+
var StyledRefreshLabel = _styledComponents["default"].label(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin: 0;\n"])));
|
|
32
|
+
var StyledRefreshSelect = _styledComponents["default"].select(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n height: 18px;\n font-size: 11px;\n padding: 0 4px;\n width: auto;\n max-width: 96px;\n cursor: pointer;\n background-color: transparent;\n"])), function (props) {
|
|
33
|
+
return props.theme.input;
|
|
34
|
+
});
|
|
35
|
+
var StyledCustomSeconds = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n height: 18px;\n font-size: 11px;\n padding: 0 4px;\n width: 52px;\n background-color: transparent;\n"])), function (props) {
|
|
36
|
+
return props.theme.input;
|
|
37
|
+
});
|
|
38
|
+
var StyledCustomUnit = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 11px;\n"])));
|
|
39
|
+
var StyledRefreshNow = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n color: ", ";\n cursor: pointer;\n width: 14px;\n height: 14px;\n\n &:disabled {\n cursor: default;\n opacity: 0.5;\n }\n\n &:hover:not(:disabled) {\n color: ", ";\n }\n"])), function (props) {
|
|
40
|
+
return props.theme.subtextColor;
|
|
41
|
+
}, function (props) {
|
|
42
|
+
return props.theme.textColorHl;
|
|
43
|
+
});
|
|
20
44
|
function DatasetInfoFactory() {
|
|
21
45
|
var DatasetInfo = function DatasetInfo(_ref) {
|
|
22
|
-
var
|
|
46
|
+
var _dataset$metadata, _dataset$metadata2, _dataset$metadata3;
|
|
47
|
+
var dataset = _ref.dataset,
|
|
48
|
+
showRefreshSettings = _ref.showRefreshSettings,
|
|
49
|
+
refreshDataset = _ref.refreshDataset,
|
|
50
|
+
updateDatasetProps = _ref.updateDatasetProps;
|
|
51
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
52
|
+
var isRemote = dataset.type === _constants.DatasetType.EXTERNALLY_HOSTED;
|
|
53
|
+
var intervalMs = (0, _constants.getDatasetRefreshIntervalMs)(dataset.metadata);
|
|
54
|
+
var matchingOption = _constants.DATASET_REFRESH_INTERVAL_OPTIONS.find(function (option) {
|
|
55
|
+
return option.value === intervalMs;
|
|
56
|
+
});
|
|
57
|
+
var isCustomInterval = intervalMs > 0 && !(0, _constants.isPresetDatasetRefreshInterval)(intervalMs);
|
|
58
|
+
var _useState = (0, _react.useState)(isCustomInterval),
|
|
59
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
|
+
customMode = _useState2[0],
|
|
61
|
+
setCustomMode = _useState2[1];
|
|
62
|
+
var _useState3 = (0, _react.useState)(function () {
|
|
63
|
+
return (0, _constants.formatCustomRefreshSeconds)(intervalMs || _constants.DATASET_REFRESH_DEFAULT_CUSTOM_MS);
|
|
64
|
+
}),
|
|
65
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
66
|
+
customSeconds = _useState4[0],
|
|
67
|
+
setCustomSeconds = _useState4[1];
|
|
68
|
+
var showCustomInput = customMode || isCustomInterval;
|
|
69
|
+
var selectValue = showCustomInput ? _constants.DATASET_REFRESH_CUSTOM_VALUE : String(matchingOption ? matchingOption.value : 0);
|
|
70
|
+
(0, _react.useEffect)(function () {
|
|
71
|
+
var ms = (0, _constants.getDatasetRefreshIntervalMs)(dataset.metadata);
|
|
72
|
+
var custom = ms > 0 && !(0, _constants.isPresetDatasetRefreshInterval)(ms);
|
|
73
|
+
setCustomMode(custom);
|
|
74
|
+
setCustomSeconds((0, _constants.formatCustomRefreshSeconds)(ms || _constants.DATASET_REFRESH_DEFAULT_CUSTOM_MS));
|
|
75
|
+
}, [dataset.id, (_dataset$metadata = dataset.metadata) === null || _dataset$metadata === void 0 ? void 0 : _dataset$metadata.refreshIntervalMs]);
|
|
76
|
+
var spinning = ((_dataset$metadata2 = dataset.metadata) === null || _dataset$metadata2 === void 0 ? void 0 : _dataset$metadata2.refreshStatus) === 'loading';
|
|
77
|
+
var progress = typeof ((_dataset$metadata3 = dataset.metadata) === null || _dataset$metadata3 === void 0 ? void 0 : _dataset$metadata3.refreshProgress) === 'number' ? dataset.metadata.refreshProgress : undefined;
|
|
78
|
+
var showPercent = spinning && typeof progress === 'number' && progress > 0 && progress < 100;
|
|
79
|
+
var showRefreshControls = Boolean(showRefreshSettings && isRemote && (refreshDataset || updateDatasetProps));
|
|
80
|
+
var onRefreshNow = (0, _react.useCallback)(function (event) {
|
|
81
|
+
event.stopPropagation();
|
|
82
|
+
if (!spinning) {
|
|
83
|
+
refreshDataset === null || refreshDataset === void 0 || refreshDataset(dataset.id);
|
|
84
|
+
}
|
|
85
|
+
}, [dataset.id, refreshDataset, spinning]);
|
|
86
|
+
var commitCustomInterval = (0, _react.useCallback)(function (secondsText) {
|
|
87
|
+
var nextMs = (0, _constants.parseCustomRefreshIntervalMs)(secondsText);
|
|
88
|
+
if (nextMs == null) {
|
|
89
|
+
setCustomSeconds((0, _constants.formatCustomRefreshSeconds)(intervalMs || _constants.DATASET_REFRESH_DEFAULT_CUSTOM_MS));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setCustomSeconds((0, _constants.formatCustomRefreshSeconds)(nextMs));
|
|
93
|
+
if (nextMs !== intervalMs) {
|
|
94
|
+
updateDatasetProps === null || updateDatasetProps === void 0 || updateDatasetProps(dataset.id, {
|
|
95
|
+
metadata: {
|
|
96
|
+
refreshIntervalMs: nextMs
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}, [dataset.id, intervalMs, updateDatasetProps]);
|
|
101
|
+
var onRefreshIntervalChange = (0, _react.useCallback)(function (event) {
|
|
102
|
+
event.stopPropagation();
|
|
103
|
+
var value = event.target.value;
|
|
104
|
+
if (value === _constants.DATASET_REFRESH_CUSTOM_VALUE) {
|
|
105
|
+
var secondsText = (0, _constants.formatCustomRefreshSeconds)(intervalMs || _constants.DATASET_REFRESH_DEFAULT_CUSTOM_MS);
|
|
106
|
+
var nextMs = (0, _constants.parseCustomRefreshIntervalMs)(secondsText);
|
|
107
|
+
setCustomMode(true);
|
|
108
|
+
setCustomSeconds(secondsText);
|
|
109
|
+
if (!intervalMs && nextMs != null) {
|
|
110
|
+
updateDatasetProps === null || updateDatasetProps === void 0 || updateDatasetProps(dataset.id, {
|
|
111
|
+
metadata: {
|
|
112
|
+
refreshIntervalMs: nextMs
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
setCustomMode(false);
|
|
119
|
+
updateDatasetProps === null || updateDatasetProps === void 0 || updateDatasetProps(dataset.id, {
|
|
120
|
+
metadata: {
|
|
121
|
+
refreshIntervalMs: Number(value) || 0
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}, [dataset.id, intervalMs, updateDatasetProps]);
|
|
23
125
|
return /*#__PURE__*/_react["default"].createElement(StyledDataRowCount, {
|
|
24
|
-
className: "source-data-rows"
|
|
126
|
+
className: "source-data-rows",
|
|
127
|
+
"aria-busy": spinning
|
|
25
128
|
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
26
|
-
id: dataset.type === _constants.DatasetType.VECTOR_TILE ? 'datasetInfo.vectorTile' : dataset.type === _constants.DatasetType.RASTER_TILE ? 'datasetInfo.rasterTile' : dataset.type === _constants.DatasetType.WMS_TILE ? 'datasetInfo.wmsTile' : dataset.type === _constants.DatasetType.TILE_3D ? 'datasetInfo.tile3d' : dataset.type === _constants.DatasetType.BITMAP ? 'datasetInfo.bitmap' : 'datasetInfo.rowCount',
|
|
129
|
+
id: dataset.type === _constants.DatasetType.VECTOR_TILE ? 'datasetInfo.vectorTile' : dataset.type === _constants.DatasetType.RASTER_TILE ? 'datasetInfo.rasterTile' : dataset.type === _constants.DatasetType.WMS_TILE ? 'datasetInfo.wmsTile' : dataset.type === _constants.DatasetType.TILE_3D ? 'datasetInfo.tile3d' : dataset.type === _constants.DatasetType.BITMAP ? 'datasetInfo.bitmap' : isRemote ? 'datasetInfo.remoteFile' : 'datasetInfo.rowCount',
|
|
27
130
|
values: {
|
|
28
131
|
rowCount: numFormat(dataset.dataContainer.numRows())
|
|
29
132
|
}
|
|
30
|
-
})
|
|
133
|
+
}), spinning ? /*#__PURE__*/_react["default"].createElement(StyledRefreshing, {
|
|
134
|
+
className: "dataset-refresh-status"
|
|
135
|
+
}, /*#__PURE__*/_react["default"].createElement(_datasetRefreshProgress["default"], {
|
|
136
|
+
percent: progress,
|
|
137
|
+
size: 12
|
|
138
|
+
}), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
139
|
+
id: showPercent ? 'datasetInfo.refreshingPercent' : 'datasetInfo.refreshing',
|
|
140
|
+
values: {
|
|
141
|
+
percent: Math.round(progress !== null && progress !== void 0 ? progress : 0)
|
|
142
|
+
}
|
|
143
|
+
})) : null, showRefreshControls ? /*#__PURE__*/_react["default"].createElement(StyledRefreshSettings, {
|
|
144
|
+
className: "dataset-refresh-settings",
|
|
145
|
+
onClick: function onClick(event) {
|
|
146
|
+
return event.stopPropagation();
|
|
147
|
+
}
|
|
148
|
+
}, updateDatasetProps ? /*#__PURE__*/_react["default"].createElement(StyledRefreshLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
149
|
+
id: "datasetInfo.refreshInterval"
|
|
150
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledRefreshSelect, {
|
|
151
|
+
"aria-label": intl.formatMessage({
|
|
152
|
+
id: 'datasetInfo.refreshInterval'
|
|
153
|
+
}),
|
|
154
|
+
value: selectValue,
|
|
155
|
+
onChange: onRefreshIntervalChange
|
|
156
|
+
}, _constants.DATASET_REFRESH_INTERVAL_OPTIONS.map(function (option) {
|
|
157
|
+
return /*#__PURE__*/_react["default"].createElement("option", {
|
|
158
|
+
key: option.value,
|
|
159
|
+
value: String(option.value)
|
|
160
|
+
}, intl.formatMessage({
|
|
161
|
+
id: option.labelId
|
|
162
|
+
}));
|
|
163
|
+
}), /*#__PURE__*/_react["default"].createElement("option", {
|
|
164
|
+
value: _constants.DATASET_REFRESH_CUSTOM_VALUE
|
|
165
|
+
}, intl.formatMessage({
|
|
166
|
+
id: 'datasetTitle.refreshCustom'
|
|
167
|
+
}))), showCustomInput ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledCustomSeconds, {
|
|
168
|
+
type: "number",
|
|
169
|
+
min: _constants.DATASET_REFRESH_MIN_INTERVAL_MS / 1000,
|
|
170
|
+
step: 0.1,
|
|
171
|
+
inputMode: "decimal",
|
|
172
|
+
className: "dataset-refresh-custom-seconds",
|
|
173
|
+
"aria-label": intl.formatMessage({
|
|
174
|
+
id: 'datasetInfo.refreshCustomSeconds'
|
|
175
|
+
}),
|
|
176
|
+
value: customSeconds,
|
|
177
|
+
onChange: function onChange(event) {
|
|
178
|
+
event.stopPropagation();
|
|
179
|
+
setCustomSeconds(event.target.value);
|
|
180
|
+
},
|
|
181
|
+
onBlur: function onBlur(event) {
|
|
182
|
+
return commitCustomInterval(event.target.value);
|
|
183
|
+
},
|
|
184
|
+
onKeyDown: function onKeyDown(event) {
|
|
185
|
+
event.stopPropagation();
|
|
186
|
+
if (event.key === 'Enter') {
|
|
187
|
+
event.preventDefault();
|
|
188
|
+
commitCustomInterval(customSeconds);
|
|
189
|
+
event.target.blur();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}), /*#__PURE__*/_react["default"].createElement(StyledCustomUnit, null, "s")) : null) : null, refreshDataset ? /*#__PURE__*/_react["default"].createElement(StyledRefreshNow, {
|
|
193
|
+
type: "button",
|
|
194
|
+
className: "dataset-refresh-now",
|
|
195
|
+
"aria-label": intl.formatMessage({
|
|
196
|
+
id: 'datasetTitle.refreshDataset'
|
|
197
|
+
}),
|
|
198
|
+
"data-tip": true,
|
|
199
|
+
"data-for": "refresh-now-".concat(dataset.id),
|
|
200
|
+
disabled: spinning,
|
|
201
|
+
onClick: onRefreshNow
|
|
202
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.Reset, {
|
|
203
|
+
height: "14px"
|
|
204
|
+
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
205
|
+
id: "refresh-now-".concat(dataset.id),
|
|
206
|
+
effect: "solid"
|
|
207
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
208
|
+
id: 'datasetTitle.refreshDataset'
|
|
209
|
+
})))) : null) : null);
|
|
31
210
|
};
|
|
32
211
|
return DatasetInfo;
|
|
33
212
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2QzRm9ybWF0IiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJudW1Gb3JtYXQiLCJmb3JtYXQiLCJTdHlsZWREYXRhUm93Q291bnQiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzdWJ0ZXh0Q29sb3IiLCJEYXRhc2V0SW5mb0ZhY3RvcnkiLCJEYXRhc2V0SW5mbyIsIl9yZWYiLCJkYXRhc2V0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJpZCIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlZFQ1RPUl9USUxFIiwiUkFTVEVSX1RJTEUiLCJXTVNfVElMRSIsIlRJTEVfM0QiLCJCSVRNQVAiLCJ2YWx1ZXMiLCJyb3dDb3VudCIsImRhdGFDb250YWluZXIiLCJudW1Sb3dzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtmb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5cbmltcG9ydCB7RGF0YXNldFR5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuY29uc3QgbnVtRm9ybWF0ID0gZm9ybWF0KCcsJyk7XG5cbnR5cGUgTWluaURhdGFzZXQgPSB7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2U7XG4gIHR5cGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhc2V0SW5mb1Byb3BzID0ge1xuICBkYXRhc2V0OiBNaW5pRGF0YXNldDtcbn07XG5cbmNvbnN0IFN0eWxlZERhdGFSb3dDb3VudCA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgcGFkZGluZy1sZWZ0OiAxOXB4O1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGF0YXNldEluZm9GYWN0b3J5KCkge1xuICBjb25zdCBEYXRhc2V0SW5mbzogUmVhY3QuRkM8RGF0YXNldEluZm9Qcm9wcz4gPSAoe2RhdGFzZXR9OiBEYXRhc2V0SW5mb1Byb3BzKSA9PiAoXG4gICAgPFN0eWxlZERhdGFSb3dDb3VudCBjbGFzc05hbWU9XCJzb3VyY2UtZGF0YS1yb3dzXCI+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICBpZD17XG4gICAgICAgICAgZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5WRUNUT1JfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8udmVjdG9yVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5SQVNURVJfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8ucmFzdGVyVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5XTVNfVElMRVxuICAgICAgICAgICAgPyAnZGF0YXNldEluZm8ud21zVGlsZSdcbiAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5USUxFXzNEXG4gICAgICAgICAgICA/ICdkYXRhc2V0SW5mby50aWxlM2QnXG4gICAgICAgICAgICA6IGRhdGFzZXQudHlwZSA9PT0gRGF0YXNldFR5cGUuQklUTUFQXG4gICAgICAgICAgICA/ICdkYXRhc2V0SW5mby5iaXRtYXAnXG4gICAgICAgICAgICA6ICdkYXRhc2V0SW5mby5yb3dDb3VudCdcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXM9e3tyb3dDb3VudDogbnVtRm9ybWF0KGRhdGFzZXQuZGF0YUNvbnRhaW5lci5udW1Sb3dzKCkpfX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWREYXRhUm93Q291bnQ+XG4gICk7XG5cbiAgcmV0dXJuIERhdGFzZXRJbmZvO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxTQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFBeUQsSUFBQUssZUFBQSxFQVJ6RDtBQUNBO0FBVUEsSUFBTUMsU0FBUyxHQUFHLElBQUFDLGdCQUFNLEVBQUMsR0FBRyxDQUFDO0FBVzdCLElBQU1DLGtCQUFrQixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUFMLGVBQUEsS0FBQUEsZUFBQSxPQUFBTSx1QkFBQSxrRkFFMUIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxZQUFZO0FBQUEsRUFFM0M7QUFFYyxTQUFTQyxrQkFBa0JBLENBQUEsRUFBRztFQUMzQyxJQUFNQyxXQUF1QyxHQUFHLFNBQTFDQSxXQUF1Q0EsQ0FBQUMsSUFBQTtJQUFBLElBQUtDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO0lBQUEsb0JBQ3ZEcEIsTUFBQSxZQUFBcUIsYUFBQSxDQUFDWCxrQkFBa0I7TUFBQ1ksU0FBUyxFQUFDO0lBQWtCLGdCQUM5Q3RCLE1BQUEsWUFBQXFCLGFBQUEsQ0FBQ2YsYUFBQSxDQUFBaUIsZ0JBQWdCO01BQ2ZDLEVBQUUsRUFDQUosT0FBTyxDQUFDSyxJQUFJLEtBQUtDLHNCQUFXLENBQUNDLFdBQVcsR0FDcEMsd0JBQXdCLEdBQ3hCUCxPQUFPLENBQUNLLElBQUksS0FBS0Msc0JBQVcsQ0FBQ0UsV0FBVyxHQUN4Qyx3QkFBd0IsR0FDeEJSLE9BQU8sQ0FBQ0ssSUFBSSxLQUFLQyxzQkFBVyxDQUFDRyxRQUFRLEdBQ3JDLHFCQUFxQixHQUNyQlQsT0FBTyxDQUFDSyxJQUFJLEtBQUtDLHNCQUFXLENBQUNJLE9BQU8sR0FDcEMsb0JBQW9CLEdBQ3BCVixPQUFPLENBQUNLLElBQUksS0FBS0Msc0JBQVcsQ0FBQ0ssTUFBTSxHQUNuQyxvQkFBb0IsR0FDcEIsc0JBQ0w7TUFDREMsTUFBTSxFQUFFO1FBQUNDLFFBQVEsRUFBRXpCLFNBQVMsQ0FBQ1ksT0FBTyxDQUFDYyxhQUFhLENBQUNDLE9BQU8sQ0FBQyxDQUFDO01BQUM7SUFBRSxDQUNoRSxDQUNpQixDQUFDO0VBQUEsQ0FDdEI7RUFFRCxPQUFPakIsV0FBVztBQUNwQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNGb3JtYXQiLCJfcmVhY3RJbnRsIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfZGF0YXNldFJlZnJlc2hQcm9ncmVzcyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm51bUZvcm1hdCIsImZvcm1hdCIsIlN0eWxlZERhdGFSb3dDb3VudCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsInN1YnRleHRDb2xvciIsIlN0eWxlZFJlZnJlc2hpbmciLCJzcGFuIiwiaW5wdXRDb2xvciIsIlN0eWxlZFJlZnJlc2hTZXR0aW5ncyIsIlN0eWxlZFJlZnJlc2hMYWJlbCIsImxhYmVsIiwiU3R5bGVkUmVmcmVzaFNlbGVjdCIsInNlbGVjdCIsImlucHV0IiwiU3R5bGVkQ3VzdG9tU2Vjb25kcyIsIlN0eWxlZEN1c3RvbVVuaXQiLCJTdHlsZWRSZWZyZXNoTm93IiwiYnV0dG9uIiwidGV4dENvbG9ySGwiLCJEYXRhc2V0SW5mb0ZhY3RvcnkiLCJEYXRhc2V0SW5mbyIsIl9yZWYiLCJfZGF0YXNldCRtZXRhZGF0YSIsIl9kYXRhc2V0JG1ldGFkYXRhMiIsIl9kYXRhc2V0JG1ldGFkYXRhMyIsImRhdGFzZXQiLCJzaG93UmVmcmVzaFNldHRpbmdzIiwicmVmcmVzaERhdGFzZXQiLCJ1cGRhdGVEYXRhc2V0UHJvcHMiLCJpbnRsIiwidXNlSW50bCIsImlzUmVtb3RlIiwidHlwZSIsIkRhdGFzZXRUeXBlIiwiRVhURVJOQUxMWV9IT1NURUQiLCJpbnRlcnZhbE1zIiwiZ2V0RGF0YXNldFJlZnJlc2hJbnRlcnZhbE1zIiwibWV0YWRhdGEiLCJtYXRjaGluZ09wdGlvbiIsIkRBVEFTRVRfUkVGUkVTSF9JTlRFUlZBTF9PUFRJT05TIiwiZmluZCIsIm9wdGlvbiIsInZhbHVlIiwiaXNDdXN0b21JbnRlcnZhbCIsImlzUHJlc2V0RGF0YXNldFJlZnJlc2hJbnRlcnZhbCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImN1c3RvbU1vZGUiLCJzZXRDdXN0b21Nb2RlIiwiX3VzZVN0YXRlMyIsImZvcm1hdEN1c3RvbVJlZnJlc2hTZWNvbmRzIiwiREFUQVNFVF9SRUZSRVNIX0RFRkFVTFRfQ1VTVE9NX01TIiwiX3VzZVN0YXRlNCIsImN1c3RvbVNlY29uZHMiLCJzZXRDdXN0b21TZWNvbmRzIiwic2hvd0N1c3RvbUlucHV0Iiwic2VsZWN0VmFsdWUiLCJEQVRBU0VUX1JFRlJFU0hfQ1VTVE9NX1ZBTFVFIiwiU3RyaW5nIiwidXNlRWZmZWN0IiwibXMiLCJjdXN0b20iLCJpZCIsInJlZnJlc2hJbnRlcnZhbE1zIiwic3Bpbm5pbmciLCJyZWZyZXNoU3RhdHVzIiwicHJvZ3Jlc3MiLCJyZWZyZXNoUHJvZ3Jlc3MiLCJ1bmRlZmluZWQiLCJzaG93UGVyY2VudCIsInNob3dSZWZyZXNoQ29udHJvbHMiLCJCb29sZWFuIiwib25SZWZyZXNoTm93IiwidXNlQ2FsbGJhY2siLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsImNvbW1pdEN1c3RvbUludGVydmFsIiwic2Vjb25kc1RleHQiLCJuZXh0TXMiLCJwYXJzZUN1c3RvbVJlZnJlc2hJbnRlcnZhbE1zIiwib25SZWZyZXNoSW50ZXJ2YWxDaGFuZ2UiLCJ0YXJnZXQiLCJOdW1iZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsIlZFQ1RPUl9USUxFIiwiUkFTVEVSX1RJTEUiLCJXTVNfVElMRSIsIlRJTEVfM0QiLCJCSVRNQVAiLCJ2YWx1ZXMiLCJyb3dDb3VudCIsImRhdGFDb250YWluZXIiLCJudW1Sb3dzIiwicGVyY2VudCIsInNpemUiLCJNYXRoIiwicm91bmQiLCJvbkNsaWNrIiwiZm9ybWF0TWVzc2FnZSIsIm9uQ2hhbmdlIiwibWFwIiwia2V5IiwibGFiZWxJZCIsIkZyYWdtZW50IiwibWluIiwiREFUQVNFVF9SRUZSRVNIX01JTl9JTlRFUlZBTF9NUyIsInN0ZXAiLCJpbnB1dE1vZGUiLCJvbkJsdXIiLCJvbktleURvd24iLCJwcmV2ZW50RGVmYXVsdCIsImJsdXIiLCJjb25jYXQiLCJkaXNhYmxlZCIsIlJlc2V0IiwiaGVpZ2h0IiwiVG9vbHRpcCIsImVmZmVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2NvbW1vbi9kYXRhc2V0LWluZm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Zm9ybWF0fSBmcm9tICdkMy1mb3JtYXQnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtcbiAgRGF0YXNldFR5cGUsXG4gIERBVEFTRVRfUkVGUkVTSF9DVVNUT01fVkFMVUUsXG4gIERBVEFTRVRfUkVGUkVTSF9ERUZBVUxUX0NVU1RPTV9NUyxcbiAgREFUQVNFVF9SRUZSRVNIX0lOVEVSVkFMX09QVElPTlMsXG4gIERBVEFTRVRfUkVGUkVTSF9NSU5fSU5URVJWQUxfTVMsXG4gIGZvcm1hdEN1c3RvbVJlZnJlc2hTZWNvbmRzLFxuICBnZXREYXRhc2V0UmVmcmVzaEludGVydmFsTXMsXG4gIGlzUHJlc2V0RGF0YXNldFJlZnJlc2hJbnRlcnZhbCxcbiAgcGFyc2VDdXN0b21SZWZyZXNoSW50ZXJ2YWxNc1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1Zpc1N0YXRlQWN0aW9ucywgQWN0aW9uSGFuZGxlcn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7UmVzZXR9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgRGF0YXNldFJlZnJlc2hQcm9ncmVzc0ljb24gZnJvbSAnLi9kYXRhc2V0LXJlZnJlc2gtcHJvZ3Jlc3MnO1xuXG5jb25zdCBudW1Gb3JtYXQgPSBmb3JtYXQoJywnKTtcblxudHlwZSBNaW5pRGF0YXNldCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZTtcbiAgdHlwZT86IHN0cmluZztcbiAgbWV0YWRhdGE/OiB7XG4gICAgcmVmcmVzaEludGVydmFsTXM/OiBudW1iZXI7XG4gICAgcmVmcmVzaFN0YXR1cz86IHN0cmluZztcbiAgICByZWZyZXNoUHJvZ3Jlc3M/OiBudW1iZXI7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhc2V0SW5mb1Byb3BzID0ge1xuICBkYXRhc2V0OiBNaW5pRGF0YXNldDtcbiAgc2hvd1JlZnJlc2hTZXR0aW5ncz86IGJvb2xlYW47XG4gIHJlZnJlc2hEYXRhc2V0PzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnJlZnJlc2hEYXRhc2V0PjtcbiAgdXBkYXRlRGF0YXNldFByb3BzPzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZURhdGFzZXRQcm9wcz47XG59O1xuXG5jb25zdCBTdHlsZWREYXRhUm93Q291bnQgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gIHBhZGRpbmctbGVmdDogMTlweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbmA7XG5cbmNvbnN0IFN0eWxlZFJlZnJlc2hpbmcgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbmA7XG5cbmNvbnN0IFN0eWxlZFJlZnJlc2hTZXR0aW5ncyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuYDtcblxuY29uc3QgU3R5bGVkUmVmcmVzaExhYmVsID0gc3R5bGVkLmxhYmVsYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbjogMDtcbmA7XG5cbmNvbnN0IFN0eWxlZFJlZnJlc2hTZWxlY3QgPSBzdHlsZWQuc2VsZWN0YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0fTtcbiAgaGVpZ2h0OiAxOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiA5NnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuYDtcblxuY29uc3QgU3R5bGVkQ3VzdG9tU2Vjb25kcyA9IHN0eWxlZC5pbnB1dGBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dH07XG4gIGhlaWdodDogMThweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgd2lkdGg6IDUycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuYDtcblxuY29uc3QgU3R5bGVkQ3VzdG9tVW5pdCA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDExcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRSZWZyZXNoTm93ID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEYXRhc2V0SW5mb0ZhY3RvcnkoKSB7XG4gIGNvbnN0IERhdGFzZXRJbmZvOiBSZWFjdC5GQzxEYXRhc2V0SW5mb1Byb3BzPiA9ICh7XG4gICAgZGF0YXNldCxcbiAgICBzaG93UmVmcmVzaFNldHRpbmdzLFxuICAgIHJlZnJlc2hEYXRhc2V0LFxuICAgIHVwZGF0ZURhdGFzZXRQcm9wc1xuICB9KSA9PiB7XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgICBjb25zdCBpc1JlbW90ZSA9IGRhdGFzZXQudHlwZSA9PT0gRGF0YXNldFR5cGUuRVhURVJOQUxMWV9IT1NURUQ7XG4gICAgY29uc3QgaW50ZXJ2YWxNcyA9IGdldERhdGFzZXRSZWZyZXNoSW50ZXJ2YWxNcyhkYXRhc2V0Lm1ldGFkYXRhKTtcbiAgICBjb25zdCBtYXRjaGluZ09wdGlvbiA9IERBVEFTRVRfUkVGUkVTSF9JTlRFUlZBTF9PUFRJT05TLmZpbmQoXG4gICAgICBvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSBpbnRlcnZhbE1zXG4gICAgKTtcbiAgICBjb25zdCBpc0N1c3RvbUludGVydmFsID0gaW50ZXJ2YWxNcyA+IDAgJiYgIWlzUHJlc2V0RGF0YXNldFJlZnJlc2hJbnRlcnZhbChpbnRlcnZhbE1zKTtcbiAgICBjb25zdCBbY3VzdG9tTW9kZSwgc2V0Q3VzdG9tTW9kZV0gPSB1c2VTdGF0ZShpc0N1c3RvbUludGVydmFsKTtcbiAgICBjb25zdCBbY3VzdG9tU2Vjb25kcywgc2V0Q3VzdG9tU2Vjb25kc10gPSB1c2VTdGF0ZSgoKSA9PlxuICAgICAgZm9ybWF0Q3VzdG9tUmVmcmVzaFNlY29uZHMoaW50ZXJ2YWxNcyB8fCBEQVRBU0VUX1JFRlJFU0hfREVGQVVMVF9DVVNUT01fTVMpXG4gICAgKTtcbiAgICBjb25zdCBzaG93Q3VzdG9tSW5wdXQgPSBjdXN0b21Nb2RlIHx8IGlzQ3VzdG9tSW50ZXJ2YWw7XG4gICAgY29uc3Qgc2VsZWN0VmFsdWUgPSBzaG93Q3VzdG9tSW5wdXRcbiAgICAgID8gREFUQVNFVF9SRUZSRVNIX0NVU1RPTV9WQUxVRVxuICAgICAgOiBTdHJpbmcobWF0Y2hpbmdPcHRpb24gPyBtYXRjaGluZ09wdGlvbi52YWx1ZSA6IDApO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG1zID0gZ2V0RGF0YXNldFJlZnJlc2hJbnRlcnZhbE1zKGRhdGFzZXQubWV0YWRhdGEpO1xuICAgICAgY29uc3QgY3VzdG9tID0gbXMgPiAwICYmICFpc1ByZXNldERhdGFzZXRSZWZyZXNoSW50ZXJ2YWwobXMpO1xuICAgICAgc2V0Q3VzdG9tTW9kZShjdXN0b20pO1xuICAgICAgc2V0Q3VzdG9tU2Vjb25kcyhmb3JtYXRDdXN0b21SZWZyZXNoU2Vjb25kcyhtcyB8fCBEQVRBU0VUX1JFRlJFU0hfREVGQVVMVF9DVVNUT01fTVMpKTtcbiAgICB9LCBbZGF0YXNldC5pZCwgZGF0YXNldC5tZXRhZGF0YT8ucmVmcmVzaEludGVydmFsTXNdKTtcblxuICAgIGNvbnN0IHNwaW5uaW5nID0gZGF0YXNldC5tZXRhZGF0YT8ucmVmcmVzaFN0YXR1cyA9PT0gJ2xvYWRpbmcnO1xuICAgIGNvbnN0IHByb2dyZXNzID1cbiAgICAgIHR5cGVvZiBkYXRhc2V0Lm1ldGFkYXRhPy5yZWZyZXNoUHJvZ3Jlc3MgPT09ICdudW1iZXInXG4gICAgICAgID8gZGF0YXNldC5tZXRhZGF0YS5yZWZyZXNoUHJvZ3Jlc3NcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2hvd1BlcmNlbnQgPSBzcGlubmluZyAmJiB0eXBlb2YgcHJvZ3Jlc3MgPT09ICdudW1iZXInICYmIHByb2dyZXNzID4gMCAmJiBwcm9ncmVzcyA8IDEwMDtcbiAgICBjb25zdCBzaG93UmVmcmVzaENvbnRyb2xzID0gQm9vbGVhbihcbiAgICAgIHNob3dSZWZyZXNoU2V0dGluZ3MgJiYgaXNSZW1vdGUgJiYgKHJlZnJlc2hEYXRhc2V0IHx8IHVwZGF0ZURhdGFzZXRQcm9wcylcbiAgICApO1xuXG4gICAgY29uc3Qgb25SZWZyZXNoTm93ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICghc3Bpbm5pbmcpIHtcbiAgICAgICAgICByZWZyZXNoRGF0YXNldD8uKGRhdGFzZXQuaWQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2RhdGFzZXQuaWQsIHJlZnJlc2hEYXRhc2V0LCBzcGlubmluZ11cbiAgICApO1xuXG4gICAgY29uc3QgY29tbWl0Q3VzdG9tSW50ZXJ2YWwgPSB1c2VDYWxsYmFjayhcbiAgICAgIChzZWNvbmRzVGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRNcyA9IHBhcnNlQ3VzdG9tUmVmcmVzaEludGVydmFsTXMoc2Vjb25kc1RleHQpO1xuICAgICAgICBpZiAobmV4dE1zID09IG51bGwpIHtcbiAgICAgICAgICBzZXRDdXN0b21TZWNvbmRzKFxuICAgICAgICAgICAgZm9ybWF0Q3VzdG9tUmVmcmVzaFNlY29uZHMoaW50ZXJ2YWxNcyB8fCBEQVRBU0VUX1JFRlJFU0hfREVGQVVMVF9DVVNUT01fTVMpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q3VzdG9tU2Vjb25kcyhmb3JtYXRDdXN0b21SZWZyZXNoU2Vjb25kcyhuZXh0TXMpKTtcbiAgICAgICAgaWYgKG5leHRNcyAhPT0gaW50ZXJ2YWxNcykge1xuICAgICAgICAgIHVwZGF0ZURhdGFzZXRQcm9wcz8uKGRhdGFzZXQuaWQsIHttZXRhZGF0YToge3JlZnJlc2hJbnRlcnZhbE1zOiBuZXh0TXN9fSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZGF0YXNldC5pZCwgaW50ZXJ2YWxNcywgdXBkYXRlRGF0YXNldFByb3BzXVxuICAgICk7XG5cbiAgICBjb25zdCBvblJlZnJlc2hJbnRlcnZhbENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MU2VsZWN0RWxlbWVudD4pID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgPT09IERBVEFTRVRfUkVGUkVTSF9DVVNUT01fVkFMVUUpIHtcbiAgICAgICAgICBjb25zdCBzZWNvbmRzVGV4dCA9IGZvcm1hdEN1c3RvbVJlZnJlc2hTZWNvbmRzKFxuICAgICAgICAgICAgaW50ZXJ2YWxNcyB8fCBEQVRBU0VUX1JFRlJFU0hfREVGQVVMVF9DVVNUT01fTVNcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IG5leHRNcyA9IHBhcnNlQ3VzdG9tUmVmcmVzaEludGVydmFsTXMoc2Vjb25kc1RleHQpO1xuICAgICAgICAgIHNldEN1c3RvbU1vZGUodHJ1ZSk7XG4gICAgICAgICAgc2V0Q3VzdG9tU2Vjb25kcyhzZWNvbmRzVGV4dCk7XG4gICAgICAgICAgaWYgKCFpbnRlcnZhbE1zICYmIG5leHRNcyAhPSBudWxsKSB7XG4gICAgICAgICAgICB1cGRhdGVEYXRhc2V0UHJvcHM/LihkYXRhc2V0LmlkLCB7XG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7cmVmcmVzaEludGVydmFsTXM6IG5leHRNc31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q3VzdG9tTW9kZShmYWxzZSk7XG4gICAgICAgIHVwZGF0ZURhdGFzZXRQcm9wcz8uKGRhdGFzZXQuaWQsIHtcbiAgICAgICAgICBtZXRhZGF0YToge3JlZnJlc2hJbnRlcnZhbE1zOiBOdW1iZXIodmFsdWUpIHx8IDB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtkYXRhc2V0LmlkLCBpbnRlcnZhbE1zLCB1cGRhdGVEYXRhc2V0UHJvcHNdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRGF0YVJvd0NvdW50IGNsYXNzTmFtZT1cInNvdXJjZS1kYXRhLXJvd3NcIiBhcmlhLWJ1c3k9e3NwaW5uaW5nfT5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICBpZD17XG4gICAgICAgICAgICBkYXRhc2V0LnR5cGUgPT09IERhdGFzZXRUeXBlLlZFQ1RPUl9USUxFXG4gICAgICAgICAgICAgID8gJ2RhdGFzZXRJbmZvLnZlY3RvclRpbGUnXG4gICAgICAgICAgICAgIDogZGF0YXNldC50eXBlID09PSBEYXRhc2V0VHlwZS5SQVNURVJfVElMRVxuICAgICAgICAgICAgICA/ICdkYXRhc2V0SW5mby5yYXN0ZXJUaWxlJ1xuICAgICAgICAgICAgICA6IGRhdGFzZXQudHlwZSA9PT0gRGF0YXNldFR5cGUuV01TX1RJTEVcbiAgICAgICAgICAgICAgPyAnZGF0YXNldEluZm8ud21zVGlsZSdcbiAgICAgICAgICAgICAgOiBkYXRhc2V0LnR5cGUgPT09IERhdGFzZXRUeXBlLlRJTEVfM0RcbiAgICAgICAgICAgICAgPyAnZGF0YXNldEluZm8udGlsZTNkJ1xuICAgICAgICAgICAgICA6IGRhdGFzZXQudHlwZSA9PT0gRGF0YXNldFR5cGUuQklUTUFQXG4gICAgICAgICAgICAgID8gJ2RhdGFzZXRJbmZvLmJpdG1hcCdcbiAgICAgICAgICAgICAgOiBpc1JlbW90ZVxuICAgICAgICAgICAgICA/ICdkYXRhc2V0SW5mby5yZW1vdGVGaWxlJ1xuICAgICAgICAgICAgICA6ICdkYXRhc2V0SW5mby5yb3dDb3VudCdcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWVzPXt7cm93Q291bnQ6IG51bUZvcm1hdChkYXRhc2V0LmRhdGFDb250YWluZXIubnVtUm93cygpKX19XG4gICAgICAgIC8+XG4gICAgICAgIHtzcGlubmluZyA/IChcbiAgICAgICAgICA8U3R5bGVkUmVmcmVzaGluZyBjbGFzc05hbWU9XCJkYXRhc2V0LXJlZnJlc2gtc3RhdHVzXCI+XG4gICAgICAgICAgICA8RGF0YXNldFJlZnJlc2hQcm9ncmVzc0ljb24gcGVyY2VudD17cHJvZ3Jlc3N9IHNpemU9ezEyfSAvPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgaWQ9e3Nob3dQZXJjZW50ID8gJ2RhdGFzZXRJbmZvLnJlZnJlc2hpbmdQZXJjZW50JyA6ICdkYXRhc2V0SW5mby5yZWZyZXNoaW5nJ31cbiAgICAgICAgICAgICAgdmFsdWVzPXt7cGVyY2VudDogTWF0aC5yb3VuZChwcm9ncmVzcyA/PyAwKX19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3R5bGVkUmVmcmVzaGluZz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtzaG93UmVmcmVzaENvbnRyb2xzID8gKFxuICAgICAgICAgIDxTdHlsZWRSZWZyZXNoU2V0dGluZ3NcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGFzZXQtcmVmcmVzaC1zZXR0aW5nc1wiXG4gICAgICAgICAgICBvbkNsaWNrPXtldmVudCA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dXBkYXRlRGF0YXNldFByb3BzID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkUmVmcmVzaExhYmVsPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiZGF0YXNldEluZm8ucmVmcmVzaEludGVydmFsXCIgLz5cbiAgICAgICAgICAgICAgICA8U3R5bGVkUmVmcmVzaFNlbGVjdFxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2RhdGFzZXRJbmZvLnJlZnJlc2hJbnRlcnZhbCd9KX1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblJlZnJlc2hJbnRlcnZhbENoYW5nZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7REFUQVNFVF9SRUZSRVNIX0lOVEVSVkFMX09QVElPTlMubWFwKG9wdGlvbiA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtvcHRpb24udmFsdWV9IHZhbHVlPXtTdHJpbmcob3B0aW9uLnZhbHVlKX0+XG4gICAgICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IG9wdGlvbi5sYWJlbElkfSl9XG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXtEQVRBU0VUX1JFRlJFU0hfQ1VTVE9NX1ZBTFVFfT5cbiAgICAgICAgICAgICAgICAgICAge2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdkYXRhc2V0VGl0bGUucmVmcmVzaEN1c3RvbSd9KX1cbiAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkUmVmcmVzaFNlbGVjdD5cbiAgICAgICAgICAgICAgICB7c2hvd0N1c3RvbUlucHV0ID8gKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZEN1c3RvbVNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBtaW49e0RBVEFTRVRfUkVGUkVTSF9NSU5fSU5URVJWQUxfTVMgLyAxMDAwfVxuICAgICAgICAgICAgICAgICAgICAgIHN0ZXA9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICBpbnB1dE1vZGU9XCJkZWNpbWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhc2V0LXJlZnJlc2gtY3VzdG9tLXNlY29uZHNcIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdkYXRhc2V0SW5mby5yZWZyZXNoQ3VzdG9tU2Vjb25kcyd9KX1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y3VzdG9tU2Vjb25kc31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDdXN0b21TZWNvbmRzKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2V2ZW50ID0+IGNvbW1pdEN1c3RvbUludGVydmFsKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0Q3VzdG9tSW50ZXJ2YWwoY3VzdG9tU2Vjb25kcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDdXN0b21Vbml0PnM8L1N0eWxlZEN1c3RvbVVuaXQ+XG4gICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRSZWZyZXNoTGFiZWw+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtyZWZyZXNoRGF0YXNldCA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZFJlZnJlc2hOb3dcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhc2V0LXJlZnJlc2gtbm93XCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZGF0YXNldFRpdGxlLnJlZnJlc2hEYXRhc2V0J30pfVxuICAgICAgICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgICAgICAgZGF0YS1mb3I9e2ByZWZyZXNoLW5vdy0ke2RhdGFzZXQuaWR9YH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17c3Bpbm5pbmd9XG4gICAgICAgICAgICAgICAgb25DbGljaz17b25SZWZyZXNoTm93fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlc2V0IGhlaWdodD1cIjE0cHhcIiAvPlxuICAgICAgICAgICAgICAgIDxUb29sdGlwIGlkPXtgcmVmcmVzaC1ub3ctJHtkYXRhc2V0LmlkfWB9IGVmZmVjdD1cInNvbGlkXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydkYXRhc2V0VGl0bGUucmVmcmVzaERhdGFzZXQnfSAvPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgPC9TdHlsZWRSZWZyZXNoTm93PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdHlsZWRSZWZyZXNoU2V0dGluZ3M+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWREYXRhUm93Q291bnQ+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
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = DatasetRefreshProgressIcon;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
12
|
+
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
13
|
+
// Copyright contributors to the kepler.gl project
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
|
+
var spin = (0, _styledComponents.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n to {\n transform: rotate(360deg);\n }\n"])));
|
|
16
|
+
var StyledProgress = _styledComponents["default"].svg(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n flex-shrink: 0;\n ", "\n"])), function (props) {
|
|
17
|
+
return props.$indeterminate && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n animation: ", " 0.8s linear infinite;\n "])), spin);
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Circular refresh indicator: spinning arc while size is unknown, filling ring
|
|
21
|
+
* when Content-Length is available.
|
|
22
|
+
*/
|
|
23
|
+
function DatasetRefreshProgressIcon(_ref) {
|
|
24
|
+
var percent = _ref.percent,
|
|
25
|
+
_ref$size = _ref.size,
|
|
26
|
+
size = _ref$size === void 0 ? 14 : _ref$size;
|
|
27
|
+
var strokeWidth = 2;
|
|
28
|
+
var radius = (size - strokeWidth) / 2;
|
|
29
|
+
var circumference = 2 * Math.PI * radius;
|
|
30
|
+
var determinate = typeof percent === 'number' && percent > 0;
|
|
31
|
+
var clamped = determinate ? Math.max(0, Math.min(100, percent)) : 0;
|
|
32
|
+
var dashOffset = determinate ? circumference * (1 - clamped / 100) : circumference * 0.75;
|
|
33
|
+
return /*#__PURE__*/_react["default"].createElement(StyledProgress, {
|
|
34
|
+
$indeterminate: !determinate,
|
|
35
|
+
width: size,
|
|
36
|
+
height: size,
|
|
37
|
+
viewBox: "0 0 ".concat(size, " ").concat(size),
|
|
38
|
+
role: "progressbar",
|
|
39
|
+
"aria-valuemin": 0,
|
|
40
|
+
"aria-valuemax": 100,
|
|
41
|
+
"aria-valuenow": determinate ? Math.round(clamped) : undefined
|
|
42
|
+
}, /*#__PURE__*/_react["default"].createElement("circle", {
|
|
43
|
+
cx: size / 2,
|
|
44
|
+
cy: size / 2,
|
|
45
|
+
r: radius,
|
|
46
|
+
fill: "none",
|
|
47
|
+
stroke: "currentColor",
|
|
48
|
+
strokeWidth: strokeWidth,
|
|
49
|
+
opacity: 0.25
|
|
50
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", {
|
|
51
|
+
cx: size / 2,
|
|
52
|
+
cy: size / 2,
|
|
53
|
+
r: radius,
|
|
54
|
+
fill: "none",
|
|
55
|
+
stroke: "currentColor",
|
|
56
|
+
strokeWidth: strokeWidth,
|
|
57
|
+
strokeLinecap: "round",
|
|
58
|
+
strokeDasharray: circumference,
|
|
59
|
+
strokeDashoffset: dashOffset,
|
|
60
|
+
transform: "rotate(-90 ".concat(size / 2, " ").concat(size / 2, ")")
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwic3BpbiIsImtleWZyYW1lcyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkUHJvZ3Jlc3MiLCJzdHlsZWQiLCJzdmciLCJwcm9wcyIsIiRpbmRldGVybWluYXRlIiwiY3NzIiwiRGF0YXNldFJlZnJlc2hQcm9ncmVzc0ljb24iLCJfcmVmIiwicGVyY2VudCIsIl9yZWYkc2l6ZSIsInNpemUiLCJzdHJva2VXaWR0aCIsInJhZGl1cyIsImNpcmN1bWZlcmVuY2UiLCJNYXRoIiwiUEkiLCJkZXRlcm1pbmF0ZSIsImNsYW1wZWQiLCJtYXgiLCJtaW4iLCJkYXNoT2Zmc2V0IiwiY3JlYXRlRWxlbWVudCIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImNvbmNhdCIsInJvbGUiLCJyb3VuZCIsInVuZGVmaW5lZCIsImN4IiwiY3kiLCJmaWxsIiwic3Ryb2tlIiwib3BhY2l0eSIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0IiwidHJhbnNmb3JtIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvY29tbW9uL2RhdGFzZXQtcmVmcmVzaC1wcm9ncmVzcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHtjc3MsIGtleWZyYW1lc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5jb25zdCBzcGluID0ga2V5ZnJhbWVzYFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkUHJvZ3Jlc3MgPSBzdHlsZWQuc3ZnPHskaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW59PmBcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICAke3Byb3BzID0+XG4gICAgcHJvcHMuJGluZGV0ZXJtaW5hdGUgJiZcbiAgICBjc3NgXG4gICAgICBhbmltYXRpb246ICR7c3Bpbn0gMC44cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgYH1cbmA7XG5cbmV4cG9ydCB0eXBlIERhdGFzZXRSZWZyZXNoUHJvZ3Jlc3NJY29uUHJvcHMgPSB7XG4gIC8qKiBEb3dubG9hZCBwcm9ncmVzcyBmcm9tIDDigJMxMDAuIE9taXQgb3IgMCBmb3IgYW4gaW5kZXRlcm1pbmF0ZSBzcGlubmVyLiAqL1xuICBwZXJjZW50PzogbnVtYmVyO1xuICBzaXplPzogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBDaXJjdWxhciByZWZyZXNoIGluZGljYXRvcjogc3Bpbm5pbmcgYXJjIHdoaWxlIHNpemUgaXMgdW5rbm93biwgZmlsbGluZyByaW5nXG4gKiB3aGVuIENvbnRlbnQtTGVuZ3RoIGlzIGF2YWlsYWJsZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGF0YXNldFJlZnJlc2hQcm9ncmVzc0ljb24oe1xuICBwZXJjZW50LFxuICBzaXplID0gMTRcbn06IERhdGFzZXRSZWZyZXNoUHJvZ3Jlc3NJY29uUHJvcHMpIHtcbiAgY29uc3Qgc3Ryb2tlV2lkdGggPSAyO1xuICBjb25zdCByYWRpdXMgPSAoc2l6ZSAtIHN0cm9rZVdpZHRoKSAvIDI7XG4gIGNvbnN0IGNpcmN1bWZlcmVuY2UgPSAyICogTWF0aC5QSSAqIHJhZGl1cztcbiAgY29uc3QgZGV0ZXJtaW5hdGUgPSB0eXBlb2YgcGVyY2VudCA9PT0gJ251bWJlcicgJiYgcGVyY2VudCA+IDA7XG4gIGNvbnN0IGNsYW1wZWQgPSBkZXRlcm1pbmF0ZSA/IE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgcGVyY2VudCkpIDogMDtcbiAgY29uc3QgZGFzaE9mZnNldCA9IGRldGVybWluYXRlID8gY2lyY3VtZmVyZW5jZSAqICgxIC0gY2xhbXBlZCAvIDEwMCkgOiBjaXJjdW1mZXJlbmNlICogMC43NTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRQcm9ncmVzc1xuICAgICAgJGluZGV0ZXJtaW5hdGU9eyFkZXRlcm1pbmF0ZX1cbiAgICAgIHdpZHRoPXtzaXplfVxuICAgICAgaGVpZ2h0PXtzaXplfVxuICAgICAgdmlld0JveD17YDAgMCAke3NpemV9ICR7c2l6ZX1gfVxuICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgIGFyaWEtdmFsdWVtaW49ezB9XG4gICAgICBhcmlhLXZhbHVlbWF4PXsxMDB9XG4gICAgICBhcmlhLXZhbHVlbm93PXtkZXRlcm1pbmF0ZSA/IE1hdGgucm91bmQoY2xhbXBlZCkgOiB1bmRlZmluZWR9XG4gICAgPlxuICAgICAgPGNpcmNsZVxuICAgICAgICBjeD17c2l6ZSAvIDJ9XG4gICAgICAgIGN5PXtzaXplIC8gMn1cbiAgICAgICAgcj17cmFkaXVzfVxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZVdpZHRoPXtzdHJva2VXaWR0aH1cbiAgICAgICAgb3BhY2l0eT17MC4yNX1cbiAgICAgIC8+XG4gICAgICA8Y2lyY2xlXG4gICAgICAgIGN4PXtzaXplIC8gMn1cbiAgICAgICAgY3k9e3NpemUgLyAyfVxuICAgICAgICByPXtyYWRpdXN9XG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlV2lkdGg9e3N0cm9rZVdpZHRofVxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VEYXNoYXJyYXk9e2NpcmN1bWZlcmVuY2V9XG4gICAgICAgIHN0cm9rZURhc2hvZmZzZXQ9e2Rhc2hPZmZzZXR9XG4gICAgICAgIHRyYW5zZm9ybT17YHJvdGF0ZSgtOTAgJHtzaXplIC8gMn0gJHtzaXplIC8gMn0pYH1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRQcm9ncmVzcz5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUF5RCxJQUFBRyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBSnpEO0FBQ0E7QUFBQSxTQUFBSCx3QkFBQUksQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQU4sdUJBQUEsWUFBQUEsd0JBQUFJLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FB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
|
|
@@ -10,15 +10,17 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
var _reactIntl = require("react-intl");
|
|
13
14
|
var _localization = require("@kepler.gl/localization");
|
|
14
15
|
var _layers = require("@kepler.gl/layers");
|
|
15
16
|
var _styledComponents2 = require("../../common/styled-components");
|
|
16
17
|
var _icons = require("../../common/icons");
|
|
18
|
+
var _constants = require("@kepler.gl/constants");
|
|
17
19
|
var _datasetTag = _interopRequireDefault(require("./dataset-tag"));
|
|
18
20
|
var _customPicker = _interopRequireDefault(require("../layer-panel/custom-picker"));
|
|
19
21
|
var _ = require("../..");
|
|
20
22
|
var _utils = require("@kepler.gl/utils");
|
|
21
|
-
var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
|
|
23
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
22
24
|
// Copyright contributors to the kepler.gl project
|
|
23
25
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
24
26
|
var StyledDatasetTitle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n display: flex;\n align-items: center;\n\n .source-data-arrow {\n height: 16px;\n }\n &:hover {\n cursor: ", ";\n\n .dataset-name {\n color: ", ";\n }\n\n .dataset-action {\n color: ", ";\n opacity: 1;\n }\n\n .dataset-action:hover {\n color: ", ";\n }\n }\n"])), function (props) {
|
|
@@ -33,6 +35,10 @@ var StyledDatasetTitle = _styledComponents["default"].div(_templateObject || (_t
|
|
|
33
35
|
return props.theme.textColorHl;
|
|
34
36
|
});
|
|
35
37
|
var DataTagAction = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n height: 16px;\n opacity: 0;\n"])));
|
|
38
|
+
var DataTagActionButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 12px;\n width: 16px;\n height: 16px;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n cursor: pointer;\n opacity: 0;\n\n &:focus-visible {\n opacity: 1;\n outline: 1px solid ", ";\n outline-offset: 1px;\n }\n"])), function (props) {
|
|
39
|
+
return props.theme.textColorHl;
|
|
40
|
+
});
|
|
41
|
+
var StyledRefreshError = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n margin-left: 8px;\n height: 16px;\n flex-shrink: 0;\n"])));
|
|
36
42
|
var ShowDataTable = function ShowDataTable(_ref) {
|
|
37
43
|
var id = _ref.id,
|
|
38
44
|
showDatasetTable = _ref.showDatasetTable;
|
|
@@ -53,9 +59,34 @@ var ShowDataTable = function ShowDataTable(_ref) {
|
|
|
53
59
|
id: 'datasetTitle.showDataTable'
|
|
54
60
|
}))));
|
|
55
61
|
};
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
|
|
62
|
+
var RefreshDatasetSettings = function RefreshDatasetSettings(_ref2) {
|
|
63
|
+
var id = _ref2.id,
|
|
64
|
+
onToggle = _ref2.onToggle;
|
|
65
|
+
var intl = (0, _reactIntl.useIntl)();
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(DataTagActionButton, {
|
|
67
|
+
type: "button",
|
|
68
|
+
className: "dataset-action refresh-dataset-settings",
|
|
69
|
+
"data-tip": true,
|
|
70
|
+
"data-for": "refresh-settings-".concat(id),
|
|
71
|
+
"aria-label": intl.formatMessage({
|
|
72
|
+
id: 'datasetTitle.refreshSettings'
|
|
73
|
+
}),
|
|
74
|
+
onClick: function onClick(e) {
|
|
75
|
+
e.stopPropagation();
|
|
76
|
+
onToggle === null || onToggle === void 0 || onToggle();
|
|
77
|
+
}
|
|
78
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.Clock, {
|
|
79
|
+
height: "16px"
|
|
80
|
+
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
81
|
+
id: "refresh-settings-".concat(id),
|
|
82
|
+
effect: "solid"
|
|
83
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
84
|
+
id: 'datasetTitle.refreshSettings'
|
|
85
|
+
}))));
|
|
86
|
+
};
|
|
87
|
+
var RemoveDataset = function RemoveDataset(_ref3) {
|
|
88
|
+
var datasetKey = _ref3.datasetKey,
|
|
89
|
+
removeDataset = _ref3.removeDataset;
|
|
59
90
|
return /*#__PURE__*/_react["default"].createElement(DataTagAction, {
|
|
60
91
|
className: "dataset-action remove-dataset",
|
|
61
92
|
"data-tip": true,
|
|
@@ -74,15 +105,39 @@ var RemoveDataset = function RemoveDataset(_ref2) {
|
|
|
74
105
|
id: 'datasetTitle.removeDataset'
|
|
75
106
|
}))));
|
|
76
107
|
};
|
|
108
|
+
var RefreshErrorIcon = function RefreshErrorIcon(_ref4) {
|
|
109
|
+
var id = _ref4.id,
|
|
110
|
+
message = _ref4.message;
|
|
111
|
+
return /*#__PURE__*/_react["default"].createElement(StyledRefreshError, {
|
|
112
|
+
className: "dataset-refresh-error",
|
|
113
|
+
"data-tip": true,
|
|
114
|
+
"data-for": "refresh-error-".concat(id),
|
|
115
|
+
onClick: function onClick(e) {
|
|
116
|
+
return e.stopPropagation();
|
|
117
|
+
},
|
|
118
|
+
role: "img",
|
|
119
|
+
"aria-label": message
|
|
120
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.WarningSign, {
|
|
121
|
+
height: "14px"
|
|
122
|
+
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.Tooltip, {
|
|
123
|
+
id: "refresh-error-".concat(id),
|
|
124
|
+
type: "error",
|
|
125
|
+
effect: "solid"
|
|
126
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
127
|
+
id: "datasetTitle.refreshFailed"
|
|
128
|
+
}), ': ', message)));
|
|
129
|
+
};
|
|
77
130
|
DatasetTitleFactory.deps = [_datasetTag["default"]];
|
|
78
131
|
function DatasetTitleFactory(DatasetTag) {
|
|
79
|
-
var DatasetTitle = function DatasetTitle(
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
132
|
+
var DatasetTitle = function DatasetTitle(_ref5) {
|
|
133
|
+
var _dataset$metadata;
|
|
134
|
+
var showDatasetTable = _ref5.showDatasetTable,
|
|
135
|
+
showDeleteDataset = _ref5.showDeleteDataset,
|
|
136
|
+
onTitleClick = _ref5.onTitleClick,
|
|
137
|
+
removeDataset = _ref5.removeDataset,
|
|
138
|
+
dataset = _ref5.dataset,
|
|
139
|
+
updateTableColor = _ref5.updateTableColor,
|
|
140
|
+
onToggleRefreshSettings = _ref5.onToggleRefreshSettings;
|
|
86
141
|
var _useState = (0, _react.useState)(false),
|
|
87
142
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
88
143
|
displayColorPicker = _useState2[0],
|
|
@@ -107,6 +162,8 @@ function DatasetTitleFactory(DatasetTag) {
|
|
|
107
162
|
showDatasetTable(datasetId);
|
|
108
163
|
}
|
|
109
164
|
}, [onTitleClick, showDatasetTable, datasetId, dataset.disableDataOperation]);
|
|
165
|
+
var isRemote = dataset.type === _constants.DatasetType.EXTERNALLY_HOSTED;
|
|
166
|
+
var refreshError = (_dataset$metadata = dataset.metadata) === null || _dataset$metadata === void 0 ? void 0 : _dataset$metadata.refreshError;
|
|
110
167
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
168
|
className: "custom-palette-panel",
|
|
112
169
|
ref: root
|
|
@@ -130,9 +187,15 @@ function DatasetTitleFactory(DatasetTag) {
|
|
|
130
187
|
className: "source-data-arrow"
|
|
131
188
|
}, /*#__PURE__*/_react["default"].createElement(_icons.ArrowRight, {
|
|
132
189
|
height: "12px"
|
|
133
|
-
})) : null,
|
|
190
|
+
})) : null, refreshError ? /*#__PURE__*/_react["default"].createElement(RefreshErrorIcon, {
|
|
191
|
+
id: datasetId,
|
|
192
|
+
message: refreshError
|
|
193
|
+
}) : null, showDatasetTable && !dataset.disableDataOperation ? /*#__PURE__*/_react["default"].createElement(ShowDataTable, {
|
|
134
194
|
id: datasetId,
|
|
135
195
|
showDatasetTable: showDatasetTable
|
|
196
|
+
}) : null, onToggleRefreshSettings && isRemote ? /*#__PURE__*/_react["default"].createElement(RefreshDatasetSettings, {
|
|
197
|
+
id: datasetId,
|
|
198
|
+
onToggle: onToggleRefreshSettings
|
|
136
199
|
}) : null, showDeleteDataset ? /*#__PURE__*/_react["default"].createElement(RemoveDataset, {
|
|
137
200
|
datasetKey: datasetId,
|
|
138
201
|
removeDataset: removeDataset
|
|
@@ -140,4 +203,4 @@ function DatasetTitleFactory(DatasetTag) {
|
|
|
140
203
|
};
|
|
141
204
|
return DatasetTitle;
|
|
142
205
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX2xheWVycyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl9kYXRhc2V0VGFnIiwiX2N1c3RvbVBpY2tlciIsIl8iLCJfdXRpbHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJTdHlsZWREYXRhc2V0VGl0bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCIkY2xpY2thYmxlIiwidGV4dENvbG9ySGwiLCJEYXRhVGFnQWN0aW9uIiwiU2hvd0RhdGFUYWJsZSIsIl9yZWYiLCJpZCIsInNob3dEYXRhc2V0VGFibGUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiY29uY2F0IiwiVGFibGUiLCJoZWlnaHQiLCJvbkNsaWNrIiwic3RvcFByb3BhZ2F0aW9uIiwiVG9vbHRpcCIsImVmZmVjdCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJSZW1vdmVEYXRhc2V0IiwiX3JlZjIiLCJkYXRhc2V0S2V5IiwicmVtb3ZlRGF0YXNldCIsIlRyYXNoIiwidHlwZSIsIkRhdGFzZXRUaXRsZUZhY3RvcnkiLCJkZXBzIiwiRGF0YXNldFRhZ0ZhY3RvcnkiLCJEYXRhc2V0VGFnIiwiRGF0YXNldFRpdGxlIiwiX3JlZjMiLCJzaG93RGVsZXRlRGF0YXNldCIsIm9uVGl0bGVDbGljayIsImRhdGFzZXQiLCJ1cGRhdGVUYWJsZUNvbG9yIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZGlzcGxheUNvbG9yUGlja2VyIiwic2V0RGlzcGxheUNvbG9yUGlja2VyIiwicm9vdCIsInVzZVJlZiIsImRhdGFzZXRJZCIsIl9oYW5kbGVDbGljayIsInVzZUNhbGxiYWNrIiwiX2hhbmRsZUNsb3NlUGlja2VyIiwiX2hhbmRsZUN1c3RvbVBpY2tlciIsImNvbG9yIiwicmdiIiwiZyIsImIiLCJfb25DbGlja1RpdGxlIiwiZGlzYWJsZURhdGFPcGVyYXRpb24iLCJyZWYiLCJCb29sZWFuIiwib25DbGlja1NxdWFyZSIsIlBvcnRhbGVkIiwiaXNPcGVuZWQiLCJsZWZ0IiwidG9wIiwib25DbG9zZSIsInJnYlRvSGV4Iiwib25DaGFuZ2UiLCJDZW50ZXJGbGV4Ym94IiwiQXJyb3dSaWdodCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2NvbW1vbi9kYXRhc2V0LXRpdGxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IHtUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94LCBUb29sdGlwfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtBcnJvd1JpZ2h0LCBUcmFzaH0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBEYXRhc2V0VGFnRmFjdG9yeSBmcm9tICcuL2RhdGFzZXQtdGFnJztcbmltcG9ydCBDdXN0b21QaWNrZXIgZnJvbSAnLi4vbGF5ZXItcGFuZWwvY3VzdG9tLXBpY2tlcic7XG5pbXBvcnQge1BvcnRhbGVkfSBmcm9tICcuLi8uLic7XG5pbXBvcnQge3JnYlRvSGV4fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7b3BlbkRlbGV0ZU1vZGFsLCBWaXNTdGF0ZUFjdGlvbnMsIEFjdGlvbkhhbmRsZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1JHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkRGF0YXNldFRpdGxlUHJvcHMsIFJlbW92ZURhdGFzZXRQcm9wcywgU2hvd0RhdGFUYWJsZVByb3BzfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgU3R5bGVkRGF0YXNldFRpdGxlID0gc3R5bGVkLmRpdjxTdHlsZWREYXRhc2V0VGl0bGVQcm9wcz5gXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLnNvdXJjZS1kYXRhLWFycm93IHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy4kY2xpY2thYmxlID8gJ3BvaW50ZXInIDogJ2F1dG8nKX07XG5cbiAgICAuZGF0YXNldC1uYW1lIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kY2xpY2thYmxlID8gcHJvcHMudGhlbWUudGV4dENvbG9ySGwgOiBwcm9wcy50aGVtZS50ZXh0Q29sb3IpfTtcbiAgICB9XG5cbiAgICAuZGF0YXNldC1hY3Rpb24ge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLmRhdGFzZXQtYWN0aW9uOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IERhdGFUYWdBY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tbGVmdDogMTJweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBvcGFjaXR5OiAwO1xuYDtcblxudHlwZSBNaW5pRGF0YXNldCA9IHtcbiAgaWQ6IHN0cmluZztcbiAgY29sb3I6IFJHQkNvbG9yO1xuICBsYWJlbD86IHN0cmluZztcbiAgZGlzYWJsZURhdGFPcGVyYXRpb24/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YXNldFRpdGxlUHJvcHMgPSB7XG4gIGRhdGFzZXQ6IE1pbmlEYXRhc2V0O1xuICBzaG93RGVsZXRlRGF0YXNldDogYm9vbGVhbjtcbiAgb25UaXRsZUNsaWNrPzogKCkgPT4gdm9pZDtcbiAgc2hvd0RhdGFzZXRUYWJsZT86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlPjtcbiAgdXBkYXRlVGFibGVDb2xvcjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVRhYmxlQ29sb3I+O1xuICByZW1vdmVEYXRhc2V0PzogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygb3BlbkRlbGV0ZU1vZGFsPjtcbn07XG5cbmNvbnN0IFNob3dEYXRhVGFibGUgPSAoe2lkLCBzaG93RGF0YXNldFRhYmxlfTogU2hvd0RhdGFUYWJsZVByb3BzKSA9PiAoXG4gIDxEYXRhVGFnQWN0aW9uIGNsYXNzTmFtZT1cImRhdGFzZXQtYWN0aW9uIHNob3ctZGF0YS10YWJsZVwiIGRhdGEtdGlwIGRhdGEtZm9yPXtgZGF0YS10YWJsZS0ke2lkfWB9PlxuICAgIDxUYWJsZVxuICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT8uKGlkKTtcbiAgICAgIH19XG4gICAgLz5cbiAgICA8VG9vbHRpcCBpZD17YGRhdGEtdGFibGUtJHtpZH1gfSBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnZGF0YXNldFRpdGxlLnNob3dEYXRhVGFibGUnfSAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvVG9vbHRpcD5cbiAgPC9EYXRhVGFnQWN0aW9uPlxuKTtcblxuY29uc3QgUmVtb3ZlRGF0YXNldCA9ICh7ZGF0YXNldEtleSwgcmVtb3ZlRGF0YXNldH06IFJlbW92ZURhdGFzZXRQcm9wcykgPT4gKFxuICA8RGF0YVRhZ0FjdGlvblxuICAgIGNsYXNzTmFtZT1cImRhdGFzZXQtYWN0aW9uIHJlbW92ZS1kYXRhc2V0XCJcbiAgICBkYXRhLXRpcFxuICAgIGRhdGEtZm9yPXtgZGVsZXRlLSR7ZGF0YXNldEtleX1gfVxuICA+XG4gICAgPFRyYXNoXG4gICAgICBoZWlnaHQ9XCIxNnB4XCJcbiAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZW1vdmVEYXRhc2V0Py4oZGF0YXNldEtleSk7XG4gICAgICB9fVxuICAgIC8+XG4gICAgPFRvb2x0aXAgaWQ9e2BkZWxldGUtJHtkYXRhc2V0S2V5fWB9IGVmZmVjdD1cInNvbGlkXCIgdHlwZT1cImVycm9yXCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydkYXRhc2V0VGl0bGUucmVtb3ZlRGF0YXNldCd9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9Ub29sdGlwPlxuICA8L0RhdGFUYWdBY3Rpb24+XG4pO1xuXG5EYXRhc2V0VGl0bGVGYWN0b3J5LmRlcHMgPSBbRGF0YXNldFRhZ0ZhY3RvcnldO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEYXRhc2V0VGl0bGVGYWN0b3J5KFxuICBEYXRhc2V0VGFnOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhc2V0VGFnRmFjdG9yeT5cbik6IFJlYWN0LkZDPERhdGFzZXRUaXRsZVByb3BzPiB7XG4gIGNvbnN0IERhdGFzZXRUaXRsZTogUmVhY3QuRkM8RGF0YXNldFRpdGxlUHJvcHM+ID0gKHtcbiAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgIHNob3dEZWxldGVEYXRhc2V0LFxuICAgIG9uVGl0bGVDbGljayxcbiAgICByZW1vdmVEYXRhc2V0LFxuICAgIGRhdGFzZXQsXG4gICAgdXBkYXRlVGFibGVDb2xvclxuICB9KSA9PiB7XG4gICAgY29uc3QgW2Rpc3BsYXlDb2xvclBpY2tlciwgc2V0RGlzcGxheUNvbG9yUGlja2VyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCByb290ID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGRhdGFzZXRJZCA9IGRhdGFzZXQuaWQ7XG4gICAgY29uc3QgX2hhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0RGlzcGxheUNvbG9yUGlja2VyKCFkaXNwbGF5Q29sb3JQaWNrZXIpO1xuICAgIH0sIFtzZXREaXNwbGF5Q29sb3JQaWNrZXIsIGRpc3BsYXlDb2xvclBpY2tlcl0pO1xuXG4gICAgY29uc3QgX2hhbmRsZUNsb3NlUGlja2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0RGlzcGxheUNvbG9yUGlja2VyKGZhbHNlKTtcbiAgICB9LCBbc2V0RGlzcGxheUNvbG9yUGlja2VyXSk7XG4gICAgY29uc3QgX2hhbmRsZUN1c3RvbVBpY2tlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGNvbG9yOiB7cmdiOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+fSkgPT4ge1xuICAgICAgICB1cGRhdGVUYWJsZUNvbG9yKGRhdGFzZXRJZCwgW2NvbG9yLnJnYi5yLCBjb2xvci5yZ2IuZywgY29sb3IucmdiLmJdKTtcbiAgICAgIH0sXG4gICAgICBbdXBkYXRlVGFibGVDb2xvciwgZGF0YXNldElkXVxuICAgICk7XG5cbiAgICBjb25zdCBfb25DbGlja1RpdGxlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvblRpdGxlQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvblRpdGxlQ2xpY2soKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2hvd0RhdGFzZXRUYWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGlmIChkYXRhc2V0LmRpc2FibGVEYXRhT3BlcmF0aW9uKSByZXR1cm47XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZShkYXRhc2V0SWQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW29uVGl0bGVDbGljaywgc2hvd0RhdGFzZXRUYWJsZSwgZGF0YXNldElkLCBkYXRhc2V0LmRpc2FibGVEYXRhT3BlcmF0aW9uXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1wYW5lbFwiIHJlZj17cm9vdH0+XG4gICAgICAgIDxTdHlsZWREYXRhc2V0VGl0bGVcbiAgICAgICAgICBjbGFzc05hbWU9XCJzb3VyY2UtZGF0YS10aXRsZVwiXG4gICAgICAgICAgJGNsaWNrYWJsZT17Qm9vbGVhbihzaG93RGF0YXNldFRhYmxlIHx8IG9uVGl0bGVDbGljayl9XG4gICAgICAgID5cbiAgICAgICAgICA8RGF0YXNldFRhZ1xuICAgICAgICAgICAgZGF0YXNldD17ZGF0YXNldH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e19vbkNsaWNrVGl0bGV9XG4gICAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgICAgb25DbGlja1NxdWFyZT17X2hhbmRsZUNsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFBvcnRhbGVkXG4gICAgICAgICAgICBpc09wZW5lZD17ZGlzcGxheUNvbG9yUGlja2VyICE9PSBmYWxzZX1cbiAgICAgICAgICAgIGxlZnQ9ezExMH1cbiAgICAgICAgICAgIHRvcD17LTUwfVxuICAgICAgICAgICAgb25DbG9zZT17X2hhbmRsZUNsb3NlUGlja2VyfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDdXN0b21QaWNrZXIgY29sb3I9e3JnYlRvSGV4KGRhdGFzZXQuY29sb3IpfSBvbkNoYW5nZT17X2hhbmRsZUN1c3RvbVBpY2tlcn0gLz5cbiAgICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgICAgIHtzaG93RGF0YXNldFRhYmxlID8gKFxuICAgICAgICAgICAgPENlbnRlckZsZXhib3ggY2xhc3NOYW1lPVwic291cmNlLWRhdGEtYXJyb3dcIj5cbiAgICAgICAgICAgICAgPEFycm93UmlnaHQgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICAgICAgICA8L0NlbnRlckZsZXhib3g+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge3Nob3dEYXRhc2V0VGFibGUgJiYgIWRhdGFzZXQuZGlzYWJsZURhdGFPcGVyYXRpb24gPyAoXG4gICAgICAgICAgICA8U2hvd0RhdGFUYWJsZSBpZD17ZGF0YXNldElkfSBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfSAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtzaG93RGVsZXRlRGF0YXNldCA/IChcbiAgICAgICAgICAgIDxSZW1vdmVEYXRhc2V0IGRhdGFzZXRLZXk9e2RhdGFzZXRJZH0gcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH0gLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWREYXRhc2V0VGl0bGU+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBEYXRhc2V0VGl0bGU7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssa0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLENBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUEwQyxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBYjFDO0FBQ0E7QUFBQSxTQUFBYix3QkFBQWMsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWhCLHVCQUFBLFlBQUFBLHdCQUFBYyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQU0sRUFBQSxFQUFBUCxDQUFBLElBQUFDLENBQUEsQ0FBQU0sRUFBQSxJQUFBZCxDQUFBLENBQUFjLEVBQUEsV0FBQU4sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFpQkEsSUFBTW1CLGtCQUFrQixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUF4QixlQUFBLEtBQUFBLGVBQUEsT0FBQXlCLHVCQUFBLDJWQUMxQixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFNBQVM7QUFBQSxHQVEzQixVQUFBRixLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDRyxVQUFVLEdBQUcsU0FBUyxHQUFHLE1BQU07QUFBQSxDQUFDLEVBRy9DLFVBQUFILEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNHLFVBQVUsR0FBR0gsS0FBSyxDQUFDQyxLQUFLLENBQUNHLFdBQVcsR0FBR0osS0FBSyxDQUFDQyxLQUFLLENBQUNDLFNBQVM7QUFBQSxDQUFDLEVBSTdFLFVBQUFGLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsU0FBUztBQUFBLEdBSzlCLFVBQUFGLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0csV0FBVztBQUFBLEVBRzlDO0FBRUQsSUFBTUMsYUFBYSxHQUFHUiw0QkFBTSxDQUFDQyxHQUFHLENBQUF2QixnQkFBQSxLQUFBQSxnQkFBQSxPQUFBd0IsdUJBQUEsNEVBSS9CO0FBa0JELElBQU1PLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsSUFBQTtFQUFBLElBQUtDLEVBQUUsR0FBQUQsSUFBQSxDQUFGQyxFQUFFO0lBQUVDLGdCQUFnQixHQUFBRixJQUFBLENBQWhCRSxnQkFBZ0I7RUFBQSxvQkFDMUNoRCxNQUFBLFlBQUFpRCxhQUFBLENBQUNMLGFBQWE7SUFBQ00sU0FBUyxFQUFDLGdDQUFnQztJQUFDLGdCQUFRO0lBQUMsMEJBQUFDLE1BQUEsQ0FBd0JKLEVBQUU7RUFBRyxnQkFDOUYvQyxNQUFBLFlBQUFpRCxhQUFBLENBQUMzQyxPQUFBLENBQUE4QyxLQUFLO0lBQ0pDLE1BQU0sRUFBQyxNQUFNO0lBQ2JDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFdkMsQ0FBQyxFQUFJO01BQ1pBLENBQUMsQ0FBQ3dDLGVBQWUsQ0FBQyxDQUFDO01BQ25CUCxnQkFBZ0IsYUFBaEJBLGdCQUFnQixlQUFoQkEsZ0JBQWdCLENBQUdELEVBQUUsQ0FBQztJQUN4QjtFQUFFLENBQ0gsQ0FBQyxlQUNGL0MsTUFBQSxZQUFBaUQsYUFBQSxDQUFDMUMsa0JBQUEsQ0FBQWlELE9BQU87SUFBQ1QsRUFBRSxnQkFBQUksTUFBQSxDQUFnQkosRUFBRSxDQUFHO0lBQUNVLE1BQU0sRUFBQztFQUFPLGdCQUM3Q3pELE1BQUEsWUFBQWlELGFBQUEsNEJBQ0VqRCxNQUFBLFlBQUFpRCxhQUFBLENBQUM1QyxhQUFBLENBQUFxRCxnQkFBZ0I7SUFBQ1gsRUFBRSxFQUFFO0VBQTZCLENBQUUsQ0FDakQsQ0FDQyxDQUNJLENBQUM7QUFBQSxDQUNqQjtBQUVELElBQU1ZLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQUMsS0FBQTtFQUFBLElBQUtDLFVBQVUsR0FBQUQsS0FBQSxDQUFWQyxVQUFVO0lBQUVDLGFBQWEsR0FBQUYsS0FBQSxDQUFiRSxhQUFhO0VBQUEsb0JBQy9DOUQsTUFBQSxZQUFBaUQsYUFBQSxDQUFDTCxhQUFhO0lBQ1pNLFNBQVMsRUFBQywrQkFBK0I7SUFDekMsZ0JBQVE7SUFDUixzQkFBQUMsTUFBQSxDQUFvQlUsVUFBVTtFQUFHLGdCQUVqQzdELE1BQUEsWUFBQWlELGFBQUEsQ0FBQ3pDLE1BQUEsQ0FBQXVELEtBQUs7SUFDSlYsTUFBTSxFQUFDLE1BQU07SUFDYkMsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUV2QyxDQUFDLEVBQUk7TUFDWkEsQ0FBQyxDQUFDd0MsZUFBZSxDQUFDLENBQUM7TUFDbkJPLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUdELFVBQVUsQ0FBQztJQUM3QjtFQUFFLENBQ0gsQ0FBQyxlQUNGN0QsTUFBQSxZQUFBaUQsYUFBQSxDQUFDMUMsa0JBQUEsQ0FBQWlELE9BQU87SUFBQ1QsRUFBRSxZQUFBSSxNQUFBLENBQVlVLFVBQVUsQ0FBRztJQUFDSixNQUFNLEVBQUMsT0FBTztJQUFDTyxJQUFJLEVBQUM7RUFBTyxnQkFDOURoRSxNQUFBLFlBQUFpRCxhQUFBLDRCQUNFakQsTUFBQSxZQUFBaUQsYUFBQSxDQUFDNUMsYUFBQSxDQUFBcUQsZ0JBQWdCO0lBQUNYLEVBQUUsRUFBRTtFQUE2QixDQUFFLENBQ2pELENBQ0MsQ0FDSSxDQUFDO0FBQUEsQ0FDakI7QUFFRGtCLG1CQUFtQixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0Msc0JBQWlCLENBQUM7QUFFL0IsU0FBU0YsbUJBQW1CQSxDQUN6Q0csVUFBZ0QsRUFDbkI7RUFDN0IsSUFBTUMsWUFBeUMsR0FBRyxTQUE1Q0EsWUFBeUNBLENBQUFDLEtBQUEsRUFPekM7SUFBQSxJQU5KdEIsZ0JBQWdCLEdBQUFzQixLQUFBLENBQWhCdEIsZ0JBQWdCO01BQ2hCdUIsaUJBQWlCLEdBQUFELEtBQUEsQ0FBakJDLGlCQUFpQjtNQUNqQkMsWUFBWSxHQUFBRixLQUFBLENBQVpFLFlBQVk7TUFDWlYsYUFBYSxHQUFBUSxLQUFBLENBQWJSLGFBQWE7TUFDYlcsT0FBTyxHQUFBSCxLQUFBLENBQVBHLE9BQU87TUFDUEMsZ0JBQWdCLEdBQUFKLEtBQUEsQ0FBaEJJLGdCQUFnQjtJQUVoQixJQUFBQyxTQUFBLEdBQW9ELElBQUFDLGVBQVEsRUFBQyxLQUFLLENBQUM7TUFBQUMsVUFBQSxPQUFBQyxlQUFBLGFBQUFILFNBQUE7TUFBNURJLGtCQUFrQixHQUFBRixVQUFBO01BQUVHLHFCQUFxQixHQUFBSCxVQUFBO0lBQ2hELElBQU1JLElBQUksR0FBRyxJQUFBQyxhQUFNLEVBQUMsSUFBSSxDQUFDO0lBQ3pCLElBQU1DLFNBQVMsR0FBR1YsT0FBTyxDQUFDMUIsRUFBRTtJQUM1QixJQUFNcUMsWUFBWSxHQUFHLElBQUFDLGtCQUFXLEVBQUMsWUFBTTtNQUNyQ0wscUJBQXFCLENBQUMsQ0FBQ0Qsa0JBQWtCLENBQUM7SUFDNUMsQ0FBQyxFQUFFLENBQUNDLHFCQUFxQixFQUFFRCxrQkFBa0IsQ0FBQyxDQUFDO0lBRS9DLElBQU1PLGtCQUFrQixHQUFHLElBQUFELGtCQUFXLEVBQUMsWUFBTTtNQUMzQ0wscUJBQXFCLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUMsRUFBRSxDQUFDQSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNCLElBQU1PLG1CQUFtQixHQUFHLElBQUFGLGtCQUFXLEVBQ3JDLFVBQUNHLEtBQW9DLEVBQUs7TUFDeENkLGdCQUFnQixDQUFDUyxTQUFTLEVBQUUsQ0FBQ0ssS0FBSyxDQUFDQyxHQUFHLENBQUN2RSxDQUFDLEVBQUVzRSxLQUFLLENBQUNDLEdBQUcsQ0FBQ0MsQ0FBQyxFQUFFRixLQUFLLENBQUNDLEdBQUcsQ0FBQ0UsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQyxFQUNELENBQUNqQixnQkFBZ0IsRUFBRVMsU0FBUyxDQUM5QixDQUFDO0lBRUQsSUFBTVMsYUFBYSxHQUFHLElBQUFQLGtCQUFXLEVBQy9CLFVBQUN0RSxDQUFtQyxFQUFLO01BQ3ZDQSxDQUFDLENBQUN3QyxlQUFlLENBQUMsQ0FBQztNQUNuQixJQUFJLE9BQU9pQixZQUFZLEtBQUssVUFBVSxFQUFFO1FBQ3RDQSxZQUFZLENBQUMsQ0FBQztNQUNoQixDQUFDLE1BQU0sSUFBSSxPQUFPeEIsZ0JBQWdCLEtBQUssVUFBVSxFQUFFO1FBQ2pELElBQUl5QixPQUFPLENBQUNvQixvQkFBb0IsRUFBRTtRQUNsQzdDLGdCQUFnQixDQUFDbUMsU0FBUyxDQUFDO01BQzdCO0lBQ0YsQ0FBQyxFQUNELENBQUNYLFlBQVksRUFBRXhCLGdCQUFnQixFQUFFbUMsU0FBUyxFQUFFVixPQUFPLENBQUNvQixvQkFBb0IsQ0FDMUUsQ0FBQztJQUVELG9CQUNFN0YsTUFBQSxZQUFBaUQsYUFBQTtNQUFLQyxTQUFTLEVBQUMsc0JBQXNCO01BQUM0QyxHQUFHLEVBQUViO0lBQUssZ0JBQzlDakYsTUFBQSxZQUFBaUQsYUFBQSxDQUFDZCxrQkFBa0I7TUFDakJlLFNBQVMsRUFBQyxtQkFBbUI7TUFDN0JSLFVBQVUsRUFBRXFELE9BQU8sQ0FBQy9DLGdCQUFnQixJQUFJd0IsWUFBWTtJQUFFLGdCQUV0RHhFLE1BQUEsWUFBQWlELGFBQUEsQ0FBQ21CLFVBQVU7TUFDVEssT0FBTyxFQUFFQSxPQUFRO01BQ2pCbkIsT0FBTyxFQUFFc0MsYUFBYztNQUN2QmxCLGdCQUFnQixFQUFFQSxnQkFBaUI7TUFDbkNzQixhQUFhLEVBQUVaO0lBQWEsQ0FDN0IsQ0FBQyxlQUNGcEYsTUFBQSxZQUFBaUQsYUFBQSxDQUFDdEMsQ0FBQSxDQUFBc0YsUUFBUTtNQUNQQyxRQUFRLEVBQUVuQixrQkFBa0IsS0FBSyxLQUFNO01BQ3ZDb0IsSUFBSSxFQUFFLEdBQUk7TUFDVkMsR0FBRyxFQUFFLENBQUMsRUFBRztNQUNUQyxPQUFPLEVBQUVmO0lBQW1CLGdCQUU1QnRGLE1BQUEsWUFBQWlELGFBQUEsQ0FBQ3ZDLGFBQUEsV0FBWTtNQUFDOEUsS0FBSyxFQUFFLElBQUFjLGVBQVEsRUFBQzdCLE9BQU8sQ0FBQ2UsS0FBSyxDQUFFO01BQUNlLFFBQVEsRUFBRWhCO0lBQW9CLENBQUUsQ0FDdEUsQ0FBQyxFQUNWdkMsZ0JBQWdCLGdCQUNmaEQsTUFBQSxZQUFBaUQsYUFBQSxDQUFDMUMsa0JBQUEsQ0FBQWlHLGFBQWE7TUFBQ3RELFNBQVMsRUFBQztJQUFtQixnQkFDMUNsRCxNQUFBLFlBQUFpRCxhQUFBLENBQUN6QyxNQUFBLENBQUFpRyxVQUFVO01BQUNwRCxNQUFNLEVBQUM7SUFBTSxDQUFFLENBQ2QsQ0FBQyxHQUNkLElBQUksRUFDUEwsZ0JBQWdCLElBQUksQ0FBQ3lCLE9BQU8sQ0FBQ29CLG9CQUFvQixnQkFDaEQ3RixNQUFBLFlBQUFpRCxhQUFBLENBQUNKLGFBQWE7TUFBQ0UsRUFBRSxFQUFFb0MsU0FBVTtNQUFDbkMsZ0JBQWdCLEVBQUVBO0lBQWlCLENBQUUsQ0FBQyxHQUNsRSxJQUFJLEVBQ1B1QixpQkFBaUIsZ0JBQ2hCdkUsTUFBQSxZQUFBaUQsYUFBQSxDQUFDVSxhQUFhO01BQUNFLFVBQVUsRUFBRXNCLFNBQVU7TUFBQ3JCLGFBQWEsRUFBRUE7SUFBYyxDQUFFLENBQUMsR0FDcEUsSUFDYyxDQUNqQixDQUFDO0VBRVYsQ0FBQztFQUVELE9BQU9PLFlBQVk7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9sYXllcnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfY29uc3RhbnRzIiwiX2RhdGFzZXRUYWciLCJfY3VzdG9tUGlja2VyIiwiXyIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiU3R5bGVkRGF0YXNldFRpdGxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9yIiwiJGNsaWNrYWJsZSIsInRleHRDb2xvckhsIiwiRGF0YVRhZ0FjdGlvbiIsIkRhdGFUYWdBY3Rpb25CdXR0b24iLCJidXR0b24iLCJTdHlsZWRSZWZyZXNoRXJyb3IiLCJTaG93RGF0YVRhYmxlIiwiX3JlZiIsImlkIiwic2hvd0RhdGFzZXRUYWJsZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJUYWJsZSIsImhlaWdodCIsIm9uQ2xpY2siLCJzdG9wUHJvcGFnYXRpb24iLCJUb29sdGlwIiwiZWZmZWN0IiwiRm9ybWF0dGVkTWVzc2FnZSIsIlJlZnJlc2hEYXRhc2V0U2V0dGluZ3MiLCJfcmVmMiIsIm9uVG9nZ2xlIiwiaW50bCIsInVzZUludGwiLCJ0eXBlIiwiZm9ybWF0TWVzc2FnZSIsIkNsb2NrIiwiUmVtb3ZlRGF0YXNldCIsIl9yZWYzIiwiZGF0YXNldEtleSIsInJlbW92ZURhdGFzZXQiLCJUcmFzaCIsIlJlZnJlc2hFcnJvckljb24iLCJfcmVmNCIsIm1lc3NhZ2UiLCJyb2xlIiwiV2FybmluZ1NpZ24iLCJEYXRhc2V0VGl0bGVGYWN0b3J5IiwiZGVwcyIsIkRhdGFzZXRUYWdGYWN0b3J5IiwiRGF0YXNldFRhZyIsIkRhdGFzZXRUaXRsZSIsIl9yZWY1IiwiX2RhdGFzZXQkbWV0YWRhdGEiLCJzaG93RGVsZXRlRGF0YXNldCIsIm9uVGl0bGVDbGljayIsImRhdGFzZXQiLCJ1cGRhdGVUYWJsZUNvbG9yIiwib25Ub2dnbGVSZWZyZXNoU2V0dGluZ3MiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJkaXNwbGF5Q29sb3JQaWNrZXIiLCJzZXREaXNwbGF5Q29sb3JQaWNrZXIiLCJyb290IiwidXNlUmVmIiwiZGF0YXNldElkIiwiX2hhbmRsZUNsaWNrIiwidXNlQ2FsbGJhY2siLCJfaGFuZGxlQ2xvc2VQaWNrZXIiLCJfaGFuZGxlQ3VzdG9tUGlja2VyIiwiY29sb3IiLCJyZ2IiLCJnIiwiYiIsIl9vbkNsaWNrVGl0bGUiLCJkaXNhYmxlRGF0YU9wZXJhdGlvbiIsImlzUmVtb3RlIiwiRGF0YXNldFR5cGUiLCJFWFRFUk5BTExZX0hPU1RFRCIsInJlZnJlc2hFcnJvciIsIm1ldGFkYXRhIiwicmVmIiwiQm9vbGVhbiIsIm9uQ2xpY2tTcXVhcmUiLCJQb3J0YWxlZCIsImlzT3BlbmVkIiwibGVmdCIsInRvcCIsIm9uQ2xvc2UiLCJyZ2JUb0hleCIsIm9uQ2hhbmdlIiwiQ2VudGVyRmxleGJveCIsIkFycm93UmlnaHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9jb21tb24vZGF0YXNldC10aXRsZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuXG5pbXBvcnQge1RhYmxlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0NlbnRlckZsZXhib3gsIFRvb2x0aXB9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Fycm93UmlnaHQsIENsb2NrLCBUcmFzaCwgV2FybmluZ1NpZ259IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0RhdGFzZXRUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgRGF0YXNldFRhZ0ZhY3RvcnkgZnJvbSAnLi9kYXRhc2V0LXRhZyc7XG5pbXBvcnQgQ3VzdG9tUGlja2VyIGZyb20gJy4uL2xheWVyLXBhbmVsL2N1c3RvbS1waWNrZXInO1xuaW1wb3J0IHtQb3J0YWxlZH0gZnJvbSAnLi4vLi4nO1xuaW1wb3J0IHtyZ2JUb0hleH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge29wZW5EZWxldGVNb2RhbCwgVmlzU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1N0eWxlZERhdGFzZXRUaXRsZVByb3BzLCBSZW1vdmVEYXRhc2V0UHJvcHMsIFNob3dEYXRhVGFibGVQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFN0eWxlZERhdGFzZXRUaXRsZSA9IHN0eWxlZC5kaXY8U3R5bGVkRGF0YXNldFRpdGxlUHJvcHM+YFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gIC5zb3VyY2UtZGF0YS1hcnJvdyB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogJHtwcm9wcyA9PiAocHJvcHMuJGNsaWNrYWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuXG4gICAgLmRhdGFzZXQtbmFtZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuJGNsaWNrYWJsZSA/IHByb3BzLnRoZW1lLnRleHRDb2xvckhsIDogcHJvcHMudGhlbWUudGV4dENvbG9yKX07XG4gICAgfVxuXG4gICAgLmRhdGFzZXQtYWN0aW9uIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC5kYXRhc2V0LWFjdGlvbjpob3ZlciB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBEYXRhVGFnQWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gIGhlaWdodDogMTZweDtcbiAgb3BhY2l0eTogMDtcbmA7XG5cbmNvbnN0IERhdGFUYWdBY3Rpb25CdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwO1xuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkUmVmcmVzaEVycm9yID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG5gO1xuXG50eXBlIE1pbmlEYXRhc2V0ID0ge1xuICBpZDogc3RyaW5nO1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBkaXNhYmxlRGF0YU9wZXJhdGlvbj86IGJvb2xlYW47XG4gIHR5cGU/OiBzdHJpbmc7XG4gIG1ldGFkYXRhPzoge1xuICAgIHJlZnJlc2hFcnJvcj86IHN0cmluZztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFzZXRUaXRsZVByb3BzID0ge1xuICBkYXRhc2V0OiBNaW5pRGF0YXNldDtcbiAgc2hvd0RlbGV0ZURhdGFzZXQ6IGJvb2xlYW47XG4gIG9uVGl0bGVDbGljaz86ICgpID0+IHZvaWQ7XG4gIHNob3dEYXRhc2V0VGFibGU/OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMuc2hvd0RhdGFzZXRUYWJsZT47XG4gIHVwZGF0ZVRhYmxlQ29sb3I6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVUYWJsZUNvbG9yPjtcbiAgcmVtb3ZlRGF0YXNldD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIG9wZW5EZWxldGVNb2RhbD47XG4gIG9uVG9nZ2xlUmVmcmVzaFNldHRpbmdzPzogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFNob3dEYXRhVGFibGUgPSAoe2lkLCBzaG93RGF0YXNldFRhYmxlfTogU2hvd0RhdGFUYWJsZVByb3BzKSA9PiAoXG4gIDxEYXRhVGFnQWN0aW9uIGNsYXNzTmFtZT1cImRhdGFzZXQtYWN0aW9uIHNob3ctZGF0YS10YWJsZVwiIGRhdGEtdGlwIGRhdGEtZm9yPXtgZGF0YS10YWJsZS0ke2lkfWB9PlxuICAgIDxUYWJsZVxuICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT8uKGlkKTtcbiAgICAgIH19XG4gICAgLz5cbiAgICA8VG9vbHRpcCBpZD17YGRhdGEtdGFibGUtJHtpZH1gfSBlZmZlY3Q9XCJzb2xpZFwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnZGF0YXNldFRpdGxlLnNob3dEYXRhVGFibGUnfSAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvVG9vbHRpcD5cbiAgPC9EYXRhVGFnQWN0aW9uPlxuKTtcblxuY29uc3QgUmVmcmVzaERhdGFzZXRTZXR0aW5ncyA9ICh7aWQsIG9uVG9nZ2xlfToge2lkOiBzdHJpbmc7IG9uVG9nZ2xlPzogKCkgPT4gdm9pZH0pID0+IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgcmV0dXJuIChcbiAgICA8RGF0YVRhZ0FjdGlvbkJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzc05hbWU9XCJkYXRhc2V0LWFjdGlvbiByZWZyZXNoLWRhdGFzZXQtc2V0dGluZ3NcIlxuICAgICAgZGF0YS10aXBcbiAgICAgIGRhdGEtZm9yPXtgcmVmcmVzaC1zZXR0aW5ncy0ke2lkfWB9XG4gICAgICBhcmlhLWxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZGF0YXNldFRpdGxlLnJlZnJlc2hTZXR0aW5ncyd9KX1cbiAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBvblRvZ2dsZT8uKCk7XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxDbG9jayBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDxUb29sdGlwIGlkPXtgcmVmcmVzaC1zZXR0aW5ncy0ke2lkfWB9IGVmZmVjdD1cInNvbGlkXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnZGF0YXNldFRpdGxlLnJlZnJlc2hTZXR0aW5ncyd9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICA8L0RhdGFUYWdBY3Rpb25CdXR0b24+XG4gICk7XG59O1xuXG5jb25zdCBSZW1vdmVEYXRhc2V0ID0gKHtkYXRhc2V0S2V5LCByZW1vdmVEYXRhc2V0fTogUmVtb3ZlRGF0YXNldFByb3BzKSA9PiAoXG4gIDxEYXRhVGFnQWN0aW9uXG4gICAgY2xhc3NOYW1lPVwiZGF0YXNldC1hY3Rpb24gcmVtb3ZlLWRhdGFzZXRcIlxuICAgIGRhdGEtdGlwXG4gICAgZGF0YS1mb3I9e2BkZWxldGUtJHtkYXRhc2V0S2V5fWB9XG4gID5cbiAgICA8VHJhc2hcbiAgICAgIGhlaWdodD1cIjE2cHhcIlxuICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJlbW92ZURhdGFzZXQ/LihkYXRhc2V0S2V5KTtcbiAgICAgIH19XG4gICAgLz5cbiAgICA8VG9vbHRpcCBpZD17YGRlbGV0ZS0ke2RhdGFzZXRLZXl9YH0gZWZmZWN0PVwic29saWRcIiB0eXBlPVwiZXJyb3JcIj5cbiAgICAgIDxzcGFuPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J2RhdGFzZXRUaXRsZS5yZW1vdmVEYXRhc2V0J30gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L1Rvb2x0aXA+XG4gIDwvRGF0YVRhZ0FjdGlvbj5cbik7XG5cbmNvbnN0IFJlZnJlc2hFcnJvckljb24gPSAoe2lkLCBtZXNzYWdlfToge2lkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZ30pID0+IChcbiAgPFN0eWxlZFJlZnJlc2hFcnJvclxuICAgIGNsYXNzTmFtZT1cImRhdGFzZXQtcmVmcmVzaC1lcnJvclwiXG4gICAgZGF0YS10aXBcbiAgICBkYXRhLWZvcj17YHJlZnJlc2gtZXJyb3ItJHtpZH1gfVxuICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICByb2xlPVwiaW1nXCJcbiAgICBhcmlhLWxhYmVsPXttZXNzYWdlfVxuICA+XG4gICAgPFdhcm5pbmdTaWduIGhlaWdodD1cIjE0cHhcIiAvPlxuICAgIDxUb29sdGlwIGlkPXtgcmVmcmVzaC1lcnJvci0ke2lkfWB9IHR5cGU9XCJlcnJvclwiIGVmZmVjdD1cInNvbGlkXCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJkYXRhc2V0VGl0bGUucmVmcmVzaEZhaWxlZFwiIC8+XG4gICAgICAgIHsnOiAnfVxuICAgICAgICB7bWVzc2FnZX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L1Rvb2x0aXA+XG4gIDwvU3R5bGVkUmVmcmVzaEVycm9yPlxuKTtcblxuRGF0YXNldFRpdGxlRmFjdG9yeS5kZXBzID0gW0RhdGFzZXRUYWdGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRGF0YXNldFRpdGxlRmFjdG9yeShcbiAgRGF0YXNldFRhZzogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YXNldFRhZ0ZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxEYXRhc2V0VGl0bGVQcm9wcz4ge1xuICBjb25zdCBEYXRhc2V0VGl0bGU6IFJlYWN0LkZDPERhdGFzZXRUaXRsZVByb3BzPiA9ICh7XG4gICAgc2hvd0RhdGFzZXRUYWJsZSxcbiAgICBzaG93RGVsZXRlRGF0YXNldCxcbiAgICBvblRpdGxlQ2xpY2ssXG4gICAgcmVtb3ZlRGF0YXNldCxcbiAgICBkYXRhc2V0LFxuICAgIHVwZGF0ZVRhYmxlQ29sb3IsXG4gICAgb25Ub2dnbGVSZWZyZXNoU2V0dGluZ3NcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtkaXNwbGF5Q29sb3JQaWNrZXIsIHNldERpc3BsYXlDb2xvclBpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgcm9vdCA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkYXRhc2V0SWQgPSBkYXRhc2V0LmlkO1xuICAgIGNvbnN0IF9oYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldERpc3BsYXlDb2xvclBpY2tlcighZGlzcGxheUNvbG9yUGlja2VyKTtcbiAgICB9LCBbc2V0RGlzcGxheUNvbG9yUGlja2VyLCBkaXNwbGF5Q29sb3JQaWNrZXJdKTtcblxuICAgIGNvbnN0IF9oYW5kbGVDbG9zZVBpY2tlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldERpc3BsYXlDb2xvclBpY2tlcihmYWxzZSk7XG4gICAgfSwgW3NldERpc3BsYXlDb2xvclBpY2tlcl0pO1xuICAgIGNvbnN0IF9oYW5kbGVDdXN0b21QaWNrZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgIChjb2xvcjoge3JnYjogUmVjb3JkPHN0cmluZywgbnVtYmVyPn0pID0+IHtcbiAgICAgICAgdXBkYXRlVGFibGVDb2xvcihkYXRhc2V0SWQsIFtjb2xvci5yZ2IuciwgY29sb3IucmdiLmcsIGNvbG9yLnJnYi5iXSk7XG4gICAgICB9LFxuICAgICAgW3VwZGF0ZVRhYmxlQ29sb3IsIGRhdGFzZXRJZF1cbiAgICApO1xuXG4gICAgY29uc3QgX29uQ2xpY2tUaXRsZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICh0eXBlb2Ygb25UaXRsZUNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgb25UaXRsZUNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNob3dEYXRhc2V0VGFibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBpZiAoZGF0YXNldC5kaXNhYmxlRGF0YU9wZXJhdGlvbikgcmV0dXJuO1xuICAgICAgICAgIHNob3dEYXRhc2V0VGFibGUoZGF0YXNldElkKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtvblRpdGxlQ2xpY2ssIHNob3dEYXRhc2V0VGFibGUsIGRhdGFzZXRJZCwgZGF0YXNldC5kaXNhYmxlRGF0YU9wZXJhdGlvbl1cbiAgICApO1xuXG4gICAgY29uc3QgaXNSZW1vdGUgPSBkYXRhc2V0LnR5cGUgPT09IERhdGFzZXRUeXBlLkVYVEVSTkFMTFlfSE9TVEVEO1xuICAgIGNvbnN0IHJlZnJlc2hFcnJvciA9IGRhdGFzZXQubWV0YWRhdGE/LnJlZnJlc2hFcnJvcjtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLXBhbmVsXCIgcmVmPXtyb290fT5cbiAgICAgICAgPFN0eWxlZERhdGFzZXRUaXRsZVxuICAgICAgICAgIGNsYXNzTmFtZT1cInNvdXJjZS1kYXRhLXRpdGxlXCJcbiAgICAgICAgICAkY2xpY2thYmxlPXtCb29sZWFuKHNob3dEYXRhc2V0VGFibGUgfHwgb25UaXRsZUNsaWNrKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxEYXRhc2V0VGFnXG4gICAgICAgICAgICBkYXRhc2V0PXtkYXRhc2V0fVxuICAgICAgICAgICAgb25DbGljaz17X29uQ2xpY2tUaXRsZX1cbiAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgICBvbkNsaWNrU3F1YXJlPXtfaGFuZGxlQ2xpY2t9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8UG9ydGFsZWRcbiAgICAgICAgICAgIGlzT3BlbmVkPXtkaXNwbGF5Q29sb3JQaWNrZXIgIT09IGZhbHNlfVxuICAgICAgICAgICAgbGVmdD17MTEwfVxuICAgICAgICAgICAgdG9wPXstNTB9XG4gICAgICAgICAgICBvbkNsb3NlPXtfaGFuZGxlQ2xvc2VQaWNrZXJ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEN1c3RvbVBpY2tlciBjb2xvcj17cmdiVG9IZXgoZGF0YXNldC5jb2xvcil9IG9uQ2hhbmdlPXtfaGFuZGxlQ3VzdG9tUGlja2VyfSAvPlxuICAgICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICAgICAge3Nob3dEYXRhc2V0VGFibGUgPyAoXG4gICAgICAgICAgICA8Q2VudGVyRmxleGJveCBjbGFzc05hbWU9XCJzb3VyY2UtZGF0YS1hcnJvd1wiPlxuICAgICAgICAgICAgICA8QXJyb3dSaWdodCBoZWlnaHQ9XCIxMnB4XCIgLz5cbiAgICAgICAgICAgIDwvQ2VudGVyRmxleGJveD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7cmVmcmVzaEVycm9yID8gPFJlZnJlc2hFcnJvckljb24gaWQ9e2RhdGFzZXRJZH0gbWVzc2FnZT17cmVmcmVzaEVycm9yfSAvPiA6IG51bGx9XG4gICAgICAgICAge3Nob3dEYXRhc2V0VGFibGUgJiYgIWRhdGFzZXQuZGlzYWJsZURhdGFPcGVyYXRpb24gPyAoXG4gICAgICAgICAgICA8U2hvd0RhdGFUYWJsZSBpZD17ZGF0YXNldElkfSBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfSAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtvblRvZ2dsZVJlZnJlc2hTZXR0aW5ncyAmJiBpc1JlbW90ZSA/IChcbiAgICAgICAgICAgIDxSZWZyZXNoRGF0YXNldFNldHRpbmdzIGlkPXtkYXRhc2V0SWR9IG9uVG9nZ2xlPXtvblRvZ2dsZVJlZnJlc2hTZXR0aW5nc30gLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7c2hvd0RlbGV0ZURhdGFzZXQgPyAoXG4gICAgICAgICAgICA8UmVtb3ZlRGF0YXNldCBkYXRhc2V0S2V5PXtkYXRhc2V0SWR9IHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkRGF0YXNldFRpdGxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gRGF0YXNldFRpdGxlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxhQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxDQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFBMEMsSUFBQWEsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWYxQztBQUNBO0FBQUEsU0FBQWpCLHdCQUFBa0IsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQXBCLHVCQUFBLFlBQUFBLHdCQUFBa0IsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFB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bkIsZ0JBQWdCLEVBQUVBLGdCQUFpQjtNQUNuQzRCLGFBQWEsRUFBRWpCO0lBQWEsQ0FDN0IsQ0FBQyxlQUNGekcsTUFBQSxZQUFBd0QsYUFBQSxDQUFDM0MsQ0FBQSxDQUFBOEcsUUFBUTtNQUNQQyxRQUFRLEVBQUV4QixrQkFBa0IsS0FBSyxLQUFNO01BQ3ZDeUIsSUFBSSxFQUFFLEdBQUk7TUFDVkMsR0FBRyxFQUFFLENBQUMsRUFBRztNQUNUQyxPQUFPLEVBQUVwQjtJQUFtQixnQkFFNUIzRyxNQUFBLFlBQUF3RCxhQUFBLENBQUM1QyxhQUFBLFdBQVk7TUFBQ2lHLEtBQUssRUFBRSxJQUFBbUIsZUFBUSxFQUFDbkMsT0FBTyxDQUFDZ0IsS0FBSyxDQUFFO01BQUNvQixRQUFRLEVBQUVyQjtJQUFvQixDQUFFLENBQ3RFLENBQUMsRUFDVnJELGdCQUFnQixnQkFDZnZELE1BQUEsWUFBQXdELGFBQUEsQ0FBQ2hELGtCQUFBLENBQUEwSCxhQUFhO01BQUN6RSxTQUFTLEVBQUM7SUFBbUIsZ0JBQzFDekQsTUFBQSxZQUFBd0QsYUFBQSxDQUFDL0MsTUFBQSxDQUFBMEgsVUFBVTtNQUFDdkUsTUFBTSxFQUFDO0lBQU0sQ0FBRSxDQUNkLENBQUMsR0FDZCxJQUFJLEVBQ1AwRCxZQUFZLGdCQUFHdEgsTUFBQSxZQUFBd0QsYUFBQSxDQUFDdUIsZ0JBQWdCO01BQUN6QixFQUFFLEVBQUVrRCxTQUFVO01BQUN2QixPQUFPLEVBQUVxQztJQUFhLENBQUUsQ0FBQyxHQUFHLElBQUksRUFDaEYvRCxnQkFBZ0IsSUFBSSxDQUFDc0MsT0FBTyxDQUFDcUIsb0JBQW9CLGdCQUNoRGxILE1BQUEsWUFBQXdELGFBQUEsQ0FBQ0osYUFBYTtNQUFDRSxFQUFFLEVBQUVrRCxTQUFVO01BQUNqRCxnQkFBZ0IsRUFBRUE7SUFBaUIsQ0FBRSxDQUFDLEdBQ2xFLElBQUksRUFDUHdDLHVCQUF1QixJQUFJb0IsUUFBUSxnQkFDbENuSCxNQUFBLFlBQUF3RCxhQUFBLENBQUNVLHNCQUFzQjtNQUFDWixFQUFFLEVBQUVrRCxTQUFVO01BQUNwQyxRQUFRLEVBQUUyQjtJQUF3QixDQUFFLENBQUMsR0FDMUUsSUFBSSxFQUNQSixpQkFBaUIsZ0JBQ2hCM0YsTUFBQSxZQUFBd0QsYUFBQSxDQUFDa0IsYUFBYTtNQUFDRSxVQUFVLEVBQUU0QixTQUFVO01BQUMzQixhQUFhLEVBQUVBO0lBQWMsQ0FBRSxDQUFDLEdBQ3BFLElBQ2MsQ0FDakIsQ0FBQztFQUVWLENBQUM7RUFFRCxPQUFPVyxZQUFZO0FBQ3JCIiwiaWdub3JlTGlzdCI6W119
|