@kepler.gl/components 3.1.7 → 3.1.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/common/image-preview.d.ts +3 -3
- package/dist/common/image-preview.js +17 -13
- package/dist/common/loading-spinner.js +2 -2
- package/dist/kepler-gl.d.ts +28 -10
- package/dist/kepler-gl.js +20 -9
- package/dist/map/layer-hover-info.js +38 -15
- package/dist/map/map-popover.js +2 -2
- package/dist/map-container.js +7 -3
- package/dist/modal-container.d.ts +1 -1
- package/dist/modals/export-data-modal.js +2 -2
- package/dist/modals/export-image-modal.d.ts +1 -1
- package/dist/modals/export-image-modal.js +1 -1
- package/dist/modals/save-map-modal.d.ts +1 -2
- package/dist/modals/save-map-modal.js +1 -1
- package/dist/modals/tilesets-modals/common.d.ts +2 -1
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.js +11 -5
- package/dist/modals/tilesets-modals/load-tileset.js +21 -3
- package/dist/modals/tilesets-modals/tileset-raster-form.js +20 -14
- package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +7 -0
- package/dist/modals/tilesets-modals/tileset-wms-form.js +163 -0
- package/dist/plot-container.d.ts +9 -7
- package/dist/plot-container.js +168 -170
- package/dist/side-panel/add-by-dataset-button.d.ts +0 -1
- package/dist/side-panel/add-by-dataset-button.js +1 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/filter-panel/add-filter-button.js +1 -2
- package/dist/side-panel/layer-manager.js +21 -8
- package/dist/side-panel/layer-panel/add-layer-button.js +1 -2
- package/dist/side-panel/layer-panel/custom-palette.d.ts +1 -6
- package/dist/side-panel/layer-panel/custom-palette.js +132 -88
- package/dist/side-panel/layer-panel/custom-picker.js +18 -5
- package/dist/side-panel/layer-panel/dataset-layer-section.js +21 -8
- package/dist/side-panel/layer-panel/layer-configurator.js +56 -14
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +10 -10
- package/package.json +16 -15
|
@@ -57,10 +57,10 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
57
57
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
58
58
|
tileName = _useState2[0],
|
|
59
59
|
setTileName = _useState2[1];
|
|
60
|
-
var _useState3 = (0, _react.useState)(
|
|
60
|
+
var _useState3 = (0, _react.useState)(false),
|
|
61
61
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
tileNameWasModified = _useState4[0],
|
|
63
|
+
setTileNameWasModified = _useState4[1];
|
|
64
64
|
var _useState5 = (0, _react.useState)(''),
|
|
65
65
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
66
66
|
metadataUrl = _useState6[0],
|
|
@@ -69,31 +69,36 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
69
69
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
70
70
|
rasterTileServerUrls = _useState8[0],
|
|
71
71
|
setRasterTileServerUrls = _useState8[1];
|
|
72
|
+
|
|
73
|
+
// Remove trailing slash to prevent issues with raster tile servers
|
|
74
|
+
var clearedMetadataUrl = metadataUrl.endsWith('/') ? metadataUrl.slice(0, -1) : metadataUrl;
|
|
72
75
|
var onTileNameChange = (0, _react.useCallback)(function (event) {
|
|
73
76
|
event.preventDefault();
|
|
77
|
+
setTileNameWasModified(true);
|
|
74
78
|
setTileName(event.target.value);
|
|
75
79
|
}, [setTileName]);
|
|
76
80
|
var onMetadataUrlChange = (0, _react.useCallback)(function (event) {
|
|
77
81
|
event.preventDefault();
|
|
78
82
|
var value = event.target.value;
|
|
79
83
|
setMetadataUrl(value);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
if (!tileNameWasModified) {
|
|
85
|
+
setTileName(value.split('/').filter(Boolean).pop() || '');
|
|
86
|
+
}
|
|
87
|
+
}, [tileNameWasModified]);
|
|
83
88
|
var onRasterTileServerUrlsChange = (0, _react.useCallback)(function (event) {
|
|
84
89
|
event.preventDefault();
|
|
85
90
|
setRasterTileServerUrls(event.target.value);
|
|
86
91
|
}, [setRasterTileServerUrls]);
|
|
87
92
|
var _useFetchJson = (0, _useFetchRasterTileMetadata["default"])({
|
|
88
|
-
url:
|
|
89
|
-
rasterTileType: (0, _commonUtils.isPMTilesUrl)(
|
|
93
|
+
url: clearedMetadataUrl,
|
|
94
|
+
rasterTileType: (0, _commonUtils.isPMTilesUrl)(clearedMetadataUrl) ? _constants.RasterTileType.PMTILES : _constants.RasterTileType.STAC,
|
|
90
95
|
process: parseMetadataAllowCollections
|
|
91
96
|
}),
|
|
92
97
|
metadata = _useFetchJson.data,
|
|
93
98
|
loading = _useFetchJson.loading,
|
|
94
99
|
metaError = _useFetchJson.error;
|
|
95
100
|
(0, _react.useEffect)(function () {
|
|
96
|
-
if (tileName &&
|
|
101
|
+
if (tileName && clearedMetadataUrl) {
|
|
97
102
|
var pmtilesType = metadata === null || metadata === void 0 ? void 0 : metadata.pmtilesType;
|
|
98
103
|
if (pmtilesType === _constants.PMTilesType.MVT) {
|
|
99
104
|
return setResponse({
|
|
@@ -129,7 +134,7 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
129
134
|
}
|
|
130
135
|
var dataset = getDatasetAttributesFromRasterTile({
|
|
131
136
|
name: tileName,
|
|
132
|
-
metadataUrl:
|
|
137
|
+
metadataUrl: clearedMetadataUrl,
|
|
133
138
|
rasterTileServerUrls: rasterTileServers
|
|
134
139
|
});
|
|
135
140
|
setResponse({
|
|
@@ -146,7 +151,8 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
146
151
|
error: metaError
|
|
147
152
|
});
|
|
148
153
|
}
|
|
149
|
-
}, [metadata, loading, metaError,
|
|
154
|
+
}, [metadata, loading, metaError, tileName, clearedMetadataUrl, rasterTileServerUrls, setResponse]);
|
|
155
|
+
var showServerInput = (0, _utils.getApplicationConfig)().rasterServerShowServerInput;
|
|
150
156
|
return /*#__PURE__*/_react["default"].createElement(TilesetInputContainer, null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
151
157
|
htmlFor: "tileset-name"
|
|
152
158
|
}, "Name"), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
@@ -158,10 +164,10 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
158
164
|
htmlFor: "tile-metadata"
|
|
159
165
|
}, "Tileset metadata URL"), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
160
166
|
id: "tile-metadata",
|
|
161
|
-
placeholder: "Tileset metadata",
|
|
167
|
+
placeholder: "Tileset metadata URL",
|
|
162
168
|
value: metadataUrl !== null && metadataUrl !== void 0 ? metadataUrl : undefined,
|
|
163
169
|
onChange: onMetadataUrlChange
|
|
164
|
-
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Supports raster .pmtiles. Limited support for STAC Items and Collections.")), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
170
|
+
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Supports raster .pmtiles. Limited support for STAC Items and Collections.")), showServerInput && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
165
171
|
htmlFor: "tileset-raster-servers"
|
|
166
172
|
}, "Raster tile servers"), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
167
173
|
id: "tileset-raster-servers",
|
|
@@ -171,4 +177,4 @@ var RasterTileForm = function RasterTileForm(_ref3) {
|
|
|
171
177
|
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Raster tile server URLs for Cloud Optimized GeoTIFF tilesets and elevation.")));
|
|
172
178
|
};
|
|
173
179
|
var _default = exports["default"] = RasterTileForm;
|
|
174
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJUaWxlc2V0SW5wdXRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbGVzZXRJbnB1dERlc2NyaXB0aW9uIiwicHJvcHMiLCJ0aGVtZSIsIkFaVVJFMjAwIiwiZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSIsIl9yZWYiLCJuYW1lIiwibWV0YWRhdGFVcmwiLCJyYXN0ZXJUaWxlU2VydmVyVXJscyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyIsIl9yZWYyIiwicmFzdGVyVGlsZVR5cGUiLCJSYXN0ZXJUaWxlVHlwZSIsIlBNVElMRVMiLCJwYXJzZVZlY3Rvck1ldGFkYXRhIiwidGlsZVVybCIsInBhcnNlUmFzdGVyTWV0YWRhdGEiLCJhbGxvd0NvbGxlY3Rpb25zIiwiUmFzdGVyVGlsZUZvcm0iLCJfcmVmMyIsInNldFJlc3BvbnNlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidGlsZU5hbWUiLCJzZXRUaWxlTmFtZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY3VycmVudFVybCIsInNldEN1cnJlbnRVcmwiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldE1ldGFkYXRhVXJsIiwiX3VzZVN0YXRlNyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJvblRpbGVOYW1lQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwidmFsdWUiLCJvbk1ldGFkYXRhVXJsQ2hhbmdlIiwic3BsaXQiLCJwb3AiLCJvblJhc3RlclRpbGVTZXJ2ZXJVcmxzQ2hhbmdlIiwiX3VzZUZldGNoSnNvbiIsInVzZUZldGNoSnNvbiIsInVybCIsImlzUE1UaWxlc1VybCIsIlNUQUMiLCJwcm9jZXNzIiwiZGF0YSIsImxvYWRpbmciLCJtZXRhRXJyb3IiLCJlcnJvciIsInVzZUVmZmVjdCIsInBtdGlsZXNUeXBlIiwiUE1UaWxlc1R5cGUiLCJNVlQiLCJkYXRhc2V0IiwiRXJyb3IiLCJyYXN0ZXJUaWxlU2VydmVycyIsIm1hcCIsInNlcnZlciIsInRyaW0iLCJldmVyeSIsInZhbGlkYXRlVXJsIiwiY3JlYXRlRWxlbWVudCIsImh0bWxGb3IiLCJJbnB1dExpZ2h0IiwiaWQiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwidW5kZWZpbmVkIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy90aWxlc2V0cy1tb2RhbHMvdGlsZXNldC1yYXN0ZXItZm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge1BNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5cbmltcG9ydCB7aXNQTVRpbGVzVXJsLCB2YWxpZGF0ZVVybH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhc2V0VHlwZSwgUmFzdGVyVGlsZVR5cGUsIFBNVGlsZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0pzb25PYmplY3RPckFycmF5fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7cGFyc2VSYXN0ZXJNZXRhZGF0YSwgcGFyc2VWZWN0b3JNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IHtkZWZhdWx0IGFzIHVzZUZldGNoSnNvbn0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLWZldGNoLXJhc3Rlci10aWxlLW1ldGFkYXRhJztcbmltcG9ydCB7RGF0YXNldENyZWF0aW9uQXR0cmlidXRlcywgTWV0YVJlc3BvbnNlfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge0lucHV0TGlnaHR9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIDFmcik7XG4gIHJvdy1nYXA6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbmA7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dERlc2NyaXB0aW9uID0gc3R5bGVkLmRpdmBcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5BWlVSRTIwMH07XG4gIGZvbnQtc2l6ZTogMTFweDtcbmA7XG5cbmV4cG9ydCB0eXBlIFJhc3RlclRpbGVzZXRNZXRhID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG1ldGFkYXRhVXJsOiBzdHJpbmc7XG4gIHJhc3RlclRpbGVTZXJ2ZXJVcmxzPzogc3RyaW5nW107XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gIG5hbWUsXG4gIG1ldGFkYXRhVXJsLFxuICByYXN0ZXJUaWxlU2VydmVyVXJsc1xufTogUmFzdGVyVGlsZXNldE1ldGEpOiBEYXRhc2V0Q3JlYXRpb25BdHRyaWJ1dGVzIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IERhdGFzZXRUeXBlLlJBU1RFUl9USUxFLFxuICAgIG1ldGFkYXRhOiB7XG4gICAgICBtZXRhZGF0YVVybCxcbiAgICAgIC4uLihyYXN0ZXJUaWxlU2VydmVyVXJscyA/IHtyYXN0ZXJUaWxlU2VydmVyVXJsc30gOiB7fSlcbiAgICB9XG4gIH07XG59XG5cbnR5cGUgUmFzdGVyVGlsZUZvcm1Qcm9wcyA9IHtcbiAgc2V0UmVzcG9uc2U6IChyZXNwb25zZTogTWV0YVJlc3BvbnNlKSA9PiB2b2lkO1xufTtcblxuY29uc3QgcGFyc2VNZXRhZGF0YUFsbG93Q29sbGVjdGlvbnMgPSAoXG4gIG1ldGFkYXRhOiBKc29uT2JqZWN0T3JBcnJheSB8IFBNVGlsZXNNZXRhZGF0YSxcbiAge21ldGFkYXRhVXJsLCByYXN0ZXJUaWxlVHlwZX06IHttZXRhZGF0YVVybDogc3RyaW5nOyByYXN0ZXJUaWxlVHlwZTogUmFzdGVyVGlsZVR5cGV9XG4pID0+IHtcbiAgcmV0dXJuIHJhc3RlclRpbGVUeXBlID09PSBSYXN0ZXJUaWxlVHlwZS5QTVRJTEVTXG4gICAgPyBwYXJzZVZlY3Rvck1ldGFkYXRhKG1ldGFkYXRhIGFzIFBNVGlsZXNNZXRhZGF0YSwge1xuICAgICAgICB0aWxlVXJsOiBtZXRhZGF0YVVybFxuICAgICAgfSlcbiAgICA6IHBhcnNlUmFzdGVyTWV0YWRhdGEobWV0YWRhdGEgYXMgSnNvbk9iamVjdE9yQXJyYXksIHthbGxvd0NvbGxlY3Rpb25zOiB0cnVlfSk7XG59O1xuXG5jb25zdCBSYXN0ZXJUaWxlRm9ybTogUmVhY3QuRkM8UmFzdGVyVGlsZUZvcm1Qcm9wcz4gPSAoe3NldFJlc3BvbnNlfSkgPT4ge1xuICBjb25zdCBbdGlsZU5hbWUsIHNldFRpbGVOYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbY3VycmVudFVybCwgc2V0Q3VycmVudFVybF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW21ldGFkYXRhVXJsLCBzZXRNZXRhZGF0YVVybF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3Jhc3RlclRpbGVTZXJ2ZXJVcmxzLCBzZXRSYXN0ZXJUaWxlU2VydmVyVXJsc10gPSB1c2VTdGF0ZTxzdHJpbmc+KFxuICAgIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclVybHMgfHwgW10pLmpvaW4oJywnKVxuICApO1xuXG4gIGNvbnN0IG9uVGlsZU5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0VGlsZU5hbWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9LFxuICAgIFtzZXRUaWxlTmFtZV1cbiAgKTtcblxuICBjb25zdCBvbk1ldGFkYXRhVXJsQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3Qge3ZhbHVlfSA9IGV2ZW50LnRhcmdldDtcbiAgICBzZXRNZXRhZGF0YVVybCh2YWx1ZSk7XG4gICAgc2V0VGlsZU5hbWUodmFsdWUuc3BsaXQoJy8nKS5wb3AoKSB8fCAnJyk7XG4gICAgc2V0Q3VycmVudFVybCh2YWx1ZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBvblJhc3RlclRpbGVTZXJ2ZXJVcmxzQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldFJhc3RlclRpbGVTZXJ2ZXJVcmxzKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0UmFzdGVyVGlsZVNlcnZlclVybHNdXG4gICk7XG5cbiAgY29uc3Qge1xuICAgIGRhdGE6IG1ldGFkYXRhLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3I6IG1ldGFFcnJvclxuICB9ID0gdXNlRmV0Y2hKc29uKHtcbiAgICB1cmw6IGN1cnJlbnRVcmwsXG4gICAgcmFzdGVyVGlsZVR5cGU6IGlzUE1UaWxlc1VybChjdXJyZW50VXJsKSA/IFJhc3RlclRpbGVUeXBlLlBNVElMRVMgOiBSYXN0ZXJUaWxlVHlwZS5TVEFDLFxuICAgIHByb2Nlc3M6IHBhcnNlTWV0YWRhdGFBbGxvd0NvbGxlY3Rpb25zXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRpbGVOYW1lICYmIG1ldGFkYXRhVXJsKSB7XG4gICAgICBjb25zdCBwbXRpbGVzVHlwZSA9IG1ldGFkYXRhPy5wbXRpbGVzVHlwZTtcblxuICAgICAgaWYgKHBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5NVlQpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlc3BvbnNlKHtcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignRm9yIC5wbXRpbGVzIGluIG12dCBmb3JtYXQsIHBsZWFzZSB1c2UgdGhlIFZlY3RvciBUaWxlIGZvcm0uJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBlcnJvciA9IG1ldGFFcnJvcjtcblxuICAgICAgLy8gY2hlY2sgZm9yIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFNUQUMgaXRlbXMgYW5kIGNvbGxlY3Rpb25zXG4gICAgICBsZXQgcmFzdGVyVGlsZVNlcnZlcnM7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvclxuICAgICAgICAvLyBXZSBzdGlsbCBuZWVkIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFBNVGlsZXMgd2hlbiB3ZSBwbGFuIHRvIHVzZSBlbGV2YXRpb25cbiAgICAgICkge1xuICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAubWFwKHNlcnZlciA9PiBzZXJ2ZXIudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoc2VydmVyID0+IHNlcnZlcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycy5sZW5ndGggPCAxIHx8XG4gICAgICAgICAgIXJhc3RlclRpbGVTZXJ2ZXJzLmV2ZXJ5KHNlcnZlciA9PiB2YWxpZGF0ZVVybChzZXJ2ZXIpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocG10aWxlc1R5cGUpIHtcbiAgICAgICAgICAgIC8vIEZvciByYXN0ZXIgdGlsZXMgZWxldmF0aW9uIHN1cHBvcnQgaXMgb3B0aW9uYWxcbiAgICAgICAgICAgIC8vIFRPRE8gZGlzcGxheSBhIHdhcm5pbmcsIGJ1dCBub3QgYSBibG9ja2luZyBlcnJvclxuICAgICAgICAgICAgcmFzdGVyVGlsZVNlcnZlcnMgPSBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdQcm92aWRlIHZhbGlkIHJhc3RlciB0aWxlIHNlcnZlciB1cmxzIHRvIHN1cHBvcnQgU1RBQyBhbmQgZWxldmF0aW9ucy4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gICAgICAgIG5hbWU6IHRpbGVOYW1lLFxuICAgICAgICBtZXRhZGF0YVVybCxcbiAgICAgICAgcmFzdGVyVGlsZVNlcnZlclVybHM6IHJhc3RlclRpbGVTZXJ2ZXJzXG4gICAgICB9KTtcblxuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgZGF0YXNldCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvcjogbWV0YUVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtcbiAgICBtZXRhZGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIG1ldGFFcnJvcixcbiAgICBjdXJyZW50VXJsLFxuICAgIHRpbGVOYW1lLFxuICAgIG1ldGFkYXRhVXJsLFxuICAgIHJhc3RlclRpbGVTZXJ2ZXJVcmxzLFxuICAgIHNldFJlc3BvbnNlXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFRpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZXNldC1uYW1lXCI+TmFtZTwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ0aWxlc2V0LW5hbWVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSB5b3VyIHRpbGVzZXRcIlxuICAgICAgICAgIHZhbHVlPXt0aWxlTmFtZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25UaWxlTmFtZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aWxlLW1ldGFkYXRhXCI+VGlsZXNldCBtZXRhZGF0YSBVUkw8L2xhYmVsPlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwidGlsZS1tZXRhZGF0YVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJUaWxlc2V0IG1ldGFkYXRhXCJcbiAgICAgICAgICB2YWx1ZT17bWV0YWRhdGFVcmwgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbk1ldGFkYXRhVXJsQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgICAgU3VwcG9ydHMgcmFzdGVyIC5wbXRpbGVzLiBMaW1pdGVkIHN1cHBvcnQgZm9yIFNUQUMgSXRlbXMgYW5kIENvbGxlY3Rpb25zLlxuICAgICAgICA8L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIj5SYXN0ZXIgdGlsZSBzZXJ2ZXJzPC9sYWJlbD5cbiAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICBpZD1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUmFzdGVyIHRpbGUgc2VydmVycyAoc2VwYXJhdGVkIGJ5IGNvbW1hcylcIlxuICAgICAgICAgIHZhbHVlPXtyYXN0ZXJUaWxlU2VydmVyVXJsc31cbiAgICAgICAgICBvbkNoYW5nZT17b25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgICAgPFRpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgICAgIFJhc3RlciB0aWxlIHNlcnZlciBVUkxzIGZvciBDbG91ZCBPcHRpbWl6ZWQgR2VvVElGRiB0aWxlc2V0cyBhbmQgZWxldmF0aW9uLlxuICAgICAgICA8L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9UaWxlc2V0SW5wdXRDb250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSYXN0ZXJUaWxlRm9ybTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUlBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLDJCQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFBd0MsSUFBQVMsZUFBQSxFQUFBQyxnQkFBQSxFQWhCeEM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBYix3QkFBQWEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFpQkEsSUFBTWtDLHFCQUFxQixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUF2QyxlQUFBLEtBQUFBLGVBQUEsT0FBQXdDLHVCQUFBLHFIQUt2QztBQUVELElBQU1DLHVCQUF1QixHQUFHSCw0QkFBTSxDQUFDQyxHQUFHLENBQUF0QyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBdUMsdUJBQUEsa0ZBRS9CLFVBQUFFLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsUUFBUTtBQUFBLEVBRXZDO0FBUU0sU0FBU0Msa0NBQWtDQSxDQUFBQyxJQUFBLEVBSUQ7RUFBQSxJQUgvQ0MsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7SUFDSkMsV0FBVyxHQUFBRixJQUFBLENBQVhFLFdBQVc7SUFDWEMsb0JBQW9CLEdBQUFILElBQUEsQ0FBcEJHLG9CQUFvQjtFQUVwQixPQUFPO0lBQ0xGLElBQUksRUFBSkEsSUFBSTtJQUNKRyxJQUFJLEVBQUVDLHNCQUFXLENBQUNDLFdBQVc7SUFDN0JDLFFBQVEsRUFBQXZCLGFBQUE7TUFDTmtCLFdBQVcsRUFBWEE7SUFBVyxHQUNQQyxvQkFBb0IsR0FBRztNQUFDQSxvQkFBb0IsRUFBcEJBO0lBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7RUFFMUQsQ0FBQztBQUNIO0FBTUEsSUFBTUssNkJBQTZCLEdBQUcsU0FBaENBLDZCQUE2QkEsQ0FDakNELFFBQTZDLEVBQUFFLEtBQUEsRUFFMUM7RUFBQSxJQURGUCxXQUFXLEdBQUFPLEtBQUEsQ0FBWFAsV0FBVztJQUFFUSxjQUFjLEdBQUFELEtBQUEsQ0FBZEMsY0FBYztFQUU1QixPQUFPQSxjQUFjLEtBQUtDLHlCQUFjLENBQUNDLE9BQU8sR0FDNUMsSUFBQUMsMEJBQW1CLEVBQUNOLFFBQVEsRUFBcUI7SUFDL0NPLE9BQU8sRUFBRVo7RUFDWCxDQUFDLENBQUMsR0FDRixJQUFBYSwwQkFBbUIsRUFBQ1IsUUFBUSxFQUF1QjtJQUFDUyxnQkFBZ0IsRUFBRTtFQUFJLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRUQsSUFBTUMsY0FBNkMsR0FBRyxTQUFoREEsY0FBNkNBLENBQUFDLEtBQUEsRUFBc0I7RUFBQSxJQUFqQkMsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7RUFDakUsSUFBQUMsU0FBQSxHQUFnQyxJQUFBQyxlQUFRLEVBQVMsRUFBRSxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQTdDSSxRQUFRLEdBQUFGLFVBQUE7SUFBRUcsV0FBVyxHQUFBSCxVQUFBO0VBQzVCLElBQUFJLFVBQUEsR0FBb0MsSUFBQUwsZUFBUSxFQUFTLEVBQUUsQ0FBQztJQUFBTSxVQUFBLE9BQUFKLGVBQUEsYUFBQUcsVUFBQTtJQUFqREUsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxVQUFBLEdBQXNDLElBQUFULGVBQVEsRUFBUyxFQUFFLENBQUM7SUFBQVUsVUFBQSxPQUFBUixlQUFBLGFBQUFPLFVBQUE7SUFBbkQ1QixXQUFXLEdBQUE2QixVQUFBO0lBQUVDLGNBQWMsR0FBQUQsVUFBQTtFQUNsQyxJQUFBRSxVQUFBLEdBQXdELElBQUFaLGVBQVEsRUFDOUQsQ0FBQyxJQUFBYSwyQkFBb0IsRUFBQyxDQUFDLENBQUNDLGdCQUFnQixJQUFJLEVBQUUsRUFBRUMsSUFBSSxDQUFDLEdBQUcsQ0FDMUQsQ0FBQztJQUFBQyxVQUFBLE9BQUFkLGVBQUEsYUFBQVUsVUFBQTtJQUZNOUIsb0JBQW9CLEdBQUFrQyxVQUFBO0lBQUVDLHVCQUF1QixHQUFBRCxVQUFBO0VBSXBELElBQU1FLGdCQUFnQixHQUFHLElBQUFDLGtCQUFXLEVBQ2xDLFVBQUNDLEtBQTBDLEVBQUs7SUFDOUNBLEtBQUssQ0FBQ0MsY0FBYyxDQUFDLENBQUM7SUFDdEJqQixXQUFXLENBQUNnQixLQUFLLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO0VBQ2pDLENBQUMsRUFDRCxDQUFDbkIsV0FBVyxDQUNkLENBQUM7RUFFRCxJQUFNb0IsbUJBQW1CLEdBQUcsSUFBQUwsa0JBQVcsRUFBQyxVQUFDQyxLQUEwQyxFQUFLO0lBQ3RGQSxLQUFLLENBQUNDLGNBQWMsQ0FBQyxDQUFDO0lBQ3RCLElBQU9FLEtBQUssR0FBSUgsS0FBSyxDQUFDRSxNQUFNLENBQXJCQyxLQUFLO0lBQ1paLGNBQWMsQ0FBQ1ksS0FBSyxDQUFDO0lBQ3JCbkIsV0FBVyxDQUFDbUIsS0FBSyxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pDbEIsYUFBYSxDQUFDZSxLQUFLLENBQUM7RUFDdEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1JLDRCQUE0QixHQUFHLElBQUFSLGtCQUFXLEVBQzlDLFVBQUNDLEtBQTBDLEVBQUs7SUFDOUNBLEtBQUssQ0FBQ0MsY0FBYyxDQUFDLENBQUM7SUFDdEJKLHVCQUF1QixDQUFDRyxLQUFLLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO0VBQzdDLENBQUMsRUFDRCxDQUFDTix1QkFBdUIsQ0FDMUIsQ0FBQztFQUVELElBQUFXLGFBQUEsR0FJSSxJQUFBQyxzQ0FBWSxFQUFDO01BQ2ZDLEdBQUcsRUFBRXZCLFVBQVU7TUFDZmxCLGNBQWMsRUFBRSxJQUFBMEMseUJBQVksRUFBQ3hCLFVBQVUsQ0FBQyxHQUFHakIseUJBQWMsQ0FBQ0MsT0FBTyxHQUFHRCx5QkFBYyxDQUFDMEMsSUFBSTtNQUN2RkMsT0FBTyxFQUFFOUM7SUFDWCxDQUFDLENBQUM7SUFQTUQsUUFBUSxHQUFBMEMsYUFBQSxDQUFkTSxJQUFJO0lBQ0pDLE9BQU8sR0FBQVAsYUFBQSxDQUFQTyxPQUFPO0lBQ0FDLFNBQVMsR0FBQVIsYUFBQSxDQUFoQlMsS0FBSztFQU9QLElBQUFDLGdCQUFTLEVBQUMsWUFBTTtJQUNkLElBQUluQyxRQUFRLElBQUl0QixXQUFXLEVBQUU7TUFDM0IsSUFBTTBELFdBQVcsR0FBR3JELFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFcUQsV0FBVztNQUV6QyxJQUFJQSxXQUFXLEtBQUtDLHNCQUFXLENBQUNDLEdBQUcsRUFBRTtRQUNuQyxPQUFPM0MsV0FBVyxDQUFDO1VBQ2pCWixRQUFRLEVBQVJBLFFBQVE7VUFDUndELE9BQU8sRUFBRSxJQUFJO1VBQ2JQLE9BQU8sRUFBUEEsT0FBTztVQUNQRSxLQUFLLEVBQUUsSUFBSU0sS0FBSyxDQUFDLDhEQUE4RDtRQUNqRixDQUFDLENBQUM7TUFDSjtNQUVBLElBQUlOLEtBQUssR0FBR0QsU0FBUzs7TUFFckI7TUFDQSxJQUFJUSxpQkFBaUI7TUFDckIsSUFDRSxDQUFDUDtNQUNEO01BQUEsRUFDQTtRQUNBTyxpQkFBaUIsR0FBRzlELG9CQUFvQixDQUNyQzJDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDVm9CLEdBQUcsQ0FBQyxVQUFBQyxNQUFNO1VBQUEsT0FBSUEsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQztRQUFBLEVBQUMsQ0FDNUJ4RixNQUFNLENBQUMsVUFBQXVGLE1BQU07VUFBQSxPQUFJQSxNQUFNO1FBQUEsRUFBQztRQUMzQixJQUNFRixpQkFBaUIsQ0FBQy9FLE1BQU0sR0FBRyxDQUFDLElBQzVCLENBQUMrRSxpQkFBaUIsQ0FBQ0ksS0FBSyxDQUFDLFVBQUFGLE1BQU07VUFBQSxPQUFJLElBQUFHLHdCQUFXLEVBQUNILE1BQU0sQ0FBQztRQUFBLEVBQUMsRUFDdkQ7VUFDQSxJQUFJUCxXQUFXLEVBQUU7WUFDZjtZQUNBO1lBQ0FLLGlCQUFpQixHQUFHLEVBQUU7VUFDeEIsQ0FBQyxNQUFNO1lBQ0xQLEtBQUssR0FBRyxJQUFJTSxLQUFLLENBQ2YsdUVBQ0YsQ0FBQztVQUNIO1FBQ0Y7TUFDRjtNQUVBLElBQU1ELE9BQU8sR0FBR2hFLGtDQUFrQyxDQUFDO1FBQ2pERSxJQUFJLEVBQUV1QixRQUFRO1FBQ2R0QixXQUFXLEVBQVhBLFdBQVc7UUFDWEMsb0JBQW9CLEVBQUU4RDtNQUN4QixDQUFDLENBQUM7TUFFRjlDLFdBQVcsQ0FBQztRQUNWWixRQUFRLEVBQVJBLFFBQVE7UUFDUndELE9BQU8sRUFBUEEsT0FBTztRQUNQUCxPQUFPLEVBQVBBLE9BQU87UUFDUEUsS0FBSyxFQUFMQTtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTTtNQUNMdkMsV0FBVyxDQUFDO1FBQ1ZaLFFBQVEsRUFBUkEsUUFBUTtRQUNSd0QsT0FBTyxFQUFFLElBQUk7UUFDYlAsT0FBTyxFQUFQQSxPQUFPO1FBQ1BFLEtBQUssRUFBRUQ7TUFDVCxDQUFDLENBQUM7SUFDSjtFQUNGLENBQUMsRUFBRSxDQUNEbEQsUUFBUSxFQUNSaUQsT0FBTyxFQUNQQyxTQUFTLEVBQ1Q3QixVQUFVLEVBQ1ZKLFFBQVEsRUFDUnRCLFdBQVcsRUFDWEMsb0JBQW9CLEVBQ3BCZ0IsV0FBVyxDQUNaLENBQUM7RUFFRixvQkFDRTVFLE1BQUEsWUFBQWdJLGFBQUEsQ0FBQ2hGLHFCQUFxQixxQkFDcEJoRCxNQUFBLFlBQUFnSSxhQUFBLDJCQUNFaEksTUFBQSxZQUFBZ0ksYUFBQTtJQUFPQyxPQUFPLEVBQUM7RUFBYyxHQUFDLE1BQVcsQ0FBQyxlQUMxQ2pJLE1BQUEsWUFBQWdJLGFBQUEsQ0FBQ3RILE9BQUEsQ0FBQXdILFVBQVU7SUFDVEMsRUFBRSxFQUFDLGNBQWM7SUFDakJDLFdBQVcsRUFBQyxtQkFBbUI7SUFDL0IvQixLQUFLLEVBQUVwQixRQUFTO0lBQ2hCb0QsUUFBUSxFQUFFckM7RUFBaUIsQ0FDNUIsQ0FDRSxDQUFDLGVBQ05oRyxNQUFBLFlBQUFnSSxhQUFBLDJCQUNFaEksTUFBQSxZQUFBZ0ksYUFBQTtJQUFPQyxPQUFPLEVBQUM7RUFBZSxHQUFDLHNCQUEyQixDQUFDLGVBQzNEakksTUFBQSxZQUFBZ0ksYUFBQSxDQUFDdEgsT0FBQSxDQUFBd0gsVUFBVTtJQUNUQyxFQUFFLEVBQUMsZUFBZTtJQUNsQkMsV0FBVyxFQUFDLGtCQUFrQjtJQUM5Qi9CLEtBQUssRUFBRTFDLFdBQVcsYUFBWEEsV0FBVyxjQUFYQSxXQUFXLEdBQUkyRSxTQUFVO0lBQ2hDRCxRQUFRLEVBQUUvQjtFQUFvQixDQUMvQixDQUFDLGVBQ0Z0RyxNQUFBLFlBQUFnSSxhQUFBLENBQUM1RSx1QkFBdUIsUUFBQywyRUFFQSxDQUN0QixDQUFDLGVBQ05wRCxNQUFBLFlBQUFnSSxhQUFBLDJCQUNFaEksTUFBQSxZQUFBZ0ksYUFBQTtJQUFPQyxPQUFPLEVBQUM7RUFBd0IsR0FBQyxxQkFBMEIsQ0FBQyxlQUNuRWpJLE1BQUEsWUFBQWdJLGFBQUEsQ0FBQ3RILE9BQUEsQ0FBQXdILFVBQVU7SUFDVEMsRUFBRSxFQUFDLHdCQUF3QjtJQUMzQkMsV0FBVyxFQUFDLDJDQUEyQztJQUN2RC9CLEtBQUssRUFBRXpDLG9CQUFxQjtJQUM1QnlFLFFBQVEsRUFBRTVCO0VBQTZCLENBQ3hDLENBQUMsZUFDRnpHLE1BQUEsWUFBQWdJLGFBQUEsQ0FBQzVFLHVCQUF1QixRQUFDLDZFQUVBLENBQ3RCLENBQ2dCLENBQUM7QUFFNUIsQ0FBQztBQUFDLElBQUFtRixRQUFBLEdBQUFDLE9BQUEsY0FFYTlELGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3VzZUZldGNoUmFzdGVyVGlsZU1ldGFkYXRhIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJUaWxlc2V0SW5wdXRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlRpbGVzZXRJbnB1dERlc2NyaXB0aW9uIiwicHJvcHMiLCJ0aGVtZSIsIkFaVVJFMjAwIiwiZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSIsIl9yZWYiLCJuYW1lIiwibWV0YWRhdGFVcmwiLCJyYXN0ZXJUaWxlU2VydmVyVXJscyIsInR5cGUiLCJEYXRhc2V0VHlwZSIsIlJBU1RFUl9USUxFIiwibWV0YWRhdGEiLCJwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyIsIl9yZWYyIiwicmFzdGVyVGlsZVR5cGUiLCJSYXN0ZXJUaWxlVHlwZSIsIlBNVElMRVMiLCJwYXJzZVZlY3Rvck1ldGFkYXRhIiwidGlsZVVybCIsInBhcnNlUmFzdGVyTWV0YWRhdGEiLCJhbGxvd0NvbGxlY3Rpb25zIiwiUmFzdGVyVGlsZUZvcm0iLCJfcmVmMyIsInNldFJlc3BvbnNlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidGlsZU5hbWUiLCJzZXRUaWxlTmFtZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwidGlsZU5hbWVXYXNNb2RpZmllZCIsInNldFRpbGVOYW1lV2FzTW9kaWZpZWQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldE1ldGFkYXRhVXJsIiwiX3VzZVN0YXRlNyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwicmFzdGVyU2VydmVyVXJscyIsImpvaW4iLCJfdXNlU3RhdGU4Iiwic2V0UmFzdGVyVGlsZVNlcnZlclVybHMiLCJjbGVhcmVkTWV0YWRhdGFVcmwiLCJlbmRzV2l0aCIsInNsaWNlIiwib25UaWxlTmFtZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsInZhbHVlIiwib25NZXRhZGF0YVVybENoYW5nZSIsInNwbGl0IiwiQm9vbGVhbiIsInBvcCIsIm9uUmFzdGVyVGlsZVNlcnZlclVybHNDaGFuZ2UiLCJfdXNlRmV0Y2hKc29uIiwidXNlRmV0Y2hKc29uIiwidXJsIiwiaXNQTVRpbGVzVXJsIiwiU1RBQyIsInByb2Nlc3MiLCJkYXRhIiwibG9hZGluZyIsIm1ldGFFcnJvciIsImVycm9yIiwidXNlRWZmZWN0IiwicG10aWxlc1R5cGUiLCJQTVRpbGVzVHlwZSIsIk1WVCIsImRhdGFzZXQiLCJFcnJvciIsInJhc3RlclRpbGVTZXJ2ZXJzIiwibWFwIiwic2VydmVyIiwidHJpbSIsImV2ZXJ5IiwidmFsaWRhdGVVcmwiLCJzaG93U2VydmVySW5wdXQiLCJyYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQiLCJjcmVhdGVFbGVtZW50IiwiaHRtbEZvciIsIklucHV0TGlnaHQiLCJpZCIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kYWxzL3RpbGVzZXRzLW1vZGFscy90aWxlc2V0LXJhc3Rlci1mb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7UE1UaWxlc01ldGFkYXRhfSBmcm9tICdAbG9hZGVycy5nbC9wbXRpbGVzJztcblxuaW1wb3J0IHtpc1BNVGlsZXNVcmwsIHZhbGlkYXRlVXJsfSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0RhdGFzZXRUeXBlLCBSYXN0ZXJUaWxlVHlwZSwgUE1UaWxlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SnNvbk9iamVjdE9yQXJyYXl9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtwYXJzZVJhc3Rlck1ldGFkYXRhLCBwYXJzZVZlY3Rvck1ldGFkYXRhfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge2RlZmF1bHQgYXMgdXNlRmV0Y2hKc29ufSBmcm9tICcuLi8uLi9ob29rcy91c2UtZmV0Y2gtcmFzdGVyLXRpbGUtbWV0YWRhdGEnO1xuaW1wb3J0IHtEYXRhc2V0Q3JlYXRpb25BdHRyaWJ1dGVzLCBNZXRhUmVzcG9uc2V9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7SW5wdXRMaWdodH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuY29uc3QgVGlsZXNldElucHV0Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMywgMWZyKTtcbiAgcm93LWdhcDogMThweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYDtcblxuY29uc3QgVGlsZXNldElucHV0RGVzY3JpcHRpb24gPSBzdHlsZWQuZGl2YFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuYDtcblxuZXhwb3J0IHR5cGUgUmFzdGVyVGlsZXNldE1ldGEgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YWRhdGFVcmw6IHN0cmluZztcbiAgcmFzdGVyVGlsZVNlcnZlclVybHM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhc2V0QXR0cmlidXRlc0Zyb21SYXN0ZXJUaWxlKHtcbiAgbmFtZSxcbiAgbWV0YWRhdGFVcmwsXG4gIHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG59OiBSYXN0ZXJUaWxlc2V0TWV0YSk6IERhdGFzZXRDcmVhdGlvbkF0dHJpYnV0ZXMge1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZTogRGF0YXNldFR5cGUuUkFTVEVSX1RJTEUsXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIG1ldGFkYXRhVXJsLFxuICAgICAgLi4uKHJhc3RlclRpbGVTZXJ2ZXJVcmxzID8ge3Jhc3RlclRpbGVTZXJ2ZXJVcmxzfSA6IHt9KVxuICAgIH1cbiAgfTtcbn1cblxudHlwZSBSYXN0ZXJUaWxlRm9ybVByb3BzID0ge1xuICBzZXRSZXNwb25zZTogKHJlc3BvbnNlOiBNZXRhUmVzcG9uc2UpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBwYXJzZU1ldGFkYXRhQWxsb3dDb2xsZWN0aW9ucyA9IChcbiAgbWV0YWRhdGE6IEpzb25PYmplY3RPckFycmF5IHwgUE1UaWxlc01ldGFkYXRhLFxuICB7bWV0YWRhdGFVcmwsIHJhc3RlclRpbGVUeXBlfToge21ldGFkYXRhVXJsOiBzdHJpbmc7IHJhc3RlclRpbGVUeXBlOiBSYXN0ZXJUaWxlVHlwZX1cbikgPT4ge1xuICByZXR1cm4gcmFzdGVyVGlsZVR5cGUgPT09IFJhc3RlclRpbGVUeXBlLlBNVElMRVNcbiAgICA/IHBhcnNlVmVjdG9yTWV0YWRhdGEobWV0YWRhdGEgYXMgUE1UaWxlc01ldGFkYXRhLCB7XG4gICAgICAgIHRpbGVVcmw6IG1ldGFkYXRhVXJsXG4gICAgICB9KVxuICAgIDogcGFyc2VSYXN0ZXJNZXRhZGF0YShtZXRhZGF0YSBhcyBKc29uT2JqZWN0T3JBcnJheSwge2FsbG93Q29sbGVjdGlvbnM6IHRydWV9KTtcbn07XG5cbmNvbnN0IFJhc3RlclRpbGVGb3JtOiBSZWFjdC5GQzxSYXN0ZXJUaWxlRm9ybVByb3BzPiA9ICh7c2V0UmVzcG9uc2V9KSA9PiB7XG4gIGNvbnN0IFt0aWxlTmFtZSwgc2V0VGlsZU5hbWVdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFt0aWxlTmFtZVdhc01vZGlmaWVkLCBzZXRUaWxlTmFtZVdhc01vZGlmaWVkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW21ldGFkYXRhVXJsLCBzZXRNZXRhZGF0YVVybF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3Jhc3RlclRpbGVTZXJ2ZXJVcmxzLCBzZXRSYXN0ZXJUaWxlU2VydmVyVXJsc10gPSB1c2VTdGF0ZTxzdHJpbmc+KFxuICAgIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclVybHMgfHwgW10pLmpvaW4oJywnKVxuICApO1xuXG4gIC8vIFJlbW92ZSB0cmFpbGluZyBzbGFzaCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIHJhc3RlciB0aWxlIHNlcnZlcnNcbiAgY29uc3QgY2xlYXJlZE1ldGFkYXRhVXJsID0gbWV0YWRhdGFVcmwuZW5kc1dpdGgoJy8nKSA/IG1ldGFkYXRhVXJsLnNsaWNlKDAsIC0xKSA6IG1ldGFkYXRhVXJsO1xuXG4gIGNvbnN0IG9uVGlsZU5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0VGlsZU5hbWVXYXNNb2RpZmllZCh0cnVlKTtcbiAgICAgIHNldFRpbGVOYW1lKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0VGlsZU5hbWVdXG4gICk7XG5cbiAgY29uc3Qgb25NZXRhZGF0YVVybENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjb25zdCB7dmFsdWV9ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgc2V0TWV0YWRhdGFVcmwodmFsdWUpO1xuXG4gICAgICBpZiAoIXRpbGVOYW1lV2FzTW9kaWZpZWQpIHtcbiAgICAgICAgc2V0VGlsZU5hbWUodmFsdWUuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikucG9wKCkgfHwgJycpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3RpbGVOYW1lV2FzTW9kaWZpZWRdXG4gICk7XG5cbiAgY29uc3Qgb25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzZXRSYXN0ZXJUaWxlU2VydmVyVXJscyhldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0sXG4gICAgW3NldFJhc3RlclRpbGVTZXJ2ZXJVcmxzXVxuICApO1xuXG4gIGNvbnN0IHtcbiAgICBkYXRhOiBtZXRhZGF0YSxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yOiBtZXRhRXJyb3JcbiAgfSA9IHVzZUZldGNoSnNvbih7XG4gICAgdXJsOiBjbGVhcmVkTWV0YWRhdGFVcmwsXG4gICAgcmFzdGVyVGlsZVR5cGU6IGlzUE1UaWxlc1VybChjbGVhcmVkTWV0YWRhdGFVcmwpID8gUmFzdGVyVGlsZVR5cGUuUE1USUxFUyA6IFJhc3RlclRpbGVUeXBlLlNUQUMsXG4gICAgcHJvY2VzczogcGFyc2VNZXRhZGF0YUFsbG93Q29sbGVjdGlvbnNcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGlsZU5hbWUgJiYgY2xlYXJlZE1ldGFkYXRhVXJsKSB7XG4gICAgICBjb25zdCBwbXRpbGVzVHlwZSA9IG1ldGFkYXRhPy5wbXRpbGVzVHlwZTtcblxuICAgICAgaWYgKHBtdGlsZXNUeXBlID09PSBQTVRpbGVzVHlwZS5NVlQpIHtcbiAgICAgICAgcmV0dXJuIHNldFJlc3BvbnNlKHtcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignRm9yIC5wbXRpbGVzIGluIG12dCBmb3JtYXQsIHBsZWFzZSB1c2UgdGhlIFZlY3RvciBUaWxlIGZvcm0uJylcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBlcnJvciA9IG1ldGFFcnJvcjtcblxuICAgICAgLy8gY2hlY2sgZm9yIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFNUQUMgaXRlbXMgYW5kIGNvbGxlY3Rpb25zXG4gICAgICBsZXQgcmFzdGVyVGlsZVNlcnZlcnM7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvclxuICAgICAgICAvLyBXZSBzdGlsbCBuZWVkIHJhc3RlciB0aWxlIHNlcnZlcnMgZm9yIFBNVGlsZXMgd2hlbiB3ZSBwbGFuIHRvIHVzZSBlbGV2YXRpb25cbiAgICAgICkge1xuICAgICAgICByYXN0ZXJUaWxlU2VydmVycyA9IHJhc3RlclRpbGVTZXJ2ZXJVcmxzXG4gICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAubWFwKHNlcnZlciA9PiBzZXJ2ZXIudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoc2VydmVyID0+IHNlcnZlcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXN0ZXJUaWxlU2VydmVycy5sZW5ndGggPCAxIHx8XG4gICAgICAgICAgIXJhc3RlclRpbGVTZXJ2ZXJzLmV2ZXJ5KHNlcnZlciA9PiB2YWxpZGF0ZVVybChzZXJ2ZXIpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocG10aWxlc1R5cGUpIHtcbiAgICAgICAgICAgIC8vIEZvciByYXN0ZXIgdGlsZXMgZWxldmF0aW9uIHN1cHBvcnQgaXMgb3B0aW9uYWxcbiAgICAgICAgICAgIC8vIFRPRE8gZGlzcGxheSBhIHdhcm5pbmcsIGJ1dCBub3QgYSBibG9ja2luZyBlcnJvclxuICAgICAgICAgICAgcmFzdGVyVGlsZVNlcnZlcnMgPSBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdQcm92aWRlIHZhbGlkIHJhc3RlciB0aWxlIHNlcnZlciB1cmxzIHRvIHN1cHBvcnQgU1RBQyBhbmQgZWxldmF0aW9ucy4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0RGF0YXNldEF0dHJpYnV0ZXNGcm9tUmFzdGVyVGlsZSh7XG4gICAgICAgIG5hbWU6IHRpbGVOYW1lLFxuICAgICAgICBtZXRhZGF0YVVybDogY2xlYXJlZE1ldGFkYXRhVXJsLFxuICAgICAgICByYXN0ZXJUaWxlU2VydmVyVXJsczogcmFzdGVyVGlsZVNlcnZlcnNcbiAgICAgIH0pO1xuXG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICBkYXRhc2V0LFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFJlc3BvbnNlKHtcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIGRhdGFzZXQ6IG51bGwsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGVycm9yOiBtZXRhRXJyb3JcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW1xuICAgIG1ldGFkYXRhLFxuICAgIGxvYWRpbmcsXG4gICAgbWV0YUVycm9yLFxuICAgIHRpbGVOYW1lLFxuICAgIGNsZWFyZWRNZXRhZGF0YVVybCxcbiAgICByYXN0ZXJUaWxlU2VydmVyVXJscyxcbiAgICBzZXRSZXNwb25zZVxuICBdKTtcblxuICBjb25zdCBzaG93U2VydmVySW5wdXQgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dDtcblxuICByZXR1cm4gKFxuICAgIDxUaWxlc2V0SW5wdXRDb250YWluZXI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInRpbGVzZXQtbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwidGlsZXNldC1uYW1lXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUgeW91ciB0aWxlc2V0XCJcbiAgICAgICAgICB2YWx1ZT17dGlsZU5hbWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uVGlsZU5hbWVDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZS1tZXRhZGF0YVwiPlRpbGVzZXQgbWV0YWRhdGEgVVJMPC9sYWJlbD5cbiAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICBpZD1cInRpbGUtbWV0YWRhdGFcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVGlsZXNldCBtZXRhZGF0YSBVUkxcIlxuICAgICAgICAgIHZhbHVlPXttZXRhZGF0YVVybCA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgb25DaGFuZ2U9e29uTWV0YWRhdGFVcmxDaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICBTdXBwb3J0cyByYXN0ZXIgLnBtdGlsZXMuIExpbWl0ZWQgc3VwcG9ydCBmb3IgU1RBQyBJdGVtcyBhbmQgQ29sbGVjdGlvbnMuXG4gICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtzaG93U2VydmVySW5wdXQgJiYgKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlsZXNldC1yYXN0ZXItc2VydmVyc1wiPlJhc3RlciB0aWxlIHNlcnZlcnM8L2xhYmVsPlxuICAgICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgICBpZD1cInRpbGVzZXQtcmFzdGVyLXNlcnZlcnNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJSYXN0ZXIgdGlsZSBzZXJ2ZXJzIChzZXBhcmF0ZWQgYnkgY29tbWFzKVwiXG4gICAgICAgICAgICB2YWx1ZT17cmFzdGVyVGlsZVNlcnZlclVybHN9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25SYXN0ZXJUaWxlU2VydmVyVXJsc0NoYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxUaWxlc2V0SW5wdXREZXNjcmlwdGlvbj5cbiAgICAgICAgICAgIFJhc3RlciB0aWxlIHNlcnZlciBVUkxzIGZvciBDbG91ZCBPcHRpbWl6ZWQgR2VvVElGRiB0aWxlc2V0cyBhbmQgZWxldmF0aW9uLlxuICAgICAgICAgIDwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L1RpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJhc3RlclRpbGVGb3JtO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sMkJBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUF3QyxJQUFBUyxlQUFBLEVBQUFDLGdCQUFBLEVBaEJ4QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFiLHdCQUFBYSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFB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SUFBTXdELGVBQWUsR0FBRyxJQUFBekMsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDMEMsMkJBQTJCO0VBRTFFLG9CQUNFckksTUFBQSxZQUFBc0ksYUFBQSxDQUFDdEYscUJBQXFCLHFCQUNwQmhELE1BQUEsWUFBQXNJLGFBQUEsMkJBQ0V0SSxNQUFBLFlBQUFzSSxhQUFBO0lBQU9DLE9BQU8sRUFBQztFQUFjLEdBQUMsTUFBVyxDQUFDLGVBQzFDdkksTUFBQSxZQUFBc0ksYUFBQSxDQUFDNUgsT0FBQSxDQUFBOEgsVUFBVTtJQUNUQyxFQUFFLEVBQUMsY0FBYztJQUNqQkMsV0FBVyxFQUFDLG1CQUFtQjtJQUMvQmxDLEtBQUssRUFBRXZCLFFBQVM7SUFDaEIwRCxRQUFRLEVBQUV4QztFQUFpQixDQUM1QixDQUNFLENBQUMsZUFDTm5HLE1BQUEsWUFBQXNJLGFBQUEsMkJBQ0V0SSxNQUFBLFlBQUFzSSxhQUFBO0lBQU9DLE9BQU8sRUFBQztFQUFlLEdBQUMsc0JBQTJCLENBQUMsZUFDM0R2SSxNQUFBLFlBQUFzSSxhQUFBLENBQUM1SCxPQUFBLENBQUE4SCxVQUFVO0lBQ1RDLEVBQUUsRUFBQyxlQUFlO0lBQ2xCQyxXQUFXLEVBQUMsc0JBQXNCO0lBQ2xDbEMsS0FBSyxFQUFFN0MsV0FBVyxhQUFYQSxXQUFXLGNBQVhBLFdBQVcsR0FBSWlGLFNBQVU7SUFDaENELFFBQVEsRUFBRWxDO0VBQW9CLENBQy9CLENBQUMsZUFDRnpHLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQ2xGLHVCQUF1QixRQUFDLDJFQUVBLENBQ3RCLENBQUMsRUFDTGdGLGVBQWUsaUJBQ2RwSSxNQUFBLFlBQUFzSSxhQUFBLDJCQUNFdEksTUFBQSxZQUFBc0ksYUFBQTtJQUFPQyxPQUFPLEVBQUM7RUFBd0IsR0FBQyxxQkFBMEIsQ0FBQyxlQUNuRXZJLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQzVILE9BQUEsQ0FBQThILFVBQVU7SUFDVEMsRUFBRSxFQUFDLHdCQUF3QjtJQUMzQkMsV0FBVyxFQUFDLDJDQUEyQztJQUN2RGxDLEtBQUssRUFBRTVDLG9CQUFxQjtJQUM1QitFLFFBQVEsRUFBRTlCO0VBQTZCLENBQ3hDLENBQUMsZUFDRjdHLE1BQUEsWUFBQXNJLGFBQUEsQ0FBQ2xGLHVCQUF1QixRQUFDLDZFQUVBLENBQ3RCLENBRWMsQ0FBQztBQUU1QixDQUFDO0FBQUMsSUFBQXlGLFFBQUEsR0FBQUMsT0FBQSxjQUVhcEUsY0FBYyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,163 @@
|
|
|
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"] = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
var _commonUtils = require("@kepler.gl/common-utils");
|
|
16
|
+
var _constants = require("@kepler.gl/constants");
|
|
17
|
+
var _table = require("@kepler.gl/table");
|
|
18
|
+
var _common = require("../../common");
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
20
|
+
// Copyright contributors to the kepler.gl project
|
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
23
|
+
var TilesetInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n grid-template-rows: repeat(3, auto);\n row-gap: 18px;\n font-size: 12px;\n"])));
|
|
24
|
+
var TilesetInputDescription = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: center;\n color: ", ";\n font-size: 11px;\n"])), function (props) {
|
|
25
|
+
return props.theme.AZURE200;
|
|
26
|
+
});
|
|
27
|
+
var ExampleUrlsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n color: ", ";\n font-size: 11px;\n\n .example-url {\n margin-top: 8px;\n display: block;\n }\n"])), function (props) {
|
|
28
|
+
return props.theme.AZURE200;
|
|
29
|
+
});
|
|
30
|
+
var TilesetWMSForm = function TilesetWMSForm(_ref) {
|
|
31
|
+
var setResponse = _ref.setResponse;
|
|
32
|
+
var _useState = (0, _react.useState)(''),
|
|
33
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
34
|
+
layerName = _useState2[0],
|
|
35
|
+
setLayerName = _useState2[1];
|
|
36
|
+
var _useState3 = (0, _react.useState)(''),
|
|
37
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
38
|
+
wmsUrl = _useState4[0],
|
|
39
|
+
setWmsUrl = _useState4[1];
|
|
40
|
+
var _useState5 = (0, _react.useState)(false),
|
|
41
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
42
|
+
loading = _useState6[0],
|
|
43
|
+
setLoading = _useState6[1];
|
|
44
|
+
var _useState7 = (0, _react.useState)(null),
|
|
45
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
46
|
+
error = _useState8[0],
|
|
47
|
+
setError = _useState8[1];
|
|
48
|
+
var _useState9 = (0, _react.useState)(null),
|
|
49
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
50
|
+
wmsData = _useState10[0],
|
|
51
|
+
setWMSData = _useState10[1];
|
|
52
|
+
var onLayerNameChange = (0, _react.useCallback)(function (event) {
|
|
53
|
+
event.preventDefault();
|
|
54
|
+
setLayerName(event.target.value);
|
|
55
|
+
}, [setLayerName]);
|
|
56
|
+
var onWmsUrlChange = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
57
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(event) {
|
|
58
|
+
var newWmsUrl, data, datasetMetadata, serviceTitle;
|
|
59
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
60
|
+
while (1) switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
newWmsUrl = event.target.value;
|
|
64
|
+
setWmsUrl(newWmsUrl);
|
|
65
|
+
if ((0, _commonUtils.validateUrl)(newWmsUrl)) {
|
|
66
|
+
_context.next = 6;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
setWMSData(null);
|
|
70
|
+
return _context.abrupt("return");
|
|
71
|
+
case 6:
|
|
72
|
+
_context.prev = 6;
|
|
73
|
+
setLoading(true);
|
|
74
|
+
setError(null);
|
|
75
|
+
_context.next = 11;
|
|
76
|
+
return (0, _table.getWMSCapabilities)(newWmsUrl);
|
|
77
|
+
case 11:
|
|
78
|
+
data = _context.sent;
|
|
79
|
+
datasetMetadata = (0, _table.wmsCapabilitiesToDatasetMetadata)(data); // Extract name or title from GetCapabilities response
|
|
80
|
+
serviceTitle = (data === null || data === void 0 ? void 0 : data.title) || (data === null || data === void 0 ? void 0 : data.name);
|
|
81
|
+
if (serviceTitle && !layerName) {
|
|
82
|
+
setLayerName(serviceTitle);
|
|
83
|
+
}
|
|
84
|
+
setWMSData({
|
|
85
|
+
metadata: data,
|
|
86
|
+
layers: datasetMetadata.layers,
|
|
87
|
+
version: datasetMetadata.version
|
|
88
|
+
});
|
|
89
|
+
_context.next = 22;
|
|
90
|
+
break;
|
|
91
|
+
case 18:
|
|
92
|
+
_context.prev = 18;
|
|
93
|
+
_context.t0 = _context["catch"](6);
|
|
94
|
+
setError(_context.t0 instanceof Error ? _context.t0 : new Error('Unknown error'));
|
|
95
|
+
setWMSData(null);
|
|
96
|
+
case 22:
|
|
97
|
+
_context.prev = 22;
|
|
98
|
+
setLoading(false);
|
|
99
|
+
return _context.finish(22);
|
|
100
|
+
case 25:
|
|
101
|
+
case "end":
|
|
102
|
+
return _context.stop();
|
|
103
|
+
}
|
|
104
|
+
}, _callee, null, [[6, 18, 22, 25]]);
|
|
105
|
+
}));
|
|
106
|
+
return function (_x) {
|
|
107
|
+
return _ref2.apply(this, arguments);
|
|
108
|
+
};
|
|
109
|
+
}(), [layerName]);
|
|
110
|
+
(0, _react.useEffect)(function () {
|
|
111
|
+
if (layerName && wmsUrl) {
|
|
112
|
+
var _wmsData$metadata;
|
|
113
|
+
var dataset = {
|
|
114
|
+
name: layerName,
|
|
115
|
+
type: _constants.DatasetType.WMS_TILE,
|
|
116
|
+
metadata: {
|
|
117
|
+
type: _constants.REMOTE_TILE,
|
|
118
|
+
remoteTileFormat: _constants.RemoteTileFormat.WMS,
|
|
119
|
+
tilesetDataUrl: wmsUrl,
|
|
120
|
+
tilesetMetadataUrl: "".concat(wmsUrl, "?service=WMS&request=GetCapabilities"),
|
|
121
|
+
layers: (wmsData === null || wmsData === void 0 ? void 0 : wmsData.layers) || [],
|
|
122
|
+
wmsVersion: (wmsData === null || wmsData === void 0 ? void 0 : wmsData.version) || '1.3.0'
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
setResponse({
|
|
126
|
+
metadata: (_wmsData$metadata = wmsData === null || wmsData === void 0 ? void 0 : wmsData.metadata) !== null && _wmsData$metadata !== void 0 ? _wmsData$metadata : null,
|
|
127
|
+
dataset: dataset,
|
|
128
|
+
loading: loading,
|
|
129
|
+
error: error
|
|
130
|
+
});
|
|
131
|
+
} else {
|
|
132
|
+
setResponse({
|
|
133
|
+
metadata: null,
|
|
134
|
+
dataset: null,
|
|
135
|
+
loading: loading,
|
|
136
|
+
error: error
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}, [setResponse, layerName, wmsUrl, wmsData, loading, error]);
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(TilesetInputContainer, null, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
141
|
+
htmlFor: "layer-name"
|
|
142
|
+
}, "Name"), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
143
|
+
id: "layer-name",
|
|
144
|
+
placeholder: "Name your WMS layer",
|
|
145
|
+
value: layerName,
|
|
146
|
+
onChange: onLayerNameChange
|
|
147
|
+
})), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
148
|
+
htmlFor: "wms-url"
|
|
149
|
+
}, "WMS URL"), /*#__PURE__*/_react["default"].createElement(_common.InputLight, {
|
|
150
|
+
id: "wms-url",
|
|
151
|
+
placeholder: "Enter WMS URL",
|
|
152
|
+
value: wmsUrl,
|
|
153
|
+
onChange: onWmsUrlChange
|
|
154
|
+
}), /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "Provide a valid WMS service URL.")), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(TilesetInputDescription, null, "For example, try a public WMS URL:"), /*#__PURE__*/_react["default"].createElement(ExampleUrlsContainer, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
155
|
+
className: "example-url"
|
|
156
|
+
}, "\u2022 https://ows.terrestris.de/osm/service"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
157
|
+
className: "example-url"
|
|
158
|
+
}, "\u2022 https://opengeo.ncep.noaa.gov/geoserver/conus/conus_cref_qcd/ows"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
|
+
className: "example-url"
|
|
160
|
+
}, "\u2022 https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi"))));
|
|
161
|
+
};
|
|
162
|
+
var _default = exports["default"] = TilesetWMSForm;
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX2NvbW1vbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiVGlsZXNldElucHV0Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJUaWxlc2V0SW5wdXREZXNjcmlwdGlvbiIsInByb3BzIiwidGhlbWUiLCJBWlVSRTIwMCIsIkV4YW1wbGVVcmxzQ29udGFpbmVyIiwiVGlsZXNldFdNU0Zvcm0iLCJfcmVmIiwic2V0UmVzcG9uc2UiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYXllck5hbWUiLCJzZXRMYXllck5hbWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIndtc1VybCIsInNldFdtc1VybCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ3bXNEYXRhIiwic2V0V01TRGF0YSIsIm9uTGF5ZXJOYW1lQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFyZ2V0IiwidmFsdWUiLCJvbldtc1VybENoYW5nZSIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJuZXdXbXNVcmwiLCJkYXRhIiwiZGF0YXNldE1ldGFkYXRhIiwic2VydmljZVRpdGxlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInZhbGlkYXRlVXJsIiwiYWJydXB0IiwiZ2V0V01TQ2FwYWJpbGl0aWVzIiwic2VudCIsIndtc0NhcGFiaWxpdGllc1RvRGF0YXNldE1ldGFkYXRhIiwidGl0bGUiLCJuYW1lIiwibWV0YWRhdGEiLCJsYXllcnMiLCJ2ZXJzaW9uIiwidDAiLCJFcnJvciIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwidXNlRWZmZWN0IiwiX3dtc0RhdGEkbWV0YWRhdGEiLCJkYXRhc2V0IiwidHlwZSIsIkRhdGFzZXRUeXBlIiwiV01TX1RJTEUiLCJSRU1PVEVfVElMRSIsInJlbW90ZVRpbGVGb3JtYXQiLCJSZW1vdGVUaWxlRm9ybWF0IiwiV01TIiwidGlsZXNldERhdGFVcmwiLCJ0aWxlc2V0TWV0YWRhdGFVcmwiLCJjb25jYXQiLCJ3bXNWZXJzaW9uIiwiY3JlYXRlRWxlbWVudCIsImh0bWxGb3IiLCJJbnB1dExpZ2h0IiwiaWQiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwiY2xhc3NOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy90aWxlc2V0cy1tb2RhbHMvdGlsZXNldC13bXMtZm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtXTVNDYXBhYmlsaXRpZXN9IGZyb20gJ0Bsb2FkZXJzLmdsL3dtcyc7XG5cbmltcG9ydCB7dmFsaWRhdGVVcmx9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RGF0YXNldFR5cGUsIFJFTU9URV9USUxFLCBSZW1vdGVUaWxlRm9ybWF0LCBXTVNEYXRhc2V0TWV0YWRhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Z2V0V01TQ2FwYWJpbGl0aWVzLCB3bXNDYXBhYmlsaXRpZXNUb0RhdGFzZXRNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7TWV0YVJlc3BvbnNlfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQge0lucHV0TGlnaHR9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmNvbnN0IFRpbGVzZXRJbnB1dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDMsIGF1dG8pO1xuICByb3ctZ2FwOiAxOHB4O1xuICBmb250LXNpemU6IDEycHg7XG5gO1xuXG5jb25zdCBUaWxlc2V0SW5wdXREZXNjcmlwdGlvbiA9IHN0eWxlZC5kaXZgXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuQVpVUkUyMDB9O1xuICBmb250LXNpemU6IDExcHg7XG5gO1xuXG5jb25zdCBFeGFtcGxlVXJsc0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkFaVVJFMjAwfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuXG4gIC5leGFtcGxlLXVybCB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5gO1xuXG50eXBlIFdNU1RpbGVGb3JtUHJvcHMgPSB7XG4gIHNldFJlc3BvbnNlOiAocmVzcG9uc2U6IE1ldGFSZXNwb25zZSkgPT4gdm9pZDtcbn07XG5cbnR5cGUgV01TRGF0YSA9IHtcbiAgbWV0YWRhdGE6IFdNU0NhcGFiaWxpdGllcyB8IG51bGw7XG4gIGxheWVyczogV01TRGF0YXNldE1ldGFkYXRhWydsYXllcnMnXTtcbiAgdmVyc2lvbjogc3RyaW5nO1xufTtcblxuY29uc3QgVGlsZXNldFdNU0Zvcm06IFJlYWN0LkZDPFdNU1RpbGVGb3JtUHJvcHM+ID0gKHtzZXRSZXNwb25zZX0pID0+IHtcbiAgY29uc3QgW2xheWVyTmFtZSwgc2V0TGF5ZXJOYW1lXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBbd21zVXJsLCBzZXRXbXNVcmxdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxFcnJvciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbd21zRGF0YSwgc2V0V01TRGF0YV0gPSB1c2VTdGF0ZTxXTVNEYXRhIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3Qgb25MYXllck5hbWVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0TGF5ZXJOYW1lKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSxcbiAgICBbc2V0TGF5ZXJOYW1lXVxuICApO1xuXG4gIGNvbnN0IG9uV21zVXJsQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG5ld1dtc1VybCA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHNldFdtc1VybChuZXdXbXNVcmwpO1xuXG4gICAgICBpZiAoIXZhbGlkYXRlVXJsKG5ld1dtc1VybCkpIHtcbiAgICAgICAgc2V0V01TRGF0YShudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBGZXRjaCBXTVMgR2V0Q2FwYWJpbGl0aWVzXG4gICAgICB0cnkge1xuICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICBzZXRFcnJvcihudWxsKTtcblxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0V01TQ2FwYWJpbGl0aWVzKG5ld1dtc1VybCk7XG5cbiAgICAgICAgY29uc3QgZGF0YXNldE1ldGFkYXRhID0gd21zQ2FwYWJpbGl0aWVzVG9EYXRhc2V0TWV0YWRhdGEoZGF0YSk7XG5cbiAgICAgICAgLy8gRXh0cmFjdCBuYW1lIG9yIHRpdGxlIGZyb20gR2V0Q2FwYWJpbGl0aWVzIHJlc3BvbnNlXG4gICAgICAgIGNvbnN0IHNlcnZpY2VUaXRsZSA9IGRhdGE/LnRpdGxlIHx8IGRhdGE/Lm5hbWU7XG4gICAgICAgIGlmIChzZXJ2aWNlVGl0bGUgJiYgIWxheWVyTmFtZSkge1xuICAgICAgICAgIHNldExheWVyTmFtZShzZXJ2aWNlVGl0bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0V01TRGF0YSh7XG4gICAgICAgICAgbWV0YWRhdGE6IGRhdGEsXG4gICAgICAgICAgbGF5ZXJzOiBkYXRhc2V0TWV0YWRhdGEubGF5ZXJzLFxuICAgICAgICAgIHZlcnNpb246IGRhdGFzZXRNZXRhZGF0YS52ZXJzaW9uXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyIDogbmV3IEVycm9yKCdVbmtub3duIGVycm9yJykpO1xuICAgICAgICBzZXRXTVNEYXRhKG51bGwpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbbGF5ZXJOYW1lXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxheWVyTmFtZSAmJiB3bXNVcmwpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSB7XG4gICAgICAgIG5hbWU6IGxheWVyTmFtZSxcbiAgICAgICAgdHlwZTogRGF0YXNldFR5cGUuV01TX1RJTEUsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdHlwZTogUkVNT1RFX1RJTEUsXG4gICAgICAgICAgcmVtb3RlVGlsZUZvcm1hdDogUmVtb3RlVGlsZUZvcm1hdC5XTVMsXG4gICAgICAgICAgdGlsZXNldERhdGFVcmw6IHdtc1VybCxcbiAgICAgICAgICB0aWxlc2V0TWV0YWRhdGFVcmw6IGAke3dtc1VybH0/c2VydmljZT1XTVMmcmVxdWVzdD1HZXRDYXBhYmlsaXRpZXNgLFxuICAgICAgICAgIGxheWVyczogd21zRGF0YT8ubGF5ZXJzIHx8IFtdLFxuICAgICAgICAgIHdtc1ZlcnNpb246IHdtc0RhdGE/LnZlcnNpb24gfHwgJzEuMy4wJ1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2V0UmVzcG9uc2Uoe1xuICAgICAgICBtZXRhZGF0YTogd21zRGF0YT8ubWV0YWRhdGEgPz8gbnVsbCxcbiAgICAgICAgZGF0YXNldCxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgZXJyb3JcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRSZXNwb25zZSh7XG4gICAgICAgIG1ldGFkYXRhOiBudWxsLFxuICAgICAgICBkYXRhc2V0OiBudWxsLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBlcnJvclxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2V0UmVzcG9uc2UsIGxheWVyTmFtZSwgd21zVXJsLCB3bXNEYXRhLCBsb2FkaW5nLCBlcnJvcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPFRpbGVzZXRJbnB1dENvbnRhaW5lcj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxsYWJlbCBodG1sRm9yPVwibGF5ZXItbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgIGlkPVwibGF5ZXItbmFtZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIHlvdXIgV01TIGxheWVyXCJcbiAgICAgICAgICB2YWx1ZT17bGF5ZXJOYW1lfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkxheWVyTmFtZUNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ3bXMtdXJsXCI+V01TIFVSTDwvbGFiZWw+XG4gICAgICAgIDxJbnB1dExpZ2h0XG4gICAgICAgICAgaWQ9XCJ3bXMtdXJsXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIFdNUyBVUkxcIlxuICAgICAgICAgIHZhbHVlPXt3bXNVcmx9XG4gICAgICAgICAgb25DaGFuZ2U9e29uV21zVXJsQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+UHJvdmlkZSBhIHZhbGlkIFdNUyBzZXJ2aWNlIFVSTC48L1RpbGVzZXRJbnB1dERlc2NyaXB0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8VGlsZXNldElucHV0RGVzY3JpcHRpb24+Rm9yIGV4YW1wbGUsIHRyeSBhIHB1YmxpYyBXTVMgVVJMOjwvVGlsZXNldElucHV0RGVzY3JpcHRpb24+XG4gICAgICAgIDxFeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtdXJsXCI+4oCiIGh0dHBzOi8vb3dzLnRlcnJlc3RyaXMuZGUvb3NtL3NlcnZpY2U8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImV4YW1wbGUtdXJsXCI+XG4gICAgICAgICAgICDigKIgaHR0cHM6Ly9vcGVuZ2VvLm5jZXAubm9hYS5nb3YvZ2Vvc2VydmVyL2NvbnVzL2NvbnVzX2NyZWZfcWNkL293c1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZXhhbXBsZS11cmxcIj5cbiAgICAgICAgICAgIOKAoiBodHRwczovL2dpYnMuZWFydGhkYXRhLm5hc2EuZ292L3dtcy9lcHNnNDMyNi9iZXN0L3dtcy5jZ2lcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9FeGFtcGxlVXJsc0NvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvVGlsZXNldElucHV0Q29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVGlsZXNldFdNU0Zvcm07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFBd0MsSUFBQU8sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVp4QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFB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
|
package/dist/plot-container.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import MapContainerFactory from './map-container';
|
|
3
3
|
import MapsLayoutFactory from './maps-layout';
|
|
4
|
-
import { ExportImage } from '@kepler.gl/
|
|
5
|
-
import { SplitMap } from '@kepler.gl/types';
|
|
4
|
+
import { SplitMap, ExportImage } from '@kepler.gl/types';
|
|
6
5
|
import { ActionHandler, addNotification, setExportImageDataUri, setExportImageError, setExportImageSetting } from '@kepler.gl/actions';
|
|
7
6
|
import { mapFieldsSelector } from './kepler-gl';
|
|
8
7
|
interface PlotContainerProps {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
ratio?: string;
|
|
9
|
+
resolution?: string;
|
|
10
|
+
legend?: boolean;
|
|
11
|
+
center?: boolean;
|
|
12
|
+
imageSize: ExportImage['imageSize'];
|
|
13
|
+
escapeXhtmlForWebpack?: boolean;
|
|
13
14
|
mapFields: ReturnType<typeof mapFieldsSelector>;
|
|
15
|
+
splitMaps?: SplitMap[];
|
|
14
16
|
setExportImageSetting: typeof setExportImageSetting;
|
|
15
17
|
setExportImageDataUri: typeof setExportImageDataUri;
|
|
16
18
|
setExportImageError: typeof setExportImageError;
|
|
17
|
-
|
|
19
|
+
addNotification: ActionHandler<typeof addNotification>;
|
|
18
20
|
enableErrorNotification?: boolean;
|
|
19
21
|
}
|
|
20
22
|
declare function PlotContainerFactory(MapContainer: ReturnType<typeof MapContainerFactory>, MapsLayout: ReturnType<typeof MapsLayoutFactory>): React.ComponentType<PlotContainerProps>;
|