react-elmish 3.1.0 → 4.0.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 +32 -11
- package/dist/Cmd.d.ts +18 -19
- package/dist/Cmd.js +42 -134
- package/dist/ElmComponent.d.ts +3 -9
- package/dist/ElmComponent.js +29 -23
- package/dist/ErrorHandling.d.ts +33 -0
- package/dist/ErrorHandling.js +58 -0
- package/dist/Init.d.ts +9 -10
- package/dist/Init.js +13 -16
- package/dist/Testing/index.d.ts +5 -11
- package/dist/Testing/index.js +23 -54
- package/dist/Types.d.ts +26 -0
- package/dist/Types.js +6 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +12 -6
- package/dist/useElmish.d.ts +9 -9
- package/dist/useElmish.js +22 -13
- package/package.json +18 -16
- package/dist/ElmUtilities.d.ts +0 -32
- package/dist/ElmUtilities.js +0 -35
- package/dist/legacy/useElmish.d.ts +0 -15
- package/dist/legacy/useElmish.js +0 -135
- package/dist/legacy/useElmishMap.d.ts +0 -15
- package/dist/legacy/useElmishMap.js +0 -137
package/dist/index.js
CHANGED
|
@@ -15,16 +15,22 @@ Object.defineProperty(exports, "createCmd", {
|
|
|
15
15
|
return _Cmd.createCmd;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "errorHandler", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _ErrorHandling.errorHandler;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "errorMsg", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function get() {
|
|
21
|
-
return
|
|
27
|
+
return _ErrorHandling.errorMsg;
|
|
22
28
|
}
|
|
23
29
|
});
|
|
24
30
|
Object.defineProperty(exports, "handleError", {
|
|
25
31
|
enumerable: true,
|
|
26
32
|
get: function get() {
|
|
27
|
-
return
|
|
33
|
+
return _ErrorHandling.handleError;
|
|
28
34
|
}
|
|
29
35
|
});
|
|
30
36
|
Object.defineProperty(exports, "init", {
|
|
@@ -42,11 +48,11 @@ Object.defineProperty(exports, "useElmish", {
|
|
|
42
48
|
|
|
43
49
|
var _Cmd = require("./Cmd");
|
|
44
50
|
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
var _ElmUtilities = require("./ElmUtilities");
|
|
51
|
+
var _ErrorHandling = require("./ErrorHandling");
|
|
48
52
|
|
|
49
53
|
var _Init = require("./Init");
|
|
50
54
|
|
|
51
55
|
var _useElmish = require("./useElmish");
|
|
52
|
-
|
|
56
|
+
|
|
57
|
+
var _ElmComponent = require("./ElmComponent");
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZXJyb3JIYW5kbGVyLCBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IEluaXRSZXN1bHQsIE1zZ1NvdXJjZSwgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUge1xuICAgIExvZ2dlcixcbiAgICBNZXNzYWdlLFxuICAgIENtZCxcbiAgICBEaXNwYXRjaCxcbiAgICBJbml0UmVzdWx0LFxuICAgIFVwZGF0ZVJldHVyblR5cGUsXG4gICAgU3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgIE1zZ1NvdXJjZSxcbiAgICBVcGRhdGVNYXAsXG4gICAgRXJyb3JNZXNzYWdlLFxufTtcblxuZXhwb3J0IHtcbiAgICBpbml0LFxuICAgIGNyZWF0ZUNtZCxcbiAgICBFbG1Db21wb25lbnQsXG4gICAgZXJyb3JNc2csXG4gICAgZXJyb3JIYW5kbGVyLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQSJ9
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Cmd, Dispatch } from "./Cmd";
|
|
2
|
-
import { InitFunction, UpdateFunction, UpdateReturnType } from "./
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare type Subscription<TModel, TMessage> = (model: TModel) => SubscriptionResult<TMessage>;
|
|
2
|
+
import { InitFunction, MessageBase, UpdateFunction, UpdateMap, UpdateReturnType } from "./Types";
|
|
3
|
+
declare type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
|
|
4
|
+
declare type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
6
5
|
interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
7
6
|
name: string;
|
|
8
7
|
props: TProps;
|
|
9
8
|
init: InitFunction<TProps, TModel, TMessage>;
|
|
10
9
|
update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
|
|
11
|
-
subscription?: Subscription<TModel, TMessage>;
|
|
10
|
+
subscription?: Subscription<TProps, TModel, TMessage>;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
14
13
|
* Hook to use the Elm architecture pattern in a function component.
|
|
@@ -17,7 +16,8 @@ interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
|
17
16
|
* @example
|
|
18
17
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
19
18
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export {};
|
|
19
|
+
declare function useElmish<TProps, TModel, TMessage extends MessageBase>({ name, props, init, update, subscription }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
20
|
+
declare function callUpdate<TProps, TModel, TMessage extends MessageBase>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
21
|
+
declare function callUpdateMap<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
22
|
+
export type { SubscriptionResult, };
|
|
23
|
+
export { useElmish, callUpdate, callUpdateMap, };
|
package/dist/useElmish.js
CHANGED
|
@@ -7,10 +7,10 @@ exports.callUpdate = callUpdate;
|
|
|
7
7
|
exports.callUpdateMap = callUpdateMap;
|
|
8
8
|
exports.useElmish = useElmish;
|
|
9
9
|
|
|
10
|
-
var _Init = require("./Init");
|
|
11
|
-
|
|
12
10
|
var _react = require("react");
|
|
13
11
|
|
|
12
|
+
var _Init = require("./Init");
|
|
13
|
+
|
|
14
14
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
16
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -57,7 +57,9 @@ function useElmish(_ref) {
|
|
|
57
57
|
try {
|
|
58
58
|
call(dispatch);
|
|
59
59
|
} catch (ex) {
|
|
60
|
-
|
|
60
|
+
var _Services$logger;
|
|
61
|
+
|
|
62
|
+
(_Services$logger = _Init.Services.logger) === null || _Services$logger === void 0 ? void 0 : _Services$logger.error(ex);
|
|
61
63
|
}
|
|
62
64
|
});
|
|
63
65
|
}, []);
|
|
@@ -70,8 +72,8 @@ function useElmish(_ref) {
|
|
|
70
72
|
return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
|
|
71
73
|
};
|
|
72
74
|
|
|
73
|
-
if (_Init.dispatchMiddleware) {
|
|
74
|
-
|
|
75
|
+
if (_Init.Services.dispatchMiddleware) {
|
|
76
|
+
_Init.Services.dispatchMiddleware(msg);
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
if (reentered) {
|
|
@@ -82,8 +84,10 @@ function useElmish(_ref) {
|
|
|
82
84
|
var modified = false;
|
|
83
85
|
|
|
84
86
|
while (nextMsg) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
var _Services$logger2, _Services$logger3;
|
|
88
|
+
|
|
89
|
+
(_Services$logger2 = _Init.Services.logger) === null || _Services$logger2 === void 0 ? void 0 : _Services$logger2.info("Elm", "message from", name, nextMsg.name);
|
|
90
|
+
(_Services$logger3 = _Init.Services.logger) === null || _Services$logger3 === void 0 ? void 0 : _Services$logger3.debug("Elm", "message from", name, nextMsg);
|
|
87
91
|
|
|
88
92
|
try {
|
|
89
93
|
var _callUpdate = callUpdate(update, nextMsg, _objectSpread(_objectSpread({}, initializedModel), currentModel), props),
|
|
@@ -100,7 +104,9 @@ function useElmish(_ref) {
|
|
|
100
104
|
execCmd(cmd);
|
|
101
105
|
}
|
|
102
106
|
} catch (ex) {
|
|
103
|
-
|
|
107
|
+
var _Services$logger4;
|
|
108
|
+
|
|
109
|
+
(_Services$logger4 = _Init.Services.logger) === null || _Services$logger4 === void 0 ? void 0 : _Services$logger4.error(ex);
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
nextMsg = buffer.shift();
|
|
@@ -110,9 +116,11 @@ function useElmish(_ref) {
|
|
|
110
116
|
|
|
111
117
|
if (modified) {
|
|
112
118
|
setModel(function (prevModel) {
|
|
119
|
+
var _Services$logger5;
|
|
120
|
+
|
|
113
121
|
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
114
122
|
|
|
115
|
-
_Init.
|
|
123
|
+
(_Services$logger5 = _Init.Services.logger) === null || _Services$logger5 === void 0 ? void 0 : _Services$logger5.debug("Elm", "update model for", name, updatedModel);
|
|
116
124
|
return updatedModel;
|
|
117
125
|
});
|
|
118
126
|
}
|
|
@@ -135,7 +143,7 @@ function useElmish(_ref) {
|
|
|
135
143
|
|
|
136
144
|
(0, _react.useEffect)(function () {
|
|
137
145
|
if (subscription) {
|
|
138
|
-
var _subscription = subscription(initializedModel),
|
|
146
|
+
var _subscription = subscription(initializedModel, props),
|
|
139
147
|
_subscription2 = _slicedToArray(_subscription, 2),
|
|
140
148
|
subCmd = _subscription2[0],
|
|
141
149
|
destructor = _subscription2[1];
|
|
@@ -160,7 +168,8 @@ function callUpdate(update, msg, model, props) {
|
|
|
160
168
|
|
|
161
169
|
function callUpdateMap(updateMap, msg, model, props) {
|
|
162
170
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
163
|
-
// @ts-expect-error -- We know that
|
|
164
|
-
|
|
171
|
+
// @ts-expect-error -- We know that msg fits
|
|
172
|
+
var updateFn = updateMap[msg.name];
|
|
173
|
+
return updateFn(msg, model, props);
|
|
165
174
|
}
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwibmFtZSIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsU0FBVCxPQUF5TDtBQUFBLE1BQXJIQyxJQUFxSCxRQUFySEEsSUFBcUg7QUFBQSxNQUEvR0MsS0FBK0csUUFBL0dBLEtBQStHO0FBQUEsTUFBeEdDLElBQXdHLFFBQXhHQSxJQUF3RztBQUFBLE1BQWxHQyxNQUFrRyxRQUFsR0EsTUFBa0c7QUFBQSxNQUExRkMsWUFBMEYsUUFBMUZBLFlBQTBGO0FBQzVMLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7QUFBQSxNQUFjQyxRQUFkOztBQUNBLE1BQUlDLGdCQUFnQixHQUFHRixLQUF2QjtBQUVBLE1BQU1HLE9BQU8sR0FBRyx3QkFBWSxVQUFDQyxHQUFELEVBQThCO0FBQ3REQSxJQUFBQSxHQUFHLENBQUNDLE9BQUosQ0FBWSxVQUFBQyxJQUFJLEVBQUk7QUFDaEIsVUFBSTtBQUNBQSxRQUFBQSxJQUFJLENBQUNDLFFBQUQsQ0FBSjtBQUNILE9BRkQsQ0FFRSxPQUFPQyxFQUFQLEVBQW9CO0FBQ2xCQyxzR0FBZUMsS0FBZixDQUFxQkYsRUFBckI7QUFDSDtBQUNKLEtBTkQ7QUFPSCxHQVJlLEVBUWIsRUFSYSxDQUFoQjtBQVVBLE1BQU1ELFFBQVEsR0FBRyx3QkFBWSxVQUFDSSxHQUFELEVBQXlCO0FBQ2xELFFBQUksQ0FBQ1QsZ0JBQUwsRUFBdUI7QUFDbkI7QUFDSDs7QUFFRCxRQUFNVSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLFlBQUQ7QUFBQSxhQUE0Q0EsWUFBWSxLQUFLWCxnQkFBakIsSUFBcUNZLE1BQU0sQ0FBQ0MsbUJBQVAsQ0FBMkJGLFlBQTNCLEVBQXlDRyxNQUF6QyxHQUFrRCxDQUFuSTtBQUFBLEtBQXhCOztBQUVBLFFBQUlDLHdCQUFKLEVBQXdCO0FBQ3BCLG9DQUFtQk4sR0FBbkI7QUFDSDs7QUFFRCxRQUFJZCxTQUFKLEVBQWU7QUFDWEMsTUFBQUEsTUFBTSxDQUFDb0IsSUFBUCxDQUFZUCxHQUFaO0FBQ0gsS0FGRCxNQUVPO0FBQ0hkLE1BQUFBLFNBQVMsR0FBRyxJQUFaO0FBRUEsVUFBSXNCLE9BQTZCLEdBQUdSLEdBQXBDO0FBQ0EsVUFBSVMsUUFBUSxHQUFHLEtBQWY7O0FBRUEsYUFBT0QsT0FBUCxFQUFnQjtBQUNaVixzR0FBZVksSUFBZixDQUFvQixLQUFwQixFQUEyQixjQUEzQixFQUEyQzdCLElBQTNDLEVBQWlEMkIsT0FBTyxDQUFDM0IsSUFBekQ7QUFDQWlCLHNHQUFlYSxLQUFmLENBQXFCLEtBQXJCLEVBQTRCLGNBQTVCLEVBQTRDOUIsSUFBNUMsRUFBa0QyQixPQUFsRDs7QUFFQSxZQUFJO0FBQ0EsNEJBQXdCSSxVQUFVLENBQUM1QixNQUFELEVBQVN3QixPQUFULGtDQUF1QmpCLGdCQUF2QixHQUE0Q0gsWUFBNUMsR0FBNEROLEtBQTVELENBQWxDO0FBQUE7QUFBQSxjQUFPK0IsUUFBUDtBQUFBLGNBQWlCcEIsR0FBakI7O0FBRUEsY0FBSVEsZUFBZSxDQUFDWSxRQUFELENBQW5CLEVBQStCO0FBQzNCekIsWUFBQUEsWUFBWSxtQ0FBUUEsWUFBUixHQUF5QnlCLFFBQXpCLENBQVo7QUFFQUosWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDSDs7QUFFRCxjQUFJaEIsR0FBSixFQUFTO0FBQ0xELFlBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQO0FBQ0g7QUFDSixTQVpELENBWUUsT0FBT0ksRUFBUCxFQUFvQjtBQUNsQkMsd0dBQWVDLEtBQWYsQ0FBcUJGLEVBQXJCO0FBQ0g7O0FBRURXLFFBQUFBLE9BQU8sR0FBR3JCLE1BQU0sQ0FBQzJCLEtBQVAsRUFBVjtBQUNIOztBQUNENUIsTUFBQUEsU0FBUyxHQUFHLEtBQVo7O0FBRUEsVUFBSXVCLFFBQUosRUFBYztBQUNWbkIsUUFBQUEsUUFBUSxDQUFDLFVBQUF5QixTQUFTLEVBQUk7QUFDbEIsY0FBTWIsWUFBWSxtQ0FBUWEsU0FBUixHQUFnQzNCLFlBQWhDLENBQWxCOztBQUVBVSx3R0FBZWEsS0FBZixDQUFxQixLQUFyQixFQUE0QixrQkFBNUIsRUFBZ0Q5QixJQUFoRCxFQUFzRHFCLFlBQXREO0FBRUEsaUJBQU9BLFlBQVA7QUFDSCxTQU5PLENBQVI7QUFPSDtBQUNKO0FBQ0osR0FyRGdCLEVBcURkLEVBckRjLENBQWpCOztBQXVEQSxNQUFJLENBQUNYLGdCQUFMLEVBQXVCO0FBQ25CLGdCQUE2QlIsSUFBSSxDQUFDRCxLQUFELENBQWpDO0FBQUE7QUFBQSxRQUFPa0MsU0FBUDtBQUFBLFFBQWtCQyxPQUFsQjs7QUFFQTFCLElBQUFBLGdCQUFnQixHQUFHeUIsU0FBbkI7QUFDQTFCLElBQUFBLFFBQVEsQ0FBQ0MsZ0JBQUQsQ0FBUjs7QUFFQSxRQUFJMEIsT0FBSixFQUFhO0FBQ1R6QixNQUFBQSxPQUFPLENBQUN5QixPQUFELENBQVA7QUFDSDtBQUNKOztBQUVELHdCQUFVLFlBQU07QUFDWixRQUFJaEMsWUFBSixFQUFrQjtBQUNkLDBCQUE2QkEsWUFBWSxDQUFDTSxnQkFBRCxDQUF6QztBQUFBO0FBQUEsVUFBTzJCLE1BQVA7QUFBQSxVQUFlQyxVQUFmOztBQUVBM0IsTUFBQUEsT0FBTyxDQUFDMEIsTUFBRCxDQUFQOztBQUVBLFVBQUlDLFVBQUosRUFBZ0I7QUFDWixlQUFPQSxVQUFQO0FBQ0g7QUFDSjtBQUNKLEdBVkQsRUFVRyxFQVZIO0FBWUEsU0FBTyxDQUFDNUIsZ0JBQUQsRUFBbUJLLFFBQW5CLENBQVA7QUFDSDs7QUFFTSxTQUFTZ0IsVUFBVCxDQUFtRTVCLE1BQW5FLEVBQTJKZ0IsR0FBM0osRUFBMEtYLEtBQTFLLEVBQXlMUCxLQUF6TCxFQUE0TztBQUMvTyxNQUFJLE9BQU9FLE1BQVAsS0FBa0IsVUFBdEIsRUFBa0M7QUFDOUIsV0FBT0EsTUFBTSxDQUFDSyxLQUFELEVBQVFXLEdBQVIsRUFBYWxCLEtBQWIsQ0FBYjtBQUNIOztBQUVELFNBQU9zQyxhQUFhLENBQUNwQyxNQUFELEVBQVNnQixHQUFULEVBQWNYLEtBQWQsRUFBcUJQLEtBQXJCLENBQXBCO0FBQ0g7O0FBRU0sU0FBU3NDLGFBQVQsQ0FBc0VDLFNBQXRFLEVBQXNIckIsR0FBdEgsRUFBcUlYLEtBQXJJLEVBQW9KUCxLQUFwSixFQUF1TTtBQUMxTTtBQUNBO0FBQ0EsU0FBT3VDLFNBQVMsQ0FBQ3JCLEdBQUcsQ0FBQ25CLElBQUwsQ0FBVCxDQUF3Q21CLEdBQXhDLEVBQTZDWCxLQUE3QyxFQUFvRFAsS0FBcEQsQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL0VsbUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUTW9kZWwsIFRNZXNzYWdlPixcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgbGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKHVwZGF0ZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiB1cGRhdGVkTW9kZWwgIT09IGluaXRpYWxpemVkTW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModXBkYXRlZE1vZGVsKS5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChkaXNwYXRjaE1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoTWlkZGxld2FyZShtc2cpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIHNldE1vZGVsKHByZXZNb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsIGFzIFRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICBjb25zdCBbaW5pdE1vZGVsLCBpbml0Q21kXSA9IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGlmIChpbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCBhcyBUTW9kZWwpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBuZXh0TXNnIGZpdHNcbiAgICByZXR1cm4gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0obXNnLCBtb2RlbCwgcHJvcHMpO1xufSJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFbG1pc2giLCJuYW1lIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwicmVlbnRlcmVkIiwiYnVmZmVyIiwiY3VycmVudE1vZGVsIiwidXNlU3RhdGUiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJ1c2VDYWxsYmFjayIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsImNhbGxVcGRhdGUiLCJuZXdNb2RlbCIsInNoaWZ0IiwicHJldk1vZGVsIiwiaW5pdE1vZGVsIiwiaW5pdENtZCIsInVzZUVmZmVjdCIsInN1YkNtZCIsImRlc3RydWN0b3IiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwidXBkYXRlRm4iXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlQmFzZSwgTnVsbGFibGUsIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVNYXAsIFVwZGF0ZVJldHVyblR5cGUgfSBmcm9tIFwiLi9UeXBlc1wiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuXG50eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiB7XG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHByb3BzOiBUUHJvcHMsXG4gICAgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4gICAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgbGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgU2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgU2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFtzdWJDbWQsIGRlc3RydWN0b3JdID0gc3Vic2NyaXB0aW9uKGluaXRpYWxpemVkTW9kZWwgYXMgVE1vZGVsLCBwcm9wcyk7XG5cbiAgICAgICAgICAgIGV4ZWNDbWQoc3ViQ21kKTtcblxuICAgICAgICAgICAgaWYgKGRlc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdHJ1Y3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBtb2RlbCwgcHJvcHMpO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBtc2cgZml0c1xuICAgIGNvbnN0IHVwZGF0ZUZuID0gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0gYXMgKG1zZzogVE1lc3NhZ2UsIG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcblxuICAgIHJldHVybiB1cGRhdGVGbihtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBTdWJzY3JpcHRpb25SZXN1bHQsXG59O1xuXG5leHBvcnQge1xuICAgIHVzZUVsbWlzaCxcbiAgICBjYWxsVXBkYXRlLFxuICAgIGNhbGxVcGRhdGVNYXAsXG59OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxTQUFULE9BQXlMO0VBQUEsSUFBckhDLElBQXFILFFBQXJIQSxJQUFxSDtFQUFBLElBQS9HQyxLQUErRyxRQUEvR0EsS0FBK0c7RUFBQSxJQUF4R0MsSUFBd0csUUFBeEdBLElBQXdHO0VBQUEsSUFBbEdDLE1BQWtHLFFBQWxHQSxNQUFrRztFQUFBLElBQTFGQyxZQUEwRixRQUExRkEsWUFBMEY7RUFDckwsSUFBSUMsU0FBUyxHQUFHLEtBQWhCO0VBQ0EsSUFBTUMsTUFBbUIsR0FBRyxFQUE1QjtFQUNBLElBQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0VBRUEsZ0JBQTBCLElBQUFDLGVBQUEsRUFBMkIsSUFBM0IsQ0FBMUI7RUFBQTtFQUFBLElBQU9DLEtBQVA7RUFBQSxJQUFjQyxRQUFkOztFQUNBLElBQUlDLGdCQUFnQixHQUFHRixLQUF2QjtFQUVBLElBQU1HLE9BQU8sR0FBRyxJQUFBQyxrQkFBQSxFQUFZLFVBQUNDLEdB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,21 +8,22 @@
|
|
|
8
8
|
"react": ">=16.8.0"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"@babel/cli": "7.17.
|
|
12
|
-
"@babel/core": "7.
|
|
13
|
-
"@babel/plugin-proposal-class-properties": "7.
|
|
14
|
-
"@babel/preset-env": "7.
|
|
15
|
-
"@babel/preset-react": "7.
|
|
16
|
-
"@babel/preset-typescript": "7.
|
|
17
|
-
"@testing-library/react": "13.
|
|
18
|
-
"@types/jest": "
|
|
19
|
-
"@types/react": "
|
|
20
|
-
"eslint": "8.
|
|
21
|
-
"eslint-config-heck": "1.
|
|
22
|
-
"jest": "
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
11
|
+
"@babel/cli": "7.17.10",
|
|
12
|
+
"@babel/core": "7.18.5",
|
|
13
|
+
"@babel/plugin-proposal-class-properties": "7.17.12",
|
|
14
|
+
"@babel/preset-env": "7.18.2",
|
|
15
|
+
"@babel/preset-react": "7.17.12",
|
|
16
|
+
"@babel/preset-typescript": "7.17.12",
|
|
17
|
+
"@testing-library/react": "13.3.0",
|
|
18
|
+
"@types/jest": "28.1.1",
|
|
19
|
+
"@types/react": "18.0.14",
|
|
20
|
+
"eslint": "8.17.0",
|
|
21
|
+
"eslint-config-heck": "1.14.0",
|
|
22
|
+
"jest": "28.1.1",
|
|
23
|
+
"jest-environment-jsdom": "28.1.1",
|
|
24
|
+
"semantic-release": "19.0.3",
|
|
25
|
+
"ts-jest": "28.0.5",
|
|
26
|
+
"typescript": "4.7.3"
|
|
26
27
|
},
|
|
27
28
|
"scripts": {
|
|
28
29
|
"build": "npm run build:types && npm run build:js",
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
"test": "jest --coverage",
|
|
32
33
|
"test:watch": "jest --watch --coverage",
|
|
33
34
|
"lint": "npx eslint --ext .ts,.tsx ./src",
|
|
35
|
+
"update": "npx npm-check-updates -i",
|
|
34
36
|
"semantic-release": "semantic-release"
|
|
35
37
|
},
|
|
36
38
|
"homepage": "https://github.com/atheck/react-elmish",
|
package/dist/ElmUtilities.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { UpdateReturnType } from "./ElmComponent";
|
|
2
|
-
/**
|
|
3
|
-
* Handles an error.
|
|
4
|
-
* Logs the error if a Logger was specified.
|
|
5
|
-
* Calls the error handling middleware if specified.
|
|
6
|
-
* @param {Error} error The error.
|
|
7
|
-
*/
|
|
8
|
-
export declare const handleError: <TModel, TMsg>(error: Error) => UpdateReturnType<TModel, TMsg>;
|
|
9
|
-
export declare type Nullable<T> = T | null;
|
|
10
|
-
export interface MessageBase {
|
|
11
|
-
name: string | symbol;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates a MsgSource type.
|
|
15
|
-
*/
|
|
16
|
-
export interface MsgSource<T extends string> {
|
|
17
|
-
source: T;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Type for mapping messages to functions.
|
|
21
|
-
* Use this type to create your update logic for the useElmishMap hook.
|
|
22
|
-
*/
|
|
23
|
-
export declare type UpdateMap<TProps, TModel, TMsg extends MessageBase> = {
|
|
24
|
-
[M in TMsg as M["name"]]: (msg: M, model: TModel, props: TProps) => UpdateReturnType<TModel, TMsg>;
|
|
25
|
-
};
|
|
26
|
-
export interface ErrorMessage {
|
|
27
|
-
name: "error";
|
|
28
|
-
error: Error;
|
|
29
|
-
}
|
|
30
|
-
export declare const errorMsg: {
|
|
31
|
-
error: (error: Error) => ErrorMessage;
|
|
32
|
-
};
|
package/dist/ElmUtilities.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.handleError = exports.errorMsg = void 0;
|
|
7
|
-
|
|
8
|
-
var _Init = require("./Init");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Handles an error.
|
|
12
|
-
* Logs the error if a Logger was specified.
|
|
13
|
-
* Calls the error handling middleware if specified.
|
|
14
|
-
* @param {Error} error The error.
|
|
15
|
-
*/
|
|
16
|
-
var handleError = function handleError(error) {
|
|
17
|
-
if (_Init.errorMiddleware) {
|
|
18
|
-
(0, _Init.errorMiddleware)(error);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(error);
|
|
22
|
-
return [{}];
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
exports.handleError = handleError;
|
|
26
|
-
var errorMsg = {
|
|
27
|
-
error: function error(_error) {
|
|
28
|
-
return {
|
|
29
|
-
name: "error",
|
|
30
|
-
error: _error
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
exports.errorMsg = errorMsg;
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1VdGlsaXRpZXMudHMiXSwibmFtZXMiOlsiaGFuZGxlRXJyb3IiLCJlcnJvciIsImVycm9yTWlkZGxld2FyZSIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvck1zZyIsIm5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFlQyxLQUFmLEVBQWdFO0FBQ3ZGLE1BQUlDLHFCQUFKLEVBQXFCO0FBQ2pCLCtCQUFnQkQsS0FBaEI7QUFDSDs7QUFDREUsZ0dBQWVGLEtBQWYsQ0FBcUJBLEtBQXJCO0FBRUEsU0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNILENBUE07OztBQW1DQSxJQUFNRyxRQUFRLEdBQUc7QUFDcEJILEVBQUFBLEtBQUssRUFBRSxlQUFDQSxNQUFEO0FBQUEsV0FBaUM7QUFBRUksTUFBQUEsSUFBSSxFQUFFLE9BQVI7QUFBaUJKLE1BQUFBLEtBQUssRUFBTEE7QUFBakIsS0FBakM7QUFBQTtBQURhLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3JNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL0VsbUNvbXBvbmVudFwiO1xuXG4vKipcbiAqIEhhbmRsZXMgYW4gZXJyb3IuXG4gKiBMb2dzIHRoZSBlcnJvciBpZiBhIExvZ2dlciB3YXMgc3BlY2lmaWVkLlxuICogQ2FsbHMgdGhlIGVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgaWYgc3BlY2lmaWVkLlxuICogQHBhcmFtIHtFcnJvcn0gZXJyb3IgVGhlIGVycm9yLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRXJyb3IgPSA8VE1vZGVsLCBUTXNnPihlcnJvcjogRXJyb3IpOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz4gPT4ge1xuICAgIGlmIChlcnJvck1pZGRsZXdhcmUpIHtcbiAgICAgICAgZXJyb3JNaWRkbGV3YXJlKGVycm9yKTtcbiAgICB9XG4gICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXJyb3IpO1xuXG4gICAgcmV0dXJuIFt7fV07XG59O1xuXG5leHBvcnQgdHlwZSBOdWxsYWJsZTxUPiA9IFQgfCBudWxsO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VCYXNlIHtcbiAgICBuYW1lOiBzdHJpbmcgfCBzeW1ib2wsXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIE1zZ1NvdXJjZSB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1zZ1NvdXJjZTxUIGV4dGVuZHMgc3RyaW5nPiB7XG4gICAgc291cmNlOiBULFxufVxuXG4vKipcbiAqIFR5cGUgZm9yIG1hcHBpbmcgbWVzc2FnZXMgdG8gZnVuY3Rpb25zLlxuICogVXNlIHRoaXMgdHlwZSB0byBjcmVhdGUgeW91ciB1cGRhdGUgbG9naWMgZm9yIHRoZSB1c2VFbG1pc2hNYXAgaG9vay5cbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZUJhc2U+ID0ge1xuICAgIFtNIGluIFRNc2cgYXMgTVtcIm5hbWVcIl1dOiAobXNnOiBNLCBtb2RlbDogVE1vZGVsLCBwcm9wczogVFByb3BzKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1zZz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yTWVzc2FnZSB7XG4gICAgbmFtZTogXCJlcnJvclwiLFxuICAgIGVycm9yOiBFcnJvcixcbn1cblxuZXhwb3J0IGNvbnN0IGVycm9yTXNnID0ge1xuICAgIGVycm9yOiAoZXJyb3I6IEVycm9yKTogRXJyb3JNZXNzYWdlID0+ICh7IG5hbWU6IFwiZXJyb3JcIiwgZXJyb3IgfSksXG59OyJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Dispatch } from "../Cmd";
|
|
2
|
-
import { InitFunction, UpdateFunction } from "../ElmComponent";
|
|
3
|
-
import { MessageBase } from "../ElmUtilities";
|
|
4
|
-
/**
|
|
5
|
-
* Hook to use the Elm architecture pattern in a function component.
|
|
6
|
-
* @param props The props of the component.
|
|
7
|
-
* @param init Function to initialize the model.
|
|
8
|
-
* @param update The update function.
|
|
9
|
-
* @param name The name of the component.
|
|
10
|
-
* @returns A tuple containing the current model and the dispatcher.
|
|
11
|
-
* @example
|
|
12
|
-
* const [model, dispatch] = useElmish(props, init, update, "MyComponent");
|
|
13
|
-
* @deprecated Use `useElmish` with an options object instead.
|
|
14
|
-
*/
|
|
15
|
-
export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: InitFunction<TProps, TModel, TMsg>, update: UpdateFunction<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
|
package/dist/legacy/useElmish.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useElmish = useElmish;
|
|
7
|
-
|
|
8
|
-
var _Init = require("../Init");
|
|
9
|
-
|
|
10
|
-
var _react = require("react");
|
|
11
|
-
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
-
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
-
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
|
|
18
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
19
|
-
|
|
20
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
-
|
|
22
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
-
|
|
24
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
25
|
-
|
|
26
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
27
|
-
|
|
28
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Hook to use the Elm architecture pattern in a function component.
|
|
32
|
-
* @param props The props of the component.
|
|
33
|
-
* @param init Function to initialize the model.
|
|
34
|
-
* @param update The update function.
|
|
35
|
-
* @param name The name of the component.
|
|
36
|
-
* @returns A tuple containing the current model and the dispatcher.
|
|
37
|
-
* @example
|
|
38
|
-
* const [model, dispatch] = useElmish(props, init, update, "MyComponent");
|
|
39
|
-
* @deprecated Use `useElmish` with an options object instead.
|
|
40
|
-
*/
|
|
41
|
-
function useElmish(props, init, update, name) {
|
|
42
|
-
var reentered = false;
|
|
43
|
-
var buffer = [];
|
|
44
|
-
var currentModel = {};
|
|
45
|
-
|
|
46
|
-
var _useState = (0, _react.useState)(null),
|
|
47
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
48
|
-
model = _useState2[0],
|
|
49
|
-
setModel = _useState2[1];
|
|
50
|
-
|
|
51
|
-
var initializedModel = model;
|
|
52
|
-
var execCmd = (0, _react.useCallback)(function (cmd) {
|
|
53
|
-
cmd.forEach(function (call) {
|
|
54
|
-
try {
|
|
55
|
-
call(dispatch);
|
|
56
|
-
} catch (ex) {
|
|
57
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}, []);
|
|
61
|
-
var dispatch = (0, _react.useCallback)(function (msg) {
|
|
62
|
-
if (!initializedModel) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
var modelHasChanged = function modelHasChanged(updatedModel) {
|
|
67
|
-
return updatedModel !== initializedModel && Object.getOwnPropertyNames(updatedModel).length > 0;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
if (_Init.dispatchMiddleware) {
|
|
71
|
-
(0, _Init.dispatchMiddleware)(msg);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (reentered) {
|
|
75
|
-
buffer.push(msg);
|
|
76
|
-
} else {
|
|
77
|
-
reentered = true;
|
|
78
|
-
var nextMsg = msg;
|
|
79
|
-
var modified = false;
|
|
80
|
-
|
|
81
|
-
while (nextMsg) {
|
|
82
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.info("Elm", "message from", name, nextMsg.name);
|
|
83
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "message from", name, nextMsg);
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
var _update = update(_objectSpread(_objectSpread({}, initializedModel), currentModel), nextMsg, props),
|
|
87
|
-
_update2 = _slicedToArray(_update, 2),
|
|
88
|
-
newModel = _update2[0],
|
|
89
|
-
cmd = _update2[1];
|
|
90
|
-
|
|
91
|
-
if (modelHasChanged(newModel)) {
|
|
92
|
-
currentModel = _objectSpread(_objectSpread({}, currentModel), newModel);
|
|
93
|
-
modified = true;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (cmd) {
|
|
97
|
-
execCmd(cmd);
|
|
98
|
-
}
|
|
99
|
-
} catch (ex) {
|
|
100
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.error(ex);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
nextMsg = buffer.shift();
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
reentered = false;
|
|
107
|
-
|
|
108
|
-
if (modified) {
|
|
109
|
-
setModel(function (prevModel) {
|
|
110
|
-
var updatedModel = _objectSpread(_objectSpread({}, prevModel), currentModel);
|
|
111
|
-
|
|
112
|
-
_Init.LoggerService === null || _Init.LoggerService === void 0 ? void 0 : _Init.LoggerService.debug("Elm", "update model for", name, updatedModel);
|
|
113
|
-
return updatedModel;
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}, []);
|
|
118
|
-
|
|
119
|
-
if (!initializedModel) {
|
|
120
|
-
var _init = init(props),
|
|
121
|
-
_init2 = _slicedToArray(_init, 2),
|
|
122
|
-
initModel = _init2[0],
|
|
123
|
-
initCmd = _init2[1];
|
|
124
|
-
|
|
125
|
-
initializedModel = initModel;
|
|
126
|
-
setModel(initializedModel);
|
|
127
|
-
|
|
128
|
-
if (initCmd) {
|
|
129
|
-
execCmd(initCmd);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return [initializedModel, dispatch];
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZWdhY3kvdXNlRWxtaXNoLnRzIl0sIm5hbWVzIjpbInVzZUVsbWlzaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsIm5hbWUiLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJjbWQiLCJmb3JFYWNoIiwiY2FsbCIsImRpc3BhdGNoIiwiZXgiLCJMb2dnZXJTZXJ2aWNlIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFNBQVQsQ0FBOERDLEtBQTlELEVBQTZFQyxJQUE3RSxFQUF1SEMsTUFBdkgsRUFBcUtDLElBQXJLLEVBQTZNO0FBQ2hOLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQWUsR0FBRyxFQUF4QjtBQUNBLE1BQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0FBRUEsa0JBQTBCLHFCQUEyQixJQUEzQixDQUExQjtBQUFBO0FBQUEsTUFBT0MsS0FBUDtBQUFBLE1BQWNDLFFBQWQ7O0FBQ0EsTUFBSUMsZ0JBQWdCLEdBQUdGLEtBQXZCO0FBRUEsTUFBTUcsT0FBTyxHQUFHLHdCQUFZLFVBQUNDLEdBQUQsRUFBMEI7QUFDbERBLElBQUFBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElB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IjpbImltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi4vQ21kXCI7XG5pbXBvcnQgeyBkaXNwYXRjaE1pZGRsZXdhcmUsIExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuLi9FbG1Db21wb25lbnRcIjtcbmltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gaW5pdCBGdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB1cGRhdGUgVGhlIHVwZGF0ZSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHByb3BzLCBpbml0LCB1cGRhdGUsIFwiTXlDb21wb25lbnRcIik7XG4gKiBAZGVwcmVjYXRlZCBVc2UgYHVzZUVsbWlzaGAgd2l0aCBhbiBvcHRpb25zIG9iamVjdCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZUJhc2U+IChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+LCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiwgbmFtZTogc3RyaW5nKTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1zZz5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTXNnIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNc2cgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSB1cGRhdGUoeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgbmV4dE1zZywgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufSJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Dispatch } from "../Cmd";
|
|
2
|
-
import { MessageBase, UpdateMap } from "../ElmUtilities";
|
|
3
|
-
import { InitFunction } from "../ElmComponent";
|
|
4
|
-
/**
|
|
5
|
-
* Hook to use the Elm architecture pattern in a function component.
|
|
6
|
-
* @param props The props of the component.
|
|
7
|
-
* @param init Function to initialize the model.
|
|
8
|
-
* @param updateMap The update map object.
|
|
9
|
-
* @param name The name of the component.
|
|
10
|
-
* @returns A tuple containing the current model and the dispatcher.
|
|
11
|
-
* @example
|
|
12
|
-
* const [model, dispatch] = useElmishMap(props, init, updateMap, "MyComponent");
|
|
13
|
-
* @deprecated Use `useElmish` with an options object instead.
|
|
14
|
-
*/
|
|
15
|
-
export declare function useElmishMap<TProps, TModel, TMessage extends MessageBase>(props: TProps, init: InitFunction<TProps, TModel, TMessage>, updateMap: UpdateMap<TProps, TModel, TMessage>, name: string): [TModel, Dispatch<TMessage>];
|