@kepler.gl/reducers 3.0.0-alpha.0 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/combined-updaters.d.ts +30 -1
  2. package/dist/combined-updaters.js +235 -24
  3. package/dist/composer-helpers.d.ts +7 -4
  4. package/dist/composer-helpers.js +17 -28
  5. package/dist/composers.d.ts +6 -0
  6. package/dist/composers.js +2 -22
  7. package/dist/core.d.ts +1 -1
  8. package/dist/core.js +15 -25
  9. package/dist/data-utils.js +5 -23
  10. package/dist/export-utils.js +1 -21
  11. package/dist/index.d.ts +2 -3
  12. package/dist/index.js +36 -35
  13. package/dist/interaction-utils.d.ts +1 -5
  14. package/dist/interaction-utils.js +11 -31
  15. package/dist/layer-utils.d.ts +39 -10
  16. package/dist/layer-utils.js +112 -57
  17. package/dist/map-state-updaters.d.ts +33 -2
  18. package/dist/map-state-updaters.js +277 -38
  19. package/dist/map-state.d.ts +74 -2
  20. package/dist/map-state.js +2 -22
  21. package/dist/map-style-updaters.d.ts +30 -17
  22. package/dist/map-style-updaters.js +303 -104
  23. package/dist/map-style.js +2 -22
  24. package/dist/merger-handler.d.ts +10 -0
  25. package/dist/merger-handler.js +123 -0
  26. package/dist/middleware.js +6 -22
  27. package/dist/provider-state-updaters.d.ts +0 -7
  28. package/dist/provider-state-updaters.js +2 -92
  29. package/dist/provider-state.js +2 -22
  30. package/dist/root.d.ts +1 -8
  31. package/dist/root.js +24 -30
  32. package/dist/ui-state-updaters.d.ts +9 -2
  33. package/dist/ui-state-updaters.js +87 -82
  34. package/dist/ui-state.js +2 -22
  35. package/dist/vis-state-merger.d.ts +51 -13
  36. package/dist/vis-state-merger.js +411 -131
  37. package/dist/vis-state-selectors.js +8 -24
  38. package/dist/vis-state-updaters.d.ts +136 -10
  39. package/dist/vis-state-updaters.js +965 -283
  40. package/dist/vis-state.d.ts +210 -2
  41. package/dist/vis-state.js +2 -22
  42. package/package.json +23 -20
package/dist/root.js CHANGED
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -30,6 +10,8 @@ exports["default"] = void 0;
30
10
 
31
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
32
12
 
13
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
14
+
33
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
34
16
 
35
17
  var _actions = require("@kepler.gl/actions");
@@ -45,8 +27,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
45
27
  // INITIAL_STATE
46
28
  var initialCoreState = {};
47
29
 
48
- function provideInitialState(initialState) {
49
- var coreReducer = (0, _core.coreReducerFactory)(initialState);
30
+ function provideInitialState(initialState, extraReducers) {
31
+ var coreReducer = (0, _core.coreReducerFactory)(initialState, extraReducers);
50
32
 
51
33
  var handleRegisterEntry = function handleRegisterEntry(state, _ref) {
52
34
  var _ref$payload = _ref.payload,
@@ -95,7 +77,6 @@ function provideInitialState(initialState) {
95
77
  }); // perform additional state reducing (e.g. switch action.type etc...)
96
78
 
97
79
  var handlers = (_handlers = {}, (0, _defineProperty2["default"])(_handlers, _actions.ActionTypes.REGISTER_ENTRY, handleRegisterEntry), (0, _defineProperty2["default"])(_handlers, _actions.ActionTypes.DELETE_ENTRY, handleDeleteEntry), (0, _defineProperty2["default"])(_handlers, _actions.ActionTypes.RENAME_ENTRY, handleRenameEntry), _handlers); // TODO: Understand why the Lint sees an error here, while the IDE does not.
98
- // @ts-expect-error
99
80
 
100
81
  return (0, _reduxActions.handleActions)(handlers, initialCoreState)(state, action);
101
82
  };
@@ -106,11 +87,13 @@ var _keplerGlReducer = provideInitialState(initialCoreState);
106
87
  function mergeInitialState() {
107
88
  var saved = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
108
89
  var provided = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
109
- var keys = ['mapState', 'mapStyle', 'visState', 'uiState']; // shallow merge each reducer
90
+ var extraInitialStateKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
91
+ var keys = ['mapState', 'mapStyle', 'visState', 'uiState'].concat((0, _toConsumableArray2["default"])(extraInitialStateKeys)); // shallow merge each reducer
110
92
 
111
- return keys.reduce(function (accu, key) {
93
+ var newState = keys.reduce(function (accu, key) {
112
94
  return _objectSpread(_objectSpread({}, accu), saved[key] && provided[key] ? (0, _defineProperty2["default"])({}, key, _objectSpread(_objectSpread({}, saved[key]), provided[key])) : (0, _defineProperty2["default"])({}, key, saved[key] || provided[key] || {}));
113
95
  }, {});
96
+ return newState;
114
97
  }
115
98
 
116
99
  function decorate(target) {
@@ -128,6 +111,8 @@ function decorate(target) {
128
111
  * @mixin keplerGlReducer.plugin
129
112
  * @memberof keplerGlReducer
130
113
  * @param {Object|Function} customReducer - A reducer map or a reducer
114
+ * @param {Object} options - options to be applied to custom reducer logic
115
+ * @param {Object} options.override - objects that describe which action to override, e.g. {[ActionTypes.LAYER_TYPE_CHANGE]: true}
131
116
  * @public
132
117
  * @example
133
118
  * const myKeplerGlReducer = keplerGlReducer
@@ -153,7 +138,7 @@ function decorate(target) {
153
138
  * }, {}));
154
139
  */
155
140
 
156
- target.plugin = function plugin(customReducer) {
141
+ target.plugin = function plugin(customReducer, options) {
157
142
  var _this = this;
158
143
 
159
144
  if ((0, _typeof2["default"])(customReducer) === 'object') {
@@ -163,10 +148,15 @@ function decorate(target) {
163
148
 
164
149
 
165
150
  return decorate(function () {
151
+ var _options$override;
152
+
166
153
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
167
154
  var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
155
+ var nextState = state;
168
156
 
169
- var nextState = _this(state, action); // for each entry in the staten
157
+ if (action.type && !(options !== null && options !== void 0 && (_options$override = options.override) !== null && _options$override !== void 0 && _options$override[action.type])) {
158
+ nextState = _this(state, action);
159
+ } // for each entry in the staten
170
160
 
171
161
 
172
162
  Object.keys(nextState).forEach(function (id) {
@@ -189,6 +179,7 @@ function decorate(target) {
189
179
  * @mixin keplerGlReducer.initialState
190
180
  * @memberof keplerGlReducer
191
181
  * @param {Object} iniSt - custom state to be merged with default initial state
182
+ * @param {Object} extraReducers - optional custom reducers in addition to the default `visState`, `mapState`, `mapStyle`, and `uiState`
192
183
  * @public
193
184
  * @example
194
185
  * const myKeplerGlReducer = keplerGlReducer
@@ -199,8 +190,11 @@ function decorate(target) {
199
190
 
200
191
 
201
192
  target.initialState = function initialState(iniSt) {
202
- var merged = mergeInitialState(targetInitialState, iniSt);
203
- var targetReducer = provideInitialState(merged);
193
+ var extraReducers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
194
+ // passing through extraInitialStateKeys and extraReducers allows external customization by adding additional subreducers and state beyond the default `visState`, `mapState`, `mapStyle`, and `uiState`
195
+ var extraInitialStateKeys = Object.keys(extraReducers);
196
+ var merged = mergeInitialState(targetInitialState, iniSt, extraInitialStateKeys);
197
+ var targetReducer = provideInitialState(merged, extraReducers);
204
198
  return decorate(targetReducer, merged);
205
199
  };
206
200
 
@@ -232,4 +226,4 @@ function decorate(target) {
232
226
  var keplerGlReducer = decorate(_keplerGlReducer);
233
227
  var _default = keplerGlReducer;
234
228
  exports["default"] = _default;
235
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yb290LnRzIl0sIm5hbWVzIjpbImluaXRpYWxDb3JlU3RhdGUiLCJwcm92aWRlSW5pdGlhbFN0YXRlIiwiaW5pdGlhbFN0YXRlIiwiY29yZVJlZHVjZXIiLCJoYW5kbGVSZWdpc3RlckVudHJ5Iiwic3RhdGUiLCJwYXlsb2FkIiwiaWQiLCJtaW50IiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsImluaXRpYWxVaVN0YXRlIiwicHJldmlvdXNTdGF0ZSIsInVuZGVmaW5lZCIsImhhbmRsZURlbGV0ZUVudHJ5IiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsImFjY3UiLCJjdXJyIiwiaGFuZGxlUmVuYW1lRW50cnkiLCJvbGRJZCIsIm5ld0lkIiwiYWN0aW9uIiwiZm9yRWFjaCIsInVwZGF0ZUl0ZW1TdGF0ZSIsImhhbmRsZXJzIiwiQWN0aW9uVHlwZXMiLCJSRUdJU1RFUl9FTlRSWSIsIkRFTEVURV9FTlRSWSIsIlJFTkFNRV9FTlRSWSIsIl9rZXBsZXJHbFJlZHVjZXIiLCJtZXJnZUluaXRpYWxTdGF0ZSIsInNhdmVkIiwicHJvdmlkZWQiLCJrZXkiLCJkZWNvcmF0ZSIsInRhcmdldCIsInNhdmVkSW5pdGlhbFN0YXRlIiwidGFyZ2V0SW5pdGlhbFN0YXRlIiwicGx1Z2luIiwiY3VzdG9tUmVkdWNlciIsIm5leHRTdGF0ZSIsImluaVN0IiwibWVyZ2VkIiwidGFyZ2V0UmVkdWNlciIsImtlcGxlckdsUmVkdWNlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBO0FBQ0EsSUFBTUEsZ0JBQWdCLEdBQUcsRUFBekI7O0FBRU8sU0FBU0MsbUJBQVQsQ0FBNkJDLFlBQTdCLEVBQTJDO0FBQ2hELE1BQU1DLFdBQVcsR0FBRyw4QkFBbUJELFlBQW5CLENBQXBCOztBQUVBLE1BQU1FLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBc0Is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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNUyxlQUFlLEdBQUdWLFFBQVEsQ0FBQ0wsZ0JBQUQsQ0FBaEM7ZUFDZWUsZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7QWN0aW9uVHlwZXMsIGtlcGxlckdsSW5pdCwgX2FjdGlvbkZvciwgX3VwZGF0ZVByb3BlcnR5fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcblxuaW1wb3J0IHtjb3JlUmVkdWNlckZhY3Rvcnl9IGZyb20gJy4vY29yZSc7XG5cbi8vIElOSVRJQUxfU1RBVEVcbmNvbnN0IGluaXRpYWxDb3JlU3RhdGUgPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJbml0aWFsU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIGNvbnN0IGNvcmVSZWR1Y2VyID0gY29yZVJlZHVjZXJGYWN0b3J5KGluaXRpYWxTdGF0ZSk7XG5cbiAgY29uc3QgaGFuZGxlUmVnaXN0ZXJFbnRyeSA9IChcbiAgICBzdGF0ZSxcbiAgICB7XG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGlkLFxuICAgICAgICBtaW50LFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCxcbiAgICAgICAgaW5pdGlhbFVpU3RhdGVcbiAgICAgIH1cbiAgICB9XG4gICkgPT4ge1xuICAgIC8vIGJ5IGRlZmF1bHQsIGFsd2F5cyBjcmVhdGUgYSBtaW50IHN0YXRlIGV2ZW4gaWYgdGhlIHNhbWUgaWQgYWxyZWFkeSBleGlzdFxuICAgIC8vIGlmIHN0YXRlLmlkIGV4aXN0IGFuZCBtaW50PWZhbHNlLCBrZWVwIHRoZSBleGlzdGluZyBzdGF0ZVxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBzdGF0ZVtpZF0gJiYgbWludCA9PT0gZmFsc2UgPyBzdGF0ZVtpZF0gOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLy8gcmVnaXN0ZXIgZW50cnkgdG8ga2VwbGVyLmdsIHBhc3NpbmcgaW4gbWFwYm94IGNvbmZpZyB0byBtYXBTdHlsZVxuICAgICAgLi4uc3RhdGUsXG4gICAgICBbaWRdOiBjb3JlUmVkdWNlcihcbiAgICAgICAgcHJldmlvdXNTdGF0ZSxcbiAgICAgICAga2VwbGVyR2xJbml0KHttYXBib3hBcGlBY2Nlc3NUb2tlbiwgbWFwYm94QXBpVXJsLCBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCwgaW5pdGlhbFVpU3RhdGV9KVxuICAgICAgKVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlRW50cnkgPSAoc3RhdGUsIHtwYXlsb2FkOiBpZH0pID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi4oY3VyciA9PT0gaWQgPyB7fSA6IHtbY3Vycl06IHN0YXRlW2N1cnJdfSlcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gIGNvbnN0IGhhbmRsZVJlbmFtZUVudHJ5ID0gKHN0YXRlLCB7cGF5bG9hZDoge29sZElkLCBuZXdJZH19KSA9PlxuICAgIE9iamVjdC5rZXlzKHN0YXRlKS5yZWR1Y2UoXG4gICAgICAoYWNjdSwgY3VycikgPT4gKHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgLi4ue1tjdXJyID09PSBvbGRJZCA/IG5ld0lkIDogY3Vycl06IHN0YXRlW2N1cnJdfVxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgcmV0dXJuIChzdGF0ZSA9IGluaXRpYWxDb3JlU3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIC8vIHVwZGF0ZSBjaGlsZCBzdGF0ZXNcbiAgICBPYmplY3Qua2V5cyhzdGF0ZSkuZm9yRWFjaChpZCA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVJdGVtU3RhdGUgPSBjb3JlUmVkdWNlcihzdGF0ZVtpZF0sIF9hY3Rpb25Gb3IoaWQsIGFjdGlvbikpO1xuICAgICAgc3RhdGUgPSBfdXBkYXRlUHJvcGVydHkoc3RhdGUsIGlkLCB1cGRhdGVJdGVtU3RhdGUpO1xuICAgIH0pO1xuXG4gICAgLy8gcGVyZm9ybSBhZGRpdGlvbmFsIHN0YXRlIHJlZHVjaW5nIChlLmcuIHN3aXRjaCBhY3Rpb24udHlwZSBldGMuLi4pXG4gICAgY29uc3QgaGFuZGxlcnMgPSB7XG4gICAgICBbQWN0aW9uVHlwZXMuUkVHSVNURVJfRU5UUlldOiBoYW5kbGVSZWdpc3RlckVudHJ5LFxuICAgICAgW0FjdGlvblR5cGVzLkRFTEVURV9FTlRSWV06IGhhbmRsZURlbGV0ZUVudHJ5LFxuICAgICAgW0FjdGlvblR5cGVzLlJFTkFNRV9FTlRSWV06IGhhbmRsZVJlbmFtZUVudHJ5XG4gICAgfTtcblxuICAgIC8vIFRPRE86IFVuZGVyc3RhbmQgd2h5IHRoZSBMaW50IHNlZXMgYW4gZXJyb3IgaGVyZSwgd2hpbGUgdGhlIElERSBkb2VzIG5vdC5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcmV0dXJuIGhhbmRsZUFjdGlvbnMoaGFuZGxlcnMsIGluaXRpYWxDb3JlU3RhdGUpKHN0YXRlLCBhY3Rpb24pO1xuICB9O1xufVxuXG5jb25zdCBfa2VwbGVyR2xSZWR1Y2VyID0gcHJvdmlkZUluaXRpYWxTdGF0ZShpbml0aWFsQ29yZVN0YXRlKTtcblxuZnVuY3Rpb24gbWVyZ2VJbml0aWFsU3RhdGUoc2F2ZWQgPSB7fSwgcHJvdmlkZWQgPSB7fSkge1xuICBjb25zdCBrZXlzID0gWydtYXBTdGF0ZScsICdtYXBTdHlsZScsICd2aXNTdGF0ZScsICd1aVN0YXRlJ107XG5cbiAgLy8gc2hhbGxvdyBtZXJnZSBlYWNoIHJlZHVjZXJcbiAgcmV0dXJuIGtleXMucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKHNhdmVkW2tleV0gJiYgcHJvdmlkZWRba2V5XVxuICAgICAgICA/IHtba2V5XTogey4uLnNhdmVkW2tleV0sIC4uLnByb3ZpZGVkW2tleV19fVxuICAgICAgICA6IHtba2V5XTogc2F2ZWRba2V5XSB8fCBwcm92aWRlZFtrZXldIHx8IHt9fSlcbiAgICB9KSxcbiAgICB7fVxuICApO1xufVxuXG5mdW5jdGlvbiBkZWNvcmF0ZSh0YXJnZXQsIHNhdmVkSW5pdGlhbFN0YXRlID0ge30pIHtcbiAgY29uc3QgdGFyZ2V0SW5pdGlhbFN0YXRlID0gc2F2ZWRJbml0aWFsU3RhdGU7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBrZXBsZXIuZ2wgcmVkdWNlciB0aGF0IHdpbGwgYWxzbyBwYXNzIGVhY2ggYWN0aW9uIHRocm91Z2ggYWRkaXRpb25hbCByZWR1Y2VycyBzcGllY2lmaWVkLlxuICAgKiBUaGUgcGFyYW1ldGVyIHNob3VsZCBiZSBlaXRoZXIgYSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXIgZnVuY3Rpb24uXG4gICAqIFRoZSBzdGF0ZSBwYXNzZWQgaW50byB0aGUgYWRkaXRpb25hbCBhY3Rpb24gaGFuZGxlciBpcyB0aGUgaW5zdGFuY2Ugc3RhdGUuXG4gICAqIEl0IHdpbGwgaW5jbHVkZSBhbGwgdGhlIHN1YnJlZHVjZXJzIGB2aXNTdGF0ZWAsIGB1aVN0YXRlYCwgYG1hcFN0YXRlYCBhbmQgYG1hcFN0eWxlYC5cbiAgICogYC5wbHVnaW5gIGlzIG9ubHkgbWVhbnQgdG8gYmUgY2FsbGVkIG9uY2Ugd2hlbiBtb3VudGluZyB0aGUga2VwbGVyR2xSZWR1Y2VyIHRvIHRoZSBzdG9yZS5cbiAgICogKipOb3RlKiogVGhpcyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gdG8gZ2l2ZSB5b3UgbW9yZSBmcmVlZG9tIHRvIG1vZGlmeSB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGtlcGxlci5nbCBpbnN0YW5jZS5cbiAgICogWW91IHNob3VsZCBvbmx5IHVzZSB0aGlzIHRvIGFkZGluZyBhZGRpdGlvbmFsIGFjdGlvbnMgaW5zdGVhZCBvZiByZXBsYWNpbmcgZGVmYXVsdCBhY3Rpb25zLlxuICAgKlxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLnBsdWdpblxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fEZ1bmN0aW9ufSBjdXN0b21SZWR1Y2VyIC0gQSByZWR1Y2VyIG1hcCBvciBhIHJlZHVjZXJcbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBteUtlcGxlckdsUmVkdWNlciA9IGtlcGxlckdsUmVkdWNlclxuICAgKiAgLnBsdWdpbih7XG4gICAqICAgIC8vIDEuIGFzIHJlZHVjZXIgbWFwXG4gICAqICAgIEhJREVfQU5EX1NIT1dfU0lERV9QQU5FTDogKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAqICAgICAgLi4uc3RhdGUsXG4gICAqICAgICAgdWlTdGF0ZToge1xuICAgKiAgICAgICAgLi4uc3RhdGUudWlTdGF0ZSxcbiAgICogICAgICAgIHJlYWRPbmx5OiAhc3RhdGUudWlTdGF0ZS5yZWFkT25seVxuICAgKiAgICAgIH1cbiAgICogICAgfSlcbiAgICogIH0pXG4gICAqIC5wbHVnaW4oaGFuZGxlQWN0aW9ucyh7XG4gICAqICAgLy8gMi4gYXMgcmVkdWNlclxuICAgKiAgICdISURFX01BUF9DT05UUk9MUyc6IChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgKiAgICAgLi4uc3RhdGUsXG4gICAqICAgICB1aVN0YXRlOiB7XG4gICAqICAgICAgIC4uLnN0YXRlLnVpU3RhdGUsXG4gICAqICAgICAgIG1hcENvbnRyb2xzOiBoaWRkZW5NYXBDb250cm9sXG4gICAqICAgICB9XG4gICAqICAgfSlcbiAgICogfSwge30pKTtcbiAgICovXG4gIHRhcmdldC5wbHVnaW4gPSBmdW5jdGlvbiBwbHVnaW4oY3VzdG9tUmVkdWNlcikge1xuICAgIGlmICh0eXBlb2YgY3VzdG9tUmVkdWNlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGlmIG9ubHkgcHJvdmlkZWQgYSByZWR1Y2VyTWFwLCB3cmFwIGl0IGluIGEgcmVkdWNlclxuICAgICAgY3VzdG9tUmVkdWNlciA9IGhhbmRsZUFjdGlvbnMoY3VzdG9tUmVkdWNlciwge30pO1xuICAgIH1cblxuICAgIC8vIHVzZSAnZnVuY3Rpb24nIGtleXdvcmQgdG8gZW5hYmxlICd0aGlzJ1xuICAgIHJldHVybiBkZWNvcmF0ZSgoc3RhdGUgPSB7fSwgYWN0aW9uID0ge30pID0+IHtcbiAgICAgIGxldCBuZXh0U3RhdGUgPSB0aGlzKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICAvLyBmb3IgZWFjaCBlbnRyeSBpbiB0aGUgc3RhdGVuXG4gICAgICBPYmplY3Qua2V5cyhuZXh0U3RhdGUpLmZvckVhY2goaWQgPT4ge1xuICAgICAgICAvLyB1cGRhdGUgY2hpbGQgc3RhdGVzXG4gICAgICAgIG5leHRTdGF0ZSA9IF91cGRhdGVQcm9wZXJ0eShcbiAgICAgICAgICBuZXh0U3RhdGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY3VzdG9tUmVkdWNlcihuZXh0U3RhdGVbaWRdLCBfYWN0aW9uRm9yKGlkLCBhY3Rpb24pKVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHJlZHVjZXIgdGhhdCBpbml0aWF0ZWQgd2l0aCBjdXN0b20gaW5pdGlhbCBzdGF0ZS5cbiAgICogVGhlIHBhcmFtZXRlciBzaG91bGQgYmUgYW4gb2JqZWN0IG1hcHBpbmcgZnJvbSBgc3VicmVkdWNlcmAgbmFtZSB0byBjdXN0b20gc3VicmVkdWNlciBzdGF0ZSxcbiAgICogd2hpY2ggd2lsbCBiZSBzaGFsbG93ICoqbWVyZ2VkKiogd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGUuXG4gICAqXG4gICAqIERlZmF1bHQgc3VicmVkdWNlciBzdGF0ZTpcbiAgICogIC0gW2B2aXNTdGF0ZWBdKC4vdmlzLXN0YXRlLm1kI0lOSVRJQUxfVklTX1NUQVRFKVxuICAgKiAgLSBbYG1hcFN0YXRlYF0oLi9tYXAtc3RhdGUubWQjSU5JVElBTF9NQVBfU1RBVEUpXG4gICAqICAtIFtgbWFwU3R5bGVgXSguL21hcC1zdHlsZS5tZCNJTklUSUFMX01BUF9TVFlMRSlcbiAgICogIC0gW2B1aVN0YXRlYF0oLi91aS1zdGF0ZS5tZCNJTklUSUFMX1VJX1NUQVRFKVxuICAgKiBAbWl4aW4ga2VwbGVyR2xSZWR1Y2VyLmluaXRpYWxTdGF0ZVxuICAgKiBAbWVtYmVyb2Yga2VwbGVyR2xSZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBpbmlTdCAtIGN1c3RvbSBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBkZWZhdWx0IGluaXRpYWwgc3RhdGVcbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBteUtlcGxlckdsUmVkdWNlciA9IGtlcGxlckdsUmVkdWNlclxuICAgKiAgLmluaXRpYWxTdGF0ZSh7XG4gICAqICAgIHVpU3RhdGU6IHtyZWFkT25seTogdHJ1ZX1cbiAgICogIH0pO1xuICAgKi9cbiAgdGFyZ2V0LmluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uIGluaXRpYWxTdGF0ZShpbmlTdCkge1xuICAgIGNvbnN0IG1lcmdlZCA9IG1lcmdlSW5pdGlhbFN0YXRlKHRhcmdldEluaXRpYWxTdGF0ZSwgaW5pU3QpO1xuICAgIGNvbnN0IHRhcmdldFJlZHVjZXIgPSBwcm92aWRlSW5pdGlhbFN0YXRlKG1lcmdlZCk7XG5cbiAgICByZXR1cm4gZGVjb3JhdGUodGFyZ2V0UmVkdWNlciwgbWVyZ2VkKTtcbiAgfTtcblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vKipcbiAqIEtlcGxlci5nbCByZWR1Y2VyIHRvIGJlIG1vdW50ZWQgdG8geW91ciBzdG9yZS4gWW91IGNhbiBtb3VudCBga2VwbGVyR2xSZWR1Y2VyYCBhdCBwcm9wZXJ0eSBga2VwbGVyR2xgLCBpZiB5b3UgY2hvb3NlXG4gKiB0byBtb3VudCBpdCBhdCBhbm90aGVyIGFkZHJlc3MgZS5nLiBgZm9vYCB5b3Ugd2lsbCBuZWVkIHRvIHNwZWNpZnkgaXQgd2hlbiB5b3UgbW91bnQgYEtlcGxlckdsYCBjb21wb25lbnQgaW4geW91ciBhcHAgd2l0aCBgZ2V0U3RhdGU6IHN0YXRlID0+IHN0YXRlLmZvb2BcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyIGZyb20gJ2tlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiBpbXBvcnQge2NyZWF0ZVN0b3JlLCBjb21iaW5lUmVkdWNlcnMsIGFwcGx5TWlkZGxld2FyZSwgY29tcG9zZX0gZnJvbSAncmVkdXgnO1xuICogaW1wb3J0IHt0YXNrTWlkZGxld2FyZX0gZnJvbSAncmVhY3QtcGFsbS90YXNrcyc7XG4gKlxuICogY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAgIC8vIDwtLSBtb3VudCBrZXBsZXIuZ2wgcmVkdWNlciBpbiB5b3VyIGFwcFxuICogICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICpcbiAqICAgLy8gWW91ciBvdGhlciByZWR1Y2VycyBoZXJlXG4gKiAgIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogLy8gdXNpbmcgY3JlYXRlU3RvcmVcbiAqIGV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgYXBwbHlNaWRkbGV3YXJlKHRhc2tNaWRkbGV3YXJlKSk7XG4gKi9cbmNvbnN0IGtlcGxlckdsUmVkdWNlciA9IGRlY29yYXRlKF9rZXBsZXJHbFJlZHVjZXIpO1xuZXhwb3J0IGRlZmF1bHQga2VwbGVyR2xSZWR1Y2VyO1xuIl19
229
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yb290LnRzIl0sIm5hbWVzIjpbImluaXRpYWxDb3JlU3RhdGUiLCJwcm92aWRlSW5pdGlhbFN0YXRlIiwiaW5pdGlhbFN0YXRlIiwiZXh0cmFSZWR1Y2VycyIsImNvcmVSZWR1Y2VyIiwiaGFuZGxlUmVnaXN0ZXJFbnRyeSIsInN0YXRlIiwicGF5bG9hZCIsImlkIiwibWludCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJpbml0aWFsVWlTdGF0ZSIsInByZXZpb3VzU3RhdGUiLCJ1bmRlZmluZWQiLCJoYW5kbGVEZWxldGVFbnRyeSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2N1IiwiY3VyciIsImhhbmRsZVJlbmFtZUVudHJ5Iiwib2xkSWQiLCJuZXdJZCIsImFjdGlvbiIsImZvckVhY2giLCJ1cGRhdGVJdGVtU3RhdGUiLCJoYW5kbGVycyIsIkFjdGlvblR5cGVzIiwiUkVHSVNURVJfRU5UUlkiLCJERUxFVEVfRU5UUlkiLCJSRU5BTUVfRU5UUlkiLCJfa2VwbGVyR2xSZWR1Y2VyIiwibWVyZ2VJbml0aWFsU3RhdGUiLCJzYXZlZCIsInByb3ZpZGVkIiwiZXh0cmFJbml0aWFsU3RhdGVLZXlzIiwibmV3U3RhdGUiLCJrZXkiLCJkZWNvcmF0ZSIsInRhcmdldCIsInNhdmVkSW5pdGlhbFN0YXRlIiwidGFyZ2V0SW5pdGlhbFN0YXRlIiwicGx1Z2luIiwiY3VzdG9tUmVkdWNlciIsIm9wdGlvbnMiLCJuZXh0U3RhdGUiLCJ0eXBlIiwib3ZlcnJpZGUiLCJpbmlTdCIsIm1lcmdlZCIsInRhcmdldFJlZHVjZXIiLCJrZXBsZXJHbFJlZHVjZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFFQTs7Ozs7O0FBRUE7QUFDQSxJQUFNQSxnQkFBZ0IsR0FBRyxFQUF6Qjs7QUFFTyxTQUFTQyxtQkFBVCxDQUE2QkMsWUFBN0IsRUFBMkND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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VOLEVBQUFBLE1BQU0sQ0FBQ3ZDLFlBQVAsR0FBc0IsU0FBU0EsWUFBVCxDQUFzQmdELEtBQXRCLEVBQWlEO0FBQUEsUUFBcEIvQyxhQUFvQix1RUFBSixFQUFJO0FBQ3JFO0FBQ0EsUUFBTWtDLHFCQUFxQixHQUFHcEIsTUFBTSxDQUFDQyxJQUFQLENBQVlmLGFBQVosQ0FBOUI7QUFDQSxRQUFNZ0QsTUFBTSxHQUFHakIsaUJBQWlCLENBQUNTLGtCQUFELEVBQXFCTyxLQUFyQixFQUE0QmIscUJBQTVCLENBQWhDO0FBQ0EsUUFBTWUsYUFBYSxHQUFHbkQsbUJBQW1CLENBQUNrRCxNQUFELEVBQVNoRCxhQUFULENBQXpDO0FBRUEsV0FBT3FDLFFBQVEsQ0FBQ1ksYUFBRCxFQUFnQkQsTUFBaEIsQ0FBZjtBQUNELEdBUEQ7O0FBU0EsU0FBT1YsTUFBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNWSxlQUFlLEdBQUdiLFFBQVEsQ0FBQ1AsZ0JBQUQsQ0FBaEM7ZUFDZW9CLGUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0FjdGlvblR5cGVzLCBrZXBsZXJHbEluaXQsIF9hY3Rpb25Gb3IsIF91cGRhdGVQcm9wZXJ0eX0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7aGFuZGxlQWN0aW9uc30gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5cbmltcG9ydCB7Y29yZVJlZHVjZXJGYWN0b3J5fSBmcm9tICcuL2NvcmUnO1xuXG4vLyBJTklUSUFMX1NUQVRFXG5jb25zdCBpbml0aWFsQ29yZVN0YXRlID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlSW5pdGlhbFN0YXRlKGluaXRpYWxTdGF0ZSwgZXh0cmFSZWR1Y2Vycz8pIHtcbiAgY29uc3QgY29yZVJlZHVjZXIgPSBjb3JlUmVkdWNlckZhY3RvcnkoaW5pdGlhbFN0YXRlLCBleHRyYVJlZHVjZXJzKTtcblxuICBjb25zdCBoYW5kbGVSZWdpc3RlckVudHJ5ID0gKFxuICAgIHN0YXRlLFxuICAgIHtcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgaWQsXG4gICAgICAgIG1pbnQsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LFxuICAgICAgICBpbml0aWFsVWlTdGF0ZVxuICAgICAgfVxuICAgIH1cbiAgKSA9PiB7XG4gICAgLy8gYnkgZGVmYXVsdCwgYWx3YXlzIGNyZWF0ZSBhIG1pbnQgc3RhdGUgZXZlbiBpZiB0aGUgc2FtZSBpZCBhbHJlYWR5IGV4aXN0XG4gICAgLy8gaWYgc3RhdGUuaWQgZXhpc3QgYW5kIG1pbnQ9ZmFsc2UsIGtlZXAgdGhlIGV4aXN0aW5nIHN0YXRlXG4gICAgY29uc3QgcHJldmlvdXNTdGF0ZSA9IHN0YXRlW2lkXSAmJiBtaW50ID09PSBmYWxzZSA/IHN0YXRlW2lkXSA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICAvLyByZWdpc3RlciBlbnRyeSB0byBrZXBsZXIuZ2wgcGFzc2luZyBpbiBtYXBib3ggY29uZmlnIHRvIG1hcFN0eWxlXG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIFtpZF06IGNvcmVSZWR1Y2VyKFxuICAgICAgICBwcmV2aW91c1N0YXRlLFxuICAgICAgICBrZXBsZXJHbEluaXQoe21hcGJveEFwaUFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwsIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LCBpbml0aWFsVWlTdGF0ZX0pXG4gICAgICApXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGVFbnRyeSA9IChzdGF0ZSwge3BheWxvYWQ6IGlkfSkgPT5cbiAgICBPYmplY3Qua2V5cyhzdGF0ZSkucmVkdWNlKFxuICAgICAgKGFjY3UsIGN1cnIpID0+ICh7XG4gICAgICAgIC4uLmFjY3UsXG4gICAgICAgIC4uLihjdXJyID09PSBpZCA/IHt9IDoge1tjdXJyXTogc3RhdGVbY3Vycl19KVxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgY29uc3QgaGFuZGxlUmVuYW1lRW50cnkgPSAoc3RhdGUsIHtwYXlsb2FkOiB7b2xkSWQsIG5ld0lkfX0pID0+XG4gICAgT2JqZWN0LmtleXMoc3RhdGUpLnJlZHVjZShcbiAgICAgIChhY2N1LCBjdXJyKSA9PiAoe1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICAuLi57W2N1cnIgPT09IG9sZElkID8gbmV3SWQgOiBjdXJyXTogc3RhdGVbY3Vycl19XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICByZXR1cm4gKHN0YXRlID0gaW5pdGlhbENvcmVTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgLy8gdXBkYXRlIGNoaWxkIHN0YXRlc1xuICAgIE9iamVjdC5rZXlzKHN0YXRlKS5mb3JFYWNoKGlkID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZUl0ZW1TdGF0ZSA9IGNvcmVSZWR1Y2VyKHN0YXRlW2lkXSwgX2FjdGlvbkZvcihpZCwgYWN0aW9uKSk7XG4gICAgICBzdGF0ZSA9IF91cGRhdGVQcm9wZXJ0eShzdGF0ZSwgaWQsIHVwZGF0ZUl0ZW1TdGF0ZSk7XG4gICAgfSk7XG5cbiAgICAvLyBwZXJmb3JtIGFkZGl0aW9uYWwgc3RhdGUgcmVkdWNpbmcgKGUuZy4gc3dpdGNoIGFjdGlvbi50eXBlIGV0Yy4uLilcbiAgICBjb25zdCBoYW5kbGVycyA9IHtcbiAgICAgIFtBY3Rpb25UeXBlcy5SRUdJU1RFUl9FTlRSWV06IGhhbmRsZVJlZ2lzdGVyRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuREVMRVRFX0VOVFJZXTogaGFuZGxlRGVsZXRlRW50cnksXG4gICAgICBbQWN0aW9uVHlwZXMuUkVOQU1FX0VOVFJZXTogaGFuZGxlUmVuYW1lRW50cnlcbiAgICB9O1xuXG4gICAgLy8gVE9ETzogVW5kZXJzdGFuZCB3aHkgdGhlIExpbnQgc2VlcyBhbiBlcnJvciBoZXJlLCB3aGlsZSB0aGUgSURFIGRvZXMgbm90LlxuICAgIHJldHVybiBoYW5kbGVBY3Rpb25zKGhhbmRsZXJzLCBpbml0aWFsQ29yZVN0YXRlKShzdGF0ZSwgYWN0aW9uKTtcbiAgfTtcbn1cblxuY29uc3QgX2tlcGxlckdsUmVkdWNlciA9IHByb3ZpZGVJbml0aWFsU3RhdGUoaW5pdGlhbENvcmVTdGF0ZSk7XG5cbmZ1bmN0aW9uIG1lcmdlSW5pdGlhbFN0YXRlKHNhdmVkID0ge30sIHByb3ZpZGVkID0ge30sIGV4dHJhSW5pdGlhbFN0YXRlS2V5czogc3RyaW5nW10gPSBbXSkge1xuICBjb25zdCBrZXlzID0gWydtYXBTdGF0ZScsICdtYXBTdHlsZScsICd2aXNTdGF0ZScsICd1aVN0YXRlJywgLi4uZXh0cmFJbml0aWFsU3RhdGVLZXlzXTtcblxuICAvLyBzaGFsbG93IG1lcmdlIGVhY2ggcmVkdWNlclxuICBjb25zdCBuZXdTdGF0ZSA9IGtleXMucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKHNhdmVkW2tleV0gJiYgcHJvdmlkZWRba2V5XVxuICAgICAgICA/IHtba2V5XTogey4uLnNhdmVkW2tleV0sIC4uLnByb3ZpZGVkW2tleV19fVxuICAgICAgICA6IHtba2V5XTogc2F2ZWRba2V5XSB8fCBwcm92aWRlZFtrZXldIHx8IHt9fSlcbiAgICB9KSxcbiAgICB7fVxuICApO1xuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn1cblxuZnVuY3Rpb24gZGVjb3JhdGUodGFyZ2V0LCBzYXZlZEluaXRpYWxTdGF0ZSA9IHt9KSB7XG4gIGNvbnN0IHRhcmdldEluaXRpYWxTdGF0ZSA9IHNhdmVkSW5pdGlhbFN0YXRlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEga2VwbGVyLmdsIHJlZHVjZXIgdGhhdCB3aWxsIGFsc28gcGFzcyBlYWNoIGFjdGlvbiB0aHJvdWdoIGFkZGl0aW9uYWwgcmVkdWNlcnMgc3BpZWNpZmllZC5cbiAgICogVGhlIHBhcmFtZXRlciBzaG91bGQgYmUgZWl0aGVyIGEgcmVkdWNlciBtYXAgb3IgYSByZWR1Y2VyIGZ1bmN0aW9uLlxuICAgKiBUaGUgc3RhdGUgcGFzc2VkIGludG8gdGhlIGFkZGl0aW9uYWwgYWN0aW9uIGhhbmRsZXIgaXMgdGhlIGluc3RhbmNlIHN0YXRlLlxuICAgKiBJdCB3aWxsIGluY2x1ZGUgYWxsIHRoZSBzdWJyZWR1Y2VycyBgdmlzU3RhdGVgLCBgdWlTdGF0ZWAsIGBtYXBTdGF0ZWAgYW5kIGBtYXBTdHlsZWAuXG4gICAqIGAucGx1Z2luYCBpcyBvbmx5IG1lYW50IHRvIGJlIGNhbGxlZCBvbmNlIHdoZW4gbW91bnRpbmcgdGhlIGtlcGxlckdsUmVkdWNlciB0byB0aGUgc3RvcmUuXG4gICAqICoqTm90ZSoqIFRoaXMgaXMgYW4gYWR2YW5jZWQgb3B0aW9uIHRvIGdpdmUgeW91IG1vcmUgZnJlZWRvbSB0byBtb2RpZnkgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZSBrZXBsZXIuZ2wgaW5zdGFuY2UuXG4gICAqIFlvdSBzaG91bGQgb25seSB1c2UgdGhpcyB0byBhZGRpbmcgYWRkaXRpb25hbCBhY3Rpb25zIGluc3RlYWQgb2YgcmVwbGFjaW5nIGRlZmF1bHQgYWN0aW9ucy5cbiAgICpcbiAgICogQG1peGluIGtlcGxlckdsUmVkdWNlci5wbHVnaW5cbiAgICogQG1lbWJlcm9mIGtlcGxlckdsUmVkdWNlclxuICAgKiBAcGFyYW0ge09iamVjdHxGdW5jdGlvbn0gY3VzdG9tUmVkdWNlciAtIEEgcmVkdWNlciBtYXAgb3IgYSByZWR1Y2VyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gb3B0aW9ucyB0byBiZSBhcHBsaWVkIHRvIGN1c3RvbSByZWR1Y2VyIGxvZ2ljXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLm92ZXJyaWRlIC0gb2JqZWN0cyB0aGF0IGRlc2NyaWJlIHdoaWNoIGFjdGlvbiB0byBvdmVycmlkZSwgZS5nLiB7W0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdHJ1ZX1cbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBteUtlcGxlckdsUmVkdWNlciA9IGtlcGxlckdsUmVkdWNlclxuICAgKiAgLnBsdWdpbih7XG4gICAqICAgIC8vIDEuIGFzIHJlZHVjZXIgbWFwXG4gICAqICAgIEhJREVfQU5EX1NIT1dfU0lERV9QQU5FTDogKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAqICAgICAgLi4uc3RhdGUsXG4gICAqICAgICAgdWlTdGF0ZToge1xuICAgKiAgICAgICAgLi4uc3RhdGUudWlTdGF0ZSxcbiAgICogICAgICAgIHJlYWRPbmx5OiAhc3RhdGUudWlTdGF0ZS5yZWFkT25seVxuICAgKiAgICAgIH1cbiAgICogICAgfSlcbiAgICogIH0pXG4gICAqIC5wbHVnaW4oaGFuZGxlQWN0aW9ucyh7XG4gICAqICAgLy8gMi4gYXMgcmVkdWNlclxuICAgKiAgICdISURFX01BUF9DT05UUk9MUyc6IChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgKiAgICAgLi4uc3RhdGUsXG4gICAqICAgICB1aVN0YXRlOiB7XG4gICAqICAgICAgIC4uLnN0YXRlLnVpU3RhdGUsXG4gICAqICAgICAgIG1hcENvbnRyb2xzOiBoaWRkZW5NYXBDb250cm9sXG4gICAqICAgICB9XG4gICAqICAgfSlcbiAgICogfSwge30pKTtcbiAgICovXG4gIHRhcmdldC5wbHVnaW4gPSBmdW5jdGlvbiBwbHVnaW4oY3VzdG9tUmVkdWNlciwgb3B0aW9ucykge1xuICAgIGlmICh0eXBlb2YgY3VzdG9tUmVkdWNlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGlmIG9ubHkgcHJvdmlkZWQgYSByZWR1Y2VyTWFwLCB3cmFwIGl0IGluIGEgcmVkdWNlclxuICAgICAgY3VzdG9tUmVkdWNlciA9IGhhbmRsZUFjdGlvbnMoY3VzdG9tUmVkdWNlciwge30pO1xuICAgIH1cblxuICAgIC8vIHVzZSAnZnVuY3Rpb24nIGtleXdvcmQgdG8gZW5hYmxlICd0aGlzJ1xuICAgIHJldHVybiBkZWNvcmF0ZSgoc3RhdGUgPSB7fSwgYWN0aW9uOiB7dHlwZT86IHN0cmluZ30gPSB7fSkgPT4ge1xuICAgICAgbGV0IG5leHRTdGF0ZSA9IHN0YXRlO1xuICAgICAgaWYgKGFjdGlvbi50eXBlICYmICFvcHRpb25zPy5vdmVycmlkZT8uW2FjdGlvbi50eXBlXSkge1xuICAgICAgICBuZXh0U3RhdGUgPSB0aGlzKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICAvLyBmb3IgZWFjaCBlbnRyeSBpbiB0aGUgc3RhdGVuXG4gICAgICBPYmplY3Qua2V5cyhuZXh0U3RhdGUpLmZvckVhY2goaWQgPT4ge1xuICAgICAgICAvLyB1cGRhdGUgY2hpbGQgc3RhdGVzXG4gICAgICAgIG5leHRTdGF0ZSA9IF91cGRhdGVQcm9wZXJ0eShcbiAgICAgICAgICBuZXh0U3RhdGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY3VzdG9tUmVkdWNlcihuZXh0U3RhdGVbaWRdLCBfYWN0aW9uRm9yKGlkLCBhY3Rpb24pKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSByZWR1Y2VyIHRoYXQgaW5pdGlhdGVkIHdpdGggY3VzdG9tIGluaXRpYWwgc3RhdGUuXG4gICAqIFRoZSBwYXJhbWV0ZXIgc2hvdWxkIGJlIGFuIG9iamVjdCBtYXBwaW5nIGZyb20gYHN1YnJlZHVjZXJgIG5hbWUgdG8gY3VzdG9tIHN1YnJlZHVjZXIgc3RhdGUsXG4gICAqIHdoaWNoIHdpbGwgYmUgc2hhbGxvdyAqKm1lcmdlZCoqIHdpdGggZGVmYXVsdCBpbml0aWFsIHN0YXRlLlxuICAgKlxuICAgKiBEZWZhdWx0IHN1YnJlZHVjZXIgc3RhdGU6XG4gICAqICAtIFtgdmlzU3RhdGVgXSguL3Zpcy1zdGF0ZS5tZCNJTklUSUFMX1ZJU19TVEFURSlcbiAgICogIC0gW2BtYXBTdGF0ZWBdKC4vbWFwLXN0YXRlLm1kI0lOSVRJQUxfTUFQX1NUQVRFKVxuICAgKiAgLSBbYG1hcFN0eWxlYF0oLi9tYXAtc3R5bGUubWQjSU5JVElBTF9NQVBfU1RZTEUpXG4gICAqICAtIFtgdWlTdGF0ZWBdKC4vdWktc3RhdGUubWQjSU5JVElBTF9VSV9TVEFURSlcbiAgICogQG1peGluIGtlcGxlckdsUmVkdWNlci5pbml0aWFsU3RhdGVcbiAgICogQG1lbWJlcm9mIGtlcGxlckdsUmVkdWNlclxuICAgKiBAcGFyYW0ge09iamVjdH0gaW5pU3QgLSBjdXN0b20gc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggZGVmYXVsdCBpbml0aWFsIHN0YXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBleHRyYVJlZHVjZXJzIC0gb3B0aW9uYWwgY3VzdG9tIHJlZHVjZXJzIGluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IGB2aXNTdGF0ZWAsIGBtYXBTdGF0ZWAsIGBtYXBTdHlsZWAsIGFuZCBgdWlTdGF0ZWBcbiAgICogQHB1YmxpY1xuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBteUtlcGxlckdsUmVkdWNlciA9IGtlcGxlckdsUmVkdWNlclxuICAgKiAgLmluaXRpYWxTdGF0ZSh7XG4gICAqICAgIHVpU3RhdGU6IHtyZWFkT25seTogdHJ1ZX1cbiAgICogIH0pO1xuICAgKi9cbiAgdGFyZ2V0LmluaXRpYWxTdGF0ZSA9IGZ1bmN0aW9uIGluaXRpYWxTdGF0ZShpbmlTdCwgZXh0cmFSZWR1Y2VycyA9IHt9KSB7XG4gICAgLy8gcGFzc2luZyB0aHJvdWdoIGV4dHJhSW5pdGlhbFN0YXRlS2V5cyBhbmQgZXh0cmFSZWR1Y2VycyBhbGxvd3MgZXh0ZXJuYWwgY3VzdG9taXphdGlvbiBieSBhZGRpbmcgYWRkaXRpb25hbCBzdWJyZWR1Y2VycyBhbmQgc3RhdGUgYmV5b25kIHRoZSBkZWZhdWx0IGB2aXNTdGF0ZWAsIGBtYXBTdGF0ZWAsIGBtYXBTdHlsZWAsIGFuZCBgdWlTdGF0ZWBcbiAgICBjb25zdCBleHRyYUluaXRpYWxTdGF0ZUtleXMgPSBPYmplY3Qua2V5cyhleHRyYVJlZHVjZXJzKTtcbiAgICBjb25zdCBtZXJnZWQgPSBtZXJnZUluaXRpYWxTdGF0ZSh0YXJnZXRJbml0aWFsU3RhdGUsIGluaVN0LCBleHRyYUluaXRpYWxTdGF0ZUtleXMpO1xuICAgIGNvbnN0IHRhcmdldFJlZHVjZXIgPSBwcm92aWRlSW5pdGlhbFN0YXRlKG1lcmdlZCwgZXh0cmFSZWR1Y2Vycyk7XG5cbiAgICByZXR1cm4gZGVjb3JhdGUodGFyZ2V0UmVkdWNlciwgbWVyZ2VkKTtcbiAgfTtcblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG4vKipcbiAqIEtlcGxlci5nbCByZWR1Y2VyIHRvIGJlIG1vdW50ZWQgdG8geW91ciBzdG9yZS4gWW91IGNhbiBtb3VudCBga2VwbGVyR2xSZWR1Y2VyYCBhdCBwcm9wZXJ0eSBga2VwbGVyR2xgLCBpZiB5b3UgY2hvb3NlXG4gKiB0byBtb3VudCBpdCBhdCBhbm90aGVyIGFkZHJlc3MgZS5nLiBgZm9vYCB5b3Ugd2lsbCBuZWVkIHRvIHNwZWNpZnkgaXQgd2hlbiB5b3UgbW91bnQgYEtlcGxlckdsYCBjb21wb25lbnQgaW4geW91ciBhcHAgd2l0aCBgZ2V0U3RhdGU6IHN0YXRlID0+IHN0YXRlLmZvb2BcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyIGZyb20gJ2tlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiBpbXBvcnQge2NyZWF0ZVN0b3JlLCBjb21iaW5lUmVkdWNlcnMsIGFwcGx5TWlkZGxld2FyZSwgY29tcG9zZX0gZnJvbSAncmVkdXgnO1xuICogaW1wb3J0IHt0YXNrTWlkZGxld2FyZX0gZnJvbSAncmVhY3QtcGFsbS90YXNrcyc7XG4gKlxuICogY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAgIC8vIDwtLSBtb3VudCBrZXBsZXIuZ2wgcmVkdWNlciBpbiB5b3VyIGFwcFxuICogICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICpcbiAqICAgLy8gWW91ciBvdGhlciByZWR1Y2VycyBoZXJlXG4gKiAgIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogLy8gdXNpbmcgY3JlYXRlU3RvcmVcbiAqIGV4cG9ydCBkZWZhdWx0IGNyZWF0ZVN0b3JlKHJlZHVjZXIsIGluaXRpYWxTdGF0ZSwgYXBwbHlNaWRkbGV3YXJlKHRhc2tNaWRkbGV3YXJlKSk7XG4gKi9cbmNvbnN0IGtlcGxlckdsUmVkdWNlciA9IGRlY29yYXRlKF9rZXBsZXJHbFJlZHVjZXIpO1xuZXhwb3J0IGRlZmF1bHQga2VwbGVyR2xSZWR1Y2VyO1xuIl19
@@ -29,6 +29,7 @@ export declare const DEFAULT_MAP_CONTROLS: MapControls;
29
29
  * @property imageDataUri Default: `''`,
30
30
  * @property exporting Default: `false`
31
31
  * @property error Default: `false`
32
+ * @property escapeXhtmlForWebpack Default: `true`
32
33
  * @public
33
34
  */
34
35
  export declare const DEFAULT_EXPORT_IMAGE: ExportImage;
@@ -88,12 +89,12 @@ export declare const DEFAULT_EXPORT_MAP: ExportMap;
88
89
  * @property notifications Default: `[]`
89
90
  * @property notifications Default: `[]`
90
91
  * @property loadFiles
92
+ * @property isSidePanelCloseButtonVisible Default: `true`
91
93
  * @public
92
94
  */
93
95
  export declare const INITIAL_UI_STATE: UiState;
94
96
  /**
95
97
  * @memberof uiStateUpdaters
96
-
97
98
  */
98
99
  export declare const initUiStateUpdater: (state: UiState, action: {
99
100
  type?: typeof ActionTypes['INIT'];
@@ -137,6 +138,12 @@ export declare const showExportDropdownUpdater: (state: UiState, { payload: id }
137
138
  * @public
138
139
  */
139
140
  export declare const hideExportDropdownUpdater: (state: UiState) => UiState;
141
+ /**
142
+ * Toggle side panel close button on top left of the side panel
143
+ * @memberof uiStateUpdaters
144
+ * @public
145
+ */
146
+ export declare const toggleSidePanelCloseButtonUpdater: (state: UiState, { payload: { show } }: UIStateActions.ToggleSidePanelCloseButtonUpdaterAction) => UiState;
140
147
  /**
141
148
  * Toggle active map control panel
142
149
  * @memberof uiStateUpdaters
@@ -352,4 +359,4 @@ export declare const setLocaleUpdater: (state: UiState, { payload: { locale } }:
352
359
  * @returns nextState
353
360
  * @public
354
361
  */
355
- export declare const toggleLayerPanelListViewUpdater: (state: UiState, { payload: listView }: UIStateActions.ToggleLayerPanelListViewAction) => UiState;
362
+ export declare const togglePanelListViewUpdater: (state: UiState, { payload: { panelId, listView } }: UIStateActions.TogglePanelListViewAction) => UiState;