react-elmish 10.3.2 → 10.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 +38 -0
- package/dist/{src/Common.d.ts → Common.d.ts} +3 -2
- package/dist/Common.js +14 -1
- package/dist/{src/ElmComponent.d.ts → ElmComponent.d.ts} +3 -2
- package/dist/ElmComponent.js +5 -2
- package/dist/{src/Types.d.ts → Types.d.ts} +2 -1
- package/dist/Types.js +1 -1
- package/dist/{src/immutable → immutable}/ElmComponent.d.ts +3 -2
- package/dist/immutable/ElmComponent.js +5 -2
- package/dist/{src/immutable → immutable}/index.d.ts +1 -1
- package/dist/immutable/index.js +1 -1
- package/dist/{src/immutable → immutable}/useElmish.d.ts +9 -2
- package/dist/immutable/useElmish.js +4 -2
- package/dist/{src/index.d.ts → index.d.ts} +1 -1
- package/dist/index.js +1 -1
- package/dist/{src/useElmish.d.ts → useElmish.d.ts} +9 -2
- package/dist/useElmish.js +4 -2
- package/package.json +10 -10
- package/dist/src/immutable/ElmComponent.spec.d.ts +0 -1
- package/dist/src/immutable/testing/getConsecutiveUpdate.spec.d.ts +0 -1
- package/dist/src/immutable/testing/getUpdateFn.spec.d.ts +0 -1
- package/dist/src/immutable/testing/playground.spec.d.ts +0 -1
- package/dist/src/immutable/useElmish.spec.d.ts +0 -1
- package/dist/src/testing/execCmd.spec.d.ts +0 -1
- package/dist/src/testing/getConsecutiveUpdate.spec.d.ts +0 -1
- package/dist/src/testing/playground.spec.d.ts +0 -1
- package/dist/src/testing/renderWithModel.spec.d.ts +0 -1
- package/dist/tests/jestSetup.d.ts +0 -1
- /package/dist/{src/ErrorHandling.d.ts → ErrorHandling.d.ts} +0 -0
- /package/dist/{src/Init.d.ts → Init.d.ts} +0 -0
- /package/dist/{src/cmd.d.ts → cmd.d.ts} +0 -0
- /package/dist/{src/createCallBase.d.ts → createCallBase.d.ts} +0 -0
- /package/dist/{src/createDefer.d.ts → createDefer.d.ts} +0 -0
- /package/dist/{src/extend → extend}/index.d.ts +0 -0
- /package/dist/{src/fakeOptions.d.ts → fakeOptions.d.ts} +0 -0
- /package/dist/{src/immutable → immutable}/ErrorHandling.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/Types.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/createCallBase.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/createDefer.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/extend/index.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/createModelAndProps.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/createUpdateArgsFactory.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/execSubscription.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/getConsecutiveUpdate.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/getCreateUpdateArgs.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/getUpdateFn.d.ts +0 -0
- /package/dist/{src/immutable → immutable}/testing/index.d.ts +0 -0
- /package/dist/{src/mergeSubscriptions.d.ts → mergeSubscriptions.d.ts} +0 -0
- /package/dist/{src/reduxDevTools.d.ts → reduxDevTools.d.ts} +0 -0
- /package/dist/{src/testing → testing}/createModelAndProps.d.ts +0 -0
- /package/dist/{src/testing → testing}/createUpdateArgsFactory.d.ts +0 -0
- /package/dist/{src/testing → testing}/execCmd.d.ts +0 -0
- /package/dist/{src/testing → testing}/execSubscription.d.ts +0 -0
- /package/dist/{src/testing → testing}/getConsecutiveUpdate.d.ts +0 -0
- /package/dist/{src/testing → testing}/getCreateUpdateArgs.d.ts +0 -0
- /package/dist/{src/testing → testing}/getUpdateFn.d.ts +0 -0
- /package/dist/{src/testing → testing}/index.d.ts +0 -0
- /package/dist/{src/testing → testing}/initAndExecCmd.d.ts +0 -0
- /package/dist/{src/testing → testing}/renderWithModel.d.ts +0 -0
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ This library brings the elmish pattern to react.
|
|
|
18
18
|
- [Working with external sources of events](#working-with-external-sources-of-events)
|
|
19
19
|
- [Cleanup subscriptions](#cleanup-subscriptions)
|
|
20
20
|
- [Re-Initialize the component](#re-initialize-the-component)
|
|
21
|
+
- [Dispose / Cleanup](#dispose--cleanup)
|
|
21
22
|
- [Immutability](#immutability)
|
|
22
23
|
- [Testing](#testing)
|
|
23
24
|
- [Setup](#setup)
|
|
@@ -476,6 +477,43 @@ const [model, dispatch] = useElmish({ name: "ReInit", props, init, update, subsc
|
|
|
476
477
|
|
|
477
478
|
This will re-initialize the component whenever the `changingValue` prop changes. The `init` function is called again, and the model is reset to the initial state. Also the subscription is re-created.
|
|
478
479
|
|
|
480
|
+
## Dispose / Cleanup
|
|
481
|
+
|
|
482
|
+
If your component sets up resources during `init` (e.g. WebSocket connections, timers, or other handles stored in the model), you can provide a `dispose` function to clean them up when the component unmounts.
|
|
483
|
+
|
|
484
|
+
The `dispose` function receives the current model, so you can access any state needed for cleanup:
|
|
485
|
+
|
|
486
|
+
```ts
|
|
487
|
+
function dispose(model: Model): void {
|
|
488
|
+
model.connection?.close();
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
Pass it to the `useElmish` hook:
|
|
493
|
+
|
|
494
|
+
```tsx
|
|
495
|
+
const [model, dispatch] = useElmish({ name: "App", props, init, update, dispose });
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
Or to a class component via the fourth constructor parameter:
|
|
499
|
+
|
|
500
|
+
```tsx
|
|
501
|
+
class App extends ElmComponent<Model, Message, Props> {
|
|
502
|
+
constructor(props: Props) {
|
|
503
|
+
super(props, init, "App", dispose);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
// ...
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
The `dispose` function is called:
|
|
511
|
+
|
|
512
|
+
- When the component is **unmounted**.
|
|
513
|
+
- When `reInitOn` dependencies **change** (before the new `init` call), cleaning up the old session.
|
|
514
|
+
|
|
515
|
+
> **Note**: The `dispose` function does not receive a `dispatch` function. It is intended purely for side-effect cleanup, not for dispatching messages, since the component is being torn down.
|
|
516
|
+
|
|
479
517
|
## Immutability
|
|
480
518
|
|
|
481
519
|
If you want to use immutable data structures, you can use the imports from "react-elmish/immutable". This version of the `useElmish` hook returns an immutable model.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type RefObject } from "react";
|
|
2
2
|
import { type ReduxDevTools } from "./reduxDevTools";
|
|
3
|
-
import { type Cmd, type Dispatch, type InitFunction, type Message, type Nullable, type Subscription } from "./Types";
|
|
3
|
+
import { type Cmd, type Dispatch, type DisposeFunction, type InitFunction, type Message, type Nullable, type Subscription } from "./Types";
|
|
4
4
|
declare function logMessage(name: string, msg: Message): void;
|
|
5
5
|
declare function modelHasChanged<TModel>(currentModel: TModel, model: Partial<TModel>): boolean;
|
|
6
6
|
declare function execCmd<TMessage>(dispatch: Dispatch<TMessage>, ...commands: (Cmd<TMessage> | undefined)[]): void;
|
|
@@ -10,4 +10,5 @@ declare function useSubscription<TProps, TModel, TMessage extends Message>(subsc
|
|
|
10
10
|
declare function useReInit(setModel: (model: null) => void, reInitOn: unknown[] | undefined): void;
|
|
11
11
|
declare function getDispatch<TMessage extends Message>(handleMessage: (msg: TMessage) => boolean, callSetModel: () => void, callDevTools?: (msg: TMessage) => void, fakeDispatch?: Dispatch<TMessage>): Dispatch<TMessage>;
|
|
12
12
|
declare function runInit<TModel, TProps, TMessage extends Message>(name: string, initFn: InitFunction<TProps, TModel, TMessage>, props: TProps, setModel: (model: TModel) => void, dispatch: Dispatch<TMessage>, devTools: Nullable<ReduxDevTools>, fakeModel: TModel | undefined): TModel;
|
|
13
|
-
|
|
13
|
+
declare function useDispose<TModel>(dispose: DisposeFunction<TModel> | undefined, model: TModel, reInitOn: unknown[] | undefined): void;
|
|
14
|
+
export { execCmd, logMessage, modelHasChanged, useRedux, useIsMounted, useSubscription, useReInit, useDispose, getDispatch, runInit };
|
package/dist/Common.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.getDispatch = getDispatch;
|
|
|
8
8
|
exports.logMessage = logMessage;
|
|
9
9
|
exports.modelHasChanged = modelHasChanged;
|
|
10
10
|
exports.runInit = runInit;
|
|
11
|
+
exports.useDispose = useDispose;
|
|
11
12
|
exports.useIsMounted = useIsMounted;
|
|
12
13
|
exports.useReInit = useReInit;
|
|
13
14
|
exports.useRedux = useRedux;
|
|
@@ -175,4 +176,16 @@ function runInit(name, initFn, props, setModel, dispatch, devTools, fakeModel) {
|
|
|
175
176
|
execCmd.apply(void 0, [dispatch].concat(_toConsumableArray(initCommands)));
|
|
176
177
|
return initModel;
|
|
177
178
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0luaXQiLCJfcmVkdXhEZXZUb29scyIsIl9UeXBlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJsIiwidCIsIm4iLCJpIiwidSIsImEiLCJmIiwibyIsImNhbGwiLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibG9nTWVzc2FnZSIsIm1zZyIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9TZXJ2aWNlcyRkaXNwYXRjaE1pZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwibW9kZWxIYXNDaGFuZ2VkIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJpcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJfbGVuIiwiYXJndW1lbnRzIiwiY29tbWFuZHMiLCJfa2V5IiwiX2l0ZXJhdG9yIiwiZmxhdCIsIl9zdGVwIiwiZXJyIiwidXNlUmVkdXgiLCJzZXRNb2RlbCIsImRldlRvb2xzIiwidXNlUmVmIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsImVuYWJsZURldlRvb2xzIiwiaXNSZWR1eERldlRvb2xzRW5hYmxlZCIsIndpbmRvdyIsImN1cnJlbnQiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fIiwiY29ubmVjdCIsInNlcmlhbGl6ZSIsIm9wdGlvbnMiLCJzdWJzY3JpYmUiLCJtZXNzYWdlIiwidHlwZSIsInBheWxvYWQiLCJKU09OIiwicGFyc2UiLCJzdGF0ZSIsIl9yZWR1eFVuc3Vic2NyaWJlIiwidXNlSXNNb3VudGVkIiwiaXNNb3VudGVkUmVmIiwidXNlU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uIiwicHJvcHMiLCJyZUluaXRPbiIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfc3Vic2NyaXB0aW9uUmVzdWx0Iiwic3ViQ21kIiwidXNlUmVJbml0IiwiZmlyc3RDYWxsUmVmIiwiZ2V0RGlzcGF0Y2giLCJoYW5kbGVNZXNzYWdlIiwiY2FsbFNldE1vZGVsIiwiY2FsbERldlRvb2xzIiwiZmFrZURpc3BhdGNoIiwicnVubmluZyIsImJ1ZmZlciIsIm5leHRNc2ciLCJtb2RpZmllZCIsInNoaWZ0IiwicnVuSW5pdCIsImluaXRGbiIsImZha2VNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIzIiwiX3JlZiIsIl9yZWYyIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiaW5pdCIsImFwcGx5IiwiY29uY2F0Il0sInNvdXJjZXMiOlsiLi4vc3JjL0NvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgaXNSZWR1eERldlRvb2xzRW5hYmxlZCwgdHlwZSBSZWR1eERldlRvb2xzIH0gZnJvbSBcIi4vcmVkdXhEZXZUb29sc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDbWQsXG5cdHR5cGUgRGlzcGF0Y2gsXG5cdHR5cGUgSW5pdEZ1bmN0aW9uLFxuXHR0eXBlIE1lc3NhZ2UsXG5cdHR5cGUgTnVsbGFibGUsXG5cdHR5cGUgU3Vic2NyaXB0aW9uLFxuXHRzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXksXG59IGZyb20gXCIuL1R5cGVzXCI7XG5cbmZ1bmN0aW9uIGxvZ01lc3NhZ2UobmFtZTogc3RyaW5nLCBtc2c6IE1lc3NhZ2UpOiB2b2lkIHtcblx0U2VydmljZXMubG9nZ2VyPy5pbmZvKFwiTWVzc2FnZSBmcm9tXCIsIG5hbWUsIG1zZy5uYW1lKTtcblx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIk1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBtc2cpO1xuXG5cdFNlcnZpY2VzLmRpc3BhdGNoTWlkZGxld2FyZT8uKG1zZyk7XG59XG5cbmZ1bmN0aW9uIG1vZGVsSGFzQ2hhbmdlZDxUTW9kZWw+KGN1cnJlbnRNb2RlbDogVE1vZGVsLCBtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiB7XG5cdHJldHVybiAhT2JqZWN0LmlzKG1vZGVsLCBjdXJyZW50TW9kZWwpICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1vZGVsKS5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBleGVjQ21kPFRNZXNzYWdlPihkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LCAuLi5jb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10pOiB2b2lkIHtcblx0Zm9yIChjb25zdCBjYWxsIG9mIGNvbW1hbmRzLmZsYXQoKSkge1xuXHRcdGlmIChjYWxsKSB7XG5cdFx0XHRjYWxsKGRpc3BhdGNoKTtcblx0XHR9XG5cdH1cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCB0byB0eXBlIE1vZGVsLlxuZnVuY3Rpb24gdXNlUmVkdXg8VE1vZGVsPihuYW1lOiBzdHJpbmcsIHNldE1vZGVsOiAobW9kZWw6IFRNb2RlbCkgPT4gdm9pZCk6IFJlZk9iamVjdDxOdWxsYWJsZTxSZWR1eERldlRvb2xzPj4ge1xuXHRjb25zdCBkZXZUb29scyA9IHVzZVJlZjxOdWxsYWJsZTxSZWR1eERldlRvb2xzPj4obnVsbCk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRsZXQgcmVkdXhVbnN1YnNjcmliZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXG5cdFx0aWYgKFNlcnZpY2VzLmVuYWJsZURldlRvb2xzID09PSB0cnVlICYmIGlzUmVkdXhEZXZUb29sc0VuYWJsZWQod2luZG93KSkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG5cdFx0XHRkZXZUb29scy5jdXJyZW50ID0gd2luZG93Ll9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7IG5hbWUsIHNlcmlhbGl6ZTogeyBvcHRpb25zOiB0cnVlIH0gfSk7XG5cblx0XHRcdHJlZHV4VW5zdWJzY3JpYmUgPSBkZXZUb29scy5jdXJyZW50LnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuXHRcdFx0XHRpZiAobWVzc2FnZS50eXBlID09PSBcIkRJU1BBVENIXCIgJiYgbWVzc2FnZS5wYXlsb2FkLnR5cGUgPT09IFwiSlVNUF9UT19BQ1RJT05cIikge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uXG5cdFx0XHRcdFx0c2V0TW9kZWwoSlNPTi5wYXJzZShtZXNzYWdlLnN0YXRlKSBhcyBUTW9kZWwpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0cmVkdXhVbnN1YnNjcmliZT8uKCk7XG5cdFx0fTtcblx0fSwgW25hbWUsIHNldE1vZGVsXSk7XG5cblx0cmV0dXJuIGRldlRvb2xzO1xufVxuXG5mdW5jdGlvbiB1c2VJc01vdW50ZWQoKTogUmVmT2JqZWN0PGJvb2xlYW4+IHtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlUmVmKHRydWUpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdGlzTW91bnRlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cdFx0fTtcblx0fSwgW10pO1xuXG5cdHJldHVybiBpc01vdW50ZWRSZWY7XG59XG5cbmZ1bmN0aW9uIHVzZVN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0c3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IHVuZGVmaW5lZCxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPixcblx0cmVJbml0T246IHVua25vd25bXSB8IHVuZGVmaW5lZCxcbik6IHZvaWQge1xuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChzdWJzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IHN1YnNjcmlwdGlvblJlc3VsdCA9IHN1YnNjcmlwdGlvbihtb2RlbCwgcHJvcHMpO1xuXG5cdFx0XHRpZiAoc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvblJlc3VsdCkpIHtcblx0XHRcdFx0Y29uc3QgZGVzdHJ1Y3RvcnMgPSBzdWJzY3JpcHRpb25SZXN1bHQubWFwKChzdWIpID0+IHN1YihkaXNwYXRjaCkpLmZpbHRlcigoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvciAhPT0gdW5kZWZpbmVkKTtcblxuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24gY29tYmluZWREZXN0cnVjdG9yKCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgZGVzdHJ1Y3RvciBvZiBkZXN0cnVjdG9ycykge1xuXHRcdFx0XHRcdFx0ZGVzdHJ1Y3RvcigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb25SZXN1bHQ7XG5cblx0XHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIHN1YkNtZCk7XG5cblx0XHRcdHJldHVybiBkZXN0cnVjdG9yO1xuXHRcdH1cblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSBvbmx5IHdhbnQgdG8gcmVpbml0aWFsaXplIHdoZW4gdGhlIHJlSW5pdE9uIGRlcGVuZGVuY2llcyBjaGFuZ2Vcblx0fSwgcmVJbml0T24gPz8gW10pO1xufVxuXG5mdW5jdGlvbiB1c2VSZUluaXQoc2V0TW9kZWw6IChtb2RlbDogbnVsbCkgPT4gdm9pZCwgcmVJbml0T246IHVua25vd25bXSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuXHRjb25zdCBmaXJzdENhbGxSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoZmlyc3RDYWxsUmVmLmN1cnJlbnQpIHtcblx0XHRcdGZpcnN0Q2FsbFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRzZXRNb2RlbChudWxsKTtcblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSBvbmx5IHdhbnQgdG8gcmVpbml0aWFsaXplIHdoZW4gdGhlIHJlSW5pdE9uIGRlcGVuZGVuY2llcyBjaGFuZ2Vcblx0fSwgcmVJbml0T24gPz8gW10pO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwYXRjaDxUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRoYW5kbGVNZXNzYWdlOiAobXNnOiBUTWVzc2FnZSkgPT4gYm9vbGVhbixcblx0Y2FsbFNldE1vZGVsOiAoKSA9PiB2b2lkLFxuXHRjYWxsRGV2VG9vbHM/OiAobXNnOiBUTWVzc2FnZSkgPT4gdm9pZCxcblx0ZmFrZURpc3BhdGNoPzogRGlzcGF0Y2g8VE1lc3NhZ2U+LFxuKTogRGlzcGF0Y2g8VE1lc3NhZ2U+IHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0Y29uc3QgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cblx0cmV0dXJuIChcblx0XHRmYWtlRGlzcGF0Y2ggPz9cblx0XHQoKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRcdGlmIChydW5uaW5nKSB7XG5cdFx0XHRcdGJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRydW5uaW5nID0gdHJ1ZTtcblxuXHRcdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRcdGRvIHtcblx0XHRcdFx0aWYgKGhhbmRsZU1lc3NhZ2UobmV4dE1zZykpIHtcblx0XHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsRGV2VG9vbHM/LihuZXh0TXNnKTtcblxuXHRcdFx0XHRuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG5cdFx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXG5cdFx0XHRpZiAobW9kaWZpZWQpIHtcblx0XHRcdFx0Y2FsbFNldE1vZGVsKCk7XG5cdFx0XHR9XG5cdFx0fSlcblx0KTtcbn1cblxuZnVuY3Rpb24gcnVuSW5pdDxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPihcblx0bmFtZTogc3RyaW5nLFxuXHRpbml0Rm46IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRwcm9wczogVFByb3BzLFxuXHRzZXRNb2RlbDogKG1vZGVsOiBUTW9kZWwpID0+IHZvaWQsXG5cdGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4sXG5cdGRldlRvb2xzOiBOdWxsYWJsZTxSZWR1eERldlRvb2xzPixcblx0ZmFrZU1vZGVsOiBUTW9kZWwgfCB1bmRlZmluZWQsXG4pOiBUTW9kZWwge1xuXHRjb25zdCBbaW5pdE1vZGVsLCAuLi5pbml0Q29tbWFuZHNdID0gZmFrZU1vZGVsID8gW2Zha2VNb2RlbF0gOiBpbml0Rm4ocHJvcHMpO1xuXG5cdHNldE1vZGVsKGluaXRNb2RlbCk7XG5cdGRldlRvb2xzPy5pbml0KGluaXRNb2RlbCk7XG5cdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBpbml0TW9kZWwpO1xuXHRleGVjQ21kKGRpc3BhdGNoLCAuLi5pbml0Q29tbWFuZHMpO1xuXG5cdHJldHVybiBpbml0TW9kZWw7XG59XG5cbmV4cG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCwgdXNlUmVkdXgsIHVzZUlzTW91bnRlZCwgdXNlU3Vic2NyaXB0aW9uLCB1c2VSZUluaXQsIGdldERpc3BhdGNoLCBydW5Jbml0IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBUWlCLFNBQUFJLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtB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QUFFO0VBRTdCLE9BQ0NGLFlBQVksYUFBWkEsWUFBWSxjQUFaQSxZQUFZLEdBQ1gsVUFBQ3ZFLEdBQWEsRUFBVztJQUN6QixJQUFJd0UsT0FBTyxFQUFFO01BQ1pDLE1BQU0sQ0FBQ3RGLElBQUksQ0FBQ2EsR0FBRyxDQUFDO01BRWhCO0lBQ0Q7SUFFQXdFLE9BQU8sR0FBRyxJQUFJO0lBRWQsSUFBSUUsT0FBNkIsR0FBRzFFLEdBQUc7SUFDdkMsSUFBSTJFLFFBQVEsR0FBRyxLQUFLO0lBRXBCLEdBQUc7TUFDRixJQUFJUCxhQUFhLENBQUNNLE9BQU8sQ0FBQyxFQUFFO1FBQzNCQyxRQUFRLEdBQUcsSUFBSTtNQUNoQjtNQUVBTCxZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFHSSxPQUFPLENBQUM7TUFFdkJBLE9BQU8sR0FBR0QsTUFBTSxDQUFDRyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDLFFBQVFGLE9BQU87SUFFaEJGLE9BQU8sR0FBRyxLQUFLO0lBRWYsSUFBSUcsUUFBUSxFQUFFO01BQ2JOLFlBQVksQ0FBQyxDQUFDO0lBQ2Y7RUFDRCxDQUFDO0FBRUg7QUFFQSxTQUFTUSxPQUFPQSxDQUNmaEYsSUFBWSxFQUNaaUYsTUFBOEMsRUFDOUM1QixLQUFhLEVBQ2J6QixRQUFpQyxFQUNqQ1YsUUFBNEIsRUFDNUJXLFFBQWlDLEVBQ2pDcUQsU0FBNkIsRUFDcEI7RUFBQSxJQUFBQyxpQkFBQTtFQUNULElBQUFDLElBQUEsR0FBcUNGLFNBQVMsR0FBRyxDQUFDQSxTQUFTLENBQUMsR0FBR0QsTUFBTSxDQUFDNUIsS0FBSyxDQUFDO0lBQUFnQyxLQUFBLEdBQUFwSCxRQUFBLENBQUFtSCxJQUFBO0lBQXJFRSxTQUFTLEdBQUFELEtBQUE7SUFBS0UsWUFBWSxHQUFBdkgsaUJBQUEsQ0FBQXFILEtBQUEsRUFBQXZGLEtBQUE7RUFFakM4QixRQUFRLENBQUMwRCxTQUFTLENBQUM7RUFDbkJ6RCxRQUFRLGFBQVJBLFFBQVEsZUFBUkEsUUFBUSxDQUFFMkQsSUFBSSxDQUFDRixTQUFTLENBQUM7RUFDekIsQ0FBQUgsaUJBQUEsR0FBQTVFLGNBQVEsQ0FBQ0MsTUFBTSxjQUFBMkUsaUJBQUEsZUFBZkEsaUJBQUEsQ0FBaUJ6RSxLQUFLLENBQUMsbUJBQW1CLEVBQUVWLElBQUksRUFBRXNGLFNBQVMsQ0FBQztFQUM1RHJFLE9BQU8sQ0FBQXdFLEtBQUEsVUFBQ3ZFLFFBQVEsRUFBQXdFLE1BQUEsQ0FBQW5JLGtCQUFBLENBQUtnSSxZQUFZLEdBQUM7RUFFbEMsT0FBT0QsU0FBUztBQUNqQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
179
|
+
function useDispose(dispose, model, reInitOn) {
|
|
180
|
+
var modelRef = (0, _react.useRef)(model);
|
|
181
|
+
modelRef.current = model;
|
|
182
|
+
(0, _react.useEffect)(function () {
|
|
183
|
+
if (dispose) {
|
|
184
|
+
return function () {
|
|
185
|
+
dispose(modelRef.current);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: We only want to run dispose when the reInitOn dependencies change or on unmount
|
|
189
|
+
}, reInitOn !== null && reInitOn !== void 0 ? reInitOn : []);
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0luaXQiLCJfcmVkdXhEZXZUb29scyIsIl9UeXBlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJsIiwidCIsIm4iLCJpIiwidSIsImEiLCJmIiwibyIsImNhbGwiLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibG9nTWVzc2FnZSIsIm1zZyIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl9TZXJ2aWNlcyRkaXNwYXRjaE1pZCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiaW5mbyIsImRlYnVnIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwibW9kZWxIYXNDaGFuZ2VkIiwiY3VycmVudE1vZGVsIiwibW9kZWwiLCJpcyIsImdldE93blByb3BlcnR5TmFtZXMiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJfbGVuIiwiYXJndW1lbnRzIiwiY29tbWFuZHMiLCJfa2V5IiwiX2l0ZXJhdG9yIiwiZmxhdCIsIl9zdGVwIiwiZXJyIiwidXNlUmVkdXgiLCJzZXRNb2RlbCIsImRldlRvb2xzIiwidXNlUmVmIiwidXNlRWZmZWN0IiwicmVkdXhVbnN1YnNjcmliZSIsImVuYWJsZURldlRvb2xzIiwiaXNSZWR1eERldlRvb2xzRW5hYmxlZCIsIndpbmRvdyIsImN1cnJlbnQiLCJfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fIiwiY29ubmVjdCIsInNlcmlhbGl6ZSIsIm9wdGlvbnMiLCJzdWJzY3JpYmUiLCJtZXNzYWdlIiwidHlwZSIsInBheWxvYWQiLCJKU09OIiwicGFyc2UiLCJzdGF0ZSIsIl9yZWR1eFVuc3Vic2NyaWJlIiwidXNlSXNNb3VudGVkIiwiaXNNb3VudGVkUmVmIiwidXNlU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uIiwicHJvcHMiLCJyZUluaXRPbiIsInN1YnNjcmlwdGlvblJlc3VsdCIsInN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSIsImRlc3RydWN0b3JzIiwibWFwIiwic3ViIiwiZmlsdGVyIiwiZGVzdHJ1Y3RvciIsInVuZGVmaW5lZCIsImNvbWJpbmVkRGVzdHJ1Y3RvciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfc3Vic2NyaXB0aW9uUmVzdWx0Iiwic3ViQ21kIiwidXNlUmVJbml0IiwiZmlyc3RDYWxsUmVmIiwiZ2V0RGlzcGF0Y2giLCJoYW5kbGVNZXNzYWdlIiwiY2FsbFNldE1vZGVsIiwiY2FsbERldlRvb2xzIiwiZmFrZURpc3BhdGNoIiwicnVubmluZyIsImJ1ZmZlciIsIm5leHRNc2ciLCJtb2RpZmllZCIsInNoaWZ0IiwicnVuSW5pdCIsImluaXRGbiIsImZha2VNb2RlbCIsIl9TZXJ2aWNlcyRsb2dnZXIzIiwiX3JlZiIsIl9yZWYyIiwiaW5pdE1vZGVsIiwiaW5pdENvbW1hbmRzIiwiaW5pdCIsImFwcGx5IiwiY29uY2F0IiwidXNlRGlzcG9zZSIsImRpc3Bvc2UiLCJtb2RlbFJlZiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9Db21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IGlzUmVkdXhEZXZUb29sc0VuYWJsZWQsIHR5cGUgUmVkdXhEZXZUb29scyB9IGZyb20gXCIuL3JlZHV4RGV2VG9vbHNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQ21kLFxuXHR0eXBlIERpc3BhdGNoLFxuXHR0eXBlIERpc3Bvc2VGdW5jdGlvbixcblx0dHlwZSBJbml0RnVuY3Rpb24sXG5cdHR5cGUgTWVzc2FnZSxcblx0dHlwZSBOdWxsYWJsZSxcblx0dHlwZSBTdWJzY3JpcHRpb24sXG5cdHN1YnNjcmlwdGlvbklzRnVuY3Rpb25BcnJheSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcblxuZnVuY3Rpb24gbG9nTWVzc2FnZShuYW1lOiBzdHJpbmcsIG1zZzogTWVzc2FnZSk6IHZvaWQge1xuXHRTZXJ2aWNlcy5sb2dnZXI/LmluZm8oXCJNZXNzYWdlIGZyb21cIiwgbmFtZSwgbXNnLm5hbWUpO1xuXHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiTWVzc2FnZSBmcm9tXCIsIG5hbWUsIG1zZyk7XG5cblx0U2VydmljZXMuZGlzcGF0Y2hNaWRkbGV3YXJlPy4obXNnKTtcbn1cblxuZnVuY3Rpb24gbW9kZWxIYXNDaGFuZ2VkPFRNb2RlbD4oY3VycmVudE1vZGVsOiBUTW9kZWwsIG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuIHtcblx0cmV0dXJuICFPYmplY3QuaXMobW9kZWwsIGN1cnJlbnRNb2RlbCkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobW9kZWwpLmxlbmd0aCA+IDA7XG59XG5cbmZ1bmN0aW9uIGV4ZWNDbWQ8VE1lc3NhZ2U+KGRpc3BhdGNoOiBEaXNwYXRjaDxUTWVzc2FnZT4sIC4uLmNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSk6IHZvaWQge1xuXHRmb3IgKGNvbnN0IGNhbGwgb2YgY29tbWFuZHMuZmxhdCgpKSB7XG5cdFx0aWYgKGNhbGwpIHtcblx0XHRcdGNhbGwoZGlzcGF0Y2gpO1xuXHRcdH1cblx0fVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHR5cGUgTW9kZWwuXG5mdW5jdGlvbiB1c2VSZWR1eDxUTW9kZWw+KG5hbWU6IHN0cmluZywgc2V0TW9kZWw6IChtb2RlbDogVE1vZGVsKSA9PiB2b2lkKTogUmVmT2JqZWN0PE51bGxhYmxlPFJlZHV4RGV2VG9vbHM+PiB7XG5cdGNvbnN0IGRldlRvb2xzID0gdXNlUmVmPE51bGxhYmxlPFJlZHV4RGV2VG9vbHM+PihudWxsKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGxldCByZWR1eFVuc3Vic2NyaWJlOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cblx0XHRpZiAoU2VydmljZXMuZW5hYmxlRGV2VG9vbHMgPT09IHRydWUgJiYgaXNSZWR1eERldlRvb2xzRW5hYmxlZCh3aW5kb3cpKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcblx0XHRcdGRldlRvb2xzLmN1cnJlbnQgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXy5jb25uZWN0KHsgbmFtZSwgc2VyaWFsaXplOiB7IG9wdGlvbnM6IHRydWUgfSB9KTtcblxuXHRcdFx0cmVkdXhVbnN1YnNjcmliZSA9IGRldlRvb2xzLmN1cnJlbnQuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG5cdFx0XHRcdGlmIChtZXNzYWdlLnR5cGUgPT09IFwiRElTUEFUQ0hcIiAmJiBtZXNzYWdlLnBheWxvYWQudHlwZSA9PT0gXCJKVU1QX1RPX0FDVElPTlwiKSB7XG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtdHlwZS1hc3NlcnRpb25cblx0XHRcdFx0XHRzZXRNb2RlbChKU09OLnBhcnNlKG1lc3NhZ2Uuc3RhdGUpIGFzIFRNb2RlbCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZWR1eFVuc3Vic2NyaWJlPy4oKTtcblx0XHR9O1xuXHR9LCBbbmFtZSwgc2V0TW9kZWxdKTtcblxuXHRyZXR1cm4gZGV2VG9vbHM7XG59XG5cbmZ1bmN0aW9uIHVzZUlzTW91bnRlZCgpOiBSZWZPYmplY3Q8Ym9vbGVhbj4ge1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VSZWYodHJ1ZSk7XG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpc01vdW50ZWRSZWYuY3VycmVudCA9IHRydWU7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0aXNNb3VudGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcblx0XHR9O1xuXHR9LCBbXSk7XG5cblx0cmV0dXJuIGlzTW91bnRlZFJlZjtcbn1cblxuZnVuY3Rpb24gdXNlU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgdW5kZWZpbmVkLFxuXHRtb2RlbDogVE1vZGVsLFxuXHRwcm9wczogVFByb3BzLFxuXHRkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+LFxuXHRyZUluaXRPbjogdW5rbm93bltdIHwgdW5kZWZpbmVkLFxuKTogdm9pZCB7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKHN1YnNjcmlwdGlvbikge1xuXHRcdFx0Y29uc3Qgc3Vic2NyaXB0aW9uUmVzdWx0ID0gc3Vic2NyaXB0aW9uKG1vZGVsLCBwcm9wcyk7XG5cblx0XHRcdGlmIChzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkoc3Vic2NyaXB0aW9uUmVzdWx0KSkge1xuXHRcdFx0XHRjb25zdCBkZXN0cnVjdG9ycyA9IHN1YnNjcmlwdGlvblJlc3VsdC5tYXAoKHN1YikgPT4gc3ViKGRpc3BhdGNoKSkuZmlsdGVyKChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yICE9PSB1bmRlZmluZWQpO1xuXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiBjb21iaW5lZERlc3RydWN0b3IoKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBkZXN0cnVjdG9yIG9mIGRlc3RydWN0b3JzKSB7XG5cdFx0XHRcdFx0XHRkZXN0cnVjdG9yKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBbc3ViQ21kLCBkZXN0cnVjdG9yXSA9IHN1YnNjcmlwdGlvblJlc3VsdDtcblxuXHRcdFx0ZXhlY0NtZChkaXNwYXRjaCwgc3ViQ21kKTtcblxuXHRcdFx0cmV0dXJuIGRlc3RydWN0b3I7XG5cdFx0fVxuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIG9ubHkgd2FudCB0byByZWluaXRpYWxpemUgd2hlbiB0aGUgcmVJbml0T24gZGVwZW5kZW5jaWVzIGNoYW5nZVxuXHR9LCByZUluaXRPbiA/PyBbXSk7XG59XG5cbmZ1bmN0aW9uIHVzZVJlSW5pdChzZXRNb2RlbDogKG1vZGVsOiBudWxsKSA9PiB2b2lkLCByZUluaXRPbjogdW5rbm93bltdIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdGNvbnN0IGZpcnN0Q2FsbFJlZiA9IHVzZVJlZih0cnVlKTtcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChmaXJzdENhbGxSZWYuY3VycmVudCkge1xuXHRcdFx0Zmlyc3RDYWxsUmVmLmN1cnJlbnQgPSBmYWxzZTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHNldE1vZGVsKG51bGwpO1xuXHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIG9ubHkgd2FudCB0byByZWluaXRpYWxpemUgd2hlbiB0aGUgcmVJbml0T24gZGVwZW5kZW5jaWVzIGNoYW5nZVxuXHR9LCByZUluaXRPbiA/PyBbXSk7XG59XG5cbmZ1bmN0aW9uIGdldERpc3BhdGNoPFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdGhhbmRsZU1lc3NhZ2U6IChtc2c6IFRNZXNzYWdlKSA9PiBib29sZWFuLFxuXHRjYWxsU2V0TW9kZWw6ICgpID0+IHZvaWQsXG5cdGNhbGxEZXZUb29scz86IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkLFxuXHRmYWtlRGlzcGF0Y2g/OiBEaXNwYXRjaDxUTWVzc2FnZT4sXG4pOiBEaXNwYXRjaDxUTWVzc2FnZT4ge1xuXHRsZXQgcnVubmluZyA9IGZhbHNlO1xuXHRjb25zdCBidWZmZXI6IFRNZXNzYWdlW10gPSBbXTtcblxuXHRyZXR1cm4gKFxuXHRcdGZha2VEaXNwYXRjaCA/P1xuXHRcdCgobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdFx0aWYgKHJ1bm5pbmcpIHtcblx0XHRcdFx0YnVmZmVyLnB1c2gobXNnKTtcblxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0XHRsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuXHRcdFx0ZG8ge1xuXHRcdFx0XHRpZiAoaGFuZGxlTWVzc2FnZShuZXh0TXNnKSkge1xuXHRcdFx0XHRcdG1vZGlmaWVkID0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNhbGxEZXZUb29scz8uKG5leHRNc2cpO1xuXG5cdFx0XHRcdG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcblx0XHRcdH0gd2hpbGUgKG5leHRNc2cpO1xuXG5cdFx0XHRydW5uaW5nID0gZmFsc2U7XG5cblx0XHRcdGlmIChtb2RpZmllZCkge1xuXHRcdFx0XHRjYWxsU2V0TW9kZWwoKTtcblx0XHRcdH1cblx0XHR9KVxuXHQpO1xufVxuXG5mdW5jdGlvbiBydW5Jbml0PFRNb2RlbCwgVFByb3BzLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHRuYW1lOiBzdHJpbmcsXG5cdGluaXRGbjogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdHNldE1vZGVsOiAobW9kZWw6IFRNb2RlbCkgPT4gdm9pZCxcblx0ZGlzcGF0Y2g6IERpc3BhdGNoPFRNZXNzYWdlPixcblx0ZGV2VG9vbHM6IE51bGxhYmxlPFJlZHV4RGV2VG9vbHM+LFxuXHRmYWtlTW9kZWw6IFRNb2RlbCB8IHVuZGVmaW5lZCxcbik6IFRNb2RlbCB7XG5cdGNvbnN0IFtpbml0TW9kZWwsIC4uLmluaXRDb21tYW5kc10gPSBmYWtlTW9kZWwgPyBbZmFrZU1vZGVsXSA6IGluaXRGbihwcm9wcyk7XG5cblx0c2V0TW9kZWwoaW5pdE1vZGVsKTtcblx0ZGV2VG9vbHM/LmluaXQoaW5pdE1vZGVsKTtcblx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIGluaXRNb2RlbCk7XG5cdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmluaXRDb21tYW5kcyk7XG5cblx0cmV0dXJuIGluaXRNb2RlbDtcbn1cblxuZnVuY3Rpb24gdXNlRGlzcG9zZTxUTW9kZWw+KFxuXHRkaXNwb3NlOiBEaXNwb3NlRnVuY3Rpb248VE1vZGVsPiB8IHVuZGVmaW5lZCxcblx0bW9kZWw6IFRNb2RlbCxcblx0cmVJbml0T246IHVua25vd25bXSB8IHVuZGVmaW5lZCxcbik6IHZvaWQge1xuXHRjb25zdCBtb2RlbFJlZiA9IHVzZVJlZihtb2RlbCk7XG5cblx0bW9kZWxSZWYuY3VycmVudCA9IG1vZGVsO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKGRpc3Bvc2UpIHtcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdGRpc3Bvc2UobW9kZWxSZWYuY3VycmVudCk7XG5cdFx0XHR9O1xuXHRcdH1cblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiBXZSBvbmx5IHdhbnQgdG8gcnVuIGRpc3Bvc2Ugd2hlbiB0aGUgcmVJbml0T24gZGVwZW5kZW5jaWVzIGNoYW5nZSBvciBvbiB1bm1vdW50XG5cdH0sIHJlSW5pdE9uID8/IFtdKTtcbn1cblxuZXhwb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkLCB1c2VSZWR1eCwgdXNlSXNNb3VudGVkLCB1c2VTdWJzY3JpcHRpb24sIHVzZVJlSW5pdCwgdXNlRGlzcG9zZSwgZ2V0RGlzcGF0Y2gsIHJ1bkluaXQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBU2lCLFNBQUFJLG1CQUFBQyxDQUFBLFdBQUFDLGtCQUFBLENBQUFELENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFJLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFKLG1CQUFBRCxDQUFBLFFBQUFNLEtBQUEsQ0FBQUMsT0FBQSxDQUFBUCxDQUFBLFVBQUFRLGlCQUFBLENBQUFSLENBQUE7QUFBQSxTQUFBUyxTQUFBVCxDQUFBLFdBQUFVLGVBQUEsQ0FBQVYsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQVcsZ0JBQUE7QUFBQSxTQUFBVCxpQkFBQUYsQ0FBQSw4QkFBQVksTUFBQSxZQUFBWixDQUFBLENBQUFZLE1BQUEsQ0FBQUMsUUFBQSxhQUFBYixDQUFBLHVCQUFBTSxLQUFBLENBQUFRLElBQUEsQ0FBQWQsQ0FBQTtBQUFBLFNBQUFlLGVBQUFmLENBQUEsRUFBQWdCLENBQUEs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QUFHSSxPQUFPLENBQUM7TUFFdkJBLE9BQU8sR0FBR0QsTUFBTSxDQUFDRyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDLFFBQVFGLE9BQU87SUFFaEJGLE9BQU8sR0FBRyxLQUFLO0lBRWYsSUFBSUcsUUFBUSxFQUFFO01BQ2JOLFlBQVksQ0FBQyxDQUFDO0lBQ2Y7RUFDRCxDQUFDO0FBRUg7QUFFQSxTQUFTUSxPQUFPQSxDQUNmaEYsSUFBWSxFQUNaaUYsTUFBOEMsRUFDOUM1QixLQUFhLEVBQ2J6QixRQUFpQyxFQUNqQ1YsUUFBNEIsRUFDNUJXLFFBQWlDLEVBQ2pDcUQsU0FBNkIsRUFDcEI7RUFBQSxJQUFBQyxpQkFBQTtFQUNULElBQUFDLElBQUEsR0FBcUNGLFNBQVMsR0FBRyxDQUFDQSxTQUFTLENBQUMsR0FBR0QsTUFBTSxDQUFDNUIsS0FBSyxDQUFDO0lBQUFnQyxLQUFBLEdBQUFwSCxRQUFBLENBQUFtSCxJQUFBO0lBQXJFRSxTQUFTLEdBQUFELEtBQUE7SUFBS0UsWUFBWSxHQUFBdkgsaUJBQUEsQ0FBQXFILEtBQUEsRUFBQXZGLEtBQUE7RUFFakM4QixRQUFRLENBQUMwRCxTQUFTLENBQUM7RUFDbkJ6RCxRQUFRLGFBQVJBLFFBQVEsZUFBUkEsUUFBUSxDQUFFMkQsSUFBSSxDQUFDRixTQUFTLENBQUM7RUFDekIsQ0FBQUgsaUJBQUEsR0FBQTVFLGNBQVEsQ0FBQ0MsTUFBTSxjQUFBMkUsaUJBQUEsZUFBZkEsaUJBQUEsQ0FBaUJ6RSxLQUFLLENBQUMsbUJBQW1CLEVBQUVWLElBQUksRUFBRXNGLFNBQVMsQ0FBQztFQUM1RHJFLE9BQU8sQ0FBQXdFLEtBQUEsVUFBQ3ZFLFFBQVEsRUFBQXdFLE1BQUEsQ0FBQW5JLGtCQUFBLENBQUtnSSxZQUFZLEdBQUM7RUFFbEMsT0FBT0QsU0FBUztBQUNqQjtBQUVBLFNBQVNLLFVBQVVBLENBQ2xCQyxPQUE0QyxFQUM1QzlFLEtBQWEsRUFDYndDLFFBQStCLEVBQ3hCO0VBQ1AsSUFBTXVDLFFBQVEsR0FBRyxJQUFBL0QsYUFBTSxFQUFDaEIsS0FBSyxDQUFDO0VBRTlCK0UsUUFBUSxDQUFDekQsT0FBTyxHQUFHdEIsS0FBSztFQUV4QixJQUFBaUIsZ0JBQVMsRUFBQyxZQUFNO0lBQ2YsSUFBSTZELE9BQU8sRUFBRTtNQUNaLE9BQU8sWUFBTTtRQUNaQSxPQUFPLENBQUNDLFFBQVEsQ0FBQ3pELE9BQU8sQ0FBQztNQUMxQixDQUFDO0lBQ0Y7SUFDQTtFQUNELENBQUMsRUFBRWtCLFFBQVEsYUFBUkEsUUFBUSxjQUFSQSxRQUFRLEdBQUksRUFBRSxDQUFDO0FBQ25CIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { InitFunction, Message, UpdateFunction } from "./Types";
|
|
2
|
+
import type { DisposeFunction, InitFunction, Message, UpdateFunction } from "./Types";
|
|
3
3
|
/**
|
|
4
4
|
* Abstract class for a react class component using the Elmish pattern.
|
|
5
5
|
* @export
|
|
@@ -11,6 +11,7 @@ import type { InitFunction, Message, UpdateFunction } from "./Types";
|
|
|
11
11
|
* @template TProps The type of the props.
|
|
12
12
|
*/
|
|
13
13
|
declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> extends React.Component<TProps> {
|
|
14
|
+
private readonly disposeHandler?;
|
|
14
15
|
private initCommands;
|
|
15
16
|
private readonly componentName;
|
|
16
17
|
private readonly buffer;
|
|
@@ -24,7 +25,7 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
|
|
|
24
25
|
* @param name The name of the component.
|
|
25
26
|
* @memberof ElmComponent
|
|
26
27
|
*/
|
|
27
|
-
constructor(props: TProps, init: InitFunction<TProps, TModel, TMessage>, name: string);
|
|
28
|
+
constructor(props: TProps, init: InitFunction<TProps, TModel, TMessage>, name: string, disposeHandler?: DisposeFunction<TModel> | undefined);
|
|
28
29
|
/**
|
|
29
30
|
* Is called when the component is loaded.
|
|
30
31
|
* When implementing this method, the base implementation has to be called.
|
package/dist/ElmComponent.js
CHANGED
|
@@ -57,11 +57,12 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
57
57
|
* @param name The name of the component.
|
|
58
58
|
* @memberof ElmComponent
|
|
59
59
|
*/
|
|
60
|
-
function ElmComponent(props, init, name) {
|
|
60
|
+
function ElmComponent(props, init, name, disposeHandler) {
|
|
61
61
|
var _Services$logger2;
|
|
62
62
|
var _this;
|
|
63
63
|
_classCallCheck(this, ElmComponent);
|
|
64
64
|
_this = _callSuper(this, ElmComponent, [props]);
|
|
65
|
+
_this.disposeHandler = disposeHandler;
|
|
65
66
|
_defineProperty(_this, "initCommands", void 0);
|
|
66
67
|
_defineProperty(_this, "componentName", void 0);
|
|
67
68
|
_defineProperty(_this, "buffer", []);
|
|
@@ -166,6 +167,8 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
166
167
|
}, {
|
|
167
168
|
key: "componentWillUnmount",
|
|
168
169
|
value: function componentWillUnmount() {
|
|
170
|
+
var _this$disposeHandler;
|
|
171
|
+
(_this$disposeHandler = this.disposeHandler) === null || _this$disposeHandler === void 0 || _this$disposeHandler.call(this, this.currentModel);
|
|
169
172
|
this.mounted = false;
|
|
170
173
|
}
|
|
171
174
|
|
|
@@ -183,4 +186,4 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
183
186
|
}
|
|
184
187
|
}]);
|
|
185
188
|
}(_react["default"].Component);
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXIzIiwiX2Zha2VPcHRpb25zIiwiX0luaXQiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJjdXJyZW50TWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJjdXJyZW50TW9kZWwiLCJfdGhpcyR1cGRhdGUiLCJ1cGRhdGUiLCJfdGhpcyR1cGRhdGUyIiwibW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJfcmVmMiIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJnZXQiLCJSZWFjdCIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSwgbW9kZWxIYXNDaGFuZ2VkIH0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24gfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbi8vIGJpb21lLWlnbm9yZSBsaW50L3N0eWxlL3VzZVJlYWN0RnVuY3Rpb25Db21wb25lbnRzOiBUaGlzIGlzIG9ubHkgZm9yIGRvd253YXJkIGNvbXBhdGliaWxpdHkuXG5hYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRQcm9wcz4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8VFByb3BzPiB7XG5cdHByaXZhdGUgaW5pdENvbW1hbmRzOiBOdWxsYWJsZTwoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXT4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXHRwcml2YXRlIHJlYWRvbmx5IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRwcml2YXRlIHJ1bm5pbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBtb3VudGVkID0gZmFsc2U7XG5cdHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRWxtQ29tcG9uZW50LlxuXHQgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nKSB7XG5cdFx0c3VwZXIocHJvcHMpO1xuXG5cdFx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblxuXHRcdGlmIChmYWtlT3B0aW9ucz8uZGlzcGF0Y2gpIHtcblx0XHRcdHRoaXMuZGlzcGF0Y2ggPSBmYWtlT3B0aW9ucy5kaXNwYXRjaDtcblx0XHR9XG5cblx0XHRjb25zdCBbbW9kZWwsIC4uLmNvbW1hbmRzXSA9IGZha2VPcHRpb25zPy5tb2RlbCA/IFtmYWtlT3B0aW9ucy5tb2RlbCBhcyBUTW9kZWxdIDogaW5pdCh0aGlzLnByb3BzKTtcblxuXHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJJbml0aWFsIG1vZGVsIGZvclwiLCBuYW1lLCBtb2RlbCk7XG5cblx0XHR0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuXHRcdHRoaXMuY3VycmVudE1vZGVsID0gbW9kZWw7XG5cdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBjb21tYW5kcztcblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGxvYWRlZC5cblx0ICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcblx0XHR0aGlzLm1vdW50ZWQgPSB0cnVlO1xuXG5cdFx0aWYgKHRoaXMuaW5pdENvbW1hbmRzKSB7XG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLnRoaXMuaW5pdENvbW1hbmRzKTtcblx0XHRcdHRoaXMuaW5pdENvbW1hbmRzID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cblx0ICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb21wb25lbnRXaWxsVW5tb3VudCgpOiB2b2lkIHtcblx0XHR0aGlzLm1vdW50ZWQgPSBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcmVhZG9ubHlcblx0ICogQHR5cGUge1JlYWRvbmx5PFRNb2RlbD59XG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby11bnVzZWQtY2xhc3MtY29tcG9uZW50LW1ldGhvZHMgLS0gV2UgbmVlZCBpdCBpbnRlcm5hbGx5LlxuXHRwdWJsaWMgZ2V0IG1vZGVsKCk6IFJlYWRvbmx5PFRNb2RlbD4ge1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRNb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwYXRjaGVzIGEgbWVzc2FnZS5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgZGlzcGF0Y2ggPSAobXNnOiBUTWVzc2FnZSk6IHZvaWQgPT4ge1xuXHRcdGlmICh0aGlzLnJ1bm5pbmcpIHtcblx0XHRcdHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMucnVubmluZyA9IHRydWU7XG5cblx0XHRsZXQgbmV4dE1zZzogVE1lc3NhZ2UgfCB1bmRlZmluZWQgPSBtc2c7XG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRkbyB7XG5cdFx0XHRjb25zdCBjdXJyZW50TWVzc2FnZSA9IG5leHRNc2c7XG5cblx0XHRcdGxvZ01lc3NhZ2UodGhpcy5jb21wb25lbnROYW1lLCBjdXJyZW50TWVzc2FnZSk7XG5cblx0XHRcdGNvbnN0IFtkZWZlciwgZ2V0RGVmZXJyZWRdID0gY3JlYXRlRGVmZXI8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblx0XHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2UoY3VycmVudE1lc3NhZ2UsIHRoaXMuY3VycmVudE1vZGVsLCB0aGlzLnByb3BzLCB7IGRlZmVyIH0pO1xuXG5cdFx0XHRjb25zdCBbbW9kZWwsIC4uLmNvbW1hbmRzXSA9IHRoaXMudXBkYXRlKHRoaXMuY3VycmVudE1vZGVsLCBjdXJyZW50TWVzc2FnZSwgdGhpcy5wcm9wcywgeyBkZWZlciwgY2FsbEJhc2UgfSk7XG5cblx0XHRcdGNvbnN0IFtkZWZlcnJlZE1vZGVsLCBkZWZlcnJlZENvbW1hbmRzXSA9IGdldERlZmVycmVkKCk7XG5cblx0XHRcdGlmIChtb2RlbEhhc0NoYW5nZWQodGhpcy5jdXJyZW50TW9kZWwsIHsgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfSkpIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50TW9kZWwgPSB7IC4uLnRoaXMuY3VycmVudE1vZGVsLCAuLi5kZWZlcnJlZE1vZGVsLCAuLi5tb2RlbCB9O1xuXHRcdFx0XHRtb2RpZmllZCA9IHRydWU7XG5cdFx0XHR9XG5cblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0XHRuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcblx0XHR9IHdoaWxlIChuZXh0TXNnKTtcblxuXHRcdHRoaXMucnVubmluZyA9IGZhbHNlO1xuXG5cdFx0aWYgKHRoaXMubW91bnRlZCAmJiBtb2RpZmllZCkge1xuXHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG5cdFx0XHR0aGlzLmZvcmNlVXBkYXRlKCk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBtb2RpZnkgdGhlIG1vZGVsIGJhc2VkIG9uIGEgbWVzc2FnZS5cblx0ICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcGFyYW0ge1RNZXNzYWdlfSBtc2cgVGhlIG1lc3NhZ2UgdG8gcHJvY2Vzcy5cblx0ICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBvZiB0aGUgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIHVwZGF0ZSBmdW5jdGlvbi5cblx0ICogQHJldHVybnMgVGhlIG5ldyBtb2RlbCAoY2FuIGFsc28gYmUgYW4gZW1wdHkgb2JqZWN0IHt9KSBhbmQgYW4gb3B0aW9uYWwgbmV3IG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG5cdCAqIEBhYnN0cmFjdFxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xufVxuXG5leHBvcnQgeyBFbG1Db21wb25lbnQgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQWtDLFNBQUFELHVCQUFBTyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMs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
|
|
189
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Db21tb24iLCJfY3JlYXRlQ2FsbEJhc2UiLCJfY3JlYXRlRGVmZXIzIiwiX2Zha2VPcHRpb25zIiwiX0luaXQiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfbm9uSXRlcmFibGVSZXN0IiwiZnJvbSIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJfY2xhc3NDYWxsQ2hlY2siLCJfZGVmaW5lUHJvcGVydGllcyIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiZGlzcG9zZUhhbmRsZXIiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl90aGlzIiwibXNnIiwicnVubmluZyIsImJ1ZmZlciIsIm5leHRNc2ciLCJtb2RpZmllZCIsImN1cnJlbnRNZXNzYWdlIiwibG9nTWVzc2FnZSIsImNvbXBvbmVudE5hbWUiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsImN1cnJlbnRNb2RlbCIsIl90aGlzJHVwZGF0ZSIsInVwZGF0ZSIsIl90aGlzJHVwZGF0ZTIiLCJtb2RlbCIsImNvbW1hbmRzIiwiX2dldERlZmVycmVkIiwiX2dldERlZmVycmVkMiIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImRpc3BhdGNoIiwiY29uY2F0Iiwic2hpZnQiLCJtb3VudGVkIiwiX1NlcnZpY2VzJGxvZ2dlciIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJmb3JjZVVwZGF0ZSIsImZha2VPcHRpb25zIiwiZ2V0RmFrZU9wdGlvbnNPbmNlIiwiX3JlZiIsIl9yZWYyIiwiaW5pdENvbW1hbmRzIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIl90aGlzJGRpc3Bvc2VIYW5kbGVyIiwiZ2V0IiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi9zcmMvRWxtQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGxvZ01lc3NhZ2UsIG1vZGVsSGFzQ2hhbmdlZCB9IGZyb20gXCIuL0NvbW1vblwiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4vZmFrZU9wdGlvbnNcIjtcbmltcG9ydCB7IFNlcnZpY2VzIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIERpc3Bvc2VGdW5jdGlvbiwgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlLCBOdWxsYWJsZSwgVXBkYXRlRnVuY3Rpb24gfSBmcm9tIFwiLi9UeXBlc1wiO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBhIHJlYWN0IGNsYXNzIGNvbXBvbmVudCB1c2luZyB0aGUgRWxtaXNoIHBhdHRlcm4uXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBFbG1Db21wb25lbnRcbiAqIEBleHRlbmRzIHtDb21wb25lbnQ8VFByb3BzLCBUTW9kZWw+fVxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbi8vIGJpb21lLWlnbm9yZSBsaW50L3N0eWxlL3VzZVJlYWN0RnVuY3Rpb25Db21wb25lbnRzOiBUaGlzIGlzIG9ubHkgZm9yIGRvd253YXJkIGNvbXBhdGliaWxpdHkuXG5hYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRQcm9wcz4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8VFByb3BzPiB7XG5cdHByaXZhdGUgaW5pdENvbW1hbmRzOiBOdWxsYWJsZTwoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXT4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXHRwcml2YXRlIHJlYWRvbmx5IGJ1ZmZlcjogVE1lc3NhZ2VbXSA9IFtdO1xuXHRwcml2YXRlIHJ1bm5pbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBtb3VudGVkID0gZmFsc2U7XG5cdHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRWxtQ29tcG9uZW50LlxuXHQgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0geygpID0+IFRNb2RlbH0gaW5pdCBUaGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24uXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbmFtZTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IGRpc3Bvc2VIYW5kbGVyPzogRGlzcG9zZUZ1bmN0aW9uPFRNb2RlbD4pIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZTxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBtb2RlbDtcblx0XHR0aGlzLmluaXRDb21tYW5kcyA9IGNvbW1hbmRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMubW91bnRlZCA9IHRydWU7XG5cblx0XHRpZiAodGhpcy5pbml0Q29tbWFuZHMpIHtcblx0XHRcdGV4ZWNDbWQodGhpcy5kaXNwYXRjaCwgLi4udGhpcy5pbml0Q29tbWFuZHMpO1xuXHRcdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuXHQgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuXHRcdHRoaXMuZGlzcG9zZUhhbmRsZXI/Lih0aGlzLmN1cnJlbnRNb2RlbCk7XG5cdFx0dGhpcy5tb3VudGVkID0gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY3VycmVudCBtb2RlbC5cblx0ICogQHJlYWRvbmx5XG5cdCAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tdW51c2VkLWNsYXNzLWNvbXBvbmVudC1tZXRob2RzIC0tIFdlIG5lZWQgaXQgaW50ZXJuYWxseS5cblx0cHVibGljIGdldCBtb2RlbCgpOiBSZWFkb25seTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXHRcdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG5cdFx0ZG8ge1xuXHRcdFx0Y29uc3QgY3VycmVudE1lc3NhZ2UgPSBuZXh0TXNnO1xuXG5cdFx0XHRsb2dNZXNzYWdlKHRoaXMuY29tcG9uZW50TmFtZSwgY3VycmVudE1lc3NhZ2UpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlKGN1cnJlbnRNZXNzYWdlLCB0aGlzLmN1cnJlbnRNb2RlbCwgdGhpcy5wcm9wcywgeyBkZWZlciB9KTtcblxuXHRcdFx0Y29uc3QgW21vZGVsLCAuLi5jb21tYW5kc10gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgY3VycmVudE1lc3NhZ2UsIHRoaXMucHJvcHMsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0XHRjb25zdCBbZGVmZXJyZWRNb2RlbCwgZGVmZXJyZWRDb21tYW5kc10gPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0XHRpZiAobW9kZWxIYXNDaGFuZ2VkKHRoaXMuY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm1vZGVsIH0pKSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubW9kZWwgfTtcblx0XHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBuZXcgbW9kZWwgKGNhbiBhbHNvIGJlIGFuIGVtcHR5IG9iamVjdCB7fSkgYW5kIGFuIG9wdGlvbmFsIG5ldyBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuXHQgKiBAYWJzdHJhY3Rcblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUFrQyxTQUFBRCx1QkFBQU8sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxD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
|
|
@@ -53,6 +53,7 @@ type UpdateMap<TProps, TModel, TMessage extends Message> = {
|
|
|
53
53
|
type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?] | SubscriptionFunction<TMessage>[];
|
|
54
54
|
type SubscriptionFunction<TMessage> = (dispatch: Dispatch<TMessage>) => (() => void) | undefined;
|
|
55
55
|
type Subscription<TProps, TModel, TMessage> = (model: TModel, props: TProps) => SubscriptionResult<TMessage>;
|
|
56
|
+
type DisposeFunction<TModel> = (model: TModel) => void;
|
|
56
57
|
declare function subscriptionIsFunctionArray(subscription: SubscriptionResult<unknown>): subscription is SubscriptionFunction<unknown>[];
|
|
57
|
-
export type { CallBaseFunction, Cmd, DeferFunction, Dispatch, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, Subscription, SubscriptionFunction, SubscriptionResult, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateMapFunction, UpdateReturnType, };
|
|
58
|
+
export type { CallBaseFunction, Cmd, DeferFunction, Dispatch, DisposeFunction, FallbackHandler, InitFunction, InitResult, Message, MsgSource, Nullable, Sub, Subscription, SubscriptionFunction, SubscriptionResult, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateMapFunction, UpdateReturnType, };
|
|
58
59
|
export { subscriptionIsFunctionArray };
|
package/dist/Types.js
CHANGED
|
@@ -37,4 +37,4 @@ exports.subscriptionIsFunctionArray = subscriptionIsFunctionArray;
|
|
|
37
37
|
function subscriptionIsFunctionArray(subscription) {
|
|
38
38
|
return typeof subscription[0] === "function";
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkiLCJzdWJzY3JpcHRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBOdWxsYWJsZTxUVHlwZT4gPSBUVHlwZSB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlIHtcblx0bmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG50eXBlIERpc3BhdGNoPFRNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1lc3NhZ2U+ID0gU3ViPFRNZXNzYWdlPltdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUU291cmNlIGV4dGVuZHMgc3RyaW5nPiB7XG5cdHNvdXJjZTogVFNvdXJjZTtcbn1cblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBpbml0YCBmdW5jdGlvbi5cbiAqL1xudHlwZSBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1RNb2RlbCwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKHByb3BzOiBUUHJvcHMpID0+IEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYHVwZGF0ZWAgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiA9IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXTtcblxudHlwZSBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4sIC4uLmNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSkgPT4gdm9pZDtcbnR5cGUgQ2FsbEJhc2VGdW5jdGlvbjxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0Zm46IChcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsOiBUTW9kZWwsXG5cdFx0cHJvcHM6IFRQcm9wcyxcblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IGFueSBpcyBuZWVkZWQgaGVyZSB0byBhbGxvdyBvcHRpb25zIG9mIGFueSB0eXBlXG5cdFx0Li4uYXJnczogYW55W11cblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbnR5cGUgVXBkYXRlTWFwRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRTcGVjaWZpY01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlID0gVE1lc3NhZ2U+IHtcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT47XG5cdGNhbGxCYXNlOiBDYWxsQmFzZUZ1bmN0aW9uPFRNb2RlbCwgVFByb3BzLCBUU3BlY2lmaWNNZXNzYWdlPjtcbn1cblxudHlwZSBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bW9kZWw6IFRNb2RlbCxcblx0bXNnOiBUTWVzc2FnZSxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgbWFwcGluZyBtZXNzYWdlcyB0byBmdW5jdGlvbnMuXG4gKiBVc2UgdGhpcyB0eXBlIHRvIGNyZWF0ZSB5b3VyIHVwZGF0ZSBsb2dpYyBmb3IgdGhlIHVzZUVsbWlzaCBob29rLlxuICovXG50eXBlIFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IHtcblx0W1RNZXNzYWdlTmFtZSBpbiBUTWVzc2FnZVtcIm5hbWVcIl1dOiAoXG5cdFx0bXNnOiBUTWVzc2FnZSAmIHsgbmFtZTogVE1lc3NhZ2VOYW1lIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UsIFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn07XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dIHwgU3Vic2NyaXB0aW9uRnVuY3Rpb248VE1lc3NhZ2U+W107XG50eXBlIFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+KSA9PiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdWJzY3JpcHRpb25Jc0Z1bmN0aW9uQXJyYXkiLCJzdWJzY3JpcHRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBOdWxsYWJsZTxUVHlwZT4gPSBUVHlwZSB8IG51bGw7XG5cbmludGVyZmFjZSBNZXNzYWdlIHtcblx0bmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG50eXBlIERpc3BhdGNoPFRNZXNzYWdlPiA9IChtc2c6IFRNZXNzYWdlKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xudHlwZSBDbWQ8VE1lc3NhZ2U+ID0gU3ViPFRNZXNzYWdlPltdO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBNc2dTb3VyY2UgdHlwZS5cbiAqL1xuaW50ZXJmYWNlIE1zZ1NvdXJjZTxUU291cmNlIGV4dGVuZHMgc3RyaW5nPiB7XG5cdHNvdXJjZTogVFNvdXJjZTtcbn1cblxuLyoqXG4gKiBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGBpbml0YCBmdW5jdGlvbi5cbiAqL1xudHlwZSBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1RNb2RlbCwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dO1xuXG50eXBlIEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKHByb3BzOiBUUHJvcHMpID0+IEluaXRSZXN1bHQ8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgYHVwZGF0ZWAgZnVuY3Rpb24uXG4gKi9cbnR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiA9IFtQYXJ0aWFsPFRNb2RlbD4sIC4uLihDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdXTtcblxudHlwZSBEZWZlckZ1bmN0aW9uPFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4sIC4uLmNvbW1hbmRzOiAoQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXSkgPT4gdm9pZDtcbnR5cGUgQ2FsbEJhc2VGdW5jdGlvbjxUTW9kZWwsIFRQcm9wcywgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0Zm46IChcblx0XHRtc2c6IFRNZXNzYWdlLFxuXHRcdG1vZGVsOiBUTW9kZWwsXG5cdFx0cHJvcHM6IFRQcm9wcyxcblx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IGFueSBpcyBuZWVkZWQgaGVyZSB0byBhbGxvdyBvcHRpb25zIG9mIGFueSB0eXBlXG5cdFx0Li4uYXJnczogYW55W11cblx0KSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbnR5cGUgVXBkYXRlTWFwRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4gPSAoXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKSA9PiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2UsIFRTcGVjaWZpY01lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlID0gVE1lc3NhZ2U+IHtcblx0ZGVmZXI6IERlZmVyRnVuY3Rpb248VE1vZGVsLCBUTWVzc2FnZT47XG5cdGNhbGxCYXNlOiBDYWxsQmFzZUZ1bmN0aW9uPFRNb2RlbCwgVFByb3BzLCBUU3BlY2lmaWNNZXNzYWdlPjtcbn1cblxudHlwZSBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IChcblx0bW9kZWw6IFRNb2RlbCxcblx0bXNnOiBUTWVzc2FnZSxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT47XG5cbi8qKlxuICogVHlwZSBmb3IgbWFwcGluZyBtZXNzYWdlcyB0byBmdW5jdGlvbnMuXG4gKiBVc2UgdGhpcyB0eXBlIHRvIGNyZWF0ZSB5b3VyIHVwZGF0ZSBsb2dpYyBmb3IgdGhlIHVzZUVsbWlzaCBob29rLlxuICovXG50eXBlIFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPiA9IHtcblx0W1RNZXNzYWdlTmFtZSBpbiBUTWVzc2FnZVtcIm5hbWVcIl1dOiAoXG5cdFx0bXNnOiBUTWVzc2FnZSAmIHsgbmFtZTogVE1lc3NhZ2VOYW1lIH0sXG5cdFx0bW9kZWw6IFRNb2RlbCxcblx0XHRwcm9wczogVFByb3BzLFxuXHRcdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UsIFRNZXNzYWdlICYgeyBuYW1lOiBUTWVzc2FnZU5hbWUgfT4sXG5cdCkgPT4gVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPjtcbn07XG5cbi8qKlxuICogVGhlIHJldHVybiB0eXBlIG9mIHRoZSBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xudHlwZSBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+ID0gW0NtZDxUTWVzc2FnZT4sICgoKSA9PiB2b2lkKT9dIHwgU3Vic2NyaXB0aW9uRnVuY3Rpb248VE1lc3NhZ2U+W107XG50eXBlIFN1YnNjcmlwdGlvbkZ1bmN0aW9uPFRNZXNzYWdlPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1lc3NhZ2U+KSA9PiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG50eXBlIFN1YnNjcmlwdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+ID0gKG1vZGVsOiBUTW9kZWwsIHByb3BzOiBUUHJvcHMpID0+IFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT47XG5cbnR5cGUgRGlzcG9zZUZ1bmN0aW9uPFRNb2RlbD4gPSAobW9kZWw6IFRNb2RlbCkgPT4gdm9pZDtcblxuZnVuY3Rpb24gc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5KHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uUmVzdWx0PHVua25vd24+KTogc3Vic2NyaXB0aW9uIGlzIFN1YnNjcmlwdGlvbkZ1bmN0aW9uPHVua25vd24+W10ge1xuXHRyZXR1cm4gdHlwZW9mIHN1YnNjcmlwdGlvblswXSA9PT0gXCJmdW5jdGlvblwiO1xufVxuXG5leHBvcnQgdHlwZSB7XG5cdENhbGxCYXNlRnVuY3Rpb24sXG5cdENtZCxcblx0RGVmZXJGdW5jdGlvbixcblx0RGlzcGF0Y2gsXG5cdERpc3Bvc2VGdW5jdGlvbixcblx0RmFsbGJhY2tIYW5kbGVyLFxuXHRJbml0RnVuY3Rpb24sXG5cdEluaXRSZXN1bHQsXG5cdE1lc3NhZ2UsXG5cdE1zZ1NvdXJjZSxcblx0TnVsbGFibGUsXG5cdFN1Yixcblx0U3Vic2NyaXB0aW9uLFxuXHRTdWJzY3JpcHRpb25GdW5jdGlvbixcblx0U3Vic2NyaXB0aW9uUmVzdWx0LFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZU1hcEZ1bmN0aW9uLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufTtcblxuZXhwb3J0IHsgc3Vic2NyaXB0aW9uSXNGdW5jdGlvbkFycmF5IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BO0FBQ0E7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBOztBQUtBO0FBQ0E7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7O0FBaUNBO0FBQ0E7QUFDQTtBQUNBOztBQVVBO0FBQ0E7QUFDQTtBQUNBOztBQU9BLFNBQVNBLDJCQUEyQkEsQ0FBQ0MsWUFBeUMsRUFBbUQ7RUFDaEksT0FBTyxPQUFPQSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVTtBQUM3QyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Immutable } from "immer";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import type { InitFunction, Message } from "../Types";
|
|
3
|
+
import type { DisposeFunction, InitFunction, Message } from "../Types";
|
|
4
4
|
import type { UpdateFunction } from "./Types";
|
|
5
5
|
/**
|
|
6
6
|
* Abstract class for a react class component using the Elmish pattern.
|
|
@@ -13,6 +13,7 @@ import type { UpdateFunction } from "./Types";
|
|
|
13
13
|
* @template TProps The type of the props.
|
|
14
14
|
*/
|
|
15
15
|
declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> extends React.Component<TProps> {
|
|
16
|
+
private readonly disposeHandler?;
|
|
16
17
|
private initCommands;
|
|
17
18
|
private readonly componentName;
|
|
18
19
|
private readonly buffer;
|
|
@@ -26,7 +27,7 @@ declare abstract class ElmComponent<TModel, TMessage extends Message, TProps> ex
|
|
|
26
27
|
* @param name The name of the component.
|
|
27
28
|
* @memberof ElmComponent
|
|
28
29
|
*/
|
|
29
|
-
constructor(props: TProps, init: InitFunction<TProps, TModel, TMessage>, name: string);
|
|
30
|
+
constructor(props: TProps, init: InitFunction<TProps, TModel, TMessage>, name: string, disposeHandler?: DisposeFunction<Immutable<TModel>> | undefined);
|
|
30
31
|
/**
|
|
31
32
|
* Is called when the component is loaded.
|
|
32
33
|
* When implementing this method, the base implementation has to be called.
|
|
@@ -56,11 +56,12 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
56
56
|
* @param name The name of the component.
|
|
57
57
|
* @memberof ElmComponent
|
|
58
58
|
*/
|
|
59
|
-
function ElmComponent(props, init, name) {
|
|
59
|
+
function ElmComponent(props, init, name, disposeHandler) {
|
|
60
60
|
var _Services$logger2;
|
|
61
61
|
var _this;
|
|
62
62
|
_classCallCheck(this, ElmComponent);
|
|
63
63
|
_this = _callSuper(this, ElmComponent, [props]);
|
|
64
|
+
_this.disposeHandler = disposeHandler;
|
|
64
65
|
_defineProperty(_this, "initCommands", void 0);
|
|
65
66
|
_defineProperty(_this, "componentName", void 0);
|
|
66
67
|
_defineProperty(_this, "buffer", []);
|
|
@@ -160,6 +161,8 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
160
161
|
}, {
|
|
161
162
|
key: "componentWillUnmount",
|
|
162
163
|
value: function componentWillUnmount() {
|
|
164
|
+
var _this$disposeHandler;
|
|
165
|
+
(_this$disposeHandler = this.disposeHandler) === null || _this$disposeHandler === void 0 || _this$disposeHandler.call(this, this.currentModel);
|
|
163
166
|
this.mounted = false;
|
|
164
167
|
}
|
|
165
168
|
|
|
@@ -177,4 +180,4 @@ var ElmComponent = exports.ElmComponent = /*#__PURE__*/function (_React$Componen
|
|
|
177
180
|
}
|
|
178
181
|
}]);
|
|
179
182
|
}(_react["default"].Component);
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Db21tb24iLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0FycmF5IiwiciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiX1NlcnZpY2VzJGxvZ2dlcjIiLCJfdGhpcyIsIm1zZyIsInJ1bm5pbmciLCJidWZmZXIiLCJuZXh0TXNnIiwiX2xvb3AiLCJjdXJyZW50TWVzc2FnZSIsImxvZ01lc3NhZ2UiLCJjb21wb25lbnROYW1lIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJjdXJyZW50TW9kZWwiLCJjb21tYW5kcyIsInByb2R1Y2UiLCJkcmFmdCIsInVwZGF0ZSIsImRlZmVycmVkQ29tbWFuZHMiLCJleGVjQ21kIiwiZGlzcGF0Y2giLCJjb25jYXQiLCJzaGlmdCIsIm1vdW50ZWQiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsImZvcmNlVXBkYXRlIiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJfcmVmIiwibW9kZWwiLCJfcmVmMiIsImNhc3RJbW11dGFibGUiLCJmcmVlemUiLCJpbml0Q29tbWFuZHMiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiZ2V0IiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1tdXRhYmxlL0VsbUNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXN0SW1tdXRhYmxlLCB0eXBlIERyYWZ0LCBmcmVlemUsIHR5cGUgSW1tdXRhYmxlLCBwcm9kdWNlIH0gZnJvbSBcImltbWVyXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBleGVjQ21kLCBsb2dNZXNzYWdlIH0gZnJvbSBcIi4uL0NvbW1vblwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4uL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlUmVhY3RGdW5jdGlvbkNvbXBvbmVudHM6IFRoaXMgaXMgb25seSBmb3IgZG93bndhcmQgY29tcGF0aWJpbGl0eS5cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cblx0ICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXQgVGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IFRQcm9wcywgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG5hbWU6IHN0cmluZykge1xuXHRcdHN1cGVyKHByb3BzKTtcblxuXHRcdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cblx0XHRpZiAoZmFrZU9wdGlvbnM/LmRpc3BhdGNoKSB7XG5cdFx0XHR0aGlzLmRpc3BhdGNoID0gZmFrZU9wdGlvbnMuZGlzcGF0Y2g7XG5cdFx0fVxuXG5cdFx0Y29uc3QgW21vZGVsLCAuLi5jb21tYW5kc10gPSBmYWtlT3B0aW9ucz8ubW9kZWwgPyBbZmFrZU9wdGlvbnMubW9kZWwgYXMgVE1vZGVsXSA6IGluaXQodGhpcy5wcm9wcyk7XG5cblx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiSW5pdGlhbCBtb2RlbCBmb3JcIiwgbmFtZSwgbW9kZWwpO1xuXG5cdFx0dGhpcy5jb21wb25lbnROYW1lID0gbmFtZTtcblx0XHR0aGlzLmN1cnJlbnRNb2RlbCA9IGNhc3RJbW11dGFibGUoZnJlZXplKG1vZGVsLCB0cnVlKSk7XG5cdFx0dGhpcy5pbml0Q29tbWFuZHMgPSBjb21tYW5kcztcblx0fVxuXG5cdC8qKlxuXHQgKiBJcyBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGxvYWRlZC5cblx0ICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb21wb25lbnREaWRNb3VudCgpOiB2b2lkIHtcblx0XHR0aGlzLm1vdW50ZWQgPSB0cnVlO1xuXG5cdFx0aWYgKHRoaXMuaW5pdENvbW1hbmRzKSB7XG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLnRoaXMuaW5pdENvbW1hbmRzKTtcblx0XHRcdHRoaXMuaW5pdENvbW1hbmRzID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cblx0ICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdHB1YmxpYyBjb21wb25lbnRXaWxsVW5tb3VudCgpOiB2b2lkIHtcblx0XHR0aGlzLm1vdW50ZWQgPSBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcmVhZG9ubHlcblx0ICogQHR5cGUge1JlYWRvbmx5PFRNb2RlbD59XG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby11bnVzZWQtY2xhc3MtY29tcG9uZW50LW1ldGhvZHMgLS0gV2UgbmVlZCBpdCBpbnRlcm5hbGx5LlxuXHRwdWJsaWMgZ2V0IG1vZGVsKCk6IEltbXV0YWJsZTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXG5cdFx0ZG8ge1xuXHRcdFx0Y29uc3QgY3VycmVudE1lc3NhZ2UgPSBuZXh0TXNnO1xuXG5cdFx0XHRsb2dNZXNzYWdlKHRoaXMuY29tcG9uZW50TmFtZSwgY3VycmVudE1lc3NhZ2UpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShjdXJyZW50TWVzc2FnZSwgdGhpcy5jdXJyZW50TW9kZWwsIHRoaXMucHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRcdGNvbnN0IGNvbW1hbmRzOiBVcGRhdGVSZXR1cm5UeXBlPFRNZXNzYWdlPiA9IFtdO1xuXG5cdFx0XHR0aGlzLmN1cnJlbnRNb2RlbCA9IHByb2R1Y2UodGhpcy5jdXJyZW50TW9kZWwsIChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLnRoaXMudXBkYXRlKGRyYWZ0LCBjdXJyZW50TWVzc2FnZSwgdGhpcy5wcm9wcywgeyBkZWZlciwgY2FsbEJhc2UgfSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBuZXcgbW9kZWwgKGNhbiBhbHNvIGJlIGFuIGVtcHR5IG9iamVjdCB7fSkgYW5kIGFuIG9wdGlvbmFsIG5ldyBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuXHQgKiBAYWJzdHJhY3Rcblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQVAsT0FBQTtBQUE0QyxTQUFBRSx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxTQUFBQyxDQUFBLFdBQUFDLGVBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksZ0JBQUE7QUFBQSxTQUFBQyxtQkFBQUwsQ0FBQSxXQUFBTSxr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
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Db21tb24iLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl90b0FycmF5IiwiciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsImkiLCJ1IiwiZiIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsImJpbmQiLCJfX3Byb3RvX18iLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJfc2V0UHJvdG90eXBlT2YiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsIkVsbUNvbXBvbmVudCIsImV4cG9ydHMiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwiZGlzcG9zZUhhbmRsZXIiLCJfU2VydmljZXMkbG9nZ2VyMiIsIl90aGlzIiwibXNnIiwicnVubmluZyIsImJ1ZmZlciIsIm5leHRNc2ciLCJfbG9vcCIsImN1cnJlbnRNZXNzYWdlIiwibG9nTWVzc2FnZSIsImNvbXBvbmVudE5hbWUiLCJfY3JlYXRlRGVmZXIiLCJjcmVhdGVEZWZlciIsIl9jcmVhdGVEZWZlcjIiLCJkZWZlciIsImdldERlZmVycmVkIiwiY2FsbEJhc2UiLCJjcmVhdGVDYWxsQmFzZSIsImN1cnJlbnRNb2RlbCIsImNvbW1hbmRzIiwicHJvZHVjZSIsImRyYWZ0IiwidXBkYXRlIiwiZGVmZXJyZWRDb21tYW5kcyIsImV4ZWNDbWQiLCJkaXNwYXRjaCIsImNvbmNhdCIsInNoaWZ0IiwibW91bnRlZCIsIl9TZXJ2aWNlcyRsb2dnZXIiLCJTZXJ2aWNlcyIsImxvZ2dlciIsImRlYnVnIiwiZm9yY2VVcGRhdGUiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsIl9yZWYiLCJtb2RlbCIsIl9yZWYyIiwiY2FzdEltbXV0YWJsZSIsImZyZWV6ZSIsImluaXRDb21tYW5kcyIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJfdGhpcyRkaXNwb3NlSGFuZGxlciIsImdldCIsIlJlYWN0IiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltbXV0YWJsZS9FbG1Db21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FzdEltbXV0YWJsZSwgdHlwZSBEcmFmdCwgZnJlZXplLCB0eXBlIEltbXV0YWJsZSwgcHJvZHVjZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgbG9nTWVzc2FnZSB9IGZyb20gXCIuLi9Db21tb25cIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIERpc3Bvc2VGdW5jdGlvbiwgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHR5cGUgeyBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGEgcmVhY3QgY2xhc3MgY29tcG9uZW50IHVzaW5nIHRoZSBFbG1pc2ggcGF0dGVybi5cbiAqIEBleHBvcnRcbiAqIEBhYnN0cmFjdFxuICogQGNsYXNzIEVsbUNvbXBvbmVudFxuICogQGV4dGVuZHMge0NvbXBvbmVudDxUUHJvcHMsIFRNb2RlbD59XG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMuXG4gKiBAdGVtcGxhdGUgVFByb3BzIFRoZSB0eXBlIG9mIHRoZSBwcm9wcy5cbiAqL1xuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3R5bGUvdXNlUmVhY3RGdW5jdGlvbkNvbXBvbmVudHM6IFRoaXMgaXMgb25seSBmb3IgZG93bndhcmQgY29tcGF0aWJpbGl0eS5cbmFic3RyYWN0IGNsYXNzIEVsbUNvbXBvbmVudDxUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcblx0cHJpdmF0ZSBpbml0Q29tbWFuZHM6IE51bGxhYmxlPChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG5cdHByaXZhdGUgcmVhZG9ubHkgYnVmZmVyOiBUTWVzc2FnZVtdID0gW107XG5cdHByaXZhdGUgcnVubmluZyA9IGZhbHNlO1xuXHRwcml2YXRlIG1vdW50ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBjdXJyZW50TW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cblx0ICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBmb3IgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIHsoKSA9PiBUTW9kZWx9IGluaXQgVGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IFRQcm9wcywgaW5pdDogSW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sIG5hbWU6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBkaXNwb3NlSGFuZGxlcj86IERpc3Bvc2VGdW5jdGlvbjxJbW11dGFibGU8VE1vZGVsPj4pIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cblx0XHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZTxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdFx0aWYgKGZha2VPcHRpb25zPy5kaXNwYXRjaCkge1xuXHRcdFx0dGhpcy5kaXNwYXRjaCA9IGZha2VPcHRpb25zLmRpc3BhdGNoO1xuXHRcdH1cblxuXHRcdGNvbnN0IFttb2RlbCwgLi4uY29tbWFuZHNdID0gZmFrZU9wdGlvbnM/Lm1vZGVsID8gW2Zha2VPcHRpb25zLm1vZGVsIGFzIFRNb2RlbF0gOiBpbml0KHRoaXMucHJvcHMpO1xuXG5cdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIkluaXRpYWwgbW9kZWwgZm9yXCIsIG5hbWUsIG1vZGVsKTtcblxuXHRcdHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG5cdFx0dGhpcy5jdXJyZW50TW9kZWwgPSBjYXN0SW1tdXRhYmxlKGZyZWV6ZShtb2RlbCwgdHJ1ZSkpO1xuXHRcdHRoaXMuaW5pdENvbW1hbmRzID0gY29tbWFuZHM7XG5cdH1cblxuXHQvKipcblx0ICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG5cdCAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKTogdm9pZCB7XG5cdFx0dGhpcy5tb3VudGVkID0gdHJ1ZTtcblxuXHRcdGlmICh0aGlzLmluaXRDb21tYW5kcykge1xuXHRcdFx0ZXhlY0NtZCh0aGlzLmRpc3BhdGNoLCAuLi50aGlzLmluaXRDb21tYW5kcyk7XG5cdFx0XHR0aGlzLmluaXRDb21tYW5kcyA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIElzIGNhbGxlZCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBjb21wb25lbnQuXG5cdCAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuXHQgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG5cdCAqL1xuXHRwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQoKTogdm9pZCB7XG5cdFx0dGhpcy5kaXNwb3NlSGFuZGxlcj8uKHRoaXMuY3VycmVudE1vZGVsKTtcblx0XHR0aGlzLm1vdW50ZWQgPSBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBAcmVhZG9ubHlcblx0ICogQHR5cGUge1JlYWRvbmx5PFRNb2RlbD59XG5cdCAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby11bnVzZWQtY2xhc3MtY29tcG9uZW50LW1ldGhvZHMgLS0gV2UgbmVlZCBpdCBpbnRlcm5hbGx5LlxuXHRwdWJsaWMgZ2V0IG1vZGVsKCk6IEltbXV0YWJsZTxUTW9kZWw+IHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1lc3NhZ2V9IG1zZyBUaGUgbWVzc2FnZSB0byBkaXNwYXRjaC5cblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGRpc3BhdGNoID0gKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcblx0XHRpZiAodGhpcy5ydW5uaW5nKSB7XG5cdFx0XHR0aGlzLmJ1ZmZlci5wdXNoKG1zZyk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSB0cnVlO1xuXG5cdFx0bGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuXG5cdFx0ZG8ge1xuXHRcdFx0Y29uc3QgY3VycmVudE1lc3NhZ2UgPSBuZXh0TXNnO1xuXG5cdFx0XHRsb2dNZXNzYWdlKHRoaXMuY29tcG9uZW50TmFtZSwgY3VycmVudE1lc3NhZ2UpO1xuXG5cdFx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShjdXJyZW50TWVzc2FnZSwgdGhpcy5jdXJyZW50TW9kZWwsIHRoaXMucHJvcHMsIHsgZGVmZXIgfSk7XG5cblx0XHRcdGNvbnN0IGNvbW1hbmRzOiBVcGRhdGVSZXR1cm5UeXBlPFRNZXNzYWdlPiA9IFtdO1xuXG5cdFx0XHR0aGlzLmN1cnJlbnRNb2RlbCA9IHByb2R1Y2UodGhpcy5jdXJyZW50TW9kZWwsIChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLnRoaXMudXBkYXRlKGRyYWZ0LCBjdXJyZW50TWVzc2FnZSwgdGhpcy5wcm9wcywgeyBkZWZlciwgY2FsbEJhc2UgfSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0XHRleGVjQ21kKHRoaXMuZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdFx0bmV4dE1zZyA9IHRoaXMuYnVmZmVyLnNoaWZ0KCk7XG5cdFx0fSB3aGlsZSAobmV4dE1zZyk7XG5cblx0XHR0aGlzLnJ1bm5pbmcgPSBmYWxzZTtcblxuXHRcdGlmICh0aGlzLm1vdW50ZWQpIHtcblx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgdGhpcy5jdXJyZW50TW9kZWwpO1xuXHRcdFx0dGhpcy5mb3JjZVVwZGF0ZSgpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cblx0ICogQHBhcmFtIHtUTWVzc2FnZX0gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG5cdCAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBuZXcgbW9kZWwgKGNhbiBhbHNvIGJlIGFuIGVtcHR5IG9iamVjdCB7fSkgYW5kIGFuIG9wdGlvbmFsIG5ldyBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuXHQgKiBAYWJzdHJhY3Rcblx0ICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuXHQgKi9cblx0cHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuZXhwb3J0IHsgRWxtQ29tcG9uZW50IH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQVAsT0FBQTtBQUE0QyxTQUFBRSx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FB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
|
|
@@ -2,7 +2,7 @@ export { cmd } from "../cmd";
|
|
|
2
2
|
export { type ErrorMessage, errorMsg } from "../ErrorHandling";
|
|
3
3
|
export { type ElmOptions, init, type Logger } from "../Init";
|
|
4
4
|
export { mergeSubscriptions } from "../mergeSubscriptions";
|
|
5
|
-
export type { Cmd, Dispatch, InitResult, Message, SubscriptionResult, } from "../Types";
|
|
5
|
+
export type { Cmd, Dispatch, DisposeFunction, InitResult, Message, SubscriptionResult, } from "../Types";
|
|
6
6
|
export { errorHandler, handleError } from "./ErrorHandling";
|
|
7
7
|
export type { Subscription, UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
|
|
8
8
|
export { type UseElmishOptions, useElmish } from "./useElmish";
|
package/dist/immutable/index.js
CHANGED
|
@@ -51,4 +51,4 @@ var _Init = require("../Init");
|
|
|
51
51
|
var _mergeSubscriptions = require("../mergeSubscriptions");
|
|
52
52
|
var _ErrorHandling2 = require("./ErrorHandling");
|
|
53
53
|
var _useElmish = require("./useElmish");
|
|
54
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FcnJvckhhbmRsaW5nIiwiX0luaXQiLCJfbWVyZ2VTdWJzY3JpcHRpb25zIiwiX0Vycm9ySGFuZGxpbmcyIiwiX3VzZUVsbWlzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbW11dGFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4uL2NtZFwiO1xuZXhwb3J0IHsgdHlwZSBFcnJvck1lc3NhZ2UsIGVycm9yTXNnIH0gZnJvbSBcIi4uL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IHR5cGUgRWxtT3B0aW9ucywgaW5pdCwgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi4vSW5pdFwiO1xuZXhwb3J0IHsgbWVyZ2VTdWJzY3JpcHRpb25zIH0gZnJvbSBcIi4uL21lcmdlU3Vic2NyaXB0aW9uc1wiO1xuZXhwb3J0IHR5cGUge1xuXHRDbWQsXG5cdERpc3BhdGNoLFxuXHREaXNwb3NlRnVuY3Rpb24sXG5cdEluaXRSZXN1bHQsXG5cdE1lc3NhZ2UsXG5cdFN1YnNjcmlwdGlvblJlc3VsdCxcbn0gZnJvbSBcIi4uL1R5cGVzXCI7XG5leHBvcnQgeyBlcnJvckhhbmRsZXIsIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4vRXJyb3JIYW5kbGluZ1wiO1xuZXhwb3J0IHR5cGUge1xuXHRTdWJzY3JpcHRpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucyxcblx0VXBkYXRlTWFwLFxuXHRVcGRhdGVSZXR1cm5UeXBlLFxufSBmcm9tIFwiLi9UeXBlc1wiO1xuZXhwb3J0IHsgdHlwZSBVc2VFbG1pc2hPcHRpb25zLCB1c2VFbG1pc2ggfSBmcm9tIFwiLi91c2VFbG1pc2hcIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSCxPQUFBO0FBU0EsSUFBQUksZUFBQSxHQUFBSixPQUFBO0FBT0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Draft, type Immutable } from "immer";
|
|
2
|
-
import type { Dispatch, InitFunction, Message } from "../Types";
|
|
2
|
+
import type { Dispatch, DisposeFunction, InitFunction, Message } from "../Types";
|
|
3
3
|
import type { Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
|
|
4
4
|
/**
|
|
5
5
|
* Options for the `useElmish` hook.
|
|
@@ -38,6 +38,13 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
38
38
|
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
39
39
|
*/
|
|
40
40
|
subscription?: Subscription<TProps, TModel, TMessage>;
|
|
41
|
+
/**
|
|
42
|
+
* The optional `dispose` function. Called when the component unmounts
|
|
43
|
+
* or when `reInitOn` dependencies change, with the current model.
|
|
44
|
+
* Use this for cleanup side effects such as closing connections or clearing timers.
|
|
45
|
+
* @type {DisposeFunction<Immutable<TModel>>}
|
|
46
|
+
*/
|
|
47
|
+
dispose?: DisposeFunction<Immutable<TModel>>;
|
|
41
48
|
}
|
|
42
49
|
/**
|
|
43
50
|
* Hook to use the Elm architecture pattern in a function component.
|
|
@@ -46,7 +53,7 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
46
53
|
* @example
|
|
47
54
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
48
55
|
*/
|
|
49
|
-
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, reInitOn, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [Immutable<TModel>, Dispatch<TMessage>];
|
|
56
|
+
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, reInitOn, init, update, subscription, dispose, }: UseElmishOptions<TProps, TModel, TMessage>): [Immutable<TModel>, Dispatch<TMessage>];
|
|
50
57
|
declare function callUpdateMap<TProps, TModel, TMessage extends Message>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: Draft<TModel>, props: TProps, options: UpdateFunctionOptions<TProps, TModel, TMessage>): UpdateReturnType<TMessage>;
|
|
51
58
|
export type { UseElmishOptions };
|
|
52
59
|
export { callUpdateMap, useElmish };
|
|
@@ -44,7 +44,8 @@ function useElmish(_ref) {
|
|
|
44
44
|
reInitOn = _ref.reInitOn,
|
|
45
45
|
init = _ref.init,
|
|
46
46
|
update = _ref.update,
|
|
47
|
-
subscription = _ref.subscription
|
|
47
|
+
subscription = _ref.subscription,
|
|
48
|
+
dispose = _ref.dispose;
|
|
48
49
|
var _useState = (0, _react.useState)(null),
|
|
49
50
|
_useState2 = _slicedToArray(_useState, 2),
|
|
50
51
|
model = _useState2[0],
|
|
@@ -80,6 +81,7 @@ function useElmish(_ref) {
|
|
|
80
81
|
}
|
|
81
82
|
(0, _Common.useReInit)(setModel, reInitOn);
|
|
82
83
|
(0, _Common.useSubscription)(subscription, initializedModel, props, dispatch, reInitOn);
|
|
84
|
+
(0, _Common.useDispose)(dispose, initializedModel, reInitOn);
|
|
83
85
|
return [initializedModel, dispatch];
|
|
84
86
|
function handleMessage(nextMsg) {
|
|
85
87
|
if (!currentModel) {
|
|
@@ -125,4 +127,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
125
127
|
var msgName = msg.name;
|
|
126
128
|
return updateMap[msgName](msg, model, props, options);
|
|
127
129
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0NvbW1vbiIsIl9mYWtlT3B0aW9ucyIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbmd0aCIsIm4iLCJsIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiZGV2VG9vbHNSZWYiLCJ1c2VSZWR1eCIsImlzTW91bnRlZFJlZiIsInVzZUlzTW91bnRlZCIsImN1cnJlbnRNb2RlbCIsImN1cnJlbnQiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJnZXREaXNwYXRjaCIsImhhbmRsZU1lc3NhZ2UiLCJfU2VydmljZXMkbG9nZ2VyIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsIm1zZyIsIl9kZXZUb29sc1JlZiRjdXJyZW50Iiwic2VuZCIsImluaXRpYWxpemVkTW9kZWwiLCJlbmFibGVQYXRjaGVzIiwiY2FzdEltbXV0YWJsZSIsInJ1bkluaXQiLCJpbml0TW9kZWwiLCJmcmVlemUiLCJ1c2VSZUluaXQiLCJ1c2VTdWJzY3JpcHRpb24iLCJuZXh0TXNnIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibW9kaWZpZWQiLCJ1cGRhdGVkTW9kZWwiLCJjb21tYW5kcyIsImRlZmVycmVkQ29tbWFuZHMiLCJleGVjQ21kIiwiYXBwbHkiLCJjb25jYXQiLCJvcHRpb25zIiwicHJvZHVjZSIsImRyYWZ0IiwiY2FsbFVwZGF0ZU1hcCIsInBhdGNoZXMiLCJ1cGRhdGVNYXAiLCJtc2dOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltbXV0YWJsZS91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FzdEltbXV0YWJsZSwgdHlwZSBEcmFmdCwgZW5hYmxlUGF0Y2hlcywgZnJlZXplLCB0eXBlIEltbXV0YWJsZSwgcHJvZHVjZSB9IGZyb20gXCJpbW1lclwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGV4ZWNDbWQsIGdldERpc3BhdGNoLCBsb2dNZXNzYWdlLCBydW5Jbml0LCB1c2VJc01vdW50ZWQsIHVzZVJlZHV4LCB1c2VSZUluaXQsIHVzZVN1YnNjcmlwdGlvbiB9IGZyb20gXCIuLi9Db21tb25cIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHR5cGUgeyBDbWQsIERpc3BhdGNoLCBJbml0RnVuY3Rpb24sIE1lc3NhZ2UsIE51bGxhYmxlIH0gZnJvbSBcIi4uL1R5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgdHlwZSB7IFN1YnNjcmlwdGlvbiwgVXBkYXRlRnVuY3Rpb24sIFVwZGF0ZUZ1bmN0aW9uT3B0aW9ucywgVXBkYXRlTWFwLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogQXJyYXkgb2YgdmFsdWVzIHRoYXQgdHJpZ2dlciBhIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRyZUluaXRPbj86IHVua25vd25bXTtcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0cmVJbml0T24sXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW0ltbXV0YWJsZTxUTW9kZWw+LCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxJbW11dGFibGU8VE1vZGVsPj4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGRldlRvb2xzUmVmID0gdXNlUmVkdXgobmFtZSwgc2V0TW9kZWwpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VJc01vdW50ZWQoKTtcblxuXHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblxuXHRjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKFxuXHRcdGdldERpc3BhdGNoKFxuXHRcdFx0aGFuZGxlTWVzc2FnZSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0aWYgKCFpc01vdW50ZWRSZWYuY3VycmVudCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNldE1vZGVsKCgpID0+IHtcblx0XHRcdFx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCBjdXJyZW50TW9kZWwpO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGN1cnJlbnRNb2RlbDtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0KG1zZykgPT4ge1xuXHRcdFx0XHRkZXZUb29sc1JlZi5jdXJyZW50Py5zZW5kKG1zZy5uYW1lLCBjdXJyZW50TW9kZWwpO1xuXHRcdFx0fSxcblx0XHRcdGZha2VPcHRpb25zPy5kaXNwYXRjaCxcblx0XHQpLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gY3VycmVudE1vZGVsO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGVuYWJsZVBhdGNoZXMoKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBjYXN0SW1tdXRhYmxlKFxuXHRcdFx0cnVuSW5pdChcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0aW5pdCxcblx0XHRcdFx0cHJvcHMsXG5cdFx0XHRcdChpbml0TW9kZWwpID0+IHtcblx0XHRcdFx0XHRjdXJyZW50TW9kZWwgPSBjYXN0SW1tdXRhYmxlKGZyZWV6ZShpbml0TW9kZWwsIHRydWUpKTtcblx0XHRcdFx0XHRzZXRNb2RlbChjdXJyZW50TW9kZWwpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRkaXNwYXRjaCxcblx0XHRcdFx0ZGV2VG9vbHNSZWYuY3VycmVudCxcblx0XHRcdFx0ZmFrZU9wdGlvbnM/Lm1vZGVsLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0dXNlUmVJbml0KHNldE1vZGVsLCByZUluaXRPbik7XG5cdHVzZVN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24sIGluaXRpYWxpemVkTW9kZWwsIHByb3BzLCBkaXNwYXRjaCwgcmVJbml0T24pO1xuXG5cdHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xuXG5cdGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UobmV4dE1zZzogVE1lc3NhZ2UpOiBib29sZWFuIHtcblx0XHRpZiAoIWN1cnJlbnRNb2RlbCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxvZ01lc3NhZ2UobmFtZSwgbmV4dE1zZyk7XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNZXNzYWdlPigpO1xuXHRcdGNvbnN0IGNhbGxCYXNlID0gY3JlYXRlQ2FsbEJhc2U8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPihuZXh0TXNnLCBjdXJyZW50TW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbW9kaWZpZWQsIHVwZGF0ZWRNb2RlbCwgLi4uY29tbWFuZHNdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIGN1cnJlbnRNb2RlbCwgcHJvcHNSZWYuY3VycmVudCwge1xuXHRcdFx0ZGVmZXIsXG5cdFx0XHRjYWxsQmFzZSxcblx0XHR9KTtcblxuXHRcdGNvbnN0IGRlZmVycmVkQ29tbWFuZHMgPSBnZXREZWZlcnJlZCgpO1xuXG5cdFx0Y3VycmVudE1vZGVsID0gdXBkYXRlZE1vZGVsO1xuXG5cdFx0ZXhlY0NtZChkaXNwYXRjaCwgLi4uY29tbWFuZHMsIC4uLmRlZmVycmVkQ29tbWFuZHMpO1xuXG5cdFx0cmV0dXJuIG1vZGlmaWVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogSW1tdXRhYmxlPFRNb2RlbD4sXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogW2Jvb2xlYW4sIEltbXV0YWJsZTxUTW9kZWw+LCAuLi4oQ21kPFRNZXNzYWdlPiB8IHVuZGVmaW5lZClbXV0ge1xuXHRjb25zdCBjb21tYW5kczogKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW10gPSBbXTtcblx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHByb2R1Y2UoXG5cdFx0bW9kZWwsXG5cdFx0KGRyYWZ0OiBEcmFmdDxUTW9kZWw+KSA9PiB7XG5cdFx0XHRpZiAodHlwZW9mIHVwZGF0ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRcdGNvbW1hbmRzLnB1c2goLi4udXBkYXRlKGRyYWZ0LCBtc2csIHByb3BzLCBvcHRpb25zKSk7XG5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb21tYW5kcy5wdXNoKC4uLmNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIGRyYWZ0LCBwcm9wcywgb3B0aW9ucykpO1xuXHRcdH0sXG5cdFx0KHBhdGNoZXMpID0+IHtcblx0XHRcdG1vZGlmaWVkID0gcGF0Y2hlcy5sZW5ndGggPiAwO1xuXHRcdH0sXG5cdCk7XG5cblx0cmV0dXJuIFttb2RpZmllZCwgdXBkYXRlZE1vZGVsLCAuLi5jb21tYW5kc107XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBEcmFmdDxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFVwZGF0ZVJldHVyblR5cGU8VE1lc3NhZ2U+IHtcblx0Y29uc3QgbXNnTmFtZTogVE1lc3NhZ2VbXCJuYW1lXCJdID0gbXNnLm5hbWU7XG5cblx0cmV0dXJuIHVwZGF0ZU1hcFttc2dOYW1lXShtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCB0eXBlIHsgVXNlRWxtaXNoT3B0aW9ucyB9O1xuXG5leHBvcnQgeyBjYWxsVXBkYXRlTWFwLCB1c2VFbG1pc2ggfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUE0QyxTQUFBTyxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSixtQkFBQUQsQ0FBQSxRQUFBTSxLQUFBLENBQUFDLE9BQUEsQ0FBQVAsQ0FBQSxVQUFBUSxpQkFBQSxDQUFBUixDQUFBO0FBQUEsU0FBQVMsU0FBQVQsQ0FBQSxXQUFBVSxlQUFBLENBQUFWLENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFXLGdCQUFBO0FBQUEsU0FBQVQsaUJBQUFGLENBQUEsOEJBQUFZLE1BQUEsWUFBQVosQ0FBQSxDQUFBWSxNQUFBLENBQUFDLFFBQUEsYUFBQWIsQ0FBQSx1QkFBQU0sS0FBQSxDQUFBUSxJQUFBLENBQUFkLENBQUE7QUFBQSxTQUFBZSxlQUFBZixDQUFBLEVBQUFnQixDQUFBLFdBQUFOLGVBQUEsQ0FBQVYsQ0FBQSxLQUFBaUIscUJBQUEsQ0FBQWpCLENBQUEsRUFBQWdCLENBQUEsS0FBQWIsMkJBQUEsQ0FBQUgsQ0FBQSxFQUFBZ0IsQ0FBQSxLQUFBTCxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFOLFNBQUE7QUFBQSxTQUFBRiw0QkFBQUgsQ0FBQSxFQUFBa0IsQ0FBQSxRQUFBbEIsQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBUSxpQkFBQSxDQUFBUixDQUFBLEVBQUFrQixDQUFBLE9BQUFDLENBQUEsTUFBQUMsUUFBQSxDQUFBQyxJQUFBLENBQUFyQixDQUFBLEVBQUFzQixLQUFBLDZCQUFBSCxDQUFBLElBQUFuQixDQUFBLENBQUF1QixXQUFBLEtBQUFKLENBQUEsR0FBQW5CLENBQUEsQ0FBQXVCLFdBQUEsQ0FBQUMsSUFBQSxhQUFBTCxDQUFBLGNBQUFBLENBQUEsR0FBQWIsS0FBQSxDQUFBUSxJQUFBLENBQUFkLENBQUEsb0JBQUFtQixDQUFBLCtDQUFBTSxJQUFBLENBQUFOLENBQUEsSUFBQVgsaUJBQUEsQ0FBQVIsQ0FBQSxFQUFBa0IsQ0FBQTtBQUFBLFNBQUFWLGtCQUFBUixDQUFBLEVBQUFrQixDQUFBLGFBQUFBLENBQUEsSUFBQUEsQ0FBQSxHQUFBbEIsQ0FBQSxDQUFBMEIsTUFBQSxNQUFBUixDQUFBLEdBQUFsQixDQUFBLENBQUEwQixNQUFBLFlBQUFWLENBQUEsTUFBQVcsQ0FBQSxHQUFBckIsS0FBQSxDQUFBWSxDQUFBLEdBQUFGLENBQUEsR0FBQUUsQ0FBQSxFQUFBRixDQUFBLElBQUFXLENBQUEsQ0FBQVgsQ0FBQSxJQUFBaEIsQ0FBQSxDQUFBZ0IsQ0FBQSxVQUFBVyxDQUFBO0FBQUEsU0FBQVYsc0JBQUFqQixDQUFBLEVBQUE0QixDQUFBLFFBQUFULENBQUEsV0FBQW5CLENBQUEsZ0NBQUFZLE1BQUEsSUFBQVosQ0FBQSxDQUFBWSxNQUFBLENBQUFDLFFBQUEsS0FBQWIsQ0FBQSw0QkFBQW1CLENBQUEsUUFBQUgsQ0FBQSxFQUFBVyxDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxFQUFBWixDQUFBLE9BQUFhLENBQUEsT0FBQUMsQ0FBQSxpQkFBQUgsQ0FBQSxJQUFBVixDQUFBLEdBQUFBLENBQUEsQ0FBQUUsSUFBQSxDQUFBckIsQ0FBQSxHQUFBaUMsSUFBQSxRQUFBTCxDQUFBLFFBQUFNLE1BQUEsQ0FBQWYsQ0FBQSxNQUFBQSxDQUFBLFVBQUFZLENBQUEsdUJBQUFBLENBQUEsSUFBQWYsQ0FBQSxHQUFBYSxDQUFBLENBQUFSLElBQUEsQ0FBQUYsQ0FBQSxHQUFBZ0IsSUFBQSxNQUFBakIsQ0FBQSxDQUFBa0IsSUFBQSxDQUFBcEIsQ0FBQSxDQUFBcUIsS0FBQSxHQUFBbkIsQ0FBQSxDQUFBUSxNQUFBLEtBQUFFLENBQUEsR0FBQUcsQ0FBQSxpQkFBQS9CLENBQUEsSUFBQWdDLENBQUEsT0FBQUwsQ0FBQSxHQUFBM0IsQ0FBQSx5QkFBQStCLENBQUEsWUFBQVosQ0FBQSxlQUFBVyxDQUFBLEdBQUFYLENBQUEsY0FBQWUsTUFBQSxDQUFBSixDQUFBLE1BQUFBLENBQUEsMkJBQUFFLENBQUEsUUFBQUwsQ0FBQSxhQUFBVCxDQUFBO0FBQUEsU0FBQVIsZ0JBQUFWLENBQUEsUUFBQU0sS0FBQSxDQUFBQyxPQUFBLENBQUFQLENBQUEsVUFBQUEsQ0FBQTtBQUc1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFpQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTc0MsU0FBU0EsQ0FBQUMsSUFBQSxFQU9zRTtFQUFBLElBTnZGZixJQUFJLEdBQUFlLElBQUEsQ0FBSmYsSUFBSTtJQUNKZ0IsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7SUFDTEMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7SUFDUkMsSUFBSSxHQUFBSCxJQUFBLENBQUpHLElBQUk7SUFDSkMsTUFBTSxHQUFBSixJQUFBLENBQU5JLE1BQU07SUFDTkMsWUFBWSxHQUFBTCxJQUFBLENBQVpLLFlBQVk7RUFFWixJQUFBQyxTQUFBLEdBQTBCLElBQUFDLGVBQVEsRUFBOEIsSUFBSSxDQUFDO0lBQUFDLFVBQUEsR0FBQWhDLGNBQUEsQ0FBQThCLFNBQUE7SUFBOURHLEtBQUssR0FBQUQsVUFBQTtJQUFFRSxRQUFRLEdBQUFGLFVBQUE7RUFDdEIsSUFBTUcsUUFBUSxHQUFHLElBQUFDLGFBQU0sRUFBQ1gsS0FBSyxDQUFDO0VBQzlCLElBQU1ZLFdBQVcsR0FBRyxJQUFBQyxnQkFBUSxFQUFDN0IsSUFBSSxFQUFFeUIsUUFBUSxDQUFDO0VBQzVDLElBQU1LLFlBQVksR0FBRyxJQUFBQyxvQkFBWSxFQUFDLENBQUM7RUFFbkMsSUFBSUMsWUFBWSxHQUFHUixLQUFLO0VBRXhCLElBQUlFLFFBQVEsQ0FBQ08sT0FBTyxLQUFLakIsS0FBSyxFQUFFO0lBQy9CVSxRQUFRLENBQUNPLE9BQU8sR0FBR2pCLEtBQUs7RUFDekI7RUFFQSxJQUFNa0IsV0FBVyxHQUFHLElBQUFDLCtCQUFrQixFQUFtQixDQUFDO0VBRTFELElBQU1DLFFBQVEsR0FBRyxJQUFBQyxrQkFBVyxFQUMzQixJQUFBQyxtQkFBVyxFQUNWQyxhQUFhLEVBQ2IsWUFBTTtJQUNMLElBQUksQ0FBQ1QsWUFBWSxDQUFDRyxPQUFPLEVBQUU7TUFDMUI7SUFDRDtJQUVBUixRQUFRLENBQUMsWUFBTTtNQUFBLElBQUFlLGdCQUFBO01BQ2QsQ0FBQUEsZ0JBQUEsR0FBQUMsY0FBUSxDQUFDQyxNQUFNLGNBQUFGLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCRyxLQUFLLENBQUMsa0JBQWtCLEVBQUUzQyxJQUFJLEVBQUVnQyxZQUFZLENBQUM7TUFFOUQsT0FBT0EsWUFBWTtJQUNwQixDQUFDLENBQUM7RUFDSCxDQUFDLEVBQ0QsVUFBQ1ksR0FBRyxFQUFLO0lBQUEsSUFBQUMsb0JBQUE7SUFDUixDQUFBQSxvQkFBQSxHQUFBakIsV0FBVyxDQUFDSyxPQUFPLGNBQUFZLG9CQUFBLGVBQW5CQSxvQkFBQSxDQUFxQkMsSUFBSSxDQUFDRixHQUFHLENBQUM1QyxJQUFJLEVBQUVnQyxZQUFZLENBQUM7RUFDbEQsQ0FBQyxFQUNERSxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUUsUUFDZCxDQUFDLEVBQ0QsRUFDRCxDQUFDO0VBRUQsSUFBSVcsZ0JBQWdCLEdBQUdmLFlBQVk7RUFFbkMsSUFBSSxDQUFDZSxnQkFBZ0IsRUFBRTtJQUN0QixJQUFBQyxvQkFBYSxFQUFDLENBQUM7SUFFZkQsZ0JBQWdCLEdBQUcsSUFBQUUsb0JBQWEsRUFDL0IsSUFBQUMsZUFBTyxFQUNObEQsSUFBSSxFQUNKa0IsSUFBSSxFQUNKRixLQUFLLEVBQ0wsVUFBQ21DLFNBQVMsRUFBSztNQUNkbkIsWUFBWSxHQUFHLElBQUFpQixvQkFBYSxFQUFDLElBQUFHLGFBQU0sRUFBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO01BQ3JEMUIsUUFBUSxDQUFDTyxZQUFZLENBQUM7SUFDdkIsQ0FBQyxFQUNESSxRQUFRLEVBQ1JSLFdBQVcsQ0FBQ0ssT0FBTyxFQUNuQkMsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVWLEtBQ2QsQ0FDRCxDQUFDO0VBQ0Y7RUFFQSxJQUFBNkIsaUJBQVMsRUFBQzVCLFFBQVEsRUFBRVIsUUFBUSxDQUFDO0VBQzdCLElBQUFxQyx1QkFBZSxFQUFDbEMsWUFBWSxFQUFFMkIsZ0JBQWdCLEVBQUUvQixLQUFLLEVBQUVvQixRQUFRLEVBQUVuQixRQUFRLENBQUM7RUFFMUUsT0FBTyxDQUFDOEIsZ0JBQWdCLEVBQUVYLFFBQVEsQ0FBQztFQUVuQyxTQUFTRyxhQUFhQSxDQUFDZ0IsT0FBaUIsRUFBVztJQUNsRCxJQUFJLENBQUN2QixZQUFZLEVBQUU7TUFDbEIsT0FBTyxLQUFLO0lBQ2I7SUFFQSxJQUFBd0Isa0JBQVUsRUFBQ3hELElBQUksRUFBRXVELE9BQU8sQ0FBQztJQUV6QixJQUFBRSxZQUFBLEdBQTZCLElBQUFDLHlCQUFXLEVBQVcsQ0FBQztNQUFBQyxhQUFBLEdBQUFwRSxjQUFBLENBQUFrRSxZQUFBO01BQTdDRyxLQUFLLEdBQUFELGFBQUE7TUFBRUUsV0FBVyxHQUFBRixhQUFBO0lBQ3pCLElBQU1HLFFBQVEsR0FBRyxJQUFBQyw4QkFBYyxFQUEyQlIsT0FBTyxFQUFFdkIsWUFBWSxFQUFFTixRQUFRLENBQUNPLE9BQU8sRUFBRTtNQUFFMkIsS0FBSyxFQUFMQTtJQUFNLENBQUMsQ0FBQztJQUU3RyxJQUFBSSxXQUFBLEdBQThDQyxVQUFVLENBQUM5QyxNQUFNLEVBQUVvQyxPQUFPLEVBQUV2QixZQUFZLEVBQUVOLFFBQVEsQ0FBQ08sT0FBTyxFQUFFO1FBQ3pHMkIsS0FBSyxFQUFMQSxLQUFLO1FBQ0xFLFFBQVEsRUFBUkE7TUFDRCxDQUFDLENBQUM7TUFBQUksWUFBQSxHQUFBakYsUUFBQSxDQUFBK0UsV0FBQTtNQUhLRyxRQUFRLEdBQUFELFlBQUE7TUFBRUUsWUFBWSxHQUFBRixZQUFBO01BQUtHLFFBQVEsR0FBQXJGLGlCQUFBLENBQUFrRixZQUFBLEVBQUFwRSxLQUFBO0lBSzFDLElBQU13RSxnQkFBZ0IsR0FBR1QsV0FBVyxDQUFDLENBQUM7SUFFdEM3QixZQUFZLEdBQUdvQyxZQUFZO0lBRTNCRyxlQUFPLENBQUFDLEtBQUEsVUFBQ3BDLFFBQVEsRUFBQXFDLE1BQUEsQ0FBQWxHLGtCQUFBLENBQUs4RixRQUFRLEdBQUE5RixrQkFBQSxDQUFLK0YsZ0JBQWdCLEdBQUM7SUFFbkQsT0FBT0gsUUFBUTtFQUNoQjtBQUNEO0FBRUEsU0FBU0YsVUFBVUEsQ0FDbEI5QyxNQUFzRixFQUN0RnlCLEdBQWEsRUFDYnBCLEtBQXdCLEVBQ3hCUixLQUFhLEVBQ2IwRCxPQUF3RCxFQUNTO0VBQ2pFLElBQU1MLFFBQXVDLEdBQUcsRUFBRTtFQUNsRCxJQUFJRixRQUFRLEdBQUcsS0FBSztFQUNwQixJQUFNQyxZQUFZLEdBQUcsSUFBQU8sY0FBTyxFQUMzQm5ELEtBQUssRUFDTCxVQUFDb0QsS0FBb0IsRUFBSztJQUN6QixJQUFJLE9BQU96RCxNQUFNLEtBQUssVUFBVSxFQUFFO01BQ2pDa0QsUUFBUSxDQUFDekQsSUFBSSxDQUFBNEQsS0FBQSxDQUFiSCxRQUFRLEVBQUE5RixrQkFBQSxDQUFTNEMsTUFBTSxDQUFDeUQsS0FBSyxFQUFFaEMsR0FBRyxFQUFFNUIsS0FBSyxFQUFFMEQsT0FBTyxDQUFDLEVBQUM7TUFFcEQ7SUFDRDtJQUVBTCxRQUFRLENBQUN6RCxJQUFJLENBQUE0RCxLQUFBLENBQWJILFFBQVEsRUFBQTlGLGtCQUFBLENBQVNzRyxhQUFhLENBQUMxRCxNQUFNLEVBQUV5QixHQUFHLEVBQUVnQyxLQUFLLEVBQUU1RCxLQUFLLEVBQUUwRCxPQUFPLENBQUMsRUFBQztFQUNwRSxDQUFDLEVBQ0QsVUFBQ0ksT0FBTyxFQUFLO0lBQ1pYLFFBQVEsR0FBR1csT0FBTyxDQUFDNUUsTUFBTSxHQUFHLENBQUM7RUFDOUIsQ0FDRCxDQUFDO0VBRUQsUUFBUWlFLFFBQVEsRUFBRUMsWUFBWSxFQUFBSyxNQUFBLENBQUtKLFFBQVE7QUFDNUM7QUFFQSxTQUFTUSxhQUFhQSxDQUNyQkUsU0FBOEMsRUFDOUNuQyxHQUFhLEVBQ2JwQixLQUFvQixFQUNwQlIsS0FBYSxFQUNiMEQsT0FBd0QsRUFDM0I7RUFDN0IsSUFBTU0sT0FBeUIsR0FBR3BDLEdBQUcsQ0FBQzVDLElBQUk7RUFFMUMsT0FBTytFLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDLENBQUNwQyxHQUFHLEVBQUVwQixLQUFLLEVBQUVSLEtBQUssRUFBRTBELE9BQU8sQ0FBQztBQUN0RCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
130
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW1tZXIiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0NvbW1vbiIsIl9mYWtlT3B0aW9ucyIsIl9Jbml0IiwiX2NyZWF0ZUNhbGxCYXNlIiwiX2NyZWF0ZURlZmVyMyIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJfc2xpY2VkVG9BcnJheSIsImUiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJhIiwidCIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbmd0aCIsIm4iLCJsIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiZGlzcG9zZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImRldlRvb2xzUmVmIiwidXNlUmVkdXgiLCJpc01vdW50ZWRSZWYiLCJ1c2VJc01vdW50ZWQiLCJjdXJyZW50TW9kZWwiLCJjdXJyZW50IiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwiZ2V0RGlzcGF0Y2giLCJoYW5kbGVNZXNzYWdlIiwiX1NlcnZpY2VzJGxvZ2dlciIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJtc2ciLCJfZGV2VG9vbHNSZWYkY3VycmVudCIsInNlbmQiLCJpbml0aWFsaXplZE1vZGVsIiwiZW5hYmxlUGF0Y2hlcyIsImNhc3RJbW11dGFibGUiLCJydW5Jbml0IiwiaW5pdE1vZGVsIiwiZnJlZXplIiwidXNlUmVJbml0IiwidXNlU3Vic2NyaXB0aW9uIiwidXNlRGlzcG9zZSIsIm5leHRNc2ciLCJsb2dNZXNzYWdlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJtb2RpZmllZCIsInVwZGF0ZWRNb2RlbCIsImNvbW1hbmRzIiwiZGVmZXJyZWRDb21tYW5kcyIsImV4ZWNDbWQiLCJhcHBseSIsImNvbmNhdCIsIm9wdGlvbnMiLCJwcm9kdWNlIiwiZHJhZnQiLCJjYWxsVXBkYXRlTWFwIiwicGF0Y2hlcyIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW1tdXRhYmxlL3VzZUVsbWlzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXN0SW1tdXRhYmxlLCB0eXBlIERyYWZ0LCBlbmFibGVQYXRjaGVzLCBmcmVlemUsIHR5cGUgSW1tdXRhYmxlLCBwcm9kdWNlIH0gZnJvbSBcImltbWVyXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZXhlY0NtZCwgZ2V0RGlzcGF0Y2gsIGxvZ01lc3NhZ2UsIHJ1bkluaXQsIHVzZURpc3Bvc2UsIHVzZUlzTW91bnRlZCwgdXNlUmVkdXgsIHVzZVJlSW5pdCwgdXNlU3Vic2NyaXB0aW9uIH0gZnJvbSBcIi4uL0NvbW1vblwiO1xuaW1wb3J0IHsgZ2V0RmFrZU9wdGlvbnNPbmNlIH0gZnJvbSBcIi4uL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7IENtZCwgRGlzcGF0Y2gsIERpc3Bvc2VGdW5jdGlvbiwgSW5pdEZ1bmN0aW9uLCBNZXNzYWdlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9UeXBlc1wiO1xuaW1wb3J0IHsgY3JlYXRlQ2FsbEJhc2UgfSBmcm9tIFwiLi9jcmVhdGVDYWxsQmFzZVwiO1xuaW1wb3J0IHsgY3JlYXRlRGVmZXIgfSBmcm9tIFwiLi9jcmVhdGVEZWZlclwiO1xuaW1wb3J0IHR5cGUgeyBTdWJzY3JpcHRpb24sIFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVGdW5jdGlvbk9wdGlvbnMsIFVwZGF0ZU1hcCwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIEFycmF5IG9mIHZhbHVlcyB0aGF0IHRyaWdnZXIgYSByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgY29tcG9uZW50LlxuXHQgKi9cblx0cmVJbml0T24/OiB1bmtub3duW107XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYGRpc3Bvc2VgIGZ1bmN0aW9uLiBDYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IHVubW91bnRzXG5cdCAqIG9yIHdoZW4gYHJlSW5pdE9uYCBkZXBlbmRlbmNpZXMgY2hhbmdlLCB3aXRoIHRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBVc2UgdGhpcyBmb3IgY2xlYW51cCBzaWRlIGVmZmVjdHMgc3VjaCBhcyBjbG9zaW5nIGNvbm5lY3Rpb25zIG9yIGNsZWFyaW5nIHRpbWVycy5cblx0ICogQHR5cGUge0Rpc3Bvc2VGdW5jdGlvbjxJbW11dGFibGU8VE1vZGVsPj59XG5cdCAqL1xuXHRkaXNwb3NlPzogRGlzcG9zZUZ1bmN0aW9uPEltbXV0YWJsZTxUTW9kZWw+Pjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0cmVJbml0T24sXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxuXHRkaXNwb3NlLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW0ltbXV0YWJsZTxUTW9kZWw+LCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxJbW11dGFibGU8VE1vZGVsPj4+KG51bGwpO1xuXHRjb25zdCBwcm9wc1JlZiA9IHVzZVJlZihwcm9wcyk7XG5cdGNvbnN0IGRldlRvb2xzUmVmID0gdXNlUmVkdXgobmFtZSwgc2V0TW9kZWwpO1xuXHRjb25zdCBpc01vdW50ZWRSZWYgPSB1c2VJc01vdW50ZWQoKTtcblxuXHRsZXQgY3VycmVudE1vZGVsID0gbW9kZWw7XG5cblx0aWYgKHByb3BzUmVmLmN1cnJlbnQgIT09IHByb3BzKSB7XG5cdFx0cHJvcHNSZWYuY3VycmVudCA9IHByb3BzO1xuXHR9XG5cblx0Y29uc3QgZmFrZU9wdGlvbnMgPSBnZXRGYWtlT3B0aW9uc09uY2U8VE1vZGVsLCBUTWVzc2FnZT4oKTtcblxuXHRjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKFxuXHRcdGdldERpc3BhdGNoKFxuXHRcdFx0aGFuZGxlTWVzc2FnZSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0aWYgKCFpc01vdW50ZWRSZWYuY3VycmVudCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNldE1vZGVsKCgpID0+IHtcblx0XHRcdFx0XHRTZXJ2aWNlcy5sb2dnZXI/LmRlYnVnKFwiVXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCBjdXJyZW50TW9kZWwpO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGN1cnJlbnRNb2RlbDtcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0KG1zZykgPT4ge1xuXHRcdFx0XHRkZXZUb29sc1JlZi5jdXJyZW50Py5zZW5kKG1zZy5uYW1lLCBjdXJyZW50TW9kZWwpO1xuXHRcdFx0fSxcblx0XHRcdGZha2VPcHRpb25zPy5kaXNwYXRjaCxcblx0XHQpLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gY3VycmVudE1vZGVsO1xuXG5cdGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuXHRcdGVuYWJsZVBhdGNoZXMoKTtcblxuXHRcdGluaXRpYWxpemVkTW9kZWwgPSBjYXN0SW1tdXRhYmxlKFxuXHRcdFx0cnVuSW5pdChcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0aW5pdCxcblx0XHRcdFx0cHJvcHMsXG5cdFx0XHRcdChpbml0TW9kZWwpID0+IHtcblx0XHRcdFx0XHRjdXJyZW50TW9kZWwgPSBjYXN0SW1tdXRhYmxlKGZyZWV6ZShpbml0TW9kZWwsIHRydWUpKTtcblx0XHRcdFx0XHRzZXRNb2RlbChjdXJyZW50TW9kZWwpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRkaXNwYXRjaCxcblx0XHRcdFx0ZGV2VG9vbHNSZWYuY3VycmVudCxcblx0XHRcdFx0ZmFrZU9wdGlvbnM/Lm1vZGVsLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0dXNlUmVJbml0KHNldE1vZGVsLCByZUluaXRPbik7XG5cdHVzZVN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb24sIGluaXRpYWxpemVkTW9kZWwsIHByb3BzLCBkaXNwYXRjaCwgcmVJbml0T24pO1xuXHR1c2VEaXNwb3NlKGRpc3Bvc2UsIGluaXRpYWxpemVkTW9kZWwsIHJlSW5pdE9uKTtcblxuXHRyZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcblxuXHRmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKG5leHRNc2c6IFRNZXNzYWdlKTogYm9vbGVhbiB7XG5cdFx0aWYgKCFjdXJyZW50TW9kZWwpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgW2RlZmVyLCBnZXREZWZlcnJlZF0gPSBjcmVhdGVEZWZlcjxUTWVzc2FnZT4oKTtcblx0XHRjb25zdCBjYWxsQmFzZSA9IGNyZWF0ZUNhbGxCYXNlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4obmV4dE1zZywgY3VycmVudE1vZGVsLCBwcm9wc1JlZi5jdXJyZW50LCB7IGRlZmVyIH0pO1xuXG5cdFx0Y29uc3QgW21vZGlmaWVkLCB1cGRhdGVkTW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCBjdXJyZW50TW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHtcblx0XHRcdGRlZmVyLFxuXHRcdFx0Y2FsbEJhc2UsXG5cdFx0fSk7XG5cblx0XHRjb25zdCBkZWZlcnJlZENvbW1hbmRzID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGN1cnJlbnRNb2RlbCA9IHVwZGF0ZWRNb2RlbDtcblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IEltbXV0YWJsZTxUTW9kZWw+LFxuXHRwcm9wczogVFByb3BzLFxuXHRvcHRpb25zOiBVcGRhdGVGdW5jdGlvbk9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbik6IFtib29sZWFuLCBJbW11dGFibGU8VE1vZGVsPiwgLi4uKENtZDxUTWVzc2FnZT4gfCB1bmRlZmluZWQpW11dIHtcblx0Y29uc3QgY29tbWFuZHM6IChDbWQ8VE1lc3NhZ2U+IHwgdW5kZWZpbmVkKVtdID0gW107XG5cdGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXHRjb25zdCB1cGRhdGVkTW9kZWwgPSBwcm9kdWNlKFxuXHRcdG1vZGVsLFxuXHRcdChkcmFmdDogRHJhZnQ8VE1vZGVsPikgPT4ge1xuXHRcdFx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0XHRjb21tYW5kcy5wdXNoKC4uLnVwZGF0ZShkcmFmdCwgbXNnLCBwcm9wcywgb3B0aW9ucykpO1xuXG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tbWFuZHMucHVzaCguLi5jYWxsVXBkYXRlTWFwKHVwZGF0ZSwgbXNnLCBkcmFmdCwgcHJvcHMsIG9wdGlvbnMpKTtcblx0XHR9LFxuXHRcdChwYXRjaGVzKSA9PiB7XG5cdFx0XHRtb2RpZmllZCA9IHBhdGNoZXMubGVuZ3RoID4gMDtcblx0XHR9LFxuXHQpO1xuXG5cdHJldHVybiBbbW9kaWZpZWQsIHVwZGF0ZWRNb2RlbCwgLi4uY29tbWFuZHNdO1xufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuXHRtc2c6IFRNZXNzYWdlLFxuXHRtb2RlbDogRHJhZnQ8VE1vZGVsPixcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxlQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFBNEMsU0FBQU8sbUJBQUFDLENBQUEsV0FBQUMs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RixZQUFBLEVBQUF0RSxLQUFBO0lBSzFDLElBQU0wRSxnQkFBZ0IsR0FBR1QsV0FBVyxDQUFDLENBQUM7SUFFdEM5QixZQUFZLEdBQUdxQyxZQUFZO0lBRTNCRyxlQUFPLENBQUFDLEtBQUEsVUFBQ3JDLFFBQVEsRUFBQXNDLE1BQUEsQ0FBQXBHLGtCQUFBLENBQUtnRyxRQUFRLEdBQUFoRyxrQkFBQSxDQUFLaUcsZ0JBQWdCLEdBQUM7SUFFbkQsT0FBT0gsUUFBUTtFQUNoQjtBQUNEO0FBRUEsU0FBU0YsVUFBVUEsQ0FDbEJoRCxNQUFzRixFQUN0RjBCLEdBQWEsRUFDYnBCLEtBQXdCLEVBQ3hCVCxLQUFhLEVBQ2I0RCxPQUF3RCxFQUNTO0VBQ2pFLElBQU1MLFFBQXVDLEdBQUcsRUFBRTtFQUNsRCxJQUFJRixRQUFRLEdBQUcsS0FBSztFQUNwQixJQUFNQyxZQUFZLEdBQUcsSUFBQU8sY0FBTyxFQUMzQnBELEtBQUssRUFDTCxVQUFDcUQsS0FBb0IsRUFBSztJQUN6QixJQUFJLE9BQU8zRCxNQUFNLEtBQUssVUFBVSxFQUFFO01BQ2pDb0QsUUFBUSxDQUFDM0QsSUFBSSxDQUFBOEQsS0FBQSxDQUFiSCxRQUFRLEVBQUFoRyxrQkFBQSxDQUFTNEMsTUFBTSxDQUFDMkQsS0FBSyxFQUFFakMsR0FBRyxFQUFFN0IsS0FBSyxFQUFFNEQsT0FBTyxDQUFDLEVBQUM7TUFFcEQ7SUFDRDtJQUVBTCxRQUFRLENBQUMzRCxJQUFJLENBQUE4RCxLQUFBLENBQWJILFFBQVEsRUFBQWhHLGtCQUFBLENBQVN3RyxhQUFhLENBQUM1RCxNQUFNLEVBQUUwQixHQUFHLEVBQUVpQyxLQUFLLEVBQUU5RCxLQUFLLEVBQUU0RCxPQUFPLENBQUMsRUFBQztFQUNwRSxDQUFDLEVBQ0QsVUFBQ0ksT0FBTyxFQUFLO0lBQ1pYLFFBQVEsR0FBR1csT0FBTyxDQUFDOUUsTUFBTSxHQUFHLENBQUM7RUFDOUIsQ0FDRCxDQUFDO0VBRUQsUUFBUW1FLFFBQVEsRUFBRUMsWUFBWSxFQUFBSyxNQUFBLENBQUtKLFFBQVE7QUFDNUM7QUFFQSxTQUFTUSxhQUFhQSxDQUNyQkUsU0FBOEMsRUFDOUNwQyxHQUFhLEVBQ2JwQixLQUFvQixFQUNwQlQsS0FBYSxFQUNiNEQsT0FBd0QsRUFDM0I7RUFDN0IsSUFBTU0sT0FBeUIsR0FBR3JDLEdBQUcsQ0FBQzdDLElBQUk7RUFFMUMsT0FBT2lGLFNBQVMsQ0FBQ0MsT0FBTyxDQUFDLENBQUNyQyxHQUFHLEVBQUVwQixLQUFLLEVBQUVULEtBQUssRUFBRTRELE9BQU8sQ0FBQztBQUN0RCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -3,5 +3,5 @@ export { ElmComponent } from "./ElmComponent";
|
|
|
3
3
|
export { type ErrorMessage, errorHandler, errorMsg, handleError } from "./ErrorHandling";
|
|
4
4
|
export { type ElmOptions, init, type Logger } from "./Init";
|
|
5
5
|
export { mergeSubscriptions } from "./mergeSubscriptions";
|
|
6
|
-
export type { Cmd, Dispatch, InitResult, Message, MsgSource, Subscription, SubscriptionResult, UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
|
|
6
|
+
export type { Cmd, Dispatch, DisposeFunction, InitResult, Message, MsgSource, Subscription, SubscriptionResult, UpdateFunctionOptions, UpdateMap, UpdateReturnType, } from "./Types";
|
|
7
7
|
export { type UseElmishOptions, useElmish } from "./useElmish";
|
package/dist/index.js
CHANGED
|
@@ -57,4 +57,4 @@ var _ErrorHandling = require("./ErrorHandling");
|
|
|
57
57
|
var _Init = require("./Init");
|
|
58
58
|
var _mergeSubscriptions = require("./mergeSubscriptions");
|
|
59
59
|
var _useElmish = require("./useElmish");
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY21kIiwicmVxdWlyZSIsIl9FbG1Db21wb25lbnQiLCJfRXJyb3JIYW5kbGluZyIsIl9Jbml0IiwiX21lcmdlU3Vic2NyaXB0aW9ucyIsIl91c2VFbG1pc2giXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY21kIH0gZnJvbSBcIi4vY21kXCI7XG5leHBvcnQgeyBFbG1Db21wb25lbnQgfSBmcm9tIFwiLi9FbG1Db21wb25lbnRcIjtcbmV4cG9ydCB7IHR5cGUgRXJyb3JNZXNzYWdlLCBlcnJvckhhbmRsZXIsIGVycm9yTXNnLCBoYW5kbGVFcnJvciB9IGZyb20gXCIuL0Vycm9ySGFuZGxpbmdcIjtcbmV4cG9ydCB7IHR5cGUgRWxtT3B0aW9ucywgaW5pdCwgdHlwZSBMb2dnZXIgfSBmcm9tIFwiLi9Jbml0XCI7XG5leHBvcnQgeyBtZXJnZVN1YnNjcmlwdGlvbnMgfSBmcm9tIFwiLi9tZXJnZVN1YnNjcmlwdGlvbnNcIjtcbmV4cG9ydCB0eXBlIHtcblx0Q21kLFxuXHREaXNwYXRjaCxcblx0RGlzcG9zZUZ1bmN0aW9uLFxuXHRJbml0UmVzdWx0LFxuXHRNZXNzYWdlLFxuXHRNc2dTb3VyY2UsXG5cdFN1YnNjcmlwdGlvbixcblx0U3Vic2NyaXB0aW9uUmVzdWx0LFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcbmV4cG9ydCB7IHR5cGUgVXNlRWxtaXNoT3B0aW9ucywgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUosT0FBQTtBQWNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Dispatch, InitFunction, Message, Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
|
|
1
|
+
import type { Dispatch, DisposeFunction, InitFunction, Message, Subscription, UpdateFunction, UpdateFunctionOptions, UpdateMap, UpdateReturnType } from "./Types";
|
|
2
2
|
/**
|
|
3
3
|
* Options for the `useElmish` hook.
|
|
4
4
|
* @interface UseElmishOptions
|
|
@@ -36,6 +36,13 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
36
36
|
* @type {(UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>)}
|
|
37
37
|
*/
|
|
38
38
|
subscription?: Subscription<TProps, TModel, TMessage>;
|
|
39
|
+
/**
|
|
40
|
+
* The optional `dispose` function. Called when the component unmounts
|
|
41
|
+
* or when `reInitOn` dependencies change, with the current model.
|
|
42
|
+
* Use this for cleanup side effects such as closing connections or clearing timers.
|
|
43
|
+
* @type {DisposeFunction<TModel>}
|
|
44
|
+
*/
|
|
45
|
+
dispose?: DisposeFunction<TModel>;
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
48
|
* Hook to use the Elm architecture pattern in a function component.
|
|
@@ -44,7 +51,7 @@ interface UseElmishOptions<TProps, TModel, TMessage extends Message> {
|
|
|
44
51
|
* @example
|
|
45
52
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
46
53
|
*/
|
|
47
|
-
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, reInitOn, init, update, subscription, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
54
|
+
declare function useElmish<TProps, TModel, TMessage extends Message>({ name, props, reInitOn, init, update, subscription, dispose, }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
48
55
|
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>;
|
|
49
56
|
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>;
|
|
50
57
|
export type { UseElmishOptions };
|
package/dist/useElmish.js
CHANGED
|
@@ -50,7 +50,8 @@ function useElmish(_ref) {
|
|
|
50
50
|
reInitOn = _ref.reInitOn,
|
|
51
51
|
init = _ref.init,
|
|
52
52
|
update = _ref.update,
|
|
53
|
-
subscription = _ref.subscription
|
|
53
|
+
subscription = _ref.subscription,
|
|
54
|
+
dispose = _ref.dispose;
|
|
54
55
|
var _useState = (0, _react.useState)(null),
|
|
55
56
|
_useState2 = _slicedToArray(_useState, 2),
|
|
56
57
|
model = _useState2[0],
|
|
@@ -86,6 +87,7 @@ function useElmish(_ref) {
|
|
|
86
87
|
}, dispatch, devToolsRef.current, fakeOptions === null || fakeOptions === void 0 ? void 0 : fakeOptions.model);
|
|
87
88
|
(0, _Common.useReInit)(setModel, reInitOn);
|
|
88
89
|
(0, _Common.useSubscription)(subscription, initializedModel, props, dispatch, reInitOn);
|
|
90
|
+
(0, _Common.useDispose)(dispose, initializedModel, reInitOn);
|
|
89
91
|
return [initializedModel, dispatch];
|
|
90
92
|
function handleMessage(nextMsg) {
|
|
91
93
|
if (!currentModel) {
|
|
@@ -130,4 +132,4 @@ function callUpdateMap(updateMap, msg, model, props, options) {
|
|
|
130
132
|
var msgName = msg.name;
|
|
131
133
|
return updateMap[msgName](msg, model, props, options);
|
|
132
134
|
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwibW9kZWwiLCJzZXRNb2RlbCIsInByb3BzUmVmIiwidXNlUmVmIiwiZGV2VG9vbHNSZWYiLCJ1c2VSZWR1eCIsImlzTW91bnRlZFJlZiIsInVzZUlzTW91bnRlZCIsImN1cnJlbnRNb2RlbCIsImN1cnJlbnQiLCJmYWtlT3B0aW9ucyIsImdldEZha2VPcHRpb25zT25jZSIsImRpc3BhdGNoIiwidXNlQ2FsbGJhY2siLCJnZXREaXNwYXRjaCIsImhhbmRsZU1lc3NhZ2UiLCJwcmV2TW9kZWwiLCJfU2VydmljZXMkbG9nZ2VyIiwidXBkYXRlZE1vZGVsIiwiU2VydmljZXMiLCJsb2dnZXIiLCJkZWJ1ZyIsIm1zZyIsIl9kZXZUb29sc1JlZiRjdXJyZW50Iiwic2VuZCIsImluaXRpYWxpemVkTW9kZWwiLCJydW5Jbml0IiwiaW5pdE1vZGVsIiwidXNlUmVJbml0IiwidXNlU3Vic2NyaXB0aW9uIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwibG9nTWVzc2FnZSIsIl9jcmVhdGVEZWZlciIsImNyZWF0ZURlZmVyIiwiX2NyZWF0ZURlZmVyMiIsImRlZmVyIiwiZ2V0RGVmZXJyZWQiLCJjYWxsQmFzZSIsImNyZWF0ZUNhbGxCYXNlIiwiX2NhbGxVcGRhdGUiLCJjYWxsVXBkYXRlIiwiX2NhbGxVcGRhdGUyIiwibmV3TW9kZWwiLCJjb21tYW5kcyIsIl9nZXREZWZlcnJlZCIsIl9nZXREZWZlcnJlZDIiLCJkZWZlcnJlZE1vZGVsIiwiZGVmZXJyZWRDb21tYW5kcyIsIm1vZGVsSGFzQ2hhbmdlZCIsImV4ZWNDbWQiLCJjb25jYXQiLCJvcHRpb25zIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCIsIm1zZ05hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlRWxtaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuXHRleGVjQ21kLFxuXHRnZXREaXNwYXRjaCxcblx0bG9nTWVzc2FnZSxcblx0bW9kZWxIYXNDaGFuZ2VkLFxuXHRydW5Jbml0LFxuXHR1c2VJc01vdW50ZWQsXG5cdHVzZVJlZHV4LFxuXHR1c2VSZUluaXQsXG5cdHVzZVN1YnNjcmlwdGlvbixcbn0gZnJvbSBcIi4vQ29tbW9uXCI7XG5pbXBvcnQgeyBjcmVhdGVDYWxsQmFzZSB9IGZyb20gXCIuL2NyZWF0ZUNhbGxCYXNlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZlciB9IGZyb20gXCIuL2NyZWF0ZURlZmVyXCI7XG5pbXBvcnQgeyBnZXRGYWtlT3B0aW9uc09uY2UgfSBmcm9tIFwiLi9mYWtlT3B0aW9uc1wiO1xuaW1wb3J0IHsgU2VydmljZXMgfSBmcm9tIFwiLi9Jbml0XCI7XG5pbXBvcnQgdHlwZSB7XG5cdERpc3BhdGNoLFxuXHRJbml0RnVuY3Rpb24sXG5cdE1lc3NhZ2UsXG5cdE51bGxhYmxlLFxuXHRTdWJzY3JpcHRpb24sXG5cdFVwZGF0ZUZ1bmN0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbk9wdGlvbnMsXG5cdFVwZGF0ZU1hcCxcblx0VXBkYXRlUmV0dXJuVHlwZSxcbn0gZnJvbSBcIi4vVHlwZXNcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHVzZUVsbWlzaGAgaG9vay5cbiAqIEBpbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uc1xuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKiBAdGVtcGxhdGUgVE1vZGVsIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cbiAqIEB0ZW1wbGF0ZSBUTWVzc2FnZSBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZXMgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4ge1xuXHQvKipcblx0ICogVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudC4gVGhpcyBpcyB1c2VkIGZvciBsb2dnaW5nIG9ubHkuXG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKlxuXHQgKiBUaGUgcHJvcHMgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuXG5cdCAqIEB0eXBlIHtUUHJvcHN9XG5cdCAqL1xuXHRwcm9wczogVFByb3BzO1xuXHQvKipcblx0ICogQXJyYXkgb2YgdmFsdWVzIHRoYXQgdHJpZ2dlciBhIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRyZUluaXRPbj86IHVua25vd25bXTtcblx0LyoqXG5cdCAqIFRoZSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnRzIG1vZGVsLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UuXG5cdCAqIEB0eXBlIHtJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPn1cblx0ICovXG5cdGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+O1xuXHQvKipcblx0ICogVGhlIGB1cGRhdGVgIGZ1bmN0aW9uIG9yIHVwZGF0ZSBtYXAgb2JqZWN0LlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBvcHRpb25hbCBgc3Vic2NyaXB0aW9uYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7KFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPil9XG5cdCAqL1xuXHRzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5mdW5jdGlvbiB1c2VFbG1pc2g8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oe1xuXHRuYW1lLFxuXHRwcm9wcyxcblx0cmVJbml0T24sXG5cdGluaXQsXG5cdHVwZGF0ZSxcblx0c3Vic2NyaXB0aW9uLFxufTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG5cdGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG5cdGNvbnN0IHByb3BzUmVmID0gdXNlUmVmKHByb3BzKTtcblx0Y29uc3QgZGV2VG9vbHNSZWYgPSB1c2VSZWR1eChuYW1lLCBzZXRNb2RlbCk7XG5cdGNvbnN0IGlzTW91bnRlZFJlZiA9IHVzZUlzTW91bnRlZCgpO1xuXG5cdGxldCBjdXJyZW50TW9kZWwgPSBtb2RlbDtcblxuXHRpZiAocHJvcHNSZWYuY3VycmVudCAhPT0gcHJvcHMpIHtcblx0XHRwcm9wc1JlZi5jdXJyZW50ID0gcHJvcHM7XG5cdH1cblxuXHRjb25zdCBmYWtlT3B0aW9ucyA9IGdldEZha2VPcHRpb25zT25jZTxUTW9kZWwsIFRNZXNzYWdlPigpO1xuXG5cdGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soXG5cdFx0Z2V0RGlzcGF0Y2goXG5cdFx0XHRoYW5kbGVNZXNzYWdlLFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRpZiAoIWlzTW91bnRlZFJlZi5jdXJyZW50KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2V0TW9kZWwoKHByZXZNb2RlbCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuXHRcdFx0XHRcdFNlcnZpY2VzLmxvZ2dlcj8uZGVidWcoXCJVcGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS10eXBlLWFzc2VydGlvbiAtLSBXZSBhbHdheXMgaGF2ZSBhIGZ1bGwgbW9kZWwgaGVyZVxuXHRcdFx0XHRcdHJldHVybiB1cGRhdGVkTW9kZWwgYXMgVE1vZGVsO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cdFx0XHQobXNnKSA9PiB7XG5cdFx0XHRcdGRldlRvb2xzUmVmLmN1cnJlbnQ/LnNlbmQobXNnLm5hbWUsIHsgLi4uY3VycmVudE1vZGVsIH0pO1xuXHRcdFx0fSxcblx0XHRcdGZha2VPcHRpb25zPy5kaXNwYXRjaCxcblx0XHQpLFxuXHRcdFtdLFxuXHQpO1xuXG5cdGxldCBpbml0aWFsaXplZE1vZGVsID0gY3VycmVudE1vZGVsO1xuXG5cdGluaXRpYWxpemVkTW9kZWwgPz89IHJ1bkluaXQoXG5cdFx0bmFtZSxcblx0XHRpbml0LFxuXHRcdHByb3BzLFxuXHRcdChpbml0TW9kZWwpID0+IHtcblx0XHRcdGN1cnJlbnRNb2RlbCA9IGluaXRNb2RlbDtcblx0XHRcdHNldE1vZGVsKGN1cnJlbnRNb2RlbCk7XG5cdFx0fSxcblx0XHRkaXNwYXRjaCxcblx0XHRkZXZUb29sc1JlZi5jdXJyZW50LFxuXHRcdGZha2VPcHRpb25zPy5tb2RlbCxcblx0KTtcblxuXHR1c2VSZUluaXQoc2V0TW9kZWwsIHJlSW5pdE9uKTtcblx0dXNlU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbiwgaW5pdGlhbGl6ZWRNb2RlbCwgcHJvcHMsIGRpc3BhdGNoLCByZUluaXRPbik7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghY3VycmVudE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwgfSBhcyBUTW9kZWw7XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQVdBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUFrQyxTQUFBTSxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSixtQkFBQUQsQ0FBQSxRQUFBTSxLQUFBLENBQUFDLE9BQUEsQ0FBQVAsQ0FBQSxVQUFBUSxpQkFBQSxDQUFBUixDQUFBO0FBQUEsU0FBQVMsU0FBQVQsQ0FBQSxXQUFBVSxlQUFBLENBQUFWLENBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsQ0FBQSxLQUFBRywyQkFBQSxDQUFBSCxDQUFBLEtBQUFXLGdCQUFBO0FBQUEsU0FBQVQsaUJBQUFGLENBQUEsOEJBQUFZLE1BQUEsWUFBQVosQ0FBQSxDQUFBWSxNQUFBLENBQUFDLFFBQUEsYUFBQWIsQ0FBQSx1QkFBQU0sS0FBQSxDQUFBUSxJQUFB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
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX0NvbW1vbiIsIl9jcmVhdGVDYWxsQmFzZSIsIl9jcmVhdGVEZWZlcjMiLCJfZmFrZU9wdGlvbnMiLCJfSW5pdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfdG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9ub25JdGVyYWJsZVJlc3QiLCJTeW1ib2wiLCJpdGVyYXRvciIsImZyb20iLCJvd25LZXlzIiwiZSIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiYSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibiIsImwiLCJ1IiwiZiIsIm5leHQiLCJkb25lIiwidXNlRWxtaXNoIiwiX3JlZiIsInByb3BzIiwicmVJbml0T24iLCJpbml0IiwidXBkYXRlIiwic3Vic2NyaXB0aW9uIiwiZGlzcG9zZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm1vZGVsIiwic2V0TW9kZWwiLCJwcm9wc1JlZiIsInVzZVJlZiIsImRldlRvb2xzUmVmIiwidXNlUmVkdXgiLCJpc01vdW50ZWRSZWYiLCJ1c2VJc01vdW50ZWQiLCJjdXJyZW50TW9kZWwiLCJjdXJyZW50IiwiZmFrZU9wdGlvbnMiLCJnZXRGYWtlT3B0aW9uc09uY2UiLCJkaXNwYXRjaCIsInVzZUNhbGxiYWNrIiwiZ2V0RGlzcGF0Y2giLCJoYW5kbGVNZXNzYWdlIiwicHJldk1vZGVsIiwiX1NlcnZpY2VzJGxvZ2dlciIsInVwZGF0ZWRNb2RlbCIsIlNlcnZpY2VzIiwibG9nZ2VyIiwiZGVidWciLCJtc2ciLCJfZGV2VG9vbHNSZWYkY3VycmVudCIsInNlbmQiLCJpbml0aWFsaXplZE1vZGVsIiwicnVuSW5pdCIsImluaXRNb2RlbCIsInVzZVJlSW5pdCIsInVzZVN1YnNjcmlwdGlvbiIsInVzZURpc3Bvc2UiLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJsb2dNZXNzYWdlIiwiX2NyZWF0ZURlZmVyIiwiY3JlYXRlRGVmZXIiLCJfY3JlYXRlRGVmZXIyIiwiZGVmZXIiLCJnZXREZWZlcnJlZCIsImNhbGxCYXNlIiwiY3JlYXRlQ2FsbEJhc2UiLCJfY2FsbFVwZGF0ZSIsImNhbGxVcGRhdGUiLCJfY2FsbFVwZGF0ZTIiLCJuZXdNb2RlbCIsImNvbW1hbmRzIiwiX2dldERlZmVycmVkIiwiX2dldERlZmVycmVkMiIsImRlZmVycmVkTW9kZWwiLCJkZWZlcnJlZENvbW1hbmRzIiwibW9kZWxIYXNDaGFuZ2VkIiwiZXhlY0NtZCIsImNvbmNhdCIsIm9wdGlvbnMiLCJjYWxsVXBkYXRlTWFwIiwidXBkYXRlTWFwIiwibXNnTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG5cdGV4ZWNDbWQsXG5cdGdldERpc3BhdGNoLFxuXHRsb2dNZXNzYWdlLFxuXHRtb2RlbEhhc0NoYW5nZWQsXG5cdHJ1bkluaXQsXG5cdHVzZURpc3Bvc2UsXG5cdHVzZUlzTW91bnRlZCxcblx0dXNlUmVkdXgsXG5cdHVzZVJlSW5pdCxcblx0dXNlU3Vic2NyaXB0aW9uLFxufSBmcm9tIFwiLi9Db21tb25cIjtcbmltcG9ydCB7IGNyZWF0ZUNhbGxCYXNlIH0gZnJvbSBcIi4vY3JlYXRlQ2FsbEJhc2VcIjtcbmltcG9ydCB7IGNyZWF0ZURlZmVyIH0gZnJvbSBcIi4vY3JlYXRlRGVmZXJcIjtcbmltcG9ydCB7IGdldEZha2VPcHRpb25zT25jZSB9IGZyb20gXCIuL2Zha2VPcHRpb25zXCI7XG5pbXBvcnQgeyBTZXJ2aWNlcyB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB0eXBlIHtcblx0RGlzcGF0Y2gsXG5cdERpc3Bvc2VGdW5jdGlvbixcblx0SW5pdEZ1bmN0aW9uLFxuXHRNZXNzYWdlLFxuXHROdWxsYWJsZSxcblx0U3Vic2NyaXB0aW9uLFxuXHRVcGRhdGVGdW5jdGlvbixcblx0VXBkYXRlRnVuY3Rpb25PcHRpb25zLFxuXHRVcGRhdGVNYXAsXG5cdFVwZGF0ZVJldHVyblR5cGUsXG59IGZyb20gXCIuL1R5cGVzXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB1c2VFbG1pc2hgIGhvb2suXG4gKiBAaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnNcbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgVGhlIHR5cGUgb2YgdGhlIHByb3BzLlxuICogQHRlbXBsYXRlIFRNb2RlbCBUaGUgdHlwZSBvZiB0aGUgbW9kZWwuXG4gKiBAdGVtcGxhdGUgVE1lc3NhZ2UgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKi9cbmludGVyZmFjZSBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+IHtcblx0LyoqXG5cdCAqIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuIFRoaXMgaXMgdXNlZCBmb3IgbG9nZ2luZyBvbmx5LlxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHByb3BzIHBhc3NlZCB0byB0aGUgY29tcG9uZW50LlxuXHQgKiBAdHlwZSB7VFByb3BzfVxuXHQgKi9cblx0cHJvcHM6IFRQcm9wcztcblx0LyoqXG5cdCAqIEFycmF5IG9mIHZhbHVlcyB0aGF0IHRyaWdnZXIgYSByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgY29tcG9uZW50LlxuXHQgKi9cblx0cmVJbml0T24/OiB1bmtub3duW107XG5cdC8qKlxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cyBtb2RlbC4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbmNlLlxuXHQgKiBAdHlwZSB7SW5pdEZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT59XG5cdCAqL1xuXHRpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPjtcblx0LyoqXG5cdCAqIFRoZSBgdXBkYXRlYCBmdW5jdGlvbiBvciB1cGRhdGUgbWFwIG9iamVjdC5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0dXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYHN1YnNjcmlwdGlvbmAgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgb25jZS5cblx0ICogQHR5cGUgeyhVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+IHwgVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pfVxuXHQgKi9cblx0c3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT47XG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9uYWwgYGRpc3Bvc2VgIGZ1bmN0aW9uLiBDYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IHVubW91bnRzXG5cdCAqIG9yIHdoZW4gYHJlSW5pdE9uYCBkZXBlbmRlbmNpZXMgY2hhbmdlLCB3aXRoIHRoZSBjdXJyZW50IG1vZGVsLlxuXHQgKiBVc2UgdGhpcyBmb3IgY2xlYW51cCBzaWRlIGVmZmVjdHMgc3VjaCBhcyBjbG9zaW5nIGNvbm5lY3Rpb25zIG9yIGNsZWFyaW5nIHRpbWVycy5cblx0ICogQHR5cGUge0Rpc3Bvc2VGdW5jdGlvbjxUTW9kZWw+fVxuXHQgKi9cblx0ZGlzcG9zZT86IERpc3Bvc2VGdW5jdGlvbjxUTW9kZWw+O1xufVxuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0ge1VzZUVsbWlzaE9wdGlvbnN9IG9wdGlvbnMgVGhlIG9wdGlvbnMgcGFzc2VkIHRoZSB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0aGUgY3VycmVudCBtb2RlbCBhbmQgdGhlIGRpc3BhdGNoZXIuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgW21vZGVsLCBkaXNwYXRjaF0gPSB1c2VFbG1pc2goeyBwcm9wcywgaW5pdCwgdXBkYXRlLCBuYW1lOiBcIk15Q29tcG9uZW50XCIgfSk7XG4gKi9cbmZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlPih7XG5cdG5hbWUsXG5cdHByb3BzLFxuXHRyZUluaXRPbixcblx0aW5pdCxcblx0dXBkYXRlLFxuXHRzdWJzY3JpcHRpb24sXG5cdGRpc3Bvc2UsXG59OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcblx0Y29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcblx0Y29uc3QgcHJvcHNSZWYgPSB1c2VSZWYocHJvcHMpO1xuXHRjb25zdCBkZXZUb29sc1JlZiA9IHVzZVJlZHV4KG5hbWUsIHNldE1vZGVsKTtcblx0Y29uc3QgaXNNb3VudGVkUmVmID0gdXNlSXNNb3VudGVkKCk7XG5cblx0bGV0IGN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuXG5cdGlmIChwcm9wc1JlZi5jdXJyZW50ICE9PSBwcm9wcykge1xuXHRcdHByb3BzUmVmLmN1cnJlbnQgPSBwcm9wcztcblx0fVxuXG5cdGNvbnN0IGZha2VPcHRpb25zID0gZ2V0RmFrZU9wdGlvbnNPbmNlPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VDYWxsYmFjayhcblx0XHRnZXREaXNwYXRjaChcblx0XHRcdGhhbmRsZU1lc3NhZ2UsXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGlmICghaXNNb3VudGVkUmVmLmN1cnJlbnQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzZXRNb2RlbCgocHJldk1vZGVsKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG5cdFx0XHRcdFx0U2VydmljZXMubG9nZ2VyPy5kZWJ1ZyhcIlVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uIC0tIFdlIGFsd2F5cyBoYXZlIGEgZnVsbCBtb2RlbCBoZXJlXG5cdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2RlbCBhcyBUTW9kZWw7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblx0XHRcdChtc2cpID0+IHtcblx0XHRcdFx0ZGV2VG9vbHNSZWYuY3VycmVudD8uc2VuZChtc2cubmFtZSwgeyAuLi5jdXJyZW50TW9kZWwgfSk7XG5cdFx0XHR9LFxuXHRcdFx0ZmFrZU9wdGlvbnM/LmRpc3BhdGNoLFxuXHRcdCksXG5cdFx0W10sXG5cdCk7XG5cblx0bGV0IGluaXRpYWxpemVkTW9kZWwgPSBjdXJyZW50TW9kZWw7XG5cblx0aW5pdGlhbGl6ZWRNb2RlbCA/Pz0gcnVuSW5pdChcblx0XHRuYW1lLFxuXHRcdGluaXQsXG5cdFx0cHJvcHMsXG5cdFx0KGluaXRNb2RlbCkgPT4ge1xuXHRcdFx0Y3VycmVudE1vZGVsID0gaW5pdE1vZGVsO1xuXHRcdFx0c2V0TW9kZWwoY3VycmVudE1vZGVsKTtcblx0XHR9LFxuXHRcdGRpc3BhdGNoLFxuXHRcdGRldlRvb2xzUmVmLmN1cnJlbnQsXG5cdFx0ZmFrZU9wdGlvbnM/Lm1vZGVsLFxuXHQpO1xuXG5cdHVzZVJlSW5pdChzZXRNb2RlbCwgcmVJbml0T24pO1xuXHR1c2VTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uLCBpbml0aWFsaXplZE1vZGVsLCBwcm9wcywgZGlzcGF0Y2gsIHJlSW5pdE9uKTtcblx0dXNlRGlzcG9zZShkaXNwb3NlLCBpbml0aWFsaXplZE1vZGVsLCByZUluaXRPbik7XG5cblx0cmV0dXJuIFtpbml0aWFsaXplZE1vZGVsLCBkaXNwYXRjaF07XG5cblx0ZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShuZXh0TXNnOiBUTWVzc2FnZSk6IGJvb2xlYW4ge1xuXHRcdGlmICghY3VycmVudE1vZGVsKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cblx0XHRsb2dNZXNzYWdlKG5hbWUsIG5leHRNc2cpO1xuXG5cdFx0Y29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwgfSBhcyBUTW9kZWw7XG5cblx0XHRjb25zdCBbZGVmZXIsIGdldERlZmVycmVkXSA9IGNyZWF0ZURlZmVyPFRNb2RlbCwgVE1lc3NhZ2U+KCk7XG5cdFx0Y29uc3QgY2FsbEJhc2UgPSBjcmVhdGVDYWxsQmFzZShuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIgfSk7XG5cblx0XHRjb25zdCBbbmV3TW9kZWwsIC4uLmNvbW1hbmRzXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB1cGRhdGVkTW9kZWwsIHByb3BzUmVmLmN1cnJlbnQsIHsgZGVmZXIsIGNhbGxCYXNlIH0pO1xuXG5cdFx0Y29uc3QgW2RlZmVycmVkTW9kZWwsIGRlZmVycmVkQ29tbWFuZHNdID0gZ2V0RGVmZXJyZWQoKTtcblxuXHRcdGlmIChtb2RlbEhhc0NoYW5nZWQoY3VycmVudE1vZGVsLCB7IC4uLmRlZmVycmVkTW9kZWwsIC4uLm5ld01vZGVsIH0pKSB7XG5cdFx0XHRjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4uZGVmZXJyZWRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuXHRcdFx0bW9kaWZpZWQgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGV4ZWNDbWQoZGlzcGF0Y2gsIC4uLmNvbW1hbmRzLCAuLi5kZWZlcnJlZENvbW1hbmRzKTtcblxuXHRcdHJldHVybiBtb2RpZmllZDtcblx0fVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2U+KFxuXHR1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcblx0bXNnOiBUTWVzc2FnZSxcblx0bW9kZWw6IFRNb2RlbCxcblx0cHJvcHM6IFRQcm9wcyxcblx0b3B0aW9uczogVXBkYXRlRnVuY3Rpb25PcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG4pOiBVcGRhdGVSZXR1cm5UeXBlPFRNb2RlbCwgVE1lc3NhZ2U+IHtcblx0aWYgKHR5cGVvZiB1cGRhdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiB1cGRhdGUobW9kZWwsIG1zZywgcHJvcHMsIG9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcywgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZT4oXG5cdHVwZGF0ZU1hcDogVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4sXG5cdG1zZzogVE1lc3NhZ2UsXG5cdG1vZGVsOiBUTW9kZWwsXG5cdHByb3BzOiBUUHJvcHMsXG5cdG9wdGlvbnM6IFVwZGF0ZUZ1bmN0aW9uT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuKTogVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNZXNzYWdlPiB7XG5cdGNvbnN0IG1zZ05hbWU6IFRNZXNzYWdlW1wibmFtZVwiXSA9IG1zZy5uYW1lO1xuXG5cdHJldHVybiB1cGRhdGVNYXBbbXNnTmFtZV0obXNnLCBtb2RlbCwgcHJvcHMsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgdHlwZSB7IFVzZUVsbWlzaE9wdGlvbnMgfTtcblxuZXhwb3J0IHsgY2FsbFVwZGF0ZSwgY2FsbFVwZGF0ZU1hcCwgdXNlRWxtaXNoIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQVlBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FB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
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.4.0",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "npm run build:types && npm run build:js",
|
|
9
|
-
"build:types": "tsc --emitDeclarationOnly --project ./
|
|
9
|
+
"build:types": "tsc --emitDeclarationOnly --project ./tsconfig.build.json",
|
|
10
10
|
"build:js": "babel src --out-dir dist --extensions \".ts,.tsx\" --ignore \"./**/*.spec.ts\",\"./**/*.spec.tsx\" --source-maps inline",
|
|
11
11
|
"test": "jest --coverage",
|
|
12
12
|
"test:watch": "jest --watch --coverage",
|
|
@@ -21,24 +21,24 @@
|
|
|
21
21
|
"react": ">=16.8.0 <20"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@babel/cli": "7.28.
|
|
25
|
-
"@babel/core": "7.
|
|
24
|
+
"@babel/cli": "7.28.6",
|
|
25
|
+
"@babel/core": "7.29.0",
|
|
26
26
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
|
27
|
-
"@babel/preset-env": "7.
|
|
27
|
+
"@babel/preset-env": "7.29.0",
|
|
28
28
|
"@babel/preset-react": "7.28.5",
|
|
29
29
|
"@babel/preset-typescript": "7.28.5",
|
|
30
|
-
"@biomejs/biome": "2.3.
|
|
30
|
+
"@biomejs/biome": "2.3.14",
|
|
31
31
|
"@testing-library/dom": "10.4.1",
|
|
32
32
|
"@testing-library/jest-dom": "6.9.1",
|
|
33
|
-
"@testing-library/react": "16.3.
|
|
33
|
+
"@testing-library/react": "16.3.2",
|
|
34
34
|
"@types/jest": "30.0.0",
|
|
35
|
-
"@types/react": "19.2.
|
|
35
|
+
"@types/react": "19.2.13",
|
|
36
36
|
"@types/react-dom": "19.2.3",
|
|
37
37
|
"eslint": "9.39.2",
|
|
38
|
-
"eslint-config-heck": "8.
|
|
38
|
+
"eslint-config-heck": "8.21.0",
|
|
39
39
|
"jest": "30.2.0",
|
|
40
40
|
"jest-environment-jsdom": "30.2.0",
|
|
41
|
-
"semantic-release": "25.0.
|
|
41
|
+
"semantic-release": "25.0.3",
|
|
42
42
|
"ts-jest": "29.4.6",
|
|
43
43
|
"tslib": "2.8.1",
|
|
44
44
|
"typescript": "5.9.3"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "@testing-library/jest-dom";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|