react-elmish 7.3.2 → 7.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.
package/README.md CHANGED
@@ -20,11 +20,11 @@ This library brings the elmish pattern to react.
20
20
  - [Setup](#setup)
21
21
  - [Error handling](#error-handling)
22
22
  - [React life cycle management](#react-life-cycle-management)
23
+ - [Deferring model updates and messages](#deferring-model-updates-and-messages)
24
+ - [Call back parent components](#call-back-parent-components)
23
25
  - [Composition](#composition)
24
26
  - [With an `UpdateMap`](#with-an-updatemap)
25
27
  - [With an update function](#with-an-update-function)
26
- - [Deferring model updates and messages](#deferring-model-updates-and-messages)
27
- - [Call back parent components](#call-back-parent-components)
28
28
  - [Testing](#testing)
29
29
  - [Testing the init function](#testing-the-init-function)
30
30
  - [Testing the update handler](#testing-the-update-handler)
@@ -570,6 +570,97 @@ class App extends ElmComponent<Shared.Model, Shared.Message, Shared.Props> {
570
570
 
571
571
  In a functional component you can use the **useEffect** hook as normal.
572
572
 
573
+ ## Deferring model updates and messages
574
+
575
+ Sometimes you want to always dispatch a message or update the model in all cases. You can use the `defer` function from the `options` parameter to do this. The `options` parameter is the fourth parameter of the `update` function.
576
+
577
+ Without the `defer` function, you would have to return the model and the command in all cases:
578
+
579
+ ```ts
580
+ const update: UpdateMap<Props, Model, Message> = {
581
+ deferSomething (_msg, model) {
582
+ if (model.someCondition) {
583
+ return [{ alwaysUpdate: "someValue", extra: "extra" }, cmd.ofMsg(Msg.alwaysExecute())];
584
+ }
585
+
586
+ return [{ alwaysUpdate: "someValue" }, cmd.ofMsg(Msg.doSomethingElse()), cmd.ofMsg(Msg.alwaysExecute())];
587
+ },
588
+
589
+ ...LoadSettings.update,
590
+ };
591
+ ```
592
+
593
+ Here we always want to update the model with the `alwaysUpdate` property and always dispatch the `alwaysExecute` message.
594
+
595
+ With the `defer` function, you can do this:
596
+
597
+ ```ts
598
+ const update: UpdateMap<Props, Model, Message> = {
599
+ deferSomething (_msg, model, _props, { defer }) {
600
+ defer({ alwaysUpdate: "someValue" }, cmd.ofMsg(Msg.alwaysExecute()));
601
+
602
+ if (model.someCondition) {
603
+ return [{ extra: "extra" }];
604
+ }
605
+
606
+ return [{}, cmd.ofMsg(Msg.doSomethingElse())];
607
+ },
608
+
609
+ ...LoadSettings.update,
610
+ };
611
+ ```
612
+
613
+ The `defer` function can be called multiple times. Model updates and commands are then aggregated. Model updates by the return value overwrite the deferred model updates, while deferred messages are dispatched after the returned messages.
614
+
615
+ ## Call back parent components
616
+
617
+ Since each component has its own model and messages, communication with parent components is done via callback functions.
618
+
619
+ To inform the parent component about some action, let's say to close a dialog form, you do the following:
620
+
621
+ 1. Create a message
622
+
623
+ ```ts Dialog.ts
624
+ export type Message =
625
+ ...
626
+ | { name: "close" }
627
+ ...
628
+
629
+ export const Msg = {
630
+ ...
631
+ close: (): Message => ({ name: "close" }),
632
+ ...
633
+ }
634
+ ```
635
+
636
+ 1. Define a callback function property in the **Props**:
637
+
638
+ ```ts Dialog.ts
639
+ export type Props = {
640
+ onClose: () => void,
641
+ };
642
+ ```
643
+
644
+ 1. Handle the message and call the callback function:
645
+
646
+ ```ts Dialog.ts
647
+ {
648
+ // ...
649
+ close () {
650
+ return [{}, cmd.ofError(props.onClose, Msg.error)];
651
+ }
652
+ // ...
653
+ };
654
+ ```
655
+
656
+ 1. In the **render** method of the parent component pass the callback as prop
657
+
658
+ ```tsx Parent.tsx
659
+ ...
660
+ <Dialog onClose={() => this.dispatch(Msg.closeDialog())}>
661
+ ...
662
+ ```
663
+
573
664
  ## Composition
574
665
 
575
666
  If you have some business logic that you want to reuse in other components, you can do this by using different sources for messages.
@@ -672,6 +763,16 @@ const update: UpdateMap<Props, Model, Message> = {
672
763
  },
673
764
 
674
765
  ...LoadSettings.update,
766
+
767
+ // You can overwrite the LoadSettings messages handlers here
768
+
769
+ settingsLoaded (_msg, _model, _props, { defer, callBase }) {
770
+ // Use defer and callBase to execute the original handler function:
771
+ defer(...callBase(LoadSettings.settingsLoaded));
772
+
773
+ // Do additional stuff
774
+ return [{ /* ... */ }];
775
+ }
675
776
  };
676
777
  ```
677
778
 
@@ -799,97 +900,6 @@ const updateComposition = (model: Model, msg: CompositionMessage): Elm.UpdateRet
799
900
  }
800
901
  ```
801
902
 
802
- ## Deferring model updates and messages
803
-
804
- Sometimes you want to always dispatch a message or update the model in all cases. You can use the `defer` function from the `options` parameter to do this. The `options` parameter is the fourth parameter of the `update` function.
805
-
806
- Without the `defer` function, you would have to return the model and the command in all cases:
807
-
808
- ```ts
809
- const update: UpdateMap<Props, Model, Message> = {
810
- deferSomething (_msg, model) {
811
- if (model.someCondition) {
812
- return [{ alwaysUpdate: "someValue", extra: "extra" }, cmd.ofMsg(Msg.alwaysExecute())];
813
- }
814
-
815
- return [{ alwaysUpdate: "someValue" }, cmd.ofMsg(Msg.doSomethingElse()), cmd.ofMsg(Msg.alwaysExecute())];
816
- },
817
-
818
- ...LoadSettings.update,
819
- };
820
- ```
821
-
822
- Here we always want to update the model with the `alwaysUpdate` property and always dispatch the `alwaysExecute` message.
823
-
824
- With the `defer` function, you can do this:
825
-
826
- ```ts
827
- const update: UpdateMap<Props, Model, Message> = {
828
- deferSomething (_msg, model, _props, { defer }) {
829
- defer({ alwaysUpdate: "someValue" }, cmd.ofMsg(Msg.alwaysExecute()));
830
-
831
- if (model.someCondition) {
832
- return [{ extra: "extra" }];
833
- }
834
-
835
- return [{}, cmd.ofMsg(Msg.doSomethingElse())];
836
- },
837
-
838
- ...LoadSettings.update,
839
- };
840
- ```
841
-
842
- The `defer` function can be called multiple times. Model updates and commands are then aggregated. Model updates by the return value overwrite the deferred model updates, while deferred messages are dispatched after the returned messages.
843
-
844
- ## Call back parent components
845
-
846
- Since each component has its own model and messages, communication with parent components is done via callback functions.
847
-
848
- To inform the parent component about some action, let's say to close a dialog form, you do the following:
849
-
850
- 1. Create a message
851
-
852
- ```ts Dialog.ts
853
- export type Message =
854
- ...
855
- | { name: "close" }
856
- ...
857
-
858
- export const Msg = {
859
- ...
860
- close: (): Message => ({ name: "close" }),
861
- ...
862
- }
863
- ```
864
-
865
- 1. Define a callback function property in the **Props**:
866
-
867
- ```ts Dialog.ts
868
- export type Props = {
869
- onClose: () => void,
870
- };
871
- ```
872
-
873
- 1. Handle the message and call the callback function:
874
-
875
- ```ts Dialog.ts
876
- {
877
- // ...
878
- close () {
879
- return [{}, cmd.ofError(props.onClose, Msg.error)];
880
- }
881
- // ...
882
- };
883
- ```
884
-
885
- 1. In the **render** method of the parent component pass the callback as prop
886
-
887
- ```tsx Parent.tsx
888
- ...
889
- <Dialog onClose={() => this.dispatch(Msg.closeDialog())}>
890
- ...
891
- ```
892
-
893
903
  ## Testing
894
904
 
895
905
  To test your **update** handler you can use some helper functions in `react-elmish/dist/Testing`:
@@ -7,6 +7,7 @@ exports.ElmComponent = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _Common = require("./Common");
9
9
  var _Init = require("./Init");
10
+ var _createCallBase = require("./createCallBase");
10
11
  var _createDefer3 = require("./createDefer");
11
12
  var _fakeOptions = require("./fakeOptions");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
@@ -80,13 +81,18 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
80
81
  var nextMsg = msg;
81
82
  var modified = false;
82
83
  do {
83
- (0, _Common.logMessage)(_this.componentName, nextMsg);
84
+ var currentMessage = nextMsg;
85
+ (0, _Common.logMessage)(_this.componentName, currentMessage);
84
86
  var _createDefer = (0, _createDefer3.createDefer)(),
85
87
  _createDefer2 = _slicedToArray(_createDefer, 2),
86
88
  defer = _createDefer2[0],
87
89
  getDeferred = _createDefer2[1];
88
- var _this$update = _this.update(_this.currentModel, nextMsg, _this.props, {
89
- defer: defer
90
+ var callBase = (0, _createCallBase.createCallBase)(currentMessage, _this.currentModel, _this.props, {
91
+ defer: defer
92
+ });
93
+ var _this$update = _this.update(_this.currentModel, currentMessage, _this.props, {
94
+ defer: defer,
95
+ callBase: callBase
90
96
  }),
91
97
  _this$update2 = _toArray(_this$update),
92
98
  model = _this$update2[0],
@@ -175,4 +181,4 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
175
181
  }
176
182
  }]);
177
183
  }(_react["default"].Component);
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiY29tcG9uZW50TmFtZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJfdGhpcyR1cGRhdGUiLCJ1cGRhdGUiLCJjdXJyZW50TW9kZWwiLCJfdGhpcyR1cGRhdGUyIiwibW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJfcmVmMiIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJnZXQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHsgQ21kLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG5cdCAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG5cdCAqIEByZWFkb25seVxuXHQgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0bG9nTWVzc2FnZSh0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cblx0XHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gdGhpcy51cGRhdGUodGhpcy5jdXJyZW50TW9kZWwsIG5leHRNc2csIHRoaXMucHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRcdGlmIChtb2RlbEhhc0NoYW5nZWQodGhpcy5jdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfSkpIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50TW9kZWwgPSB7IC4uLnRoaXMuY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5tb2RlbCB9O1xuXHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0XHRuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcblx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdHRoaXMucnVubmluZyA9IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMubW91bnRlZCAmJiBtb2RpZmllZCkge1xuXHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG5cdFx0XHR0aGlzLmZvcmNlVXBkYXRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBtb2RpZnkgdGhlIG1vZGVsIGJhc2VkIG9uIGEgbWVzc2FnZS5cblx0ICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cblx0ICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBvZiB0aGUgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHVwZGF0ZSBmdW5jdGlvbi5cblx0ICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG5cdCAqIEBhYnN0cmFjdFxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG5leHBvcnQgeyBFbG1Db21wb25lbnQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FB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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfSW5pdCIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJjdXJyZW50TWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJjdXJyZW50TW9kZWwiLCJfdGhpcyR1cGRhdGUiLCJ1cGRhdGUiLCJfdGhpcyR1cGRhdGUyIiwibW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJfcmVmMiIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJnZXQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHsgQ21kLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IFRNb2RlbDtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBFbG1Db21wb25lbnQuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgZm9yIHRoZSBjb21wb25lbnQuXG5cdCAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cblx0ICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZSgpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IGZhbHNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG5cdCAqIEByZWFkb25seVxuXHQgKiBAdHlwZSB7UmVhZG9ubHk8VE1vZGVsPn1cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0Y29uc3QgY3VycmVudE1lc3NhZ2UgPSBuZXh0TXNnO1xuXG5cdFx0XHRsb2dNZXNzYWdlKHRoaXMuY29tcG9uZW50TmFtZSwgY3VycmVudE1lc3NhZ2UpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlKGN1cnJlbnRNZXNzYWdlLCB0aGlzLmN1cnJlbnRNb2RlbCwgdGhpcy5wcm9wcywgeyBkZWZlciB9KTtcblxuXHRcdFx0Y29uc3QgW21vZGVsLCAuLi5jb21tYW5kc10gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgY3VycmVudE1lc3NhZ2UsIHRoaXMucHJvcHMsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKHRoaXMuY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm1vZGVsIH0pKSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfTtcblx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBuZXcgbW9kZWwgKGNhbiBhbHNvIGJlIGFuIGVtcHR5IG9iamVjdCB7fSkgYW5kIGFuIG9wdGlvbmFsIG5ldyBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuXHQgKiBAYWJzdHJhY3Rcblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLGVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUFtRCxTQUFBRCx1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSixtQkFBQUQsQ0FBQSxRQUFBTSxLQUFBLENBQUFDLE9BQUEsQ0FBQVAsQ0FBQSxVQUFBUSxpQkFBQSxDQUFBUixD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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.getUpdateAndExecCmdFn = getUpdateAndExecCmdFn;
8
8
  exports.getUpdateFn = getUpdateFn;
9
+ var _createCallBase = require("../createCallBase");
9
10
  var _createDefer5 = require("../createDefer");
10
11
  var _useElmish = require("../useElmish");
11
12
  var _execCmd = require("./execCmd");
@@ -44,8 +45,12 @@ function getUpdateFn(updateMap) {
44
45
  _createDefer2 = _slicedToArray(_createDefer, 2),
45
46
  defer = _createDefer2[0],
46
47
  getDeferred = _createDefer2[1];
47
- var options = {
48
+ var callBase = (0, _createCallBase.createCallBase)(msg, model, props, {
48
49
  defer: defer
50
+ });
51
+ var options = {
52
+ defer: defer,
53
+ callBase: callBase
49
54
  };
50
55
  var _callUpdateMap = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options),
51
56
  _callUpdateMap2 = _toArray(_callUpdateMap),
@@ -72,22 +77,26 @@ function getUpdateFn(updateMap) {
72
77
  function getUpdateAndExecCmdFn(updateMap) {
73
78
  return /*#__PURE__*/function () {
74
79
  var _updateAndExecCmdFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(msg, model, props) {
75
- var _createDefer3, _createDefer4, defer, getDeferred, options, _callUpdateMap3, _callUpdateMap4, updatedModel, commands, _getDeferred3, _getDeferred4, deferredModel, deferredCommands, messages;
80
+ var _createDefer3, _createDefer4, defer, getDeferred, callBase, options, _callUpdateMap3, _callUpdateMap4, updatedModel, commands, _getDeferred3, _getDeferred4, deferredModel, deferredCommands, messages;
76
81
  return _regeneratorRuntime().wrap(function _callee$(_context) {
77
82
  while (1) switch (_context.prev = _context.next) {
78
83
  case 0:
79
84
  _createDefer3 = (0, _createDefer5.createDefer)(), _createDefer4 = _slicedToArray(_createDefer3, 2), defer = _createDefer4[0], getDeferred = _createDefer4[1];
80
- options = {
85
+ callBase = (0, _createCallBase.createCallBase)(msg, model, props, {
81
86
  defer: defer
87
+ });
88
+ options = {
89
+ defer: defer,
90
+ callBase: callBase
82
91
  };
83
92
  _callUpdateMap3 = (0, _useElmish.callUpdateMap)(updateMap, msg, model, props, options), _callUpdateMap4 = _toArray(_callUpdateMap3), updatedModel = _callUpdateMap4[0], commands = _callUpdateMap4.slice(1);
84
93
  _getDeferred3 = getDeferred(), _getDeferred4 = _slicedToArray(_getDeferred3, 2), deferredModel = _getDeferred4[0], deferredCommands = _getDeferred4[1];
85
- _context.next = 6;
94
+ _context.next = 7;
86
95
  return _execCmd.execCmd.apply(void 0, _toConsumableArray(commands).concat(_toConsumableArray(deferredCommands)));
87
- case 6:
96
+ case 7:
88
97
  messages = _context.sent;
89
98
  return _context.abrupt("return", [_objectSpread(_objectSpread({}, deferredModel), updatedModel), messages]);
90
- case 8:
99
+ case 9:
91
100
  case "end":
92
101
  return _context.stop();
93
102
  }
@@ -99,4 +108,4 @@ function getUpdateAndExecCmdFn(updateMap) {
99
108
  return updateAndExecCmdFn;
100
109
  }();
101
110
  }
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlRGVmZXI1IiwicmVxdWlyZSIsIl91c2VFbG1pc2giLCJfZXhlY0NtZCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsInRvU3RyaW5nIiwidGVzdCIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iLCJtc2ciLCJtb2RlbCIsInByb3BzIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsIm9wdGlvbnMiLCJfY2FsbFVwZGF0ZU1hcCIsImNhbGxVcGRhdGVNYXAiLCJfY2FsbFVwZGF0ZU1hcDIiLCJ1cGRhdGVkTW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsImNvbmNhdCIsImdldFVwZGF0ZUFuZEV4ZWNDbWRGbiIsIl91cGRhdGVBbmRFeGVjQ21kRm4iLCJfY2FsbGVlIiwiX2NyZWF0ZURlZmVyMyIsIl9jcmVhdGVEZWZlcjQiLCJfY2FsbFVwZGF0ZU1hcDMiLCJfY2FsbFVwZGF0ZU1hcDQiLCJfZ2V0RGVmZXJyZWQzIiwiX2dldERlZmVycmVkNCIsIm1lc3NhZ2VzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImV4ZWNDbWQiLCJ1cGRhdGVBbmRFeGVjQ21kRm4iLCJfeCIsIl94MiIsIl94MyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZXN0aW5nL2dldFVwZGF0ZUZuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWVzc2FnZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucywgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgY2FsbFVwZGF0ZU1hcCB9IGZyb20gXCIuLi91c2VFbG1pc2hcIjtcbmltcG9ydCB7IGV4ZWNDbWQgfSBmcm9tIFwiLi9leGVjQ21kXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB1cGRhdGUgZnVuY3Rpb24gb3V0IG9mIGFuIFVwZGF0ZU1hcC5cbiAqIEBwYXJhbSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCB1cGRhdGVGbiA9IGdldFVwZGF0ZUZuKHVwZGF0ZSk7XG4gKlxuICogLy8gaW4geW91ciB0ZXN0czpcbiAqIGNvbnN0IFttb2RlbCwgY21kXSA9IHVwZGF0ZUZuKC4uLmFyZ3MpO1xuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZUZuKG1zZywgbW9kZWwsIHByb3BzKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0fTtcblxuXHRcdGNvbnN0IFt1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0cmV0dXJuIFt7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnVwZGF0ZWRNb2RlbCB9LCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kc107XG5cdH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiB1cGRhdGUgZnVuY3Rpb24gb3V0IG9mIGFuIFVwZGF0ZU1hcCB3aGljaCBpbW1lZGlhdGVseSBleGVjdXRlcyB0aGUgY29tbWFuZC5cbiAqIEBwYXJhbSB1cGRhdGVNYXAgVGhlIFVwZGF0ZU1hcC5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHVwZGF0ZSBmdW5jdGlvbiB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCB1cGRhdGVBbmRFeGVjQ21kID0gZ2V0VXBkYXRlQW5kRXhlY0NtZEZuKHVwZGF0ZSk7XG4gKlxuICogLy8gaW4geW91ciB0ZXN0OlxuICogY29uc3QgW21vZGVsLCBtZXNzYWdlc10gPSBhd2FpdCB1cGRhdGVBbmRFeGVjQ21kKC4uLmFyZ3MpO1xuICovXG5mdW5jdGlvbiBnZXRVcGRhdGVBbmRFeGVjQ21kRm48VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiAobXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcykgPT4gUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0cmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFuZEV4ZWNDbWRGbihtc2csIG1vZGVsLCBwcm9wcyk6IFByb21pc2U8W1BhcnRpYWw8VE1vZGVsPiwgTnVsbGFibGU8VE1lc3NhZ2U+W11dPiB7XG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0fTtcblxuXHRcdGNvbnN0IFt1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGVNYXAodXBkYXRlTWFwLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG5cblx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y29uc3QgbWVzc2FnZXMgPSBhd2FpdCBleGVjQ21kKC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBbeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi51cGRhdGVkTW9kZWwgfSwgbWVzc2FnZXNdO1xuXHR9O1xufVxuXG5leHBvcnQgeyBnZXRVcGRhdGVBbmRFeGVjQ21kRm4sIGdldFVwZGF0ZUZuIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQW9DLFNBQUFHLG9CQUFBLGtCQUZwQyxxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUUsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLElBQUFFLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUCxDQUFBLEVBQUFELENBQUEsSUFBQVMsS0FBQSxFQUFBUCxDQUFBLEVBQUFpQixVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBcEIs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QSxFQUFBWCxhQUFBLEVBQUFDLGdCQUFBLEVBQUFXLFFBQUE7TUFBQSxPQUFBekssbUJBQUEsR0FBQXVCLElBQUEsVUFBQW1KLFNBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBOUUsSUFBQSxHQUFBOEUsUUFBQSxDQUFBekcsSUFBQTtVQUFBO1lBQUFpRyxhQUFBLEdBQzVCLElBQUFsQix5QkFBVyxFQUFtQixDQUFDLEVBQUFtQixhQUFBLEdBQUE5QixjQUFBLENBQUE2QixhQUFBLE1BQXJEaEIsS0FBSyxHQUFBaUIsYUFBQSxLQUFFaEIsV0FBVyxHQUFBZ0IsYUFBQTtZQUVuQmYsT0FBZ0QsR0FBRztjQUN4REYsS0FBSyxFQUFMQTtZQUNELENBQUM7WUFBQWtCLGVBQUEsR0FFbUMsSUFBQWQsd0JBQWEsRUFBQ1osU0FBUyxFQUFFRSxHQUFHLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFTSxPQUFPLENBQUMsRUFBQWlCLGVBQUEsR0FBQXBDLFFBQUEsQ0FBQW1DLGVBQUEsR0FBakZaLFlBQVksR0FBQWEsZUFBQSxLQUFLWixRQUFRLEdBQUFZLGVBQUEsQ0FBQXZFLEtBQUE7WUFBQXdFLGFBQUEsR0FFVW5CLFdBQVcsQ0FBQyxDQUFDLEVBQUFvQixhQUFBLEdBQUFsQyxjQUFBLENBQUFpQyxhQUFBLE1BQWhEVixhQUFhLEdBQUFXLGFBQUEsS0FBRVYsZ0JBQWdCLEdBQUFVLGFBQUE7WUFBQUcsUUFBQSxDQUFBekcsSUFBQTtZQUFBLE9BRWYwRyxnQkFBTyxDQUFBbEUsS0FBQSxTQUFBZ0Isa0JBQUEsQ0FBSWdDLFFBQVEsRUFBQUssTUFBQSxDQUFBckMsa0JBQUEsQ0FBS29DLGdCQUFnQixHQUFDO1VBQUE7WUFBMURXLFFBQVEsR0FBQUUsUUFBQSxDQUFBL0csSUFBQTtZQUFBLE9BQUErRyxRQUFBLENBQUE1RyxNQUFBLFdBRVAsQ0FBQWtELGFBQUEsQ0FBQUEsYUFBQSxLQUFNNEMsYUFBYSxHQUFLSixZQUFZLEdBQUlnQixRQUFRLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUUsUUFBQSxDQUFBM0UsSUFBQTtRQUFBO01BQUEsR0FBQWtFLE9BQUE7SUFBQSxDQUN4RDtJQUFBLFNBZHFCVyxrQkFBa0JBLENBQUFDLEVBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBO01BQUEsT0FBQWYsbUJBQUEsQ0FBQXZELEtBQUEsT0FBQUQsU0FBQTtJQUFBO0lBQUEsT0FBbEJvRSxrQkFBa0I7RUFBQTtBQWV6QyIsImlnbm9yZUxpc3QiOltdfQ==
111
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlQ2FsbEJhc2UiLCJyZXF1aXJlIiwiX2NyZWF0ZURlZmVyNSIsIl91c2VFbG1pc2giLCJfZXhlY0NtZCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJBcnJheSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl90b0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsInRvU3RyaW5nIiwidGVzdCIsImdldFVwZGF0ZUZuIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iLCJtc2ciLCJtb2RlbCIsInByb3BzIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJvcHRpb25zIiwiX2NhbGxVcGRhdGVNYXAiLCJjYWxsVXBkYXRlTWFwIiwiX2NhbGxVcGRhdGVNYXAyIiwidXBkYXRlZE1vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJjb25jYXQiLCJnZXRVcGRhdGVBbmRFeGVjQ21kRm4iLCJfdXBkYXRlQW5kRXhlY0NtZEZuIiwiX2NhbGxlZSIsIl9jcmVhdGVEZWZlcjMiLCJfY3JlYXRlRGVmZXI0IiwiX2NhbGxVcGRhdGVNYXAzIiwiX2NhbGxVcGRhdGVNYXA0IiwiX2dldERlZmVycmVkMyIsIl9nZXREZWZlcnJlZDQiLCJtZXNzYWdlcyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJleGVjQ21kIiwidXBkYXRlQW5kRXhlY0NtZEZuIiwiX3giLCJfeDIiLCJfeDMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvVGVzdGluZy9nZXRVcGRhdGVGbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1lc3NhZ2UsIE51bGxhYmxlLCBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4uL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBjYWxsVXBkYXRlTWFwIH0gZnJvbSBcIi4uL3VzZUVsbWlzaFwiO1xuaW1wb3J0IHsgZXhlY0NtZCB9IGZyb20gXCIuL2V4ZWNDbWRcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUZuID0gZ2V0VXBkYXRlRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3RzOlxuICogY29uc3QgW21vZGVsLCBjbWRdID0gdXBkYXRlRm4oLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUZuPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogKG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRyZXR1cm4gZnVuY3Rpb24gdXBkYXRlRm4obXNnLCBtb2RlbCwgcHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShtc2csIG1vZGVsLCBwcm9wcywgeyBkZWZlciB9KTtcblxuXHRcdGNvbnN0IG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0XHRjYWxsQmFzZSxcblx0XHR9O1xuXG5cdFx0Y29uc3QgW3VwZGF0ZWRNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRyZXR1cm4gW3sgLi4uZGVmZXJyZWRNb2RlbCwgLi4udXBkYXRlZE1vZGVsIH0sIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzXTtcblx0fTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIHVwZGF0ZSBmdW5jdGlvbiBvdXQgb2YgYW4gVXBkYXRlTWFwIHdoaWNoIGltbWVkaWF0ZWx5IGV4ZWN1dGVzIHRoZSBjb21tYW5kLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgVXBkYXRlTWFwLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgdXBkYXRlIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHVwZGF0ZUFuZEV4ZWNDbWQgPSBnZXRVcGRhdGVBbmRFeGVjQ21kRm4odXBkYXRlKTtcbiAqXG4gKiAvLyBpbiB5b3VyIHRlc3Q6XG4gKiBjb25zdCBbbW9kZWwsIG1lc3NhZ2VzXSA9IGF3YWl0IHVwZGF0ZUFuZEV4ZWNDbWQoLi4uYXJncyk7XG4gKi9cbmZ1bmN0aW9uIGdldFVwZGF0ZUFuZEV4ZWNDbWRGbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IChtc2c6IFRNZXNzYWdlLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBQcm9taXNlPFtQYXJ0aWFsPFRNb2RlbD4sIE51bGxhYmxlPFRNZXNzYWdlPltdXT4ge1xuXHRyZXR1cm4gYXN5bmMgZnVuY3Rpb24gdXBkYXRlQW5kRXhlY0NtZEZuKG1zZywgbW9kZWwsIHByb3BzKTogUHJvbWlzZTxbUGFydGlhbDxUTW9kZWw+LCBOdWxsYWJsZTxUTWVzc2FnZT5bXV0+IHtcblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShtc2csIG1vZGVsLCBwcm9wcywgeyBkZWZlciB9KTtcblxuXHRcdGNvbnN0IG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0ge1xuXHRcdFx0ZGVmZXIsXG5cdFx0XHRjYWxsQmFzZSxcblx0XHR9O1xuXG5cdFx0Y29uc3QgW3VwZGF0ZWRNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRjb25zdCBtZXNzYWdlcyA9IGF3YWl0IGV4ZWNDbWQoLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIFt7IC4uLmRlZmVycmVkTW9kZWwsIC4uLnVwZGF0ZWRNb2RlbCB9LCBtZXNzYWdlc107XG5cdH07XG59XG5cbmV4cG9ydCB7IGdldFVwZGF0ZUFuZEV4ZWNDbWRGbiwgZ2V0VXBkYXRlRm4gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxlQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFBb0MsU0FBQUksb0JBQUEsa0JBSHBDLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixDQUFBLENBQUFELENBQUEsV0FBQWtCLE1BQUEsbUJBQUFqQixDQUFBLElBQUFpQixNQUFBLFlBQUFBLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxnQkFBQW9CLEtBQUFyQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFLLENBQUEsR0FBQVYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFNBQUEsWUFBQW1CLFNBQUEsR0FBQXZCLENBQUEsR0FBQXVCLFNBQUEsRUFBQVgsQ0FBQSxHQUFBVCxNQUFBLENBQUFxQixNQUFBLENBQUFkLENBQUEsQ0FBQU4sU0FBQSxHQUFBVSxDQUFBLE9BQUFXLE9BQUEsQ0FBQXBCLENBQUEsZ0JBQUFFLENBQUEsQ0FBQUssQ0FBQSxlQUFBSCxLQUFBLEVBQUFpQixnQkFBQSxDQUFBekIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFZLENBQUEsTUFBQUYsQ0FBQSxhQUFBZSxTQUFBMUIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsbUJBQUEwQixJQUFBLFlBQUFDLEdBQUEsRUFBQTVCLENBQUEsQ0FBQTZCLElBQUEsQ0FBQTlCLENBQUEsRUFBQUUsQ0FBQSxjQUFBRCxDQUFBLGFBQUEyQixJQUFBLFdBQUFDLEdBQUEsRUFBQTVCLENBQUEsUUFBQUQsQ0FBQSxDQUFBc0IsSUFBQSxHQUFBQSxJQUFBLE1BQUFTLENBQUEscUJBQUFDLENBQUEscUJBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFDLENBQUEsZ0JBQUFaLFVBQUEsY0FBQWEsa0JBQUEsY0FBQUMsMkJBQUEsU0FBQUMsQ0FBQSxPQUFBcEIsTUFBQSxDQUFBb0IsQ0FBQSxFQUFBMUIsQ0FBQSxxQ0FBQTJCLENBQUEsR0FBQXBDLE1BQUEsQ0FBQXFDLGNBQUEsRUFBQUMsQ0FBQSxHQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUEsQ0FBQSxDQUFBRyxNQUFBLFFBQUFELENBQUEsSUFBQUEsQ0FBQSxLQUFBdkMsQ0FBQSxJQUFBRyxDQUFBLENBQUF5QixJQUFBLENBQUFXLENBQUEsRUFBQTdCLENBQUEsTUFBQTBCLENBQUEsR0FBQUcsQ0FBQSxPQUFBRSxDQUFBLEdBQUFOLDBCQUFBLENBQUFqQyxTQUFBLEdBQUFtQixTQUFBLENBQUFuQixTQUFBLEdBQUFELE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQWMsQ0FBQSxZQUFBTSxzQkFBQTNDLENBQUEsZ0NBQUE0QyxPQUFBLFdBQUE3QyxDQUFBLElBQUFrQixNQUFBLENBQUFqQixDQUFBLEVBQUFELENBQUEsWUFBQUMsQ0FBQSxnQkFBQTZDLE9BQUEsQ0FBQTlDLENBQUEsRUFBQUMsQ0FBQSxzQkFBQThDLGNBQUE5QyxDQUFBLEVBQUFELENBQUEsYUFBQWdELE9BQUE5QyxDQUFBLEVBQUFLLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsR0FBQWEsUUFBQSxDQUFBMUIsQ0FBQSxDQUFBQyxDQUFBLEdBQUFELENBQUEsRUFBQU0sQ0FBQSxtQkFBQU8sQ0FBQSxDQUFBYyxJQUFBLFFBQUFaLENBQUEsR0FBQUYsQ0FBQSxDQUFBZSxHQUFBLEVBQUFFLENBQUEsR0FBQWYsQ0FBQSxDQUFBUCxLQUFBLFNBQUFzQixDQUFBLGdCQUFBa0IsT0FBQSxDQUFBbEIsQ0FBQSxLQUFBMUIsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBQyxDQUFBLGVBQUEvQixDQUFBLENBQUFrRCxPQUFBLENBQUFuQixDQUFBLENBQUFvQixPQUFBLEVBQUFDLElBQUEsV0FBQW5ELENBQUEsSUFBQStDLE1BQUEsU0FBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLGdCQUFBWCxDQUFBLElBQUErQyxNQUFBLFVBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxRQUFBWixDQUFBLENBQUFrRCxPQUFBLENBQUFuQixDQUFBLEVBQUFxQixJQUFBLFdBQUFuRCxDQUFBLElBQUFlLENBQUEsQ0FBQVAsS0FBQSxHQUFBUixDQUFBLEVBQUFTLENBQUEsQ0FBQU0sQ0FBQSxnQkFBQWYsQ0FBQSxXQUFBK0MsTUFBQSxVQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxDQUFBRSxDQUFBLENBQUFlLEdBQUEsU0FBQTNCLENBQUEsRUFBQUssQ0FBQSxvQkFBQUUsS0FBQSxXQUFBQSxNQUFBUixDQUFBLEVBQUFJLENBQUEsYUFBQWdELDJCQUFBLGVBQUFyRCxDQUFBLFdBQUFBLENBQUEsRUFBQUUsQ0FBQSxJQUFBOEMsTUFBQSxDQUFBL0MsQ0FBQSxFQUFBSSxDQUFBLEVBQUFMLENBQUEsRUFBQUUsQ0FBQSxnQkFBQUEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQWtELElBQUEsQ0FBQUMsMEJBQUEsRUFBQUEsMEJBQUEsSUFBQUEsMEJBQUEscUJBQUEzQixpQkFBQTFCLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFFLENBQUEsR0FBQXdCLENBQUEsbUJBQUFyQixDQUFBLEVBQUFFLENBQUEsUUFBQUwsQ0FBQSxLQUFBMEIsQ0FBQSxRQUFBcUIsS0FBQSxzQ0FBQS9DLENBQUEsS0FBQTJCLENBQUEsb0JBQUF4QixDQUFBLFFBQUFFLENBQUEsV0FBQUgsS0FBQSxFQUFBUixDQUFBLEVBQUFzRCxJQUFBLGVBQUFsRCxDQUFBLENBQUFtRCxNQUFBLEdBQUE5QyxDQUFBLEVBQUFMLENBQUEsQ0FBQXdCLEdBQUEsR0FBQWpCLENBQUEsVUFBQUUsQ0FBQSxHQUFBVCxDQUFBLENBQUFvRCxRQUFBLE1BQUEzQyxDQUFBLFFBQUFFLENBQUEsR0FBQTBDLG1CQUFBLENBQUE1QyxDQUFBLEVBQUFULENBQUEsT0FBQVcsQ0FBQSxRQUFBQSxDQUFBLEtBQUFtQixDQUFBLG1CQUFBbkIsQ0FBQSxxQkFBQVgsQ0FBQSxDQUFBbUQsTUFBQSxFQUFBbkQsQ0FBQSxDQUFBc0QsSUFBQSxHQUFBdEQsQ0FBQSxDQUFBdUQsS0FBQSxHQUFBdkQsQ0FBQSxDQUFBd0IsR0FBQSxzQkFBQXhCLENBQUEsQ0FBQW1ELE1BQUEsUUFBQWpELENBQUEsS0FBQXdCLENBQUEsUUFBQXhCLENBQUEsR0FBQTJCLENBQUEsRUFBQTdCLENBQUEsQ0FBQXdCLEdBQUEsRUFBQXhCLENBQUEsQ0FBQXdELGlCQUFBLENBQUF4RCxDQUFBLENBQUF3QixHQUFBLHVCQUFBeEIsQ0FBQSxDQUFBbUQsTUFBQSxJQUFBbkQsQ0FBQSxDQUFBeUQsTUFBQSxXQUFBekQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBdEIsQ0FBQSxHQUFBMEIsQ0FBQSxNQUFBSyxDQUFBLEdBQUFYLFFBQUEsQ0FBQTNCLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLG9CQUFBaUMsQ0FBQSxDQUFBVixJQUFBLFFBQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQWtELElBQUEsR0FBQXJCLENBQUEsR0FBQUYsQ0FBQSxFQUFBTSxDQUFBLENBQUFULEdBQUEsS0FBQU0sQ0FBQSxxQkFBQTFCLEtBQUEsRUFBQTZCLENBQUEsQ0FBQVQsR0FBQSxFQUFBMEIsSUFBQSxFQUFBbEQsQ0FBQSxDQUFBa0QsSUFBQSxrQkFBQWpCLENBQUEsQ0FBQVYsSUFBQSxLQUFBckIsQ0FBQSxHQUFBMkIsQ0FBQSxFQUFBN0IsQ0FBQSxDQUFBbUQsTUFBQSxZQUFBbkQsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBUyxDQUFBLENBQUFULEdBQUEsbUJBQUE2QixvQkFBQTFELENBQUEsRUFBQUUsQ0FBQSxRQUFBRyxDQUFBLEdBQUFILENBQUEsQ0FBQXNELE1BQUEsRUFBQWpELENBQUEsR0FBQVAsQ0FBQSxDQUFBYSxRQUFBLENBQUFSLENBQUEsT0FBQUUsQ0FBQSxLQUFBTixDQUFBLFNBQUFDLENBQUEsQ0FBQXVELFFBQUEscUJBQUFwRCxDQUFBLElBQUFMLENBQUEsQ0FBQWEsUUFBQSxlQUFBWCxDQUFBLENBQUFzRCxNQUFBLGFBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEVBQUF5RCxtQkFBQSxDQUFBMUQsQ0FBQSxFQUFBRSxDQUFBLGVBQUFBLENBQUEsQ0FBQXNELE1BQUEsa0JBQUFuRCxDQUFBLEtBQUFILENBQUEsQ0FBQXNELE1BQUEsWUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsT0FBQWtDLFNBQUEsdUNBQUExRCxDQUFBLGlCQUFBOEIsQ0FBQSxNQUFBekIsQ0FBQSxHQUFBaUIsUUFBQSxDQUFBcEIsQ0FBQSxFQUFBUCxDQUFBLENBQUFhLFFBQUEsRUFBQVgsQ0FBQSxDQUFBMkIsR0FBQSxtQkFBQW5CLENBQUEsQ0FBQWtCLElBQUEsU0FBQTFCLENBQUEsQ0FBQXNELE1BQUEsWUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQW5CLENBQUEsQ0FBQW1CLEdBQUEsRUFBQTNCLENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsTUFBQXZCLENBQUEsR0FBQUYsQ0FBQSxDQUFBbUIsR0FBQSxTQUFBakIsQ0FBQSxHQUFBQSxDQUFBLENBQUEyQyxJQUFBLElBQUFyRCxDQUFBLENBQUFGLENBQUEsQ0FBQWdFLFVBQUEsSUFBQXBELENBQUEsQ0FBQUgsS0FBQSxFQUFBUCxDQUFBLENBQUErRCxJQUFBLEdBQUFqRSxDQUFBLENBQUFrRSxPQUFBLGVBQUFoRSxDQUFBLENBQUFzRCxNQUFBLEtBQUF0RCxDQUFBLENBQUFzRCxNQUFBLFdBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEdBQUFDLENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsSUFBQXZCLENBQUEsSUFBQVYsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxPQUFBa0MsU0FBQSxzQ0FBQTdELENBQUEsQ0FBQXVELFFBQUEsU0FBQXRCLENBQUEsY0FBQWdDLGFBQUFsRSxDQUFBLFFBQUFELENBQUEsS0FBQW9FLE1BQUEsRUFBQW5FLENBQUEsWUFBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFxRSxRQUFBLEdBQUFwRSxDQUFBLFdBQUFBLENBQUEsS0FBQUQsQ0FBQSxDQUFBc0UsVUFBQSxHQUFBckUsQ0FBQSxLQUFBRCxDQUFBLENBQUF1RSxRQUFBLEdBQUF0RSxDQUFBLFdBQUF1RSxVQUFBLENBQUFDLElBQUEsQ0FBQXpFLENBQUEsY0FBQTBFLGNBQUF6RSxDQUFBLFFBQUFELENBQUEsR0FBQUMsQ0FBQSxDQUFBMEUsVUFBQSxRQUFBM0UsQ0FBQSxDQUFBNEIsSUFBQSxvQkFBQTVCLENBQUEsQ0FBQTZCLEdBQUEsRUFBQTVCLENBQUEsQ0FBQTBFLFVBQUEsR0FBQTNFLENBQUEsYUFBQXlCLFFBQUF4QixDQUFBLFNBQUF1RSxVQUFBLE1BQUFKLE1BQUEsYUFBQW5FLENBQUEsQ0FBQTRDLE9BQUEsQ0FBQXNCLFlBQUEsY0FBQVMsS0FBQSxpQkFBQWxDLE9BQUExQyxDQUFBLFFBQUFBLENBQUEsV0FBQUEsQ0FBQSxRQUFBRSxDQUFBLEdBQUFGLENBQUEsQ0FBQVksQ0FBQSxPQUFBVixDQUFBLFNBQUFBLENBQUEsQ0FBQTRCLElBQUEsQ0FBQTlCLENBQUEsNEJBQUFBLENBQUEsQ0FBQWlFLElBQUEsU0FBQWpFLENBQUEsT0FBQTZFLEtBQUEsQ0FBQTdFLENBQUEsQ0FBQThFLE1BQUEsU0FBQXZFLENBQUEsT0FBQUcsQ0FBQSxZQUFBdUQsS0FBQSxhQUFBMUQsQ0FBQSxHQUFBUCxDQUFBLENBQUE4RSxNQUFBLE9BQUF6RSxDQUFBLENBQUF5QixJQUFBLENBQUE5QixDQUFBLEVBQUFPLENBQUEsVUFBQTBELElBQUEsQ0FBQXhELEtBQUEsR0FBQVQsQ0FBQSxDQUFBTyxDQUFBLEdBQUEwRCxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxTQUFBQSxJQUFBLENBQUF4RCxLQUFBLEdBQUFSLENBQUEsRUFBQWdFLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFlBQUF2RCxDQUFBLENBQUF1RCxJQUFBLEdBQUF2RCxDQUFBLGdCQUFBcUQsU0FBQSxDQUFBZCxPQUFBLENBQUFqRCxDQUFBLGtDQUFBb0MsaUJBQUEsQ0FBQWhDLFNBQUEsR0FBQWlDLDBCQUFBLEVBQUE5QixDQUFBLENBQUFvQyxDQUFBLG1CQUFBbEMsS0FBQSxFQUFBNEIsMEJBQUEsRUFBQWpCLFlBQUEsU0FBQWIsQ0FBQSxDQUFBOEIsMEJBQUEsbUJBQUE1QixLQUFBLEVBQUEyQixpQkFBQSxFQUFBaEIsWUFBQSxTQUFBZ0IsaUJBQUEsQ0FBQTJDLFdBQUEsR0FBQTdELE1BQUEsQ0FBQW1CLDBCQUFBLEVBQUFyQixDQUFBLHdCQUFBaEIsQ0FBQSxDQUFBZ0YsbUJBQUEsYUFBQS9FLENBQUEsUUFBQUQsQ0FBQSx3QkFBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFnRixXQUFBLFdBQUFqRixDQUFBLEtBQUFBLENBQUEsS0FBQW9DLGlCQUFBLDZCQUFBcEMsQ0FBQSxDQUFBK0UsV0FBQSxJQUFBL0UsQ0FBQSxDQUFBa0YsSUFBQSxPQUFBbEYsQ0FBQSxDQUFBbUYsSUFBQSxhQUFBbEYsQ0FBQSxXQUFBRSxNQUFBLENBQUFpRixjQUFBLEdBQUFqRixNQUFBLENBQUFpRixjQUFBLENBQUFuRixDQUFBLEVBQUFvQywwQkFBQSxLQUFBcEMsQ0FBQSxDQUFBb0YsU0FBQSxHQUFBaEQsMEJBQUEsRUFBQW5CLE1BQUEsQ0FBQWpCLENBQUEsRUFBQWUsQ0FBQSx5QkFBQWYsQ0FBQSxDQUFBRyxTQUFBLEdBQUFELE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQW1CLENBQUEsR0FBQTFDLENBQUEsS0FBQUQsQ0FBQSxDQUFBc0YsS0FBQSxhQUFBckYsQ0FBQSxhQUFBa0QsT0FBQSxFQUFBbEQsQ0FBQSxPQUFBMkMscUJBQUEsQ0FBQUcsYUFBQSxDQUFBM0MsU0FBQSxHQUFBYyxNQUFBLENBQUE2QixhQUFBLENBQUEzQyxTQUFBLEVBQUFVLENBQUEsaUNBQUFkLENBQUEsQ0FBQStDLGFBQUEsR0FBQUEsYUFBQSxFQUFBL0MsQ0FBQSxDQUFBdUYsS0FBQSxhQUFBdEYsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLGVBQUFBLENBQUEsS0FBQUEsQ0FBQSxHQUFBOEUsT0FBQSxPQUFBNUUsQ0FBQSxPQUFBbUMsYUFBQSxDQUFBekIsSUFBQSxDQUFBckIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFHLENBQUEsRUFBQUUsQ0FBQSxHQUFBRyxDQUFBLFVBQUFWLENBQUEsQ0FBQWdGLG1CQUFBLENBQUE5RSxDQUFBLElBQUFVLENBQUEsR0FBQUEsQ0FBQSxDQUFBcUQsSUFBQSxHQUFBYixJQUFBLFdBQUFuRCxDQUFBLFdBQUFBLENBQUEsQ0FBQXNELElBQUEsR0FBQXRELENBQUEsQ0FBQVEsS0FBQSxHQUFBRyxDQUFBLENBQUFxRCxJQUFBLFdBQUFyQixxQkFBQSxDQUFBRCxDQUFBLEdBQUF6QixNQUFBLENBQUF5QixDQUFBLEVBQUEzQixDQUFBLGdCQUFBRSxNQUFBLENBQUF5QixDQUFBLEVBQUEvQixDQUFBLGlDQUFBTSxNQUFBLENBQUF5QixDQUFBLDZEQUFBM0MsQ0FBQSxDQUFBeUYsSUFBQSxhQUFBeEYsQ0FBQSxRQUFBRCxDQUFBLEdBQUFHLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBQyxDQUFBLGdCQUFBRyxDQUFBLElBQUFMLENBQUEsRUFBQUUsQ0FBQSxDQUFBdUUsSUFBQSxDQUFBcEUsQ0FBQSxVQUFBSCxDQUFBLENBQUF3RixPQUFBLGFBQUF6QixLQUFBLFdBQUEvRCxDQUFBLENBQUE0RSxNQUFBLFNBQUE3RSxDQUFBLEdBQUFDLENBQUEsQ0FBQXlGLEdBQUEsUUFBQTFGLENBQUEsSUFBQUQsQ0FBQSxTQUFBaUUsSUFBQSxDQUFBeEQsS0FBQSxHQUFBUixDQUFBLEVBQUFnRSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxXQUFBQSxJQUFBLENBQUFWLElBQUEsT0FBQVUsSUFBQSxRQUFBakUsQ0FBQSxDQUFBMEMsTUFBQSxHQUFBQSxNQUFBLEVBQUFqQixPQUFBLENBQUFyQixTQUFBLEtBQUE2RSxXQUFBLEVBQUF4RCxPQUFBLEVBQUFtRCxLQUFBLFdBQUFBLE1BQUE1RSxDQUFBLGFBQUE0RixJQUFBLFdBQUEzQixJQUFBLFdBQUFOLElBQUEsUUFBQUMsS0FBQSxHQUFBM0QsQ0FBQSxPQUFBc0QsSUFBQSxZQUFBRSxRQUFBLGNBQUFELE1BQUEsZ0JBQUEzQixHQUFBLEdBQUE1QixDQUFBLE9BQUF1RSxVQUFBLENBQUEzQixPQUFBLENBQUE2QixhQUFBLElBQUExRSxDQUFBLFdBQUFFLENBQUEsa0JBQUFBLENBQUEsQ0FBQTJGLE1BQUEsT0FBQXhGLENBQUEsQ0FBQXlCLElBQUEsT0FBQTVCLENBQUEsTUFBQTJFLEtBQUEsRUFBQTNFLENBQUEsQ0FBQTRGLEtBQUEsY0FBQTVGLENBQUEsSUFBQUQsQ0FBQSxNQUFBOEYsSUFBQSxXQUFBQSxLQUFBLFNBQUF4QyxJQUFBLFdBQUF0RCxDQUFBLFFBQUF1RSxVQUFBLElBQUFHLFVBQUEsa0JBQUExRSxDQUFBLENBQUEyQixJQUFBLFFBQUEzQixDQUFBLENBQUE0QixHQUFBLGNBQUFtRSxJQUFBLEtBQUFuQyxpQkFBQSxXQUFBQSxrQkFBQTdELENBQUEsYUFBQXVELElBQUEsUUFBQXZELENBQUEsTUFBQUUsQ0FBQSxrQkFBQStGLE9BQUE1RixDQUFBLEVBQUFFLENBQUEsV0FBQUssQ0FBQSxDQUFBZ0IsSUFBQSxZQUFBaEIsQ0FBQSxDQUFBaUIsR0FBQSxHQUFBN0IsQ0FBQSxFQUFBRSxDQUFBLENBQUErRCxJQUFBLEdBQUE1RCxDQUFBLEVBQUFFLENBQUEsS0FBQUwsQ0FBQSxDQUFBc0QsTUFBQSxXQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBNUIsQ0FBQSxLQUFBTSxDQUFBLGFBQUFBLENBQUEsUUFBQWlFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBdkUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFHLENBQUEsUUFBQThELFVBQUEsQ0FBQWpFLENBQUEsR0FBQUssQ0FBQSxHQUFBRixDQUFBLENBQUFpRSxVQUFBLGlCQUFBakUsQ0FBQSxDQUFBMEQsTUFBQSxTQUFBNkIsTUFBQSxhQUFBdkYsQ0FBQSxDQUFBMEQsTUFBQSxTQUFBd0IsSUFBQSxRQUFBOUUsQ0FBQSxHQUFBVCxDQUFBLENBQUF5QixJQUFBLENBQUFwQixDQUFBLGVBQUFNLENBQUEsR0FBQVgsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBcEIsQ0FBQSxxQkFBQUksQ0FBQSxJQUFBRSxDQUFBLGFBQUE0RSxJQUFBLEdBQUFsRixDQUFBLENBQUEyRCxRQUFBLFNBQUE0QixNQUFBLENBQUF2RixDQUFBLENBQUEyRCxRQUFBLGdCQUFBdUIsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBNEQsVUFBQSxTQUFBMkIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBNEQsVUFBQSxjQUFBeEQsQ0FBQSxhQUFBOEUsSUFBQSxHQUFBbEYsQ0FBQSxDQUFBMkQsUUFBQSxTQUFBNEIsTUFBQSxDQUFBdkYsQ0FBQSxDQUFBMkQsUUFBQSxxQkFBQXJELENBQUEsUUFBQXNDLEtBQUEscURBQUFzQyxJQUFBLEdBQUFsRixDQUFBLENBQUE0RCxVQUFBLFNBQUEyQixNQUFBLENBQUF2RixDQUFBLENBQUE0RCxVQUFBLFlBQUFSLE1BQUEsV0FBQUEsT0FBQTdELENBQUEsRUFBQUQsQ0FBQSxhQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUFNLE1BQUEsTUFBQTVFLENBQUEsU0FBQUEsQ0FBQSxRQUFBSyxDQUFBLFFBQUFpRSxVQUFBLENBQUF0RSxDQUFBLE9BQUFLLENBQUEsQ0FBQTZELE1BQUEsU0FBQXdCLElBQUEsSUFBQXZGLENBQUEsQ0FBQXlCLElBQUEsQ0FBQXZCLENBQUEsd0JBQUFxRixJQUFBLEdBQUFyRixDQUFBLENBQUErRCxVQUFBLFFBQUE1RCxDQUFBLEdBQUFILENBQUEsYUFBQUcsQ0FBQSxpQkFBQVQsQ0FBQSxtQkFBQUEsQ0FBQSxLQUFBUyxDQUFBLENBQUEwRCxNQUFBLElBQUFwRSxDQUFBLElBQUFBLENBQUEsSUFBQVUsQ0FBQSxDQUFBNEQsVUFBQSxLQUFBNUQsQ0FBQSxjQUFBRSxDQUFBLEdBQUFGLENBQUEsR0FBQUEsQ0FBQSxDQUFBaUUsVUFBQSxjQUFBL0QsQ0FBQSxDQUFBZ0IsSUFBQSxHQUFBM0IsQ0FBQSxFQUFBVyxDQUFBLENBQUFpQixHQUFBLEdBQUE3QixDQUFBLEVBQUFVLENBQUEsU0FBQThDLE1BQUEsZ0JBQUFTLElBQUEsR0FBQXZELENBQUEsQ0FBQTRELFVBQUEsRUFBQW5DLENBQUEsU0FBQStELFFBQUEsQ0FBQXRGLENBQUEsTUFBQXNGLFFBQUEsV0FBQUEsU0FBQWpHLENBQUEsRUFBQUQsQ0FBQSxvQkFBQUMsQ0FBQSxDQUFBMkIsSUFBQSxRQUFBM0IsQ0FBQSxDQUFBNEIsR0FBQSxxQkFBQTVCLENBQUEsQ0FBQTJCLElBQUEsbUJBQUEzQixDQUFBLENBQUEyQixJQUFBLFFBQUFxQyxJQUFBLEdBQUFoRSxDQUFBLENBQUE0QixHQUFBLGdCQUFBNUIsQ0FBQSxDQUFBMkIsSUFBQSxTQUFBb0UsSUFBQSxRQUFBbkUsR0FBQSxHQUFBNUIsQ0FBQSxDQUFBNEIsR0FBQSxPQUFBMkIsTUFBQSxrQkFBQVMsSUFBQSx5QkFBQWhFLENBQUEsQ0FBQTJCLElBQUEsSUFBQTVCLENBQUEsVUFBQWlFLElBQUEsR0FBQWpFLENBQUEsR0FBQW1DLENBQUEsS0FBQWdFLE1BQUEsV0FBQUEsT0FBQWxHLENBQUEsYUFBQUQsQ0FBQSxRQUFBd0UsVUFBQSxDQUFBTSxNQUFBLE1BQUE5RSxDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBc0UsVUFBQSxDQUFBeEUsQ0FBQSxPQUFBRSxDQUFBLENBQUFvRSxVQUFBLEtBQUFyRSxDQUFBLGNBQUFpRyxRQUFBLENBQUFoRyxDQUFBLENBQUF5RSxVQUFBLEVBQUF6RSxDQUFBLENBQUFxRSxRQUFBLEdBQUFHLGFBQUEsQ0FBQXhFLENBQUEsR0FBQWlDLENBQUEseUJBQUFpRSxPQUFBbkcsQ0FBQSxhQUFBRCxDQUFBLFFBQUF3RSxVQUFBLENBQUFNLE1BQUEsTUFBQTlFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUF4RSxDQUFBLE9BQUFFLENBQUEsQ0FBQWtFLE1BQUEsS0FBQW5FLENBQUEsUUFBQUksQ0FBQSxHQUFBSCxDQUFBLENBQUF5RSxVQUFBLGtCQUFBdEUsQ0FBQSxDQUFBdUIsSUFBQSxRQUFBckIsQ0FBQSxHQUFBRixDQUFBLENBQUF3QixHQUFBLEVBQUE2QyxhQUFBLENBQUF4RSxDQUFBLFlBQUFLLENBQUEsWUFBQStDLEtBQUEsOEJBQUErQyxhQUFBLFdBQUFBLGNBQUFyRyxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxnQkFBQW9ELFFBQUEsS0FBQTVDLFFBQUEsRUFBQTZCLE1BQUEsQ0FBQTFDLENBQUEsR0FBQWdFLFVBQUEsRUFBQTlELENBQUEsRUFBQWdFLE9BQUEsRUFBQTdELENBQUEsb0JBQUFtRCxNQUFBLFVBQUEzQixHQUFBLEdBQUE1QixDQUFBLEdBQUFrQyxDQUFBLE9BQUFuQyxDQUFBO0FBQUEsU0FBQXNHLG1CQUFBakcsQ0FBQSxFQUFBSixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBSyxDQUFBLEVBQUFLLENBQUEsRUFBQUUsQ0FBQSxjQUFBSixDQUFBLEdBQUFMLENBQUEsQ0FBQU8sQ0FBQSxFQUFBRSxDQUFBLEdBQUFFLENBQUEsR0FBQU4sQ0FBQSxDQUFBRCxLQUFBLFdBQUFKLENBQUEsZ0JBQUFMLENBQUEsQ0FBQUssQ0FBQSxLQUFBSyxDQUFBLENBQUE2QyxJQUFBLEdBQUF0RCxDQUFBLENBQUFlLENBQUEsSUFBQXdFLE9BQUEsQ0FBQXRDLE9BQUEsQ0FBQWxDLENBQUEsRUFBQW9DLElBQUEsQ0FBQWxELENBQUEsRUFBQUssQ0FBQTtBQUFBLFNBQUFnRyxrQkFBQWxHLENBQUEsNkJBQUFKLENBQUEsU0FBQUQsQ0FBQSxHQUFBd0csU0FBQSxhQUFBaEIsT0FBQSxXQUFBdEYsQ0FBQSxFQUFBSyxDQUFBLFFBQUFLLENBQUEsR0FBQVAsQ0FBQSxDQUFBb0csS0FBQSxDQUFBeEcsQ0FBQSxFQUFBRCxDQUFBLFlBQUEwRyxNQUFBckcsQ0FBQSxJQUFBaUcsa0JBQUEsQ0FBQTFGLENBQUEsRUFBQVYsQ0FBQSxFQUFBSyxDQUFBLEVBQUFtRyxLQUFBLEVBQUFDLE1BQUEsVUFBQXRHLENBQUEsY0FBQXNHLE9BQUF0RyxDQUFBLElBQUFpRyxrQkFBQSxDQUFBMUYsQ0FBQSxFQUFBVixDQUFBLEVBQUFLLENBQUEsRUFBQW1HLEtBQUEsRUFBQUMsTUFBQSxXQUFBdEcsQ0FBQSxLQUFBcUcsS0FBQTtBQUFBLFNBQUFFLFFBQUE1RyxDQUFBLEVBQUFFLENBQUEsUUFBQUQsQ0FBQSxHQUFBRSxNQUFBLENBQUFzRixJQUFBLENBQUF6RixDQUFBLE9BQUFHLE1BQUEsQ0FBQTBHLHFCQUFBLFFBQUF0RyxDQUFBLEdBQUFKLE1BQUEsQ0FBQTBHLHFCQUFBLENBQUE3RyxDQUFBLEdBQUFFLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUF1RyxNQUFBLFdBQUE1RyxDQUFBLFdBQUFDLE1BQUEsQ0FBQTRHLHdCQUFBLENBQUEvRyxDQUFBLEVBQUFFLENBQUEsRUFBQWlCLFVBQUEsT0FBQWxCLENBQUEsQ0FBQXdFLElBQUEsQ0FBQWdDLEtBQUEsQ0FBQXhHLENBQUEsRUFBQU0sQ0FBQSxZQUFBTixDQUFBO0FBQUEsU0FBQStHLGNBQUFoSCxDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBc0csU0FBQSxDQUFBMUIsTUFBQSxFQUFBNUUsQ0FBQSxVQUFBRCxDQUFBLFdBQUF1RyxTQUFBLENBQUF0RyxDQUFBLElBQUFzRyxTQUFBLENBQUF0RyxDQUFBLFFBQUFBLENBQUEsT0FBQTBHLE9BQUEsQ0FBQXpHLE1BQUEsQ0FBQUYsQ0FBQSxPQUFBNEMsT0FBQSxXQUFBM0MsQ0FBQSxJQUFBK0csZUFBQSxDQUFBakgsQ0FBQSxFQUFBRSxDQUFBLEVBQUFELENBQUEsQ0FBQUMsQ0FBQSxTQUFBQyxNQUFBLENBQUErRyx5QkFBQSxHQUFBL0csTUFBQSxDQUFBZ0gsZ0JBQUEsQ0FBQW5ILENBQUEsRUFBQUcsTUFBQSxDQUFBK0cseUJBQUEsQ0FBQWpILENBQUEsS0FBQTJHLE9BQUEsQ0FBQXpHLE1BQUEsQ0FBQUYsQ0FBQSxHQUFBNEMsT0FBQSxXQUFBM0MsQ0FBQSxJQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLE1BQUEsQ0FBQTRHLHdCQUFBLENBQUE5RyxDQUFBLEVBQUFDLENBQUEsaUJBQUFGLENBQUE7QUFBQSxTQUFBaUgsZ0JBQUFqSCxDQUFBLEVBQUFFLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLEdBQUFrSCxjQUFBLENBQUFsSCxDQUFBLE1BQUFGLENBQUEsR0FBQUcsTUFBQSxDQUFBSyxjQUFBLENBQUFSLENBQUEsRUFBQUUsQ0FBQSxJQUFBTyxLQUFBLEVBQUFSLENBQUEsRUFBQWtCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFVBQUFyQixDQUFBLENBQUFFLENBQUEsSUFBQUQsQ0FBQSxFQUFBRCxDQUFBO0FBQUEsU0FBQW9ILGVBQUFuSCxDQUFBLFFBQUFTLENBQUEsR0FBQTJHLFlBQUEsQ0FBQXBILENBQUEsZ0NBQUFnRCxPQUFBLENBQUF2QyxDQUFBLElBQUFBLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUEyRyxhQUFBcEgsQ0FBQSxFQUFBQyxDQUFBLG9CQUFBK0MsT0FBQSxDQUFBaEQsQ0FBQSxNQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQUQsQ0FBQSxHQUFBQyxDQUFBLENBQUFVLE1BQUEsQ0FBQTJHLFdBQUEsa0JBQUF0SCxDQUFBLFFBQUFVLENBQUEsR0FBQVYsQ0FBQSxDQUFBOEIsSUFBQSxDQUFBN0IsQ0FBQSxFQUFBQyxDQUFBLGdDQUFBK0MsT0FBQSxDQUFBdkMsQ0FBQSxVQUFBQSxDQUFBLFlBQUFxRCxTQUFBLHlFQUFBN0QsQ0FBQSxHQUFBcUgsTUFBQSxHQUFBQyxNQUFBLEVBQUF2SCxDQUFBO0FBQUEsU0FBQXdILG1CQUFBdkgsQ0FBQSxXQUFBd0gsa0JBQUEsQ0FBQXhILENBQUEsS0FBQXlILGdCQUFBLENBQUF6SCxDQUFBLEtBQUEwSCwyQkFBQSxDQUFBMUgsQ0FBQSxLQUFBMkgsa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBOUQsU0FBQTtBQUFBLFNBQUEyRCxtQkFBQXhILENBQUEsUUFBQTRILEtBQUEsQ0FBQUMsT0FBQSxDQUFBN0gsQ0FBQSxVQUFBOEgsaUJBQUEsQ0FBQTlILENBQUE7QUFBQSxTQUFBK0gsU0FBQS9ILENBQUEsV0FBQWdJLGVBQUEsQ0FBQWhJLENBQUEsS0FBQXlILGdCQUFBLENBQUF6SCxDQUFBLEtBQUEwSCwyQkFBQSxDQUFBMUgsQ0FBQSxLQUFBaUksZ0JBQUE7QUFBQSxTQUFBUixpQkFBQXpILENBQUEsOEJBQUFTLE1BQUEsWUFBQVQsQ0FBQSxDQUFBUyxNQUFBLENBQUFFLFFBQUEsYUFBQVgsQ0FBQSx1QkFBQTRILEtBQUEsQ0FBQU0sSUFBQSxDQUFBbEksQ0FBQTtBQUFBLFNBQUFtSSxlQUFBbkksQ0FBQSxFQUFBRixDQUFBLFdBQUFrSSxlQUFBLENBQUFoSSxDQUFBLEtBQUFvSSxxQkFBQSxDQUFBcEksQ0FBQSxFQUFBRixDQUFBLEtBQUE0SCwyQkFBQSxDQUFBMUgsQ0FBQSxFQUFBRixDQUFBLEtBQUFtSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFwRSxTQUFBO0FBQUEsU0FBQTZELDRCQUFBMUgsQ0FBQSxFQUFBVSxDQUFBLFFBQUFWLENBQUEsMkJBQUFBLENBQUEsU0FBQThILGlCQUFBLENBQUE5SCxDQUFBLEVBQUFVLENBQUEsT0FBQVgsQ0FBQSxNQUFBc0ksUUFBQSxDQUFBekcsSUFBQSxDQUFBNUIsQ0FBQSxFQUFBNEYsS0FBQSw2QkFBQTdGLENBQUEsSUFBQUMsQ0FBQSxDQUFBK0UsV0FBQSxLQUFBaEYsQ0FBQSxHQUFBQyxDQUFBLENBQUErRSxXQUFBLENBQUFDLElBQUEsYUFBQWpGLENBQUEsY0FBQUEsQ0FBQSxHQUFBNkgsS0FBQSxDQUFBTSxJQUFBLENBQUFsSSxDQUFBLG9CQUFBRCxDQUFBLCtDQUFBdUksSUFBQSxDQUFBdkksQ0FBQSxJQUFBK0gsaUJBQUEsQ0FBQTlILENBQUEsRUFBQVUsQ0FBQTtBQUFBLFNBQUFvSCxrQkFBQTlILENBQUEsRUFBQVUsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQVYsQ0FBQSxDQUFBNEUsTUFBQSxNQUFBbEUsQ0FBQSxHQUFBVixDQUFBLENBQUE0RSxNQUFBLFlBQUE5RSxDQUFBLE1BQUFLLENBQUEsR0FBQXlILEtBQUEsQ0FBQWxILENBQUEsR0FBQVosQ0FBQSxHQUFBWSxDQUFBLEVBQUFaLENBQUEsSUFBQUssQ0FBQSxDQUFBTCxDQUFBLElBQUFFLENBQUEsQ0FBQUYsQ0FBQSxVQUFBSyxDQUFBO0FBQUEsU0FBQWlJLHNCQUFBcEksQ0FBQSxFQUFBOEIsQ0FBQSxRQUFBL0IsQ0FBQSxXQUFBQyxDQUFBLGdDQUFBUyxNQUFBLElBQUFULENBQUEsQ0FBQVMsTUFBQSxDQUFBRSxRQUFBLEtBQUFYLENBQUEsNEJBQUFELENBQUEsUUFBQUQsQ0FBQSxFQUFBSyxDQUFBLEVBQUFLLENBQUEsRUFBQU0sQ0FBQSxFQUFBSixDQUFBLE9BQUFxQixDQUFBLE9BQUExQixDQUFBLGlCQUFBRyxDQUFBLElBQUFULENBQUEsR0FBQUEsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBNUIsQ0FBQSxHQUFBK0QsSUFBQSxRQUFBakMsQ0FBQSxRQUFBN0IsTUFBQSxDQUFBRixDQUFBLE1BQUFBLENBQUEsVUFBQWdDLENBQUEsdUJBQUFBLENBQUEsSUFBQWpDLENBQUEsR0FBQVUsQ0FBQSxDQUFBb0IsSUFBQSxDQUFBN0IsQ0FBQSxHQUFBc0QsSUFBQSxNQUFBM0MsQ0FBQSxDQUFBNkQsSUFBQSxDQUFBekUsQ0FBQSxDQUFBUyxLQUFBLEdBQUFHLENBQUEsQ0FBQWtFLE1BQUEsS0FBQTlDLENBQUEsR0FBQUMsQ0FBQSxpQkFBQS9CLENBQUEsSUFBQUssQ0FBQSxPQUFBRixDQUFBLEdBQUFILENBQUEseUJBQUErQixDQUFBLFlBQUFoQyxDQUFBLGVBQUFlLENBQUEsR0FBQWYsQ0FBQSxjQUFBRSxNQUFBLENBQUFhLENBQUEsTUFBQUEsQ0FBQSwyQkFBQVQsQ0FBQSxRQUFBRixDQUFBLGFBQUFPLENBQUE7QUFBQSxTQUFBc0gsZ0JBQUFoSSxDQUFBLFFBQUE0SCxLQUFBLENBQUFDLE9BQUEsQ0FBQTdILENBQUEsVUFBQUEsQ0FBQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU3VJLFdBQVdBLENBQ25CQyxTQUE4QyxFQUN3QztFQUN0RixPQUFPLFNBQVNDLFFBQVFBLENBQUNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQXNDO0lBQy9FLElBQUFDLFlBQUEsR0FBNkIsSUFBQUMseUJBQVcsRUFBbUIsQ0FBQztNQUFBQyxhQUFBLEdBQUFaLGNBQUEsQ0FBQVUsWUFBQTtNQUFyREcsS0FBSyxHQUFBRCxhQUFBO01BQUVFLFdBQVcsR0FBQUYsYUFBQTtJQUN6QixJQUFNRyxRQUFRLEdBQUcsSUFBQUMsOEJBQWMsRUFBQ1QsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRTtNQUFFSSxLQUFLLEVBQUxBO0lBQU0sQ0FBQyxDQUFDO0lBRTdELElBQU1JLE9BQXdELEdBQUc7TUFDaEVKLEtBQUssRUFBTEEsS0FBSztNQUNMRSxRQUFRLEVBQVJBO0lBQ0QsQ0FBQztJQUVELElBQUFHLGNBQUEsR0FBb0MsSUFBQUMsd0JBQWEsRUFBQ2QsU0FBUyxFQUFFRSxHQUFHLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFUSxPQUFPLENBQUM7TUFBQUcsZUFBQSxHQUFBeEIsUUFBQSxDQUFBc0IsY0FBQTtNQUFqRkcsWUFBWSxHQUFBRCxlQUFBO01BQUtFLFFBQVEsR0FBQUYsZUFBQSxDQUFBM0QsS0FBQTtJQUVoQyxJQUFBOEQsWUFBQSxHQUEwQ1QsV0FBVyxDQUFDLENBQUM7TUFBQVUsYUFBQSxHQUFBeEIsY0FBQSxDQUFBdUIsWUFBQTtNQUFoREUsYUFBYSxHQUFBRCxhQUFBO01BQUVFLGdCQUFnQixHQUFBRixhQUFBO0lBRXRDLFFBQUE3QyxhQUFBLENBQUFBLGFBQUEsS0FBYThDLGFBQWEsR0FBS0osWUFBWSxHQUFBTSxNQUFBLENBQUF2QyxrQkFBQSxDQUFPa0MsUUFBUSxHQUFBbEMsa0JBQUEsQ0FBS3NDLGdCQUFnQjtFQUNoRixDQUFDO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTRSxxQkFBcUJBLENBQzdCdkIsU0FBOEMsRUFDc0Q7RUFDcEc7SUFBQSxJQUFBd0IsbUJBQUEsR0FBQTNELGlCQUFBLGVBQUF4RyxtQkFBQSxHQUFBb0YsSUFBQSxDQUFPLFNBQUFnRixRQUFrQ3ZCLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxLQUFLO01BQUEsSUFBQXNCLGFBQUEsRUFBQUMsYUFBQSxFQUFBbkIsS0FBQSxFQUFBQyxXQUFBLEVBQUFDLFFBQUEsRUFBQUUsT0FBQSxFQUFBZ0IsZUFBQSxFQUFBQyxlQUFBLEVBQUFiLFlBQUEsRUFBQUMsUUFBQSxFQUFBYSxhQUFBLEVBQUFDLGFBQUEsRUFBQVgsYUFBQSxFQUFBQyxnQkFBQSxFQUFBVyxRQUFBO01BQUEsT0FBQTNLLG1CQUFBLEdBQUF1QixJQUFBLFVBQUFxSixTQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQWhGLElBQUEsR0FBQWdGLFFBQUEsQ0FBQTNHLElBQUE7VUFBQTtZQUFBbUcsYUFBQSxHQUM1QixJQUFBcEIseUJBQVcsRUFBbUIsQ0FBQyxFQUFBcUIsYUFBQSxHQUFBaEMsY0FBQSxDQUFBK0IsYUFBQSxNQUFyRGxCLEtBQUssR0FBQW1CLGFBQUEsS0FBRWxCLFdBQVcsR0FBQWtCLGFBQUE7WUFDbkJqQixRQUFRLEdBQUcsSUFBQUMsOEJBQWMsRUFBQ1QsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRTtjQUFFSSxLQUFLLEVBQUxBO1lBQU0sQ0FBQyxDQUFDO1lBRXZESSxPQUF3RCxHQUFHO2NBQ2hFSixLQUFLLEVBQUxBLEtBQUs7Y0FDTEUsUUFBUSxFQUFSQTtZQUNELENBQUM7WUFBQWtCLGVBQUEsR0FFbUMsSUFBQWQsd0JBQWEsRUFBQ2QsU0FBUyxFQUFFRSxHQUFHLEVBQUVDLEtBQUssRUFBRUMsS0FBSyxFQUFFUSxPQUFPLENBQUMsRUFBQWlCLGVBQUEsR0FBQXRDLFFBQUEsQ0FBQXFDLGVBQUEsR0FBakZaLFlBQVksR0FBQWEsZUFBQSxLQUFLWixRQUFRLEdBQUFZLGVBQUEsQ0FBQXpFLEtBQUE7WUFBQTBFLGFBQUEsR0FFVXJCLFdBQVcsQ0FBQyxDQUFDLEVBQUFzQixhQUFBLEdBQUFwQyxjQUFBLENBQUFtQyxhQUFBLE1BQWhEVixhQUFhLEdBQUFXLGFBQUEsS0FBRVYsZ0JBQWdCLEdBQUFVLGFBQUE7WUFBQUcsUUFBQSxDQUFBM0csSUFBQTtZQUFBLE9BRWY0RyxnQkFBTyxDQUFBcEUsS0FBQSxTQUFBZ0Isa0JBQUEsQ0FBSWtDLFFBQVEsRUFBQUssTUFBQSxDQUFBdkMsa0JBQUEsQ0FBS3NDLGdCQUFnQixHQUFDO1VBQUE7WUFBMURXLFFBQVEsR0FBQUUsUUFBQSxDQUFBakgsSUFBQTtZQUFBLE9BQUFpSCxRQUFBLENBQUE5RyxNQUFBLFdBRVAsQ0FBQWtELGFBQUEsQ0FBQUEsYUFBQSxLQUFNOEMsYUFBYSxHQUFLSixZQUFZLEdBQUlnQixRQUFRLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUUsUUFBQSxDQUFBN0UsSUFBQTtRQUFBO01BQUEsR0FBQW9FLE9BQUE7SUFBQSxDQUN4RDtJQUFBLFNBaEJxQlcsa0JBQWtCQSxDQUFBQyxFQUFBLEVBQUFDLEdBQUEsRUFBQUMsR0FBQTtNQUFBLE9BQUFmLG1CQUFBLENBQUF6RCxLQUFBLE9BQUFELFNBQUE7SUFBQTtJQUFBLE9BQWxCc0Usa0JBQWtCO0VBQUE7QUFpQnpDIiwiaWdub3JlTGlzdCI6W119
package/dist/Types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- type Nullable<T> = T | null;
1
+ type Nullable<TType> = TType | null;
2
2
  interface Message {
3
3
  name: string;
4
4
  }
@@ -15,8 +15,8 @@ type Cmd<TMessage> = Sub<TMessage>[];
15
15
  /**
16
16
  * Creates a MsgSource type.
17
17
  */
18
- interface MsgSource<T extends string> {
19
- source: T;
18
+ interface MsgSource<TSource extends string> {
19
+ source: TSource;
20
20
  }
21
21
  /**
22
22
  * The return type of the `init` function.
@@ -28,17 +28,19 @@ type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TMod
28
28
  */
29
29
  type UpdateReturnType<TModel, TMessage> = [Partial<TModel>, ...(Cmd<TMessage> | undefined)[]];
30
30
  type DeferFunction<TModel, TMessage> = (model: Partial<TModel>, ...commands: (Cmd<TMessage> | undefined)[]) => void;
31
- interface UpdateFunctionOptions<TModel, TMessage> {
31
+ type UpdateMapFunction<TProps, TModel, TMessage> = (msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
32
+ interface UpdateFunctionOptions<TProps, TModel, TMessage> {
32
33
  defer: DeferFunction<TModel, TMessage>;
34
+ callBase: (fn: UpdateMapFunction<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
33
35
  }
34
- type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
36
+ type UpdateFunction<TProps, TModel, TMessage> = (model: TModel, msg: TMessage, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
35
37
  /**
36
38
  * Type for mapping messages to functions.
37
39
  * Use this type to create your update logic for the useElmish hook.
38
40
  */
39
41
  type UpdateMap<TProps, TModel, TMessage extends Message> = {
40
- [M in TMessage["name"]]: (msg: TMessage & {
41
- name: M;
42
- }, model: TModel, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
42
+ [TMessageName in TMessage["name"]]: (msg: TMessage & {
43
+ name: TMessageName;
44
+ }, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
43
45
  };
44
- export type { Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType, };
46
+ export type { Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateMapFunction, UpdateReturnType, };
package/dist/Types.js CHANGED
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgTnVsbGFibGU8VD4gPSBUIHwgbnVsbDtcblxuaW50ZXJmYWNlIE1lc3NhZ2Uge1xuXHRuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiB0aGUgZGlzcGF0Y2ggZnVuY3Rpb24uXG4gKi9cbnR5cGUgRGlzcGF0Y2g8VE1lc3NhZ2U+ID0gKG1zZzogVE1lc3NhZ2UpID0+IHZvaWQ7XG5cbnR5cGUgRmFsbGJhY2tIYW5kbGVyID0gKGVycm9yPzogRXJyb3IpID0+IHZvaWQ7XG50eXBlIFN1YjxUTXNnPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIFR5cGUgb2YgYSBjb21tYW5kLlxuICovXG50eXBlIENtZDxUTWVzc2FnZT4gPSBTdWI8VE1lc3NhZ2U+W107XG5cbi8qKlxuICogQ3JlYXRlcyBhIE1zZ1NvdXJjZSB0eXBlLlxuICovXG5pbnRlcmZhY2UgTXNnU291cmNlPFQgZXh0ZW5kcyBzdHJpbmc+IHtcblx0c291cmNlOiBUO1xufVxuXG4vKipcbiAqIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgYGluaXRgIGZ1bmN0aW9uLlxuICovXG50eXBlIEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT4gPSBbVE1vZGVsLCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV07XG5cbnR5cGUgSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAocHJvcHM6IFRQcm9wcykgPT4gSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgdXBkYXRlYCBmdW5jdGlvbi5cbiAqL1xudHlwZSBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1BhcnRpYWw8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT4gPSAobW9kZWw6IFBhcnRpYWw8VE1vZGVsPiwgLi4uY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbnR5cGUgVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChcblx0bW9kZWw6IFRNb2RlbCxcblx0bXNnOiBUTWVzc2FnZSxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2ggaG9vay5cbiAqL1xudHlwZSBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSB7XG5cdFtNIGluIFRNZXNzYWdlW1wibmFtZVwiXV06IChcblx0XHRtc2c6IFRNZXNzYWdlICYgeyBuYW1lOiBNIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUTW9kZWwsIFRNZXNzYWdlPixcblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xufTtcblxuZXhwb3J0IHR5cGUge1xuXHRDbWQsXG5cdERlZmVyRnVuY3Rpb24sXG5cdERpc3BhdGNoLFxuXHRGYWxsYmFja0hhbmRsZXIsXG5cdEluaXRGdW5jdGlvbixcblx0SW5pdFJlc3VsdCxcblx0TWVzc2FnZSxcblx0TXNnU291cmNlLFxuXHROdWxsYWJsZSxcblx0U3ViLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbInR5cGUgTnVsbGFibGU8VFR5cGU+ID0gVFR5cGUgfCBudWxsO1xuXG5pbnRlcmZhY2UgTWVzc2FnZSB7XG5cdG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIG9mIHRoZSBkaXNwYXRjaCBmdW5jdGlvbi5cbiAqL1xudHlwZSBEaXNwYXRjaDxUTWVzc2FnZT4gPSAobXNnOiBUTWVzc2FnZSkgPT4gdm9pZDtcblxudHlwZSBGYWxsYmFja0hhbmRsZXIgPSAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZDtcbnR5cGUgU3ViPFRNc2c+ID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPiwgZmFsbGJhY2s/OiBGYWxsYmFja0hhbmRsZXIpID0+IHZvaWQ7XG5cbi8qKlxuICogVHlwZSBvZiBhIGNvbW1hbmQuXG4gKi9cbnR5cGUgQ21kPFRNZXNzYWdlPiA9IFN1YjxUTWVzc2FnZT5bXTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgTXNnU291cmNlIHR5cGUuXG4gKi9cbmludGVyZmFjZSBNc2dTb3VyY2U8VFNvdXJjZSBleHRlbmRzIHN0cmluZz4ge1xuXHRzb3VyY2U6IFRTb3VyY2U7XG59XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgaW5pdGAgZnVuY3Rpb24uXG4gKi9cbnR5cGUgSW5pdFJlc3VsdDxUTW9kZWwsIFRNZXNzYWdlPiA9IFtUTW9kZWwsIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXTtcblxudHlwZSBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChwcm9wczogVFByb3BzKSA9PiBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGB1cGRhdGVgIGZ1bmN0aW9uLlxuICovXG50eXBlIFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4gPSBbUGFydGlhbDxUTW9kZWw+LCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV07XG5cbnR5cGUgRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogUGFydGlhbDxUTW9kZWw+LCAuLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10pID0+IHZvaWQ7XG50eXBlIFVwZGF0ZU1hcEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRkZWZlcjogRGVmZXJGdW5jdGlvbjxUTW9kZWwsIFRNZXNzYWdlPjtcblx0Y2FsbEJhc2U6IChmbjogVXBkYXRlTWFwRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPikgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxudHlwZSBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKFxuXHRtb2RlbDogVE1vZGVsLFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbikgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcblxuLyoqXG4gKiBUeXBlIGZvciBtYXBwaW5nIG1lc3NhZ2VzIHRvIGZ1bmN0aW9ucy5cbiAqIFVzZSB0aGlzIHR5cGUgdG8gY3JlYXRlIHlvdXIgdXBkYXRlIGxvZ2ljIGZvciB0aGUgdXNlRWxtaXNoIGhvb2suXG4gKi9cbnR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+ID0ge1xuXHRbVE1lc3NhZ2VOYW1lIGluIFRNZXNzYWdlW1wibmFtZVwiXV06IChcblx0XHRtc2c6IFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfSxcblx0XHRtb2RlbDogVE1vZGVsLFxuXHRcdHByb3BzOiBUUHJvcHMsXG5cdFx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn07XG5cbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREZWZlckZ1bmN0aW9uLFxuXHREaXNwYXRjaCxcblx0RmFsbGJhY2tIYW5kbGVyLFxuXHRJbml0RnVuY3Rpb24sXG5cdEluaXRSZXN1bHQsXG5cdE1lc3NhZ2UsXG5cdE1zZ1NvdXJjZSxcblx0TnVsbGFibGUsXG5cdFN1Yixcblx0VXBkYXRlRnVuY3Rpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVNYXBGdW5jdGlvbixcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn07XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
package/dist/cmd.d.ts CHANGED
@@ -9,12 +9,12 @@ declare const cmd: {
9
9
  * Aggregates multiple commands.
10
10
  * @param {Cmd<TMessage> []} commands Array of commands.
11
11
  */
12
- batch<TMessage_1 extends Message>(...commands: (Cmd<TMessage_1> | null | undefined)[]): Cmd<TMessage_1>;
12
+ batch<TMessage extends Message>(...commands: (Cmd<TMessage> | undefined | null)[]): Cmd<TMessage>;
13
13
  /**
14
14
  * Command to call the subscriber.
15
15
  * @param {Sub<TMessage>} sub The subscriber function.
16
16
  */
17
- ofSub<TMessage_2 extends Message>(sub: Sub<TMessage_2>): Cmd<TMessage_2>;
17
+ ofSub<TMessage extends Message>(sub: Sub<TMessage>): Cmd<TMessage>;
18
18
  /**
19
19
  * Creates a command out of a function and maps the result. This can also be an async function.
20
20
  * @param task The function to call.
@@ -29,14 +29,14 @@ declare const cmd: {
29
29
  * @param ofSuccess Creates the message to dispatch when the function runs successfully or, for an async function, the promise is resolved.
30
30
  * @param args The parameters of the task.
31
31
  */
32
- ofSuccess<TSuccessMessage_1 extends Message, TArgs_1 extends unknown[], TReturn_1>(task: (...args: TArgs_1) => TReturn_1, ofSuccess: (result: Awaited<TReturn_1>) => TSuccessMessage_1, ...args: TArgs_1): Cmd<TSuccessMessage_1>;
32
+ ofSuccess<TSuccessMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: Awaited<TReturn>) => TSuccessMessage, ...args: TArgs): Cmd<TSuccessMessage>;
33
33
  /**
34
34
  * Creates a command out of a function and ignores the success case. This can also be an async function.
35
35
  * @param task The function to call.
36
36
  * @param ofError Creates the message to dispatch when the function runs successfully or, for an async function, the promise is rejected.
37
37
  * @param args The parameters of the task.
38
38
  */
39
- ofError<TErrorMessage_1 extends Message, TArgs_2 extends unknown[], TReturn_2>(task: (...args: TArgs_2) => TReturn_2, ofError: (error: Error) => TErrorMessage_1, ...args: TArgs_2): Cmd<TErrorMessage_1>;
39
+ ofError<TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TErrorMessage>;
40
40
  /**
41
41
  * Provides functionalities to create commands from simple functions.
42
42
  */
@@ -48,21 +48,21 @@ declare const cmd: {
48
48
  * @param ofError Creates the message to dispatch when an error occurred.
49
49
  * @param args The parameters of the task.
50
50
  */
51
- either<TSuccessMessage_2 extends Message, TErrorMessage_2 extends Message, TArgs_3 extends unknown[], TReturn_3>(task: (...args: TArgs_3) => TReturn_3, ofSuccess: (result: TReturn_3) => TSuccessMessage_2, ofError: (error: Error) => TErrorMessage_2, ...args: TArgs_3): Cmd<TSuccessMessage_2 | TErrorMessage_2>;
51
+ either<TSuccessMessage extends Message, TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) => TSuccessMessage, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TSuccessMessage | TErrorMessage>;
52
52
  /**
53
53
  * Creates a command out of a simple function and ignores the error case.
54
54
  * @param task The function to call.
55
55
  * @param ofSuccess Creates the message to dispatch after a successful call of the task.
56
56
  * @param args The parameters of the task.
57
57
  */
58
- perform<TSuccessMessage_3 extends Message, TArgs_4 extends unknown[], TReturn_4>(task: (...args: TArgs_4) => TReturn_4, ofSuccess: (result: TReturn_4) => TSuccessMessage_3, ...args: TArgs_4): Cmd<TSuccessMessage_3>;
58
+ perform<TSuccessMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofSuccess: (result: TReturn) => TSuccessMessage, ...args: TArgs): Cmd<TSuccessMessage>;
59
59
  /**
60
60
  * Creates a command out of a simple function and ignores the success case.
61
61
  * @param task The function to call.
62
62
  * @param ofError Creates the message to dispatch when an error occurred.
63
63
  * @param args The parameters of the task.
64
64
  */
65
- attempt<TErrorMessage_3 extends Message, TArgs_5 extends unknown[], TReturn_5>(task: (...args: TArgs_5) => TReturn_5, ofError: (error: Error) => TErrorMessage_3, ...args: TArgs_5): Cmd<TErrorMessage_3>;
65
+ attempt<TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => TReturn, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TErrorMessage>;
66
66
  };
67
67
  /**
68
68
  * Provides functionalities to create commands from async functions.
@@ -75,21 +75,21 @@ declare const cmd: {
75
75
  * @param ofError Creates the message to dispatch when the promise is rejected.
76
76
  * @param args The parameters of the task.
77
77
  */
78
- either<TSuccessMessage_4 extends Message, TErrorMessage_4 extends Message, TArgs_6 extends unknown[], TReturn_6>(task: (...args: TArgs_6) => Promise<TReturn_6>, ofSuccess: (result: TReturn_6) => TSuccessMessage_4, ofError: (error: Error) => TErrorMessage_4, ...args: TArgs_6): Cmd<TSuccessMessage_4 | TErrorMessage_4>;
78
+ either<TSuccessMessage extends Message, TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) => TSuccessMessage, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TSuccessMessage | TErrorMessage>;
79
79
  /**
80
80
  * Creates a command out of an async function and ignores the error case.
81
81
  * @param task The async function to call.
82
82
  * @param ofSuccess Creates the message to dispatch when the promise is resolved.
83
83
  * @param args The parameters of the task.
84
84
  */
85
- perform<TSuccessMessage_5 extends Message, TArgs_7 extends unknown[], TReturn_7>(task: (...args: TArgs_7) => Promise<TReturn_7>, ofSuccess: (result: TReturn_7) => TSuccessMessage_5, ...args: TArgs_7): Cmd<TSuccessMessage_5>;
85
+ perform<TSuccessMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofSuccess: (result: TReturn) => TSuccessMessage, ...args: TArgs): Cmd<TSuccessMessage>;
86
86
  /**
87
87
  * Creates a command out of an async function and ignores the success case.
88
88
  * @param task The async function to call.
89
89
  * @param ofError Creates the message to dispatch when the promise is rejected.
90
90
  * @param args The parameters of the task.
91
91
  */
92
- attempt<TErrorMessage_5 extends Message, TArgs_8 extends unknown[], TReturn_8>(task: (...args: TArgs_8) => Promise<TReturn_8>, ofError: (error: Error) => TErrorMessage_5, ...args: TArgs_8): Cmd<TErrorMessage_5>;
92
+ attempt<TErrorMessage extends Message, TArgs extends unknown[], TReturn>(task: (...args: TArgs) => Promise<TReturn>, ofError: (error: Error) => TErrorMessage, ...args: TArgs): Cmd<TErrorMessage>;
93
93
  };
94
94
  };
95
95
  export { cmd };
@@ -0,0 +1,3 @@
1
+ import type { UpdateFunctionOptions, UpdateMapFunction, UpdateReturnType } from "./Types";
2
+ declare function createCallBase<TProps, TModel, TMessage>(msg: TMessage, model: TModel, props: TProps, options: Omit<UpdateFunctionOptions<TProps, TModel, TMessage>, "callBase">): (fn: UpdateMapFunction<TProps, TModel, TMessage>) => UpdateReturnType<TModel, TMessage>;
3
+ export { createCallBase };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createCallBase = createCallBase;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ function createCallBase(msg, model, props, options) {
14
+ var callBase = function callBase(fn) {
15
+ return fn(msg, model, props, _objectSpread(_objectSpread({}, options), {}, {
16
+ callBase: callBase
17
+ }));
18
+ };
19
+ return callBase;
20
+ }
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVDYWxsQmFzZSIsIm1zZyIsIm1vZGVsIiwicHJvcHMiLCJvcHRpb25zIiwiY2FsbEJhc2UiLCJmbiIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlQ2FsbEJhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsIFVwZGF0ZU1hcEZ1bmN0aW9uLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuZnVuY3Rpb24gY3JlYXRlQ2FsbEJhc2U8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPihcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogT21pdDxVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgXCJjYWxsQmFzZVwiPixcbik6IChmbjogVXBkYXRlTWFwRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPikgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IGNhbGxCYXNlID0gKGZuOiBVcGRhdGVNYXBGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiA9PlxuXHRcdGZuKG1zZywgbW9kZWwsIHByb3BzLCB7IC4uLm9wdGlvbnMsIGNhbGxCYXNlIH0pO1xuXG5cdHJldHVybiBjYWxsQmFzZTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUEsU0FBU0EsY0FBY0EsQ0FDdEJDLEdBQWEsRUFDYkMsS0FBYSxFQUNiQyxLQUFhLEVBQ2JDLE9BQTBFLEVBQ2dCO0VBQzFGLElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxFQUErQztJQUFBLE9BQ2hFQSxFQUFFLENBQUNMLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUFJLGFBQUEsQ0FBQUEsYUFBQSxLQUFPSCxPQUFPO01BQUVDLFFBQVEsRUFBUkE7SUFBUSxFQUFFLENBQUM7RUFBQTtFQUVoRCxPQUFPQSxRQUFRO0FBQ2hCIiwiaWdub3JlTGlzdCI6W119
@@ -47,7 +47,7 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
47
47
  * const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
48
48
  */
49
49
  declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
50
- declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
51
- declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
50
+ declare function callUpdate<TProps, TModel, TMessage extends Message>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
51
+ declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TModel, TMessage>;
52
52
  export type { Subscription, SubscriptionResult, UseElmishOptions };
53
53
  export { callUpdate, callUpdateMap, useElmish };
package/dist/useElmish.js CHANGED
@@ -10,6 +10,7 @@ exports.useElmish = useElmish;
10
10
  var _react = require("react");
11
11
  var _Common = require("./Common");
12
12
  var _Init = require("./Init");
13
+ var _createCallBase = require("./createCallBase");
13
14
  var _createDefer3 = require("./createDefer");
14
15
  var _fakeOptions = require("./fakeOptions");
15
16
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
@@ -129,12 +130,17 @@ function useElmish(_ref) {
129
130
  }
130
131
  var modified = false;
131
132
  (0, _Common.logMessage)(name, nextMsg);
133
+ var updatedModel = _objectSpread(_objectSpread({}, initializedModel), currentModel);
132
134
  var _createDefer = (0, _createDefer3.createDefer)(),
133
135
  _createDefer2 = _slicedToArray(_createDefer, 2),
134
136
  defer = _createDefer2[0],
135
137
  getDeferred = _createDefer2[1];
136
- var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), propsRef.current, {
137
- defer: defer
138
+ var callBase = (0, _createCallBase.createCallBase)(nextMsg, updatedModel, propsRef.current, {
139
+ defer: defer
140
+ });
141
+ var _callUpdate = callUpdate(update, nextMsg, updatedModel, propsRef.current, {
142
+ defer: defer,
143
+ callBase: callBase
138
144
  }),
139
145
  _callUpdate2 = _toArray(_callUpdate),
140
146
  newModel = _callUpdate2[0],
@@ -161,4 +167,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
161
167
  var msgName = msg.name;
162
168
  return updateMap[msgName](msg, model, props, options);
163
169
  }
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsIl9mYWtlT3B0aW9ucyRkaXNwYXRjaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJ1bm5pbmciLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImhhbmRsZU1lc3NhZ2UiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsIl9zdWJzY3JpcHRpb24iLCJfc3Vic2NyaXB0aW9uMiIsInN1YkNtZCIsImRlc3RydWN0b3IiLCJsb2dNZXNzYWdlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsIl9jYWxsVXBkYXRlIiwiY2FsbFVwZGF0ZSIsIl9jYWxsVXBkYXRlMiIsIm5ld01vZGVsIiwiY29tbWFuZHMiLCJfZ2V0RGVmZXJyZWQiLCJfZ2V0RGVmZXJyZWQyIiwiZGVmZXJyZWRNb2RlbCIsImRlZmVycmVkQ29tbWFuZHMiLCJtb2RlbEhhc0NoYW5nZWQiLCJvcHRpb25zIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0SW5pdEZ1bmN0aW9uLFxuXHRNZXNzYWdlLFxuXHROdWxsYWJsZSxcblx0VXBkYXRlRnVuY3Rpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBzdWJzY3JpcHRpb25gIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cdFx0fTtcblx0fSwgW10pO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2UoKTtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRmYWtlT3B0aW9ucz8uZGlzcGF0Y2ggPz9cblx0XHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAocnVubmluZykge1xuXHRcdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXG5cdFx0XHRcdGlmIChpc01vdW50ZWRSZWYuY3VycmVudCAmJiBtb2RpZmllZCkge1xuXHRcdFx0XHRcdHNldE1vZGVsKChwcmV2TW9kZWwpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4uKHByZXZNb2RlbCBhcyBUTW9kZWwpLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuXHRcdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2RlbDtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSksXG5cdFx0W10sXG5cdCk7XG5cblx0aWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG5cdFx0Y29uc3QgW2luaXRNb2RlbCwgLi4uaW5pdENvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdChwcm9wcyk7XG5cblx0XHRpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuXHRcdHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRpYWxpemVkTW9kZWwpO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uaW5pdENvbW1hbmRzKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIHdhbnQgdG8gcnVuIHRoaXMgZWZmZWN0IG9ubHkgb25jZVxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwsIHByb3BzKTtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHR9LCBbXSk7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0bG9nTWVzc2FnZShuYW1lLCBuZXh0TXNnKTtcblxuXHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblxuXHRcdGNvbnN0IFtuZXdNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzUmVmLmN1cnJlbnQsIHtcblx0XHRcdGRlZmVyLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0Y29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cblx0cmV0dXJuIHVwZGF0ZU1hcFttc2dOYW1lXShtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uLCBTdWJzY3JpcHRpb25SZXN1bHQsIFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNB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
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl9mYWtlT3B0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsIl9mYWtlT3B0aW9ucyRkaXNwYXRjaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJ1bm5pbmciLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJtb2RlbCIsInNldE1vZGVsIiwicHJvcHNSZWYiLCJ1c2VSZWYiLCJpc01vdW50ZWRSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiaW5pdGlhbGl6ZWRNb2RlbCIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiZGlzcGF0Y2giLCJ1c2VDYWxsYmFjayIsIm1zZyIsIm5leHRNc2ciLCJtb2RpZmllZCIsImhhbmRsZU1lc3NhZ2UiLCJzaGlmdCIsInByZXZNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJ1cGRhdGVkTW9kZWwiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfcmVmMiIsIl9yZWYzIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiZXhlY0NtZCIsImNvbmNhdCIsIl9zdWJzY3JpcHRpb24iLCJfc3Vic2NyaXB0aW9uMiIsInN1YkNtZCIsImRlc3RydWN0b3IiLCJsb2dNZXNzYWdlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwiX2dldERlZmVycmVkIiwiX2dldERlZmVycmVkMiIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwib3B0aW9ucyIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiLCJtc2dOYW1lIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHMgKi9cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdENtZCxcblx0RGlzcGF0Y2gsXG5cdEluaXRGdW5jdGlvbixcblx0TWVzc2FnZSxcblx0TnVsbGFibGUsXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dO1xudHlwZSBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBgdXNlRWxtaXNoYCBob29rLlxuICogQGludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNZXNzYWdlIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlcyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiB7XG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LiBUaGlzIGlzIHVzZWQgZm9yIGxvZ2dpbmcgb25seS5cblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqXG5cdCAqIFRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC5cblx0ICogQHR5cGUge1RQcm9wc31cblx0ICovXG5cdHByb3BzOiBUUHJvcHM7XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KHtcblx0bmFtZSxcblx0cHJvcHMsXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGxldCBydW5uaW5nID0gZmFsc2U7XG5cdGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuXHRjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXHRcdH07XG5cdH0sIFtdKTtcblxuXHRsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlKCk7XG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoID8/XG5cdFx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKHJ1bm5pbmcpIHtcblx0XHRcdFx0XHRidWZmZXIucHVzaChtc2cpO1xuXG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cnVubmluZyA9IHRydWU7XG5cblx0XHRcdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0XHRkbyB7XG5cdFx0XHRcdFx0aWYgKGhhbmRsZU1lc3NhZ2UobmV4dE1zZykpIHtcblx0XHRcdFx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRcdHJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdFx0XHRpZiAoaXNNb3VudGVkUmVmLmN1cnJlbnQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLihwcmV2TW9kZWwgYXMgVE1vZGVsKSwgLi4uY3VycmVudE1vZGVsIH07XG5cblx0XHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWw7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQocHJvcHMpO1xuXG5cdFx0aW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0aWFsaXplZE1vZGVsKTtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSB3YW50IHRvIHJ1biB0aGlzIGVmZmVjdCBvbmx5IG9uY2Vcblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoc3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvbihpbml0aWFsaXplZE1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0fSwgW10pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UobmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3QgW25ld01vZGVsLCAuLi5jb21tYW5kc10gPSBjYWxsVXBkYXRlKHVwZGF0ZSwgbmV4dE1zZywgdXBkYXRlZE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyLCBjYWxsQmFzZSB9KTtcblxuXHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKGN1cnJlbnRNb2RlbCwgeyAuLi5kZWZlcnJlZE1vZGVsLCAuLi5uZXdNb2RlbCB9KSkge1xuXHRcdFx0Y3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH07XG5cblx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRleGVjQ21kKGRpc3BhdGNoLCAuLi5jb21tYW5kcywgLi4uZGVmZXJyZWRDb21tYW5kcyk7XG5cblx0XHRyZXR1cm4gbW9kaWZpZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZTxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRyZXR1cm4gdXBkYXRlKG1vZGVsLCBtc2csIHByb3BzLCBvcHRpb25zKTtcblx0fVxuXG5cdHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuXHRjb25zdCBtc2dOYW1lOiBUTWVzc2FnZVtcIm5hbWVcIl0gPSBtc2cubmFtZTtcblxuXHRyZXR1cm4gdXBkYXRlTWFwW21zZ05hbWVdKG1zZywgbW9kZWwsIHByb3BzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24sIFN1YnNjcmlwdGlvblJlc3VsdCwgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlLCBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBWUEsSUFBQUcsZUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQW1ELFNBQUFNLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxDQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxDQUFBLFVBQUFRLGlCQUFBLENBQUFSLENBQUE7QUFBQSxTQUFBUyxTQUFBVCxDQUFBLFdBQUFVLGVBQUEsQ0FBQVYsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQVcsZ0JBQUE7QUFBQSxTQUFBVCxpQkFBQUYsQ0FBQSw4QkFBQVksTUFBQSxZQUFBWixDQUFBLENBQUFZLE1BQUEsQ0FBQUMsUUFBQSxhQUFBYixDQUFBLHVCQUFBTSxLQUFBLENBQUFRLElBQUEsQ0FBQWQsQ0FBQTtBQUFBLFNBQUFlLFFBQUFDLENBQUEsRUFBQWhCLENBQUEsUUFBQWlCLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFILENBQUEsT0FBQUUsTUFBQSxDQUFBRSxx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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-elmish",
3
- "version": "7.3.2",
3
+ "version": "7.4.0",
4
4
  "description": "Elmish for React using Typescript",
5
5
  "author": "atheck",
6
6
  "license": "MIT",
@@ -24,19 +24,19 @@
24
24
  "@babel/preset-env": "7.24.7",
25
25
  "@babel/preset-react": "7.24.7",
26
26
  "@babel/preset-typescript": "7.24.7",
27
- "@biomejs/biome": "1.8.0",
28
- "@testing-library/dom": "10.1.0",
27
+ "@biomejs/biome": "1.8.2",
28
+ "@testing-library/dom": "10.2.0",
29
29
  "@testing-library/react": "16.0.0",
30
30
  "@types/jest": "29.5.12",
31
31
  "@types/react": "18.3.3",
32
32
  "@types/react-dom": "18.3.0",
33
33
  "eslint": "8.57.0",
34
- "eslint-config-heck": "2.11.2",
34
+ "eslint-config-heck": "2.13.0",
35
35
  "jest": "29.7.0",
36
36
  "jest-environment-jsdom": "29.7.0",
37
37
  "semantic-release": "24.0.0",
38
- "ts-jest": "29.1.4",
39
- "typescript": "5.4.5"
38
+ "ts-jest": "29.1.5",
39
+ "typescript": "5.5.2"
40
40
  },
41
41
  "homepage": "https://github.com/atheck/react-elmish",
42
42
  "repository": {