react-elmish 4.3.0 → 4.4.0

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.
@@ -0,0 +1,6 @@
1
+ import { Cmd, Dispatch } from "./Cmd";
2
+ import { MessageBase } from "./Types";
3
+ declare function logMessage<TMessage extends MessageBase>(name: string, msg: TMessage): void;
4
+ declare function modelHasChanged<TModel>(currentModel: TModel, model: Partial<TModel>): boolean;
5
+ declare function execCmd<TMessage>(cmd: Cmd<TMessage>, dispatch: Dispatch<TMessage>): void;
6
+ export { logMessage, modelHasChanged, execCmd, };
package/dist/Common.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.execCmd = execCmd;
7
+ exports.logMessage = logMessage;
8
+ exports.modelHasChanged = modelHasChanged;
9
+
10
+ var _Init = require("./Init");
11
+
12
+ function logMessage(name, msg) {
13
+ var _Services$logger, _Services$logger2, _Services$dispatchMid;
14
+
15
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.info("Elm", "message from", name, msg.name);
16
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "message from", name, msg);
17
+ (_Services$dispatchMid = _Init.Services.dispatchMiddleware) === null || _Services$dispatchMid === void 0 ? void 0 : _Services$dispatchMid.call(_Init.Services, msg);
18
+ }
19
+
20
+ function modelHasChanged(currentModel, model) {
21
+ return !Object.is(model, currentModel) && Object.getOwnPropertyNames(model).length > 0;
22
+ }
23
+
24
+ function execCmd(cmd, dispatch) {
25
+ cmd.forEach(function (call) {
26
+ try {
27
+ call(dispatch);
28
+ } catch (ex) {
29
+ var _Services$logger3;
30
+
31
+ (_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.error(ex);
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2dNZXNzYWdlIiwibmFtZSIsIm1zZyIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwibW9kZWxIYXNDaGFuZ2VkIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJPYmplY3QiLCJpcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJleGVjQ21kIiwiY21kIiwiZGlzcGF0Y2giLCJmb3JFYWNoIiwiY2FsbCIsImV4IiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi9zcmMvQ29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi9DbWRcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG5mdW5jdGlvbiBsb2dNZXNzYWdlPFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IChuYW1lOiBzdHJpbmcsIG1zZzogVE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBTZXJ2aWNlcy5sb2dnZXI/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbXNnLm5hbWUpO1xuICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbXNnKTtcblxuICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZT8uKG1zZyk7XG59XG5cbmZ1bmN0aW9uIG1vZGVsSGFzQ2hhbmdlZDxUTW9kZWw+IChjdXJyZW50TW9kZWw6IFRNb2RlbCwgbW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhT2JqZWN0LmlzKG1vZGVsLCBjdXJyZW50TW9kZWwpICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1vZGVsKS5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBleGVjQ21kPFRNZXNzYWdlPiAoY21kOiBDbWQ8VE1lc3NhZ2U+LCBkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+KTogdm9pZCB7XG4gICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmV4cG9ydCB7XG4gICAgbG9nTWVzc2FnZSxcbiAgICBtb2RlbEhhc0NoYW5nZWQsXG4gICAgZXhlY0NtZCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFHQSxTQUFTQSxVQUFULENBQW1EQyxJQUFuRCxFQUFpRUMsR0FBakUsRUFBc0Y7RUFBQTs7RUFDbEYsb0JBQUFDLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLElBQWpCLENBQXNCLEtBQXRCLEVBQTZCLGNBQTdCLEVBQTZDSixJQUE3QyxFQUFtREMsR0FBRyxDQUFDRCxJQUF2RDtFQUNBLHFCQUFBRSxjQUFBLENBQVNDLE1BQVQsd0VBQWlCRSxLQUFqQixDQUF1QixLQUF2QixFQUE4QixjQUE5QixFQUE4Q0wsSUFBOUMsRUFBb0RDLEdBQXBEO0VBRUEseUJBQUFDLGNBQUEsQ0FBU0ksa0JBQVQscUZBQUFKLGNBQUEsRUFBOEJELEdBQTlCO0FBQ0g7O0FBRUQsU0FBU00sZUFBVCxDQUFrQ0MsWUFBbEMsRUFBd0RDLEtBQXhELEVBQXlGO0VBQ3JGLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDQyxFQUFQLENBQVVGLEtBQVYsRUFBaUJELFlBQWpCLENBQUQsSUFBbUNFLE1BQU0sQ0FBQ0UsbUJBQVAsQ0FBMkJILEtBQTNCLEVBQWtDSSxNQUFsQyxHQUEyQyxDQUFyRjtBQUNIOztBQUVELFNBQVNDLE9BQVQsQ0FBNEJDLEdBQTVCLEVBQWdEQyxRQUFoRCxFQUFvRjtFQUNoRkQsR0FBRyxDQUFDRSxPQUFKLENBQVksVUFBQUMsSUFBSSxFQUFJO0lBQ2hCLElBQUk7TUFDQUEsSUFBSSxDQUFDRixRQUFELENBQUo7SUFDSCxDQUZELENBRUUsT0FBT0csRUFBUCxFQUFvQjtNQUFBOztNQUNsQixxQkFBQWpCLGNBQUEsQ0FBU0MsTUFBVCx3RUFBaUJpQixLQUFqQixDQUF1QkQsRUFBdkI7SUFDSDtFQUNKLENBTkQ7QUFPSCJ9
@@ -38,7 +38,6 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
38
38
  * @memberof ElmComponent
39
39
  */
40
40
  componentWillUnmount(): void;
41
- private execCmd;
42
41
  /**
43
42
  * Returns the current model.
44
43
  * @readonly
@@ -9,6 +9,8 @@ exports.ElmComponent = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _Common = require("./Common");
13
+
12
14
  var _Init = require("./Init");
13
15
 
14
16
  var _fakeOptions = require("./Testing/fakeOptions");
@@ -95,10 +97,6 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
95
97
  _defineProperty(_assertThisInitialized(_this), "currentModel", void 0);
96
98
 
97
99
  _defineProperty(_assertThisInitialized(_this), "dispatch", function (msg) {
98
- var modelHasChanged = function modelHasChanged(model) {
99
- return model !== _this.currentModel && Object.getOwnPropertyNames(model).length > 0;
100
- };
101
-
102
100
  if (_this.reentered) {
103
101
  _this.buffer.push(msg);
104
102
  } else {
@@ -107,14 +105,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
107
105
  var modified = false;
108
106
 
109
107
  while (nextMsg) {
110
- var _Services$logger, _Services$logger2;
111
-
112
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.info("Elm", "message from", _this.componentName, nextMsg.name);
113
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "message from", _this.componentName, nextMsg);
114
-
115
- if (_Init.Services.dispatchMiddleware) {
116
- _Init.Services.dispatchMiddleware(nextMsg);
117
- }
108
+ (0, _Common.logMessage)(_this.componentName, nextMsg);
118
109
 
119
110
  try {
120
111
  var _this$update = _this.update(_this.currentModel, nextMsg, _this.props),
@@ -122,18 +113,18 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
122
113
  model = _this$update2[0],
123
114
  cmd = _this$update2[1];
124
115
 
125
- if (modelHasChanged(model)) {
116
+ if ((0, _Common.modelHasChanged)(_this.currentModel, model)) {
126
117
  _this.currentModel = _objectSpread(_objectSpread({}, _this.currentModel), model);
127
118
  modified = true;
128
119
  }
129
120
 
130
121
  if (cmd) {
131
- _this.execCmd(cmd);
122
+ (0, _Common.execCmd)(cmd, _this.dispatch);
132
123
  }
133
124
  } catch (ex) {
134
- var _Services$logger3;
125
+ var _Services$logger;
135
126
 
136
- (_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.error(ex);
127
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
137
128
  }
138
129
 
139
130
  nextMsg = _this.buffer.shift();
@@ -142,9 +133,9 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
142
133
  _this.reentered = false;
143
134
 
144
135
  if (_this.mounted && modified) {
145
- var _Services$logger4;
136
+ var _Services$logger2;
146
137
 
147
- (_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.debug("Elm", "update model for", _this.componentName, _this.currentModel);
138
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "update model for", _this.componentName, _this.currentModel);
148
139
 
149
140
  _this.forceUpdate();
150
141
  }
@@ -182,7 +173,7 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
182
173
  this.mounted = true;
183
174
 
184
175
  if (this.initCmd) {
185
- this.execCmd(this.initCmd);
176
+ (0, _Common.execCmd)(this.initCmd, this.dispatch);
186
177
  this.initCmd = null;
187
178
  }
188
179
  }
@@ -197,21 +188,6 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
197
188
  value: function componentWillUnmount() {
198
189
  this.mounted = false;
199
190
  }
200
- }, {
201
- key: "execCmd",
202
- value: function execCmd(cmd) {
203
- var _this2 = this;
204
-
205
- cmd.forEach(function (call) {
206
- try {
207
- call(_this2.dispatch);
208
- } catch (ex) {
209
- var _Services$logger5;
210
-
211
- (_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.error(ex);
212
- }
213
- });
214
- }
215
191
  /**
216
192
  * Returns the current model.
217
193
  * @readonly
@@ -236,4 +212,4 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
236
212
  }(_react["default"].Component);
237
213
 
238
214
  exports.ElmComponent = ElmComponent;
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwibW9kZWxIYXNDaGFuZ2VkIiwibW9kZWwiLCJjdXJyZW50TW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsImRpc3BhdGNoTWlkZGxld2FyZSIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwiaW5pdENtZCIsImZvckVhY2giLCJjYWxsIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTWVzc2FnZSwgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9UZXN0aW5nL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24sIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgRWxtQ29tcG9uZW50PFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlLCBUUHJvcHM+IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFRQcm9wcz4ge1xuICAgIHByaXZhdGUgaW5pdENtZDogTnVsbGFibGU8Q21kPFRNZXNzYWdlPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgcHJpdmF0ZSByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRNb2RlbDogVE1vZGVsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG4gICAgICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG4gICAgICAgIGlmIChmYWtlT3B0aW9ucz8uZGlzcGF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2ggPSBmYWtlT3B0aW9ucy5kaXNwYXRjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IFttb2RlbCwgY21kXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuICAgICAgICB0aGlzLmluaXRDbWQgPSBjbWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENtZCkge1xuICAgICAgICAgICAgdGhpcy5leGVjQ21kKHRoaXMuaW5pdENtZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjQ21kIChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkIHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwodGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IG1vZGVsICE9PSB0aGlzLmN1cnJlbnRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZShuZXh0TXNnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQGFic3RyYWN0XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbmV4cG9ydCB7XG4gICAgRWxtQ29tcG9uZW50LFxufTsiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNlQSxZOzs7OztFQVFYO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksc0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBaUZDLElBQWpGLEVBQStGO0lBQUE7O0lBQUE7O0lBQzNGLDBCQUFNRixLQUFOOztJQUQyRjs7SUFBQTs7SUFBQSx5REFaeEQsRUFZd0Q7O0lBQUEsNERBWDNFLEtBVzJFOztJQUFBLDBEQVY3RSxLQVU2RTs7SUFBQTs7SUFBQSwyREFnRXBFLFVBQUNHLEdBQUQsRUFBeUI7TUFDaEQsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO1FBQUEsT0FBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMsR0FBMkMsQ0FBL0c7TUFBQSxDQUF4Qjs7TUFFQSxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCVCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtPLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJRyxPQUE2QixHQUFHVixHQUFwQztRQUNBLElBQUlXLFFBQVEsR0FBRyxLQUFmOztRQUVBLE9BQU9ELE9BQVAsRUFBZ0I7VUFBQTs7VUFDWixvQkFBQUUsY0FBQSxDQUFTQyxNQUFULHNFQUFpQkMs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
215
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbG1Db21wb25lbnQiLCJwcm9wcyIsImluaXQiLCJuYW1lIiwibXNnIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwidXBkYXRlIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJjbWQiLCJtb2RlbEhhc0NoYW5nZWQiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJzaGlmdCIsIm1vdW50ZWQiLCJkZWJ1ZyIsImZvcmNlVXBkYXRlIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJpbml0Q21kIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBNZXNzYWdlLCBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL1Rlc3RpbmcvZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IEluaXRGdW5jdGlvbiwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgYSByZWFjdCBjbGFzcyBjb21wb25lbnQgdXNpbmcgdGhlIEVsbWlzaCBwYXR0ZXJuLlxuICogQGV4cG9ydFxuICogQGFic3RyYWN0XG4gKiBAY2xhc3MgRWxtQ29tcG9uZW50XG4gKiBAZXh0ZW5kcyB7Q29tcG9uZW50PFRQcm9wcywgVE1vZGVsPn1cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcy5cbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICovXG5hYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRQcm9wcz4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8VFByb3BzPiB7XG4gICAgcHJpdmF0ZSBpbml0Q21kOiBOdWxsYWJsZTxDbWQ8VE1lc3NhZ2U+PiB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgbW91bnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG5cbiAgICAgICAgaWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW21vZGVsLCBjbWRdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0gbW9kZWw7XG4gICAgICAgIHRoaXMuaW5pdENtZCA9IGNtZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGxvYWRlZC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5pbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKHRoaXMuaW5pdENtZCwgdGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcmVhZG9ubHlcbiAgICAgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBtb2RlbCAoKTogUmVhZG9ubHk8VE1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRNb2RlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNwYXRjaGVzIGEgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkaXNwYXRjaCA9IChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLnJlZW50ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBsb2dNZXNzYWdlKHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZCh0aGlzLmN1cnJlbnRNb2RlbCwgbW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IHsgLi4udGhpcy5jdXJyZW50TW9kZWwsIC4uLm1vZGVsIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCwgdGhpcy5kaXNwYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCB0aGlzLmNvbXBvbmVudE5hbWUsIHRoaXMuY3VycmVudE1vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHtcbiAgICBFbG1Db21wb25lbnQsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ2VBLFk7Ozs7O0VBUVg7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxzQkFBb0JDLEtBQXBCLEVBQW1DQyxJQUFuQyxFQUFpRkMsSUFBakYsRUFBK0Y7SUFBQTs7SUFBQTs7SUFDM0YsMEJBQU1GLEtBQU47O0lBRDJGOztJQUFBOztJQUFBLHlEQVp4RCxFQVl3RDs7SUFBQSw0REFYM0UsS0FXMkU7O0lBQUEsMERBVjdFLEtBVTZFOztJQUFBOztJQUFBLDJEQXNEcEUsVUFBQ0csR0FBRCxFQUF5QjtNQUNoRCxJQUFJLE1BQUtDLFNBQVQsRUFBb0I7UUFDaEIsTUFBS0MsTUFBTCxDQUFZQyxJQUFaLENBQWlCSCxHQUFqQjtNQUNILENBRkQsTUFFTztRQUNILE1BQUtDLFNBQUwsR0FBaUIsSUFBakI7UUFFQSxJQUFJ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
package/dist/useElmish.js CHANGED
@@ -9,6 +9,8 @@ exports.useElmish = useElmish;
9
9
 
10
10
  var _react = require("react");
11
11
 
12
+ var _Common = require("./Common");
13
+
12
14
  var _Init = require("./Init");
13
15
 
14
16
  var _fakeOptions = require("./Testing/fakeOptions");
@@ -55,34 +57,25 @@ function useElmish(_ref) {
55
57
  model = _useState2[0],
56
58
  setModel = _useState2[1];
57
59
 
58
- var initializedModel = model;
59
60
  var propsRef = (0, _react.useRef)(props);
61
+ var isMountedRef = (0, _react.useRef)(true);
62
+ (0, _react.useEffect)(function () {
63
+ return function () {
64
+ isMountedRef.current = false;
65
+ };
66
+ }, []);
67
+ var initializedModel = model;
60
68
 
61
69
  if (propsRef.current !== props) {
62
70
  propsRef.current = props;
63
71
  }
64
72
 
65
- var execCmd = (0, _react.useCallback)(function (cmd) {
66
- cmd.forEach(function (call) {
67
- try {
68
- call(dispatch);
69
- } catch (ex) {
70
- var _Services$logger;
71
-
72
- (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
73
- }
74
- });
75
- }, []);
76
73
  var fakeOptions = (0, _fakeOptions.getFakeOptionsOnce)();
77
74
  var dispatch = (0, _react.useCallback)((_fakeOptions$dispatch = fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.dispatch) !== null && _fakeOptions$dispatch !== void 0 ? _fakeOptions$dispatch : function (msg) {
78
75
  if (!initializedModel) {
79
76
  return;
80
77
  }
81
78
 
82
- var modelHasChanged = function modelHasChanged(updatedModel) {
83
- return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
84
- };
85
-
86
79
  if (reentered) {
87
80
  buffer.push(msg);
88
81
  } else {
@@ -91,14 +84,7 @@ function useElmish(_ref) {
91
84
  var modified = false;
92
85
 
93
86
  while (nextMsg) {
94
- var _Services$logger2, _Services$logger3;
95
-
96
- (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.info("Elm", "message from", name, nextMsg.name);
97
- (_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.debug("Elm", "message from", name, nextMsg);
98
-
99
- if (_Init.Services.dispatchMiddleware) {
100
- _Init.Services.dispatchMiddleware(nextMsg);
101
- }
87
+ (0, _Common.logMessage)(name, nextMsg);
102
88
 
103
89
  try {
104
90
  var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current),
@@ -106,18 +92,18 @@ function useElmish(_ref) {
106
92
  newModel = _callUpdate2[0],
107
93
  cmd = _callUpdate2[1];
108
94
 
109
- if (modelHasChanged(newModel)) {
95
+ if ((0, _Common.modelHasChanged)(currentModel, newModel)) {
110
96
  currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
111
97
  modified = true;
112
98
  }
113
99
 
114
100
  if (cmd) {
115
- execCmd(cmd);
101
+ (0, _Common.execCmd)(cmd, dispatch);
116
102
  }
117
103
  } catch (ex) {
118
- var _Services$logger4;
104
+ var _Services$logger;
119
105
 
120
- (_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.error(ex);
106
+ (_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
121
107
  }
122
108
 
123
109
  nextMsg = buffer.shift();
@@ -125,13 +111,13 @@ function useElmish(_ref) {
125
111
 
126
112
  reentered = false;
127
113
 
128
- if (modified) {
114
+ if (isMountedRef.current && modified) {
129
115
  setModel(function (prevModel) {
130
- var _Services$logger5;
116
+ var _Services$logger2;
131
117
 
132
118
  var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
133
119
 
134
- (_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.debug("Elm", "update model for", name, updatedModel);
120
+ (_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.debug("Elm", "update model for", name, updatedModel);
135
121
  return updatedModel;
136
122
  });
137
123
  }
@@ -148,7 +134,7 @@ function useElmish(_ref) {
148
134
  setModel(initializedModel);
149
135
 
150
136
  if (initCmd) {
151
- execCmd(initCmd);
137
+ (0, _Common.execCmd)(initCmd, dispatch);
152
138
  }
153
139
  }
154
140
 
@@ -159,7 +145,7 @@ function useElmish(_ref) {
159
145
  subCmd = _subscription2[0],
160
146
  destructor = _subscription2[1];
161
147
 
162
- execCmd(subCmd);
148
+ (0, _Common.execCmd)(subCmd, dispatch);
163
149
 
164
150
  if (destructor) {
165
151
  return destructor;
@@ -183,4 +169,4 @@ function callUpdateMap(updateMap, msg, model, props) {
183
169
  var updateFn = updateMap[msg.name];
184
170
  return updateFn(msg, model, props);
185
171
  }
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiY3VycmVudCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwidXNlRWZmZWN0Iiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL1Rlc3RpbmcvZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IEluaXRGdW5jdGlvbiwgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuICAgICAqIEB0eXBlIHtUUHJvcHN9XG4gICAgICovXG4gICAgcHJvcHM6IFRQcm9wcyxcbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cbiAgICAgKi9cbiAgICBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICAvKipcbiAgICAgKiBUaGUgYHVwZGF0ZWAgZnVuY3Rpb24gb3IgdXBkYXRlIG1hcCBvYmplY3QuXG4gICAgICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuICAgICAqL1xuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuICAgICAqIEB0eXBlIHsoVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KX1cbiAgICAgKi9cbiAgICBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh7IG5hbWUsIHByb3BzLCBpbml0LCB1cGRhdGUsIHN1YnNjcmlwdGlvbiB9OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgY29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXG4gICAgaWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG4gICAgICAgIHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcbiAgICB9XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNZXNzYWdlPik6IHZvaWQgPT4ge1xuICAgICAgICBjbWQuZm9yRWFjaChjYWxsID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FsbChkaXNwYXRjaCk7XG4gICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/ICgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9ICh1cGRhdGVkTW9kZWw6IFBhcnRpYWw8VE1vZGVsPik6IGJvb2xlYW4gPT4gdXBkYXRlZE1vZGVsICE9PSBpbml0aWFsaXplZE1vZGVsICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVwZGF0ZWRNb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIGlmIChTZXJ2aWNlcy5kaXNwYXRjaE1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKG5leHRNc2cpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wc1JlZi5jdXJyZW50KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pLCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGlmIChpbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCBhcyBUTW9kZWwsIHByb3BzKTtcblxuICAgICAgICAgICAgZXhlY0NtZChzdWJDbWQpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUE7O0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEsRUFBMkIsSUFBM0IsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQUlDLGdCQUFnQixHQUFHRixLQUF2QjtFQUVBLElBQU1HLFFBQVEsR0FBRyxJQUFBQyxhQUFBLEVBQU9aLEtBQVAsQ0FBakI7O0VBRUEsSUFBSVcsUUFBUSxDQUFDRSxPQUFULEtBQXFCYixLQUF6QixFQUFnQztJQUM1QlcsUUFBUSxDQUFDRSxPQUFULEdBQW1CYixLQUFuQjtFQUNIOztFQUVELElBQU1jLE9BQU8sR0FBRyxJQUFBQyxrQkFBQSxFQUFZLFVBQUNDLEdBQUQsRUFBOEI7SUFDdERBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElBQUksRUFBSTtNQUNoQixJQUFJO1FBQ0FBLElBQUksQ0FBQ0MsUUFBRCxDQUFKO01BQ0gsQ0FGRCxDQUVFLE9BQU9DLEVBQVAsRUFBb0I7UUFBQTs7UUFDbEIsb0JBQUFDLGNBQUEsQ0FBU0MsTUFBVCxzRUFBaUJDLEtBQWpCLENBQXVCSCxFQUF2QjtNQUNIO0lBQ0osQ0FORDtFQU9ILENBUmUsRUFRYixFQVJhLENBQWhCO0VBVUEsSUFBTUksV0FBVyxHQUFHLElBQUFDLCtCQUFBLEdBQXBCO0VBQ0EsSUFBTU4sUUFBUSxHQUFHLElBQUFKLGtCQUFBLDJCQUFZUyxXQUFaLGFBQVlBLFdBQVosdUJBQVlBLFdBQVcsQ0FBRUwsUUFBekIseUVBQXNDLFVBQUNPLEdBQUQsRUFBeUI7SUFDNUUsSUFBSSxDQUFDaEIsZ0JBQUwsRUFBdUI7TUFDbkI7SUFDSDs7SUFFRCxJQUFNaUIsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxZQUFEO01BQUEsT0FBNENBLFlBQVksS0FBS2xCLGdCQUFqQixJQUFxQ21CLE1BQU0sQ0FBQ0MsbUJBQVAsQ0FBMkJGLFlBQTNCLEVBQXlDRyxNQUF6QyxHQUFrRCxDQUFuSTtJQUFBLENBQXhCOztJQUVBLElBQUkzQixTQUFKLEVBQWU7TUFDWEMsTUFBTSxDQUFDMkIsSUFBUCxDQUFZTixHQUFaO0lBQ0gsQ0FGRCxNQUVPO01BQ0h0QixTQUFTLEdBQUcsSUFBWjtNQUVBLElBQUk2QixPQUE2QixHQUFHUCxHQUFwQztNQUNBLElBQUlRLFFBQVEsR0FBRyxLQUFmOztNQUVBLE9BQU9ELE9BQVAsRUFBZ0I7UUFBQTs7UUFDWixxQkFBQVosY0FBQSxDQUFTQyxNQUFULHdFQUFpQmEsSUFBakIsQ0FBc0IsS0FBdEIsRUFBNkIsY0FBN0IsRUFBNkNwQyxJQUE3QyxFQUFtRGtDLE9BQU8sQ0FBQ2xDLElBQTNEO1FBQ0EscUJBQUFzQixjQUFBLENBQVNDLE1BQVQsd0VBQWlCYyxLQUFqQixDQUF1QixLQUF2QixFQUE4QixjQUE5QixFQUE4Q3JDLElBQTlDLEVBQW9Ea0MsT0FBcEQ7O1FBRUEsSUFBSVosY0FBQSxDQUFTZ0Isa0JBQWIsRUFBaUM7VUFDN0JoQixjQUFBLENBQVNnQixrQkFBVCxDQUE0QkosT0FBNUI7UUFDSDs7UUFFRCxJQUFJO1VBQ0Esa0JBQXdCSyxVQUFVLENBQUNwQyxNQUFELEVBQVMrQixPQUFULGtDQUF1QnZCLGdCQUF2QixHQUE0Q0osWUFBNUMsR0FBNERLLFFBQVEsQ0FBQ0UsT0FBckUsQ0FBbEM7VUFBQTtVQUFBLElBQU8wQixRQUFQO1VBQUEsSUFBaUJ2QixHQUFqQjs7VUFFQSxJQUFJVyxlQUFlLENBQUNZLFFBQUQsQ0FBbkIsRUFBK0I7WUFDM0JqQyxZQUFZLG1DQUFRQSxZQUFSLEdBQXlCaUMsUUFBekIsQ0FBWjtZQUVBTCxRQUFRLEdBQUcsSUFBWDtVQUNIOztVQUVELElBQUlsQixHQUFKLEVBQVM7WUFDTEYsT0FBTyxDQUFDRSxHQUFELENBQVA7VUFDSDtRQUNKLENBWkQsQ0FZRSxPQUFPSSxFQUFQLEVBQW9CO1VBQUE7O1VBQ2xCLHFCQUFBQyxjQUFBLENBQVNDLE1BQVQsd0VBQWlCQyxLQUFqQixDQUF1QkgsRUFBdkI7UUFDSDs7UUFFRGEsT0FBTyxHQUFHNUIsTUFBTSxDQUFDbUMsS0FBUCxFQUFWO01BQ0g7O01BQ0RwQyxTQUFTLEdBQUcsS0FBWjs7TUFFQSxJQUFJOEIsUUFBSixFQUFjO1FBQ1Z6QixRQUFRLENBQUMsVUFBQWdDLFNBQVMsRUFBSTtVQUFBOztVQUNsQixJQUFNYixZQUFZLG1DQUFRYSxTQUFSLEdBQWdDbkMsWUFBaEMsQ0FBbEI7O1VBRUEscUJBQUFlLGNBQUEsQ0FBU0MsTUFBVCx3RUFBaUJjLEtBQWpCLENBQXVCLEtBQXZCLEVBQThCLGtCQUE5QixFQUFrRHJDLElBQWxELEVBQXdENkIsWUFBeEQ7VUFFQSxPQUFPQSxZQUFQO1FBQ0gsQ0FOTyxDQUFSO01BT0g7SUFDSjtFQUNKLENBckRnQixFQXFEYixFQXJEYSxDQUFqQjs7RUF1REEsSUFBSSxDQUFDbEIsZ0JBQUwsRUFBdUI7SUFDbkIsWUFBNkJjLFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsSUFBQUEsV0FBVyxDQUFFaEIsS0FBYixHQUFxQixDQUFDZ0IsV0FBVyxDQUFDaEIsS0FBYixDQUFyQixHQUFxRFAsSUFBSSxDQUFDRCxLQUFELENBQXRGO0lBQUE7SUFBQSxJQUFPMEMsU0FBUDtJQUFBLElBQWtCQyxPQUFsQjs7SUFFQWpDLGdCQUFnQixHQUFHZ0MsU0FBbkI7SUFDQWpDLFFBQVEsQ0FBQ0MsZ0JBQUQsQ0FBUjs7SUFFQSxJQUFJaUMsT0FBSixFQUFhO01BQ1Q3QixPQUFPLENBQUM2QixPQUFELENBQVA7SUFDSDtFQUNKOztFQUVELElBQUFDLGdCQUFBLEVBQVUsWUFBTTtJQUNaLElBQUl6QyxZQUFKLEVBQWtCO01BQ2Qsb0JBQTZCQSxZQUFZLENBQUNPLGdCQUFELEVBQTZCVixLQUE3QixDQUF6QztNQUFBO01BQUEsSUFBTzZDLE1BQVA7TUFBQSxJQUFlQyxVQUFmOztNQUVBaEMsT0FBTyxDQUFDK0IsTUFBRCxDQUFQOztNQUVBLElBQUlDLFVBQUosRUFBZ0I7UUFDWixPQUFPQSxVQUFQO01BQ0g7SUFDSjtFQUNKLENBVkQsRUFVRyxFQVZIO0VBWUEsT0FBTyxDQUFDcEMsZ0JBQUQsRUFBbUJTLFFBQW5CLENBQVA7QUFDSDs7QUFFRCxTQUFTbUIsVUFBVCxDQUFtRXBDLE1BQW5FLEVBQTJKd0IsR0FBM0osRUFBMEtsQixLQUExSyxFQUF5TFIsS0FBekwsRUFBNE87RUFDeE8sSUFBSSxPQUFPRSxNQUFQLEtBQWtCLFVBQXRCLEVBQWtDO0lBQzlCLE9BQU9BLE1BQU0sQ0FBQ00sS0FBRCxFQUFRa0IsR0FBUixFQUFhMUIsS0FBYixDQUFiO0VBQ0g7O0VBRUQsT0FBTytDLGFBQWEsQ0FBQzdDLE1BQUQsRUFBU3dCLEdBQVQsRUFBY2xCLEtBQWQsRUFBcUJSLEtBQXJCLENBQXBCO0FBQ0g7O0FBRUQsU0FBUytDLGFBQVQsQ0FBc0VDLFNBQXRFLEVBQXNIdEIsR0FBdEgsRUFBcUlsQixLQUFySSxFQUFvSlIsS0FBcEosRUFBdU07RUFDbk07RUFDQTtFQUNBLElBQU1pRCxRQUFRLEdBQUdELFNBQVMsQ0FBQ3RCLEdBQUcsQ0FBQzNCLElBQUwsQ0FBMUI7RUFFQSxPQUFPa0QsUUFBUSxDQUFDdkIsR0FBRCxFQUFNbEIsS0FBTixFQUFhUixLQUFiLENBQWY7QUFDSCJ9
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwiY21kIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImV4IiwiU2VydmljZXMiLCJsb2dnZXIiLCJlcnJvciIsInNoaWZ0IiwicHJldk1vZGVsIiwidXBkYXRlZE1vZGVsIiwiZGVidWciLCJpbml0TW9kZWwiLCJpbml0Q21kIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJ1cGRhdGVGbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDbWQsIERpc3BhdGNoIH0gZnJvbSBcIi4vQ21kXCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlLCBtb2RlbEhhc0NoYW5nZWQgfSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vVGVzdGluZy9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlQmFzZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbnR5cGUgU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPiA9IFtDbWQ8VE1lc3NhZ2U+LCAoKCkgPT4gdm9pZCk/XTtcbnR5cGUgU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gU3Vic2NyaXB0aW9uUmVzdWx0PFRNZXNzYWdlPjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICogQHR5cGUge1RQcm9wc31cbiAgICAgKi9cbiAgICBwcm9wczogVFByb3BzLFxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG4gICAgICogQHR5cGUge0luaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+fVxuICAgICAqL1xuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIC8qKlxuICAgICAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cbiAgICAgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG4gICAgICovXG4gICAgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgLyoqXG4gICAgICogVGhlIG9wdGlvbmFsIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG4gICAgICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuICAgICAqL1xuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgbmFtZSwgcHJvcHMsIGluaXQsIHVwZGF0ZSwgc3Vic2NyaXB0aW9uIH06IFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPik6IFtUTW9kZWwsIERpc3BhdGNoPFRNZXNzYWdlPl0ge1xuICAgIGxldCByZWVudGVyZWQgPSBmYWxzZTtcbiAgICBjb25zdCBidWZmZXI6IFRNZXNzYWdlIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcbiAgICBjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgICAgICBpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgIH0sIFtdKTtcblxuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcbiAgICAgICAgcHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuICAgIH1cblxuICAgIGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz8gKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgcHJvcHNSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChjdXJyZW50TW9kZWwsIG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kLCBkaXNwYXRjaCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzTW91bnRlZFJlZi5jdXJyZW50ICYmIG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kLCBkaXNwYXRjaCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsIGFzIFRNb2RlbCwgcHJvcHMpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCwgZGlzcGF0Y2gpO1xuXG4gICAgICAgICAgICBpZiAoZGVzdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gV2Uga25vdyB0aGF0IG1zZyBmaXRzXG4gICAgY29uc3QgdXBkYXRlRm4gPSB1cGRhdGVNYXBbbXNnLm5hbWUgYXMgVE1lc3NhZ2VbXCJuYW1lXCJdXSBhcyAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+O1xuXG4gICAgcmV0dXJuIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbn07XG5cbmV4cG9ydCB7XG4gICAgdXNlRWxtaXNoLFxuICAgIGNhbGxVcGRhdGUsXG4gICAgY2FsbFVwZGF0ZU1hcCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUE7O0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -19,21 +19,21 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@babel/cli": "7.18.10",
22
- "@babel/core": "7.18.10",
22
+ "@babel/core": "7.18.13",
23
23
  "@babel/plugin-proposal-class-properties": "7.18.6",
24
24
  "@babel/preset-env": "7.18.10",
25
25
  "@babel/preset-react": "7.18.6",
26
26
  "@babel/preset-typescript": "7.18.6",
27
27
  "@testing-library/react": "13.3.0",
28
- "@types/jest": "28.1.7",
28
+ "@types/jest": "28.1.8",
29
29
  "@types/react": "18.0.17",
30
30
  "eslint": "8.22.0",
31
- "eslint-config-heck": "1.22.1",
31
+ "eslint-config-heck": "1.22.3",
32
32
  "jest": "28.1.3",
33
33
  "jest-environment-jsdom": "28.1.3",
34
- "semantic-release": "19.0.3",
34
+ "semantic-release": "19.0.5",
35
35
  "ts-jest": "28.0.8",
36
- "typescript": "4.7.4"
36
+ "typescript": "4.8.2"
37
37
  },
38
38
  "homepage": "https://github.com/atheck/react-elmish",
39
39
  "repository": {