react-elmish 3.0.0 → 3.1.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 +177 -73
- package/dist/Cmd.d.ts +5 -0
- package/dist/Cmd.js +12 -1
- package/dist/ElmComponent.d.ts +4 -2
- package/dist/ElmComponent.js +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +7 -1
- package/dist/legacy/useElmish.d.ts +3 -3
- package/dist/legacy/useElmish.js +5 -2
- package/dist/legacy/useElmishMap.d.ts +3 -2
- package/dist/legacy/useElmishMap.js +5 -2
- package/dist/useElmish.d.ts +7 -4
- package/dist/useElmish.js +22 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ An elmish component basically consists of the following parts:
|
|
|
25
25
|
First import everything from `react-elmish` and declare the **Message** discriminated union type:
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
|
-
import { Cmd, createCmd, UpdateReturnType, UpdateMap } from "react-elmish";
|
|
28
|
+
import { Cmd, createCmd, InitResult, UpdateReturnType, UpdateMap } from "react-elmish";
|
|
29
29
|
|
|
30
30
|
export type Message =
|
|
31
31
|
| { name: "increment" }
|
|
@@ -57,21 +57,14 @@ export interface Props {
|
|
|
57
57
|
}
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
Now we create a `cmd` object for our messages type:
|
|
61
|
-
|
|
62
|
-
```ts
|
|
63
|
-
const cmd = createCmd<Message>();
|
|
64
|
-
```
|
|
65
|
-
|
|
66
60
|
To create the initial model we need an **init** function:
|
|
67
61
|
|
|
68
62
|
```ts
|
|
69
|
-
export function init (props: Props):
|
|
63
|
+
export function init (props: Props): InitResult {
|
|
70
64
|
return [
|
|
71
65
|
{
|
|
72
66
|
value: props.initialValue,
|
|
73
|
-
}
|
|
74
|
-
cmd.none
|
|
67
|
+
}
|
|
75
68
|
];
|
|
76
69
|
};
|
|
77
70
|
```
|
|
@@ -251,75 +244,19 @@ You can also use **Symbols** for the message type instead of strings:
|
|
|
251
244
|
...
|
|
252
245
|
```
|
|
253
246
|
|
|
254
|
-
##
|
|
247
|
+
## Dispatch commands in the update map or update function
|
|
255
248
|
|
|
256
|
-
|
|
249
|
+
In addition to modifying the model, you can dispatch new commands here.
|
|
257
250
|
|
|
258
|
-
|
|
259
|
-
import * as Elm from "react-elmish";
|
|
251
|
+
To do so, you have to create a `cmd` object:
|
|
260
252
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
console.debug(...args);
|
|
264
|
-
},
|
|
265
|
-
info(...args: unknown []) {
|
|
266
|
-
console.info(...args);
|
|
267
|
-
},
|
|
268
|
-
error(...args: unknown []) {
|
|
269
|
-
console.error(...args);
|
|
270
|
-
},
|
|
271
|
-
}
|
|
253
|
+
```ts
|
|
254
|
+
import { createCmd } from "react-elmish";
|
|
272
255
|
|
|
273
|
-
|
|
274
|
-
logger: myLogger,
|
|
275
|
-
errorMiddleware: error => Toast.error(error.message),
|
|
276
|
-
dispatchMiddleware: msg => console.log(msg),
|
|
277
|
-
});
|
|
256
|
+
const cmd = createCmd<Message>();
|
|
278
257
|
```
|
|
279
258
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
The dispatch middleware function is called whenever a Message is dispatched.
|
|
283
|
-
|
|
284
|
-
## Error handling
|
|
285
|
-
|
|
286
|
-
You can handle errors easily with the following pattern.
|
|
287
|
-
|
|
288
|
-
1. Add an error message:
|
|
289
|
-
|
|
290
|
-
```ts
|
|
291
|
-
import { ErrorMessage, errorMsg, handleError } from "react-elmish";
|
|
292
|
-
|
|
293
|
-
export type Message =
|
|
294
|
-
| ...
|
|
295
|
-
| ErrorMessage;
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
1. Optionally add the convenient function to the **Msg** object:
|
|
299
|
-
|
|
300
|
-
```ts
|
|
301
|
-
export const Msg = {
|
|
302
|
-
...
|
|
303
|
-
...errorMsg,
|
|
304
|
-
}
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
1. Handle the error message in the **update** function:
|
|
308
|
-
|
|
309
|
-
```ts
|
|
310
|
-
...
|
|
311
|
-
case "error":
|
|
312
|
-
return handleError(msg.error);
|
|
313
|
-
...
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
The **handleError** function then calls your error handling middleware.
|
|
317
|
-
|
|
318
|
-
## Dispatch commands in the update map or update function
|
|
319
|
-
|
|
320
|
-
In addition to modifying the model, you can dispatch new commands here.
|
|
321
|
-
|
|
322
|
-
To do so, you can call one of the functions in the `cmd` object:
|
|
259
|
+
Then you can call one of the functions of that object:
|
|
323
260
|
|
|
324
261
|
| Function | Description |
|
|
325
262
|
|---|---|
|
|
@@ -332,6 +269,7 @@ To do so, you can call one of the functions in the `cmd` object:
|
|
|
332
269
|
| `cmd.ofPromise.either` | Calls an async function and maps the result into a message. |
|
|
333
270
|
| `cmd.ofPromise.attempt` | Like `either` but ignores the success case. |
|
|
334
271
|
| `cmd.ofPromise.perform` | Like `either` but ignores the error case. |
|
|
272
|
+
| `cmd.ofSub` | Use this function to trigger a command in a subscription. |
|
|
335
273
|
|
|
336
274
|
### Dispatch a message
|
|
337
275
|
|
|
@@ -348,6 +286,8 @@ export const Msg = {
|
|
|
348
286
|
printLastMessage: (message: string): Message => ({ name: "printLastMessage", message }),
|
|
349
287
|
...
|
|
350
288
|
}
|
|
289
|
+
|
|
290
|
+
const cmd = createCmd<Message>();
|
|
351
291
|
```
|
|
352
292
|
|
|
353
293
|
In the **update** function you can dispatch that message like this:
|
|
@@ -408,6 +348,170 @@ case "error":
|
|
|
408
348
|
...
|
|
409
349
|
```
|
|
410
350
|
|
|
351
|
+
### Dispatch a command from `init`
|
|
352
|
+
|
|
353
|
+
The same way as in the `update` map or function, you can also dispatch an initial command in the `init` function:
|
|
354
|
+
|
|
355
|
+
```ts
|
|
356
|
+
export function init (props: Props): InitResult {
|
|
357
|
+
return [
|
|
358
|
+
{
|
|
359
|
+
value: props.initialValue,
|
|
360
|
+
},
|
|
361
|
+
cmd.ofMsg(Msg.loadData())
|
|
362
|
+
];
|
|
363
|
+
};
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## Subscriptions
|
|
367
|
+
|
|
368
|
+
### Working with external sources of events
|
|
369
|
+
|
|
370
|
+
If you want to use external sources of events (e.g. a timer), you can use a `subscription`. With this those events can be processed by our `update` handler.
|
|
371
|
+
|
|
372
|
+
Let's define a `Model` and a `Message`:
|
|
373
|
+
|
|
374
|
+
```ts
|
|
375
|
+
type Message =
|
|
376
|
+
| { name: "timer", date: Date };
|
|
377
|
+
|
|
378
|
+
interface Model {
|
|
379
|
+
date: Date,
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
const Msg = {
|
|
383
|
+
timer: (date: Date): Message => ({ name: "timer", date }),
|
|
384
|
+
};
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
Now we define the `init` function and the `update` object:
|
|
388
|
+
|
|
389
|
+
```ts
|
|
390
|
+
const cmd = createCmd<Message>();
|
|
391
|
+
|
|
392
|
+
function init (props: Props): InitResult<Model, Message> {
|
|
393
|
+
return [{
|
|
394
|
+
date: new Date(),
|
|
395
|
+
}];
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const update: UpdateMap<Props, Model, Message> = {
|
|
399
|
+
timer ({ date }) {
|
|
400
|
+
return [{ date }];
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Then we write our `subscription` function:
|
|
406
|
+
|
|
407
|
+
```ts
|
|
408
|
+
function subscription (model: Model): SubscriptionResult<Message> {
|
|
409
|
+
const sub = (dispatch: Dispatch<Message>): void => {
|
|
410
|
+
setInterval(() => dispatch(Msg.timer(new Date())), 1000) as unknown as number;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
return [cmd.ofSub(sub)];
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
This function gets the initialized model as parameter and returns a command.
|
|
418
|
+
|
|
419
|
+
In the function component we call `useElmish` and pass the subscription to it:
|
|
420
|
+
|
|
421
|
+
```ts
|
|
422
|
+
const [{ date }] = useElmish({ name: "Subscriptions", props, init, update, subscription })
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
You can define and aggregate multiple subscriptions with a call to `cmd.batch(...)`.
|
|
426
|
+
|
|
427
|
+
### Cleanup subscriptions
|
|
428
|
+
|
|
429
|
+
In the solution above `setInterval` will trigger events even if the component is removed from the DOM. To cleanup subscriptions, we can return a `destructor` function from the subscription the same as in the `useEffect` hook.
|
|
430
|
+
|
|
431
|
+
Let's rewrite our `subscription` function:
|
|
432
|
+
|
|
433
|
+
```ts
|
|
434
|
+
function subscription (model: Model): SubscriptionResult<Message> {
|
|
435
|
+
let timer: NodeJS.Timer;
|
|
436
|
+
|
|
437
|
+
const sub = (dispatch: Dispatch<Message>): void => {
|
|
438
|
+
timer = setInterval(() => dispatch(Msg.timer(new Date())), 1000);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
const destructor = () => {
|
|
442
|
+
clearInterval(timer1);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
return [cmd.ofSub(sub), destructor];
|
|
446
|
+
}
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
Here we save the return value of `setInterval` and clear that interval in the returned `destructor` function.
|
|
450
|
+
|
|
451
|
+
## Setup
|
|
452
|
+
|
|
453
|
+
**react-elmish** works without a setup. But if you want to use logging or some middleware, you can setup **react-elmish** at the start of your program.
|
|
454
|
+
|
|
455
|
+
```ts
|
|
456
|
+
import { init } from "react-elmish";
|
|
457
|
+
|
|
458
|
+
const myLogger = {
|
|
459
|
+
debug(...args: unknown []) {
|
|
460
|
+
console.debug(...args);
|
|
461
|
+
},
|
|
462
|
+
info(...args: unknown []) {
|
|
463
|
+
console.info(...args);
|
|
464
|
+
},
|
|
465
|
+
error(...args: unknown []) {
|
|
466
|
+
console.error(...args);
|
|
467
|
+
},
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
init({
|
|
471
|
+
logger: myLogger,
|
|
472
|
+
errorMiddleware: error => Toast.error(error.message),
|
|
473
|
+
dispatchMiddleware: msg => myLogger.debug(msg),
|
|
474
|
+
});
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
The error middleware function is called by the `handleError` function (see [Error handling](#error-handling)).
|
|
478
|
+
|
|
479
|
+
The dispatch middleware function is called whenever a Message is dispatched.
|
|
480
|
+
|
|
481
|
+
## Error handling
|
|
482
|
+
|
|
483
|
+
You can handle errors easily with the following pattern.
|
|
484
|
+
|
|
485
|
+
1. Add an error message:
|
|
486
|
+
|
|
487
|
+
```ts
|
|
488
|
+
import { ErrorMessage, errorMsg, handleError } from "react-elmish";
|
|
489
|
+
|
|
490
|
+
export type Message =
|
|
491
|
+
| ...
|
|
492
|
+
| ErrorMessage;
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
1. Optionally add the convenient function to the **Msg** object:
|
|
496
|
+
|
|
497
|
+
```ts
|
|
498
|
+
export const Msg = {
|
|
499
|
+
...
|
|
500
|
+
...errorMsg,
|
|
501
|
+
}
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
1. Handle the error message in the **update** function:
|
|
505
|
+
|
|
506
|
+
```ts
|
|
507
|
+
...
|
|
508
|
+
case "error":
|
|
509
|
+
return handleError(msg.error);
|
|
510
|
+
...
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
The **handleError** function then calls your error handling middleware.
|
|
514
|
+
|
|
411
515
|
## React life cycle management
|
|
412
516
|
|
|
413
517
|
If you want to use `componentDidMount` or `componentWillUnmount` in a class component, don't forget to call the base class implementation of it as the **ElmComponent** is using them internally.
|
package/dist/Cmd.d.ts
CHANGED
|
@@ -28,6 +28,11 @@ declare class Command<TMsg> {
|
|
|
28
28
|
* @param {Cmd<TMsg> []} commands Array of commands.
|
|
29
29
|
*/
|
|
30
30
|
batch(...commands: Cmd<TMsg>[]): Cmd<TMsg>;
|
|
31
|
+
/**
|
|
32
|
+
* Command to call the subscriber.
|
|
33
|
+
* @param {Sub<TMsg>} sub The subscriber function.
|
|
34
|
+
*/
|
|
35
|
+
ofSub(sub: Sub<TMsg>): Cmd<TMsg>;
|
|
31
36
|
/**
|
|
32
37
|
* Provides functionalities to create commands from simple functions.
|
|
33
38
|
*/
|
package/dist/Cmd.js
CHANGED
|
@@ -213,6 +213,17 @@ var Command = /*#__PURE__*/function () {
|
|
|
213
213
|
|
|
214
214
|
return commands.flat();
|
|
215
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Command to call the subscriber.
|
|
218
|
+
* @param {Sub<TMsg>} sub The subscriber function.
|
|
219
|
+
*/
|
|
220
|
+
// eslint-disable-next-line class-methods-use-this
|
|
221
|
+
|
|
222
|
+
}, {
|
|
223
|
+
key: "ofSub",
|
|
224
|
+
value: function ofSub(sub) {
|
|
225
|
+
return [sub];
|
|
226
|
+
}
|
|
216
227
|
/**
|
|
217
228
|
* Provides functionalities to create commands from simple functions.
|
|
218
229
|
*/
|
|
@@ -231,4 +242,4 @@ var Command = /*#__PURE__*/function () {
|
|
|
231
242
|
function createCmd() {
|
|
232
243
|
return new Command();
|
|
233
244
|
}
|
|
234
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9DbWQudHMiXSwibmFtZXMiOlsiQ29tbWFuZCIsImVpdGhlciIsInRhc2siLCJvZlN1Y2Nlc3MiLCJvZkVycm9yIiwiYXJncyIsImJpbmQiLCJkaXNwYXRjaCIsInJlc3VsdCIsImV4IiwicGVyZm9ybSIsImZhbGxiYWNrIiwiYXR0ZW1wdCIsInRoZW4iLCJkZWZhdWx0RmFsbGJhY2tIYW5kbGVyIiwibXNnIiwiY29tbWFuZHMiLCJmbGF0IiwiY3JlYXRlQ21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBTUE7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDTUEsTzs7OztrQ0FJWSxFOztvQ0F1QkU7QUFDWjtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNRQyxNQUFBQSxNQVJZLGtCQVE4QkMsSUFSOUIsRUFRaUVDLFNBUmpFLEVBUXVHQyxPQVJ2RyxFQVFtSztBQUFBLDBDQUF4QkMsSUFBd0I7QUFBeEJBLFVBQUFBLElBQXdCO0FBQUE7O0FBQzNLLFlBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFPLENBQUNDLFFBQUQsRUFBb0M7QUFDN0MsY0FBSTtBQUNBLGdCQUFNQyxPQUFNLEdBQUdOLElBQUksTUFBSixTQUFRRyxJQUFSLENBQWY7O0FBRUFFLFlBQUFBLFFBQVEsQ0FBQ0osU0FBUyxDQUFDSyxPQUFELENBQVYsQ0FBUjtBQUNILFdBSkQsQ0FJRSxPQUFPQyxFQUFQLEVBQW9CO0FBQ2xCRixZQUFBQSxRQUFRLENBQUNILE9BQU8sQ0FBQ0ssRUFBRCxDQUFSLENBQVI7QUFDSDtBQUNKLFNBUkQ7O0FBVUEsZUFBTyxDQUFDSCxJQUFELENBQVA7QUFDSCxPQXBCVzs7QUFzQlo7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ1FJLE1BQUFBLE9BNUJZLG1CQTRCK0JSLElBNUIvQixFQTRCa0VDLFNBNUJsRSxFQTRCbUk7QUFBQSwyQ0FBeEJFLElBQXdCO0FBQXhCQSxV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LElBQUksR0FBRyxTQUFQQSxJQUFPLENBQUNDLFFBQUQsRUFBMkJJLFFBQTNCLEVBQWdFO0FBQ3pFVCxVQUFBQSxJQUFJLE1BQUosU0FBUUcsSUFBUixFQUFjUSxJQUFkLENBQW1CLFlBQU07QUFDckIsZ0JBQUlGLFFBQUosRUFBYztBQUNWQSxjQUFBQSxRQUFRO0FBQ1g7QUFDSixXQUpELFdBS1csVUFBQ0YsRUFBRDtBQUFBLG1CQUFlRixRQUFRLENBQUNILE9BQU8sQ0FBQ0ssRUFBRCxDQUFSLENBQXZCO0FBQUEsV0FMWDtBQU1ILFNBUEQ7O0FBU0EsZUFBTyxDQUFDSCxJQUFELENBQVA7QUFDSDtBQXJEYyxLOzs7Ozs7QUEzRm5CO0FBQ0o7QUFDQTtBQUNBO0FBQ0k7QUFDQSxtQkFBY1MsR0FBZCxFQUFvQztBQUNoQyxhQUFPLENBQUMsVUFBQVIsUUFBUTtBQUFBLGVBQUlBLFFBQVEsQ0FBQ1EsR0FBRCxDQUFaO0FBQUEsT0FBVCxDQUFQO0FBQ0g7QUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNJOzs7O1dBQ0EsaUJBQW9EO0FBQUEseUNBQW5DQyxRQUFtQztBQUFuQ0EsUUFBQUEsUUFBbUM7QUFBQTs7QUFDaEQsYUFBT0EsUUFBUSxDQUFDQyxJQUFULEVBQVA7QUFDSDtBQUVEO0FBQ0o7QUFDQTs7Ozs7O0FBZ0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFNBQVNDLFNBQVQsR0FBMkM7QUFDOUMsU0FBTyxJQUFJbEIsT0FBSixFQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUgb2YgdGhlIGRpc3BhdGNoIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBEaXNwYXRjaDxUTXNnPiA9IChtc2c6IFRNc2cpID0+IHZvaWQ7XG5cbnR5cGUgRmFsbGJhY2tIYW5kbGVyID0gKGVycm9yPzogRXJyb3IpID0+IHZvaWQ7XG50eXBlIFN1YjxUTXNnPiA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIFR5cGUgb2YgYSBjb21tYW5kLlxuICovXG5leHBvcnQgdHlwZSBDbWQ8VE1zZz4gPSBTdWI8VE1zZz4gW107XG5cbi8qKlxuICogQ2xhc3MgdG8gY3JlYXRlIGNvbW1hbmRzLlxuICogQGNsYXNzIENvbW1hbmRcbiAqIEB0ZW1wbGF0ZSBUTXNnIFR5cGUgb2YgdGhlIE1zZyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICovXG5jbGFzcyBDb21tYW5kPFRNc2c+IHtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGFuIGVtcHR5IGNvbW1hbmQuXG4gICAgICovXG4gICAgcHVibGljIG5vbmUgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTXNnfSBtc2cgVGhlIHNwZWNpZmljIG1lc3NhZ2UuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwdWJsaWMgb2ZNc2cgKG1zZzogVE1zZyk6IENtZDxUTXNnPiB7XG4gICAgICAgIHJldHVybiBbZGlzcGF0Y2ggPT4gZGlzcGF0Y2gobXNnKV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWdncmVnYXRlcyBtdWx0aXBsZSBjb21tYW5kcy5cbiAgICAgKiBAcGFyYW0ge0NtZDxUTXNnPiBbXX0gY29tbWFuZHMgQXJyYXkgb2YgY29tbWFuZHMuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwdWJsaWMgYmF0Y2ggKC4uLmNvbW1hbmRzOiBDbWQ8VE1zZz4gW10pOiBDbWQ8VE1zZz4ge1xuICAgICAgICByZXR1cm4gY29tbWFuZHMuZmxhdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllcyB0byBjcmVhdGUgY29tbWFuZHMgZnJvbSBzaW1wbGUgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBvZkZ1bmMgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRhc2soLi4uYXJncyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgZXJyb3IgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgb2YgdGhlIHRhc2suXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFRSZXR1cm4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1zZywgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1zZz4ge1xuICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayhleCBhcyBFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhIHNpbXBsZSBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1zZywgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1zZz4ge1xuICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChvZkVycm9yKGV4IGFzIEVycm9yKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIGFzeW5jIGZ1bmN0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgb2ZQcm9taXNlID0ge1xuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIG1hcHMgdGhlIHJlc3VsdC5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZTdWNjZXNzIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGVpdGhlcjxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRhc2soLi4uYXJncykudGhlbihyZXN1bHQgPT4gZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGV4OiBFcnJvcikgPT4gZGlzcGF0Y2gob2ZFcnJvcihleCkpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGFuIGFzeW5jIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBlcnJvciBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBwZXJmb3JtPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRGYWxsYmFja0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYmxhbmtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjazogRmFsbGJhY2tIYW5kbGVyID0gZGVmYXVsdEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRhc2soLi4uYXJncykudGhlbihyZXN1bHQgPT4gZGlzcGF0Y2gob2ZTdWNjZXNzKHJlc3VsdCkpKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZmFsbGJhY2spO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIHN1Y2Nlc3MgY2FzZS5cbiAgICAgICAgKiBAcGFyYW0gdGFzayBUaGUgYXN5bmMgZnVuY3Rpb24gdG8gY2FsbC5cbiAgICAgICAgKiBAcGFyYW0gb2ZFcnJvciBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIGF0dGVtcHQ8VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcik6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRhc2soLi4uYXJncykudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB0eXBlZCBpbnN0YW5jZSBvZiB0aGUgQ29tbWFuZCBjbGFzcy5cbiAqIEB0ZW1wbGF0ZSBUTXNnIFRoZSB0eXBlIG9mIHRoZSBNc2cgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqIEBzZWUgQ29tbWFuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ21kPFRNc2c+ICgpOiBDb21tYW5kPFRNc2c+IHtcbiAgICByZXR1cm4gbmV3IENvbW1hbmQ8VE1zZz4oKTtcbn0iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9DbWQudHMiXSwibmFtZXMiOlsiQ29tbWFuZCIsImVpdGhlciIsInRhc2siLCJvZlN1Y2Nlc3MiLCJvZkVycm9yIiwiYXJncyIsImJpbmQiLCJkaXNwYXRjaCIsInJlc3VsdCIsImV4IiwicGVyZm9ybSIsImZhbGxiYWNrIiwiYXR0ZW1wdCIsInRoZW4iLCJkZWZhdWx0RmFsbGJhY2tIYW5kbGVyIiwibXNnIiwiY29tbWFuZHMiLCJmbGF0Iiwic3ViIiwiY3JlYXRlQ21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBTUE7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDTUEsTzs7OztrQ0FJWSxFOztvQ0FnQ0U7QUFDWjtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNRQyxNQUFBQSxNQVJZLGtCQVE4QkMsSUFSOUIsRUFRaUVDLFNBUmpFLEVBUXVHQyxPQVJ2RyxFQVFtSztBQUFBLDBDQUF4QkMsSUFBd0I7QUFBeEJBLFVBQUFBLElBQXdCO0FBQUE7O0FBQzNLLFlBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFPLENBQUNDLFFBQUQsRUFBb0M7QUFDN0MsY0FBSTtBQUNBLGdCQUFNQyxPQUFNLEdBQUdOLElBQUksTUFBSixTQUFRRyxJQUFSLENBQWY7O0FBRUFFLFlBQUFBLFFBQVEsQ0FBQ0osU0FBUyxDQUFDSyxPQUFELENBQVYsQ0FBUjtBQUNILFdBSkQsQ0FJRSxPQUFPQyxFQUFQLEVBQW9CO0FBQ2xCRixZQUFBQSxRQUFRLENBQUNILE9BQU8sQ0FBQ0ssRUFBRCxDQUFSLENBQVI7QUFDSDtBQUNKLFNBUkQ7O0FBVUEsZUFBTyxDQUFDSCxJQUFELENBQVA7QUFDSCxPQXBCVzs7QUFzQlo7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ1FJLE1BQUFBLE9BNUJZLG1CQTRCK0JSLElBNUIvQixFQTRCa0VDLFNBNUJsRSxFQTRCbUk7QUFBQSwyQ0FBeEJFLElBQXdCO0FB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LFlBQU1DLElBQUksR0FBRyxTQUFQQSxJQUFPLENBQUNDLFFBQUQsRUFBMkJJLFFBQTNCLEVBQWdFO0FBQ3pFVCxVQUFBQSxJQUFJLE1BQUosU0FBUUcsSUFBUixFQUFjUSxJQUFkLENBQW1CLFlBQU07QUFDckIsZ0JBQUlGLFFBQUosRUFBYztBQUNWQSxjQUFBQSxRQUFRO0FBQ1g7QUFDSixXQUpELFdBS1csVUFBQ0YsRUFBRDtBQUFBLG1CQUFlRixRQUFRLENBQUNILE9BQU8sQ0FBQ0ssRUFBRCxDQUFSLENBQXZCO0FBQUEsV0FMWDtBQU1ILFNBUEQ7O0FBU0EsZUFBTyxDQUFDSCxJQUFELENBQVA7QUFDSDtBQXJEYyxLOzs7Ozs7QUFwR25CO0FBQ0o7QUFDQTtBQUNBO0FBQ0k7QUFDQSxtQkFBY1MsR0FBZCxFQUFvQztBQUNoQyxhQUFPLENBQUMsVUFBQVIsUUFBUTtBQUFBLGVBQUlBLFFBQVEsQ0FBQ1EsR0FBRCxDQUFaO0FBQUEsT0FBVCxDQUFQO0FBQ0g7QUFFRDtBQUNKO0FBQ0E7QUFDQTtBQUNJOzs7O1dBQ0EsaUJBQW9EO0FBQUEseUNBQW5DQyxRQUFtQztBQUFuQ0EsUUFBQUEsUUFBbUM7QUFBQTs7QUFDaEQsYUFBT0EsUUFBUSxDQUFDQyxJQUFULEVBQVA7QUFDSDtBQUVEO0FBQ0o7QUFDQTtBQUNBO0FBQ0k7Ozs7V0FDQSxlQUFjQyxHQUFkLEVBQXlDO0FBQ3JDLGFBQU8sQ0FBQ0EsR0FBRCxDQUFQO0FBQ0g7QUFFRDtBQUNKO0FBQ0E7Ozs7OztBQWdJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTQyxTQUFULEdBQTJDO0FBQzlDLFNBQU8sSUFBSW5CLE9BQUosRUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIG9mIHRoZSBkaXNwYXRjaCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgRGlzcGF0Y2g8VE1zZz4gPSAobXNnOiBUTXNnKSA9PiB2b2lkO1xuXG50eXBlIEZhbGxiYWNrSGFuZGxlciA9IChlcnJvcj86IEVycm9yKSA9PiB2b2lkO1xudHlwZSBTdWI8VE1zZz4gPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+LCBmYWxsYmFjaz86IEZhbGxiYWNrSGFuZGxlcikgPT4gdm9pZDtcblxuLyoqXG4gKiBUeXBlIG9mIGEgY29tbWFuZC5cbiAqL1xuZXhwb3J0IHR5cGUgQ21kPFRNc2c+ID0gU3ViPFRNc2c+IFtdO1xuXG4vKipcbiAqIENsYXNzIHRvIGNyZWF0ZSBjb21tYW5kcy5cbiAqIEBjbGFzcyBDb21tYW5kXG4gKiBAdGVtcGxhdGUgVE1zZyBUeXBlIG9mIHRoZSBNc2cgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqL1xuY2xhc3MgQ29tbWFuZDxUTXNnPiB7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhbiBlbXB0eSBjb21tYW5kLlxuICAgICAqL1xuICAgIHB1YmxpYyBub25lID0gW107XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBzcGVjaWZpYyBtZXNzYWdlLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gICAgcHVibGljIG9mTXNnIChtc2c6IFRNc2cpOiBDbWQ8VE1zZz4ge1xuICAgICAgICByZXR1cm4gW2Rpc3BhdGNoID0+IGRpc3BhdGNoKG1zZyldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFnZ3JlZ2F0ZXMgbXVsdGlwbGUgY29tbWFuZHMuXG4gICAgICogQHBhcmFtIHtDbWQ8VE1zZz4gW119IGNvbW1hbmRzIEFycmF5IG9mIGNvbW1hbmRzLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gICAgcHVibGljIGJhdGNoICguLi5jb21tYW5kczogQ21kPFRNc2c+IFtdKTogQ21kPFRNc2c+IHtcbiAgICAgICAgcmV0dXJuIGNvbW1hbmRzLmZsYXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21tYW5kIHRvIGNhbGwgdGhlIHN1YnNjcmliZXIuXG4gICAgICogQHBhcmFtIHtTdWI8VE1zZz59IHN1YiBUaGUgc3Vic2NyaWJlciBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHB1YmxpYyBvZlN1YiAoc3ViOiBTdWI8VE1zZz4pOiBDbWQ8VE1zZz4ge1xuICAgICAgICByZXR1cm4gW3N1Yl07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0aWVzIHRvIGNyZWF0ZSBjb21tYW5kcyBmcm9tIHNpbXBsZSBmdW5jdGlvbnMuXG4gICAgICovXG4gICAgcHVibGljIG9mRnVuYyA9IHtcbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBtYXBzIHRoZSByZXN1bHQuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIG9mIHRoZSB0YXNrLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiBhbiBlcnJvciBvY2N1cnJlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGFzayguLi5hcmdzKTtcblxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2gob2ZFcnJvcihleCBhcyBFcnJvcikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBlcnJvciBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBvZiB0aGUgdGFzay5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgcGVyZm9ybTxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gVFJldHVybiwgb2ZTdWNjZXNzOiAocmVzdWx0OiBUUmV0dXJuKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPiwgZmFsbGJhY2s/OiBGYWxsYmFja0hhbmRsZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0YXNrKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mU3VjY2VzcyhyZXN1bHQpKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKGV4IGFzIEVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBbYmluZF07XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogQ3JlYXRlcyBhIGNvbW1hbmQgb3V0IG9mIGEgc2ltcGxlIGZ1bmN0aW9uIGFuZCBpZ25vcmVzIHRoZSBzdWNjZXNzIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mRXJyb3IgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIGFuIGVycm9yIG9jY3VycmVkLlxuICAgICAgICAqIEBwYXJhbSBhcmdzIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSB0YXNrLlxuICAgICAgICAqL1xuICAgICAgICBhdHRlbXB0PFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBUUmV0dXJuLCBvZkVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiBUTXNnLCAuLi5hcmdzOiBUQXJncyk6IENtZDxUTXNnPiB7XG4gICAgICAgICAgICBjb25zdCBiaW5kID0gKGRpc3BhdGNoOiBEaXNwYXRjaDxUTXNnPiwgZmFsbGJhY2s/OiBGYWxsYmFja0hhbmRsZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0YXNrKC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoKG9mRXJyb3IoZXggYXMgRXJyb3IpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBmdW5jdGlvbmFsaXRpZXMgdG8gY3JlYXRlIGNvbW1hbmRzIGZyb20gYXN5bmMgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIHB1YmxpYyBvZlByb21pc2UgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgbWFwcyB0aGUgcmVzdWx0LlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZlN1Y2Nlc3MgQ3JlYXRlcyB0aGUgbWVzc2FnZSB0byBkaXNwYXRjaCB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgZWl0aGVyPFRBcmdzIGV4dGVuZHMgdW5rbm93biBbXSwgVFJldHVybj4odGFzazogKC4uLmFyZ3M6IFRBcmdzKSA9PiBQcm9taXNlPFRSZXR1cm4+LCBvZlN1Y2Nlc3M6IChyZXN1bHQ6IFRSZXR1cm4pID0+IFRNc2csIG9mRXJyb3I6IChlcnJvcjogRXJyb3IpID0+IFRNc2csIC4uLmFyZ3M6IFRBcmdzKTogQ21kPFRNc2c+IHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmQgPSAoZGlzcGF0Y2g6IERpc3BhdGNoPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKHJlc3VsdCA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXg6IEVycm9yKSA9PiBkaXNwYXRjaChvZkVycm9yKGV4KSkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIFtiaW5kXTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgKiBDcmVhdGVzIGEgY29tbWFuZCBvdXQgb2YgYW4gYXN5bmMgZnVuY3Rpb24gYW5kIGlnbm9yZXMgdGhlIGVycm9yIGNhc2UuXG4gICAgICAgICogQHBhcmFtIHRhc2sgVGhlIGFzeW5jIGZ1bmN0aW9uIHRvIGNhbGwuXG4gICAgICAgICogQHBhcmFtIG9mU3VjY2VzcyBDcmVhdGVzIHRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoIHdoZW4gdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQuXG4gICAgICAgICogQHBhcmFtIGFyZ3MgVGhlIHBhcmFtZXRlcnMgb2YgdGhlIHRhc2suXG4gICAgICAgICovXG4gICAgICAgIHBlcmZvcm08VEFyZ3MgZXh0ZW5kcyB1bmtub3duIFtdLCBUUmV0dXJuPih0YXNrOiAoLi4uYXJnczogVEFyZ3MpID0+IFByb21pc2U8VFJldHVybj4sIG9mU3VjY2VzczogKHJlc3VsdDogVFJldHVybikgPT4gVE1zZywgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1zZz4ge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdEZhbGxiYWNrSGFuZGxlciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAvLyBibGFua1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrOiBGYWxsYmFja0hhbmRsZXIgPSBkZWZhdWx0RmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKHJlc3VsdCA9PiBkaXNwYXRjaChvZlN1Y2Nlc3MocmVzdWx0KSkpXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChmYWxsYmFjayk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAqIENyZWF0ZXMgYSBjb21tYW5kIG91dCBvZiBhbiBhc3luYyBmdW5jdGlvbiBhbmQgaWdub3JlcyB0aGUgc3VjY2VzcyBjYXNlLlxuICAgICAgICAqIEBwYXJhbSB0YXNrIFRoZSBhc3luYyBmdW5jdGlvbiB0byBjYWxsLlxuICAgICAgICAqIEBwYXJhbSBvZkVycm9yIENyZWF0ZXMgdGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2ggd2hlbiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZC5cbiAgICAgICAgKiBAcGFyYW0gYXJncyBUaGUgcGFyYW1ldGVycyBvZiB0aGUgdGFzay5cbiAgICAgICAgKi9cbiAgICAgICAgYXR0ZW1wdDxUQXJncyBleHRlbmRzIHVua25vd24gW10sIFRSZXR1cm4+KHRhc2s6ICguLi5hcmdzOiBUQXJncykgPT4gUHJvbWlzZTxUUmV0dXJuPiwgb2ZFcnJvcjogKGVycm9yOiBFcnJvcikgPT4gVE1zZywgLi4uYXJnczogVEFyZ3MpOiBDbWQ8VE1zZz4ge1xuICAgICAgICAgICAgY29uc3QgYmluZCA9IChkaXNwYXRjaDogRGlzcGF0Y2g8VE1zZz4sIGZhbGxiYWNrPzogRmFsbGJhY2tIYW5kbGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFzayguLi5hcmdzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChleDogRXJyb3IpID0+IGRpc3BhdGNoKG9mRXJyb3IoZXgpKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW2JpbmRdO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR5cGVkIGluc3RhbmNlIG9mIHRoZSBDb21tYW5kIGNsYXNzLlxuICogQHRlbXBsYXRlIFRNc2cgVGhlIHR5cGUgb2YgdGhlIE1zZyBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICogQHNlZSBDb21tYW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbWQ8VE1zZz4gKCk6IENvbW1hbmQ8VE1zZz4ge1xuICAgIHJldHVybiBuZXcgQ29tbWFuZDxUTXNnPigpO1xufSJdfQ==
|
package/dist/ElmComponent.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare abstract class ElmComponent<TModel, TMsg extends Message, TProps>
|
|
|
25
25
|
* @param name The name of the component.
|
|
26
26
|
* @memberof ElmComponent
|
|
27
27
|
*/
|
|
28
|
-
constructor(props: TProps, init:
|
|
28
|
+
constructor(props: TProps, init: InitFunction<TProps, TModel, TMsg>, name: string);
|
|
29
29
|
/**
|
|
30
30
|
* Is called when the component is loaded.
|
|
31
31
|
* When implementing this method, the base implementation has to be called.
|
|
@@ -63,8 +63,10 @@ export declare abstract class ElmComponent<TModel, TMsg extends Message, TProps>
|
|
|
63
63
|
*/
|
|
64
64
|
abstract update: UpdateFunction<TProps, TModel, TMsg>;
|
|
65
65
|
}
|
|
66
|
-
export declare type
|
|
66
|
+
export declare type InitResult<TModel, TMessage> = [TModel, Cmd<TMessage>?];
|
|
67
|
+
export declare type InitFunction<TProps, TModel, TMessage> = (props: TProps) => InitResult<TModel, TMessage>;
|
|
67
68
|
/**
|
|
68
69
|
* Type for the return value of the update function.
|
|
69
70
|
*/
|
|
70
71
|
export declare type UpdateReturnType<TModel, TMsg> = [Partial<TModel>, Cmd<TMsg>?];
|
|
72
|
+
export declare type UpdateFunction<TProps, TModel, TMsg> = (model: TModel, msg: TMsg, props: TProps) => UpdateReturnType<TModel, TMsg>;
|
package/dist/ElmComponent.js
CHANGED
|
@@ -222,4 +222,4 @@ var ElmComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
222
222
|
}(_react["default"].Component);
|
|
223
223
|
|
|
224
224
|
exports.ElmComponent = ElmComponent;
|
|
225
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwibmFtZXMiOlsiRWxtQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwibmFtZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsIm1vZGVsIiwiY3VycmVudE1vZGVsIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImxlbmd0aCIsImRpc3BhdGNoTWlkZGxld2FyZSIsInJlZW50ZXJlZCIsImJ1ZmZlciIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJMb2dnZXJTZXJ2aWNlIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJpbml0Q21kIiwiZm9yRWFjaCIsImNhbGwiLCJkaXNwYXRjaCIsIlJlYWN0IiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDc0JBLFk7Ozs7O0FBUWxCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ksd0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBMkZDLElBQTNGLEVBQXlHO0FBQUE7O0FBQUE7O0FBQ3JHLDhCQUFNRixLQUFOOztBQURxRyw2REFadEUsRUFZc0U7O0FBQUEsZ0VBWHJGLEtBV3FGOztBQUFBLDhEQVZ2RixLQVV1Rjs7QUFBQSwrREEwRDlFLFVBQUNHLEdBQUQsRUFBcUI7QUFDNUMsVUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO0FBQUEsZUFBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMs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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztFQTlIaUYwQixrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpc3BhdGNoTWlkZGxld2FyZSwgTG9nZ2VyU2VydmljZSwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgYSByZWFjdCBjbGFzcyBjb21wb25lbnQgdXNpbmcgdGhlIGVsbWlzaCBwYXR0ZXJuLlxuICogQGV4cG9ydFxuICogQGFic3RyYWN0XG4gKiBAY2xhc3MgRWxtQ29tcG9uZW50XG4gKiBAZXh0ZW5kcyB7Q29tcG9uZW50PFRQcm9wcywgVE1vZGVsPn1cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNc2cgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcbiAgICBwcml2YXRlIGluaXRDbWQ6IE51bGxhYmxlPENtZDxUTXNnPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNc2cgW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgbW91bnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHByb3BzOiBUUHJvcHMsIGluaXQ6IChhcmc6IFRQcm9wcykgPT4gW1RNb2RlbCwgQ21kPFRNc2c+IHwgdW5kZWZpbmVkXSwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSBpbml0KHRoaXMucHJvcHMpO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50TmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0gbW9kZWw7XG4gICAgICAgIHRoaXMuaW5pdENtZCA9IGNtZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGxvYWRlZC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5pbml0Q21kKSB7XG4gICAgICAgICAgICB0aGlzLmV4ZWNDbWQodGhpcy5pbml0Q21kKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdENtZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgYmVmb3JlIHVubG9hZGluZyB0aGUgY29tcG9uZW50LlxuICAgICAqIFdoZW4gaW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kLCB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gYmUgY2FsbGVkLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQgKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vdW50ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4ZWNDbWQgKGNtZDogQ21kPFRNc2c+KTogdm9pZCB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKHRoaXMuZGlzcGF0Y2gpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbW9kZWwuXG4gICAgICogQHJlYWRvbmx5XG4gICAgICogQHR5cGUge1JlYWRvbmx5PFRNb2RlbD59XG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbW9kZWwgKCk6IFJlYWRvbmx5PFRNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGlzcGF0Y2hlcyBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTXNnfSBtc2cgVGhlIG1lc3NhZ2UgdG8gZGlzcGF0Y2guXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkaXNwYXRjaCA9IChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKG1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IG1vZGVsICE9PSB0aGlzLmN1cnJlbnRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtb2RlbCkubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoZGlzcGF0Y2hNaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICBkaXNwYXRjaE1pZGRsZXdhcmUobXNnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlZW50ZXJlZCkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWVudGVyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbmV4dE1zZzogVE1zZyB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgdGhpcy5jb21wb25lbnROYW1lLCBuZXh0TXNnLm5hbWUpO1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbW9kZWwsIGNtZF0gPSB0aGlzLnVwZGF0ZSh0aGlzLmN1cnJlbnRNb2RlbCwgbmV4dE1zZywgdGhpcy5wcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChtb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZGVsID0geyAuLi50aGlzLmN1cnJlbnRNb2RlbCwgLi4ubW9kZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSB0aGlzLmJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubW91bnRlZCAmJiBtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCB0aGlzLmNvbXBvbmVudE5hbWUsIHRoaXMuY3VycmVudE1vZGVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSBtb2RlbCBiYXNlZCBvbiBhIG1lc3NhZ2UuXG4gICAgICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsIFRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBtZXNzYWdlIHRvIHByb2Nlc3MuXG4gICAgICogQHBhcmFtIHtUUHJvcHN9IHByb3BzIFRoZSBwcm9wcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEByZXR1cm5zIFRoZSBuZXcgbW9kZWwgKGNhbiBhbHNvIGJlIGFuIGVtcHR5IG9iamVjdCB7fSkgYW5kIGFuIG9wdGlvbmFsIG5ldyBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuICAgICAqIEBhYnN0cmFjdFxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgdXBkYXRlOiBVcGRhdGVGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1zZz47XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiA9IChtb2RlbDogVE1vZGVsLCBtc2c6IFRNc2csIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjtcblxuLyoqXG4gKiBUeXBlIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB1cGRhdGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPiA9IFtQYXJ0aWFsPFRNb2RlbD4sIENtZDxUTXNnPj9dOyJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FbG1Db21wb25lbnQudHMiXSwibmFtZXMiOlsiRWxtQ29tcG9uZW50IiwicHJvcHMiLCJpbml0IiwibmFtZSIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsIm1vZGVsIiwiY3VycmVudE1vZGVsIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImxlbmd0aCIsImRpc3BhdGNoTWlkZGxld2FyZSIsInJlZW50ZXJlZCIsImJ1ZmZlciIsInB1c2giLCJuZXh0TXNnIiwibW9kaWZpZWQiLCJMb2dnZXJTZXJ2aWNlIiwiaW5mbyIsImNvbXBvbmVudE5hbWUiLCJkZWJ1ZyIsInVwZGF0ZSIsImNtZCIsImV4ZWNDbWQiLCJleCIsImVycm9yIiwic2hpZnQiLCJtb3VudGVkIiwiZm9yY2VVcGRhdGUiLCJpbml0Q21kIiwiZm9yRWFjaCIsImNhbGwiLCJkaXNwYXRjaCIsIlJlYWN0IiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDc0JBLFk7Ozs7O0FBUWxCO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0ksd0JBQW9CQyxLQUFwQixFQUFtQ0MsSUFBbkMsRUFBNkVDLElBQTdFLEVBQTJGO0FBQUE7O0FBQUE7O0FBQ3ZGLDhCQUFNRixLQUFOOztBQUR1Riw2REFaeEQsRUFZd0Q7O0FBQUEsZ0VBWHZFLEtBV3VFOztBQUFBLDhEQVZ6RSxLQVV5RTs7QUFBQSwrREEwRGhFLFVBQUNHLEdBQUQsRUFBcUI7QUFDNUMsVUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO0FBQUEsZUFBcUNBLEtBQUssS0FBSyxNQUFLQyxZQUFmLElBQStCQyxNQUFNLENBQUNDLG1CQUFQLENBQTJCSCxLQUEzQixFQUFrQ0ksTUFBbEMs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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztFQTlIaUYwQixrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpc3BhdGNoTWlkZGxld2FyZSwgTG9nZ2VyU2VydmljZSwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IENtZCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3IgYSByZWFjdCBjbGFzcyBjb21wb25lbnQgdXNpbmcgdGhlIGVsbWlzaCBwYXR0ZXJuLlxuICogQGV4cG9ydFxuICogQGFic3RyYWN0XG4gKiBAY2xhc3MgRWxtQ29tcG9uZW50XG4gKiBAZXh0ZW5kcyB7Q29tcG9uZW50PFRQcm9wcywgVE1vZGVsPn1cbiAqIEB0ZW1wbGF0ZSBUTW9kZWwgVGhlIHR5cGUgb2YgdGhlIG1vZGVsLlxuICogQHRlbXBsYXRlIFRNc2cgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VzLlxuICogQHRlbXBsYXRlIFRQcm9wcyBUaGUgdHlwZSBvZiB0aGUgcHJvcHMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbG1Db21wb25lbnQ8VE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZSwgVFByb3BzPiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxUUHJvcHM+IHtcbiAgICBwcml2YXRlIGluaXRDbWQ6IE51bGxhYmxlPENtZDxUTXNnPj4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWZmZXI6IFRNc2cgW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgbW91bnRlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudE1vZGVsOiBUTW9kZWw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsbUNvbXBvbmVudC5cbiAgICAgKiBAcGFyYW0ge1RQcm9wc30gcHJvcHMgVGhlIHByb3BzIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSB7KCkgPT4gVE1vZGVsfSBpbml0IFRoZSBpbml0aWFsaXplciBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1zZz4sIG5hbWU6IHN0cmluZykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG5cbiAgICAgICAgY29uc3QgW21vZGVsLCBjbWRdID0gaW5pdCh0aGlzLnByb3BzKTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudE5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IG1vZGVsO1xuICAgICAgICB0aGlzLmluaXRDbWQgPSBjbWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBsb2FkZWQuXG4gICAgICogV2hlbiBpbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QsIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGhhcyB0byBiZSBjYWxsZWQuXG4gICAgICogQG1lbWJlcm9mIEVsbUNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBjb21wb25lbnREaWRNb3VudCAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW91bnRlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5pdENtZCkge1xuICAgICAgICAgICAgdGhpcy5leGVjQ21kKHRoaXMuaW5pdENtZCk7XG4gICAgICAgICAgICB0aGlzLmluaXRDbWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIGJlZm9yZSB1bmxvYWRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBXaGVuIGltcGxlbWVudGluZyB0aGlzIG1ldGhvZCwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gaGFzIHRvIGJlIGNhbGxlZC5cbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50ICgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3VudGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBleGVjQ21kIChjbWQ6IENtZDxUTXNnPik6IHZvaWQge1xuICAgICAgICBjbWQuZm9yRWFjaChjYWxsID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FsbCh0aGlzLmRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsLlxuICAgICAqIEByZWFkb25seVxuICAgICAqIEB0eXBlIHtSZWFkb25seTxUTW9kZWw+fVxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsICgpOiBSZWFkb25seTxUTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE1vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoZXMgYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1zZ30gbXNnIFRoZSBtZXNzYWdlIHRvIGRpc3BhdGNoLlxuICAgICAqIEBtZW1iZXJvZiBFbG1Db21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGF0Y2ggPSAobXNnOiBUTXNnKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGVsSGFzQ2hhbmdlZCA9IChtb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiBtb2RlbCAhPT0gdGhpcy5jdXJyZW50TW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5yZWVudGVyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNc2cgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIHRoaXMuY29tcG9uZW50TmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCB0aGlzLmNvbXBvbmVudE5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW21vZGVsLCBjbWRdID0gdGhpcy51cGRhdGUodGhpcy5jdXJyZW50TW9kZWwsIG5leHRNc2csIHRoaXMucHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2RlbCA9IHsgLi4udGhpcy5jdXJyZW50TW9kZWwsIC4uLm1vZGVsIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gdGhpcy5idWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdW50ZWQgJiYgbW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgdGhpcy5jb21wb25lbnROYW1lLCB0aGlzLmN1cnJlbnRNb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG1vZGlmeSB0aGUgbW9kZWwgYmFzZWQgb24gYSBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSB7VE1vZGVsfSBtb2RlbCBUaGUgY3VycmVudCBtb2RlbC5cbiAgICAgKiBAcGFyYW0ge1RNc2d9IG1zZyBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSB7VFByb3BzfSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmV3IG1vZGVsIChjYW4gYWxzbyBiZSBhbiBlbXB0eSBvYmplY3Qge30pIGFuZCBhbiBvcHRpb25hbCBuZXcgbWVzc2FnZSB0byBkaXNwYXRjaC5cbiAgICAgKiBAYWJzdHJhY3RcbiAgICAgKiBAbWVtYmVyb2YgRWxtQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+O1xufVxuXG5leHBvcnQgdHlwZSBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+ID0gW1RNb2RlbCwgQ21kPFRNZXNzYWdlPj9dO1xuXG5leHBvcnQgdHlwZSBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiA9IChwcm9wczogVFByb3BzKSA9PiBJbml0UmVzdWx0PFRNb2RlbCwgVE1lc3NhZ2U+O1xuXG4vKipcbiAqIFR5cGUgZm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHVwZGF0ZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlUmV0dXJuVHlwZTxUTW9kZWwsIFRNc2c+ID0gW1BhcnRpYWw8VE1vZGVsPiwgQ21kPFRNc2c+P107XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiA9IChtb2RlbDogVE1vZGVsLCBtc2c6IFRNc2csIHByb3BzOiBUUHJvcHMpID0+IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTXNnPjsiXX0=
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Cmd, createCmd, Dispatch } from "./Cmd";
|
|
2
|
-
import { ElmComponent, UpdateReturnType } from "./ElmComponent";
|
|
3
|
-
import { ErrorMessage, handleError, MsgSource, UpdateMap } from "./ElmUtilities";
|
|
2
|
+
import { ElmComponent, InitResult, UpdateReturnType } from "./ElmComponent";
|
|
3
|
+
import { ErrorMessage, errorMsg, handleError, MsgSource, UpdateMap } from "./ElmUtilities";
|
|
4
4
|
import { init, Logger, Message } from "./Init";
|
|
5
|
-
import { useElmish } from "./useElmish";
|
|
6
|
-
export type { Logger, Message, Cmd, Dispatch, UpdateReturnType, MsgSource, UpdateMap, ErrorMessage, };
|
|
7
|
-
export { init, createCmd, ElmComponent, handleError, useElmish, };
|
|
5
|
+
import { SubscriptionResult, useElmish } from "./useElmish";
|
|
6
|
+
export type { Logger, Message, Cmd, Dispatch, InitResult, UpdateReturnType, SubscriptionResult, MsgSource, UpdateMap, ErrorMessage, };
|
|
7
|
+
export { init, createCmd, ElmComponent, errorMsg, handleError, useElmish, };
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "createCmd", {
|
|
|
15
15
|
return _Cmd.createCmd;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "errorMsg", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _ElmUtilities.errorMsg;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
18
24
|
Object.defineProperty(exports, "handleError", {
|
|
19
25
|
enumerable: true,
|
|
20
26
|
get: function get() {
|
|
@@ -43,4 +49,4 @@ var _ElmUtilities = require("./ElmUtilities");
|
|
|
43
49
|
var _Init = require("./Init");
|
|
44
50
|
|
|
45
51
|
var _useElmish = require("./useElmish");
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgY3JlYXRlQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgRWxtQ29tcG9uZW50LCBJbml0UmVzdWx0LCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIGVycm9yTXNnLCBoYW5kbGVFcnJvciwgTXNnU291cmNlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IGluaXQsIExvZ2dlciwgTWVzc2FnZSB9IGZyb20gXCIuL0luaXRcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblJlc3VsdCwgdXNlRWxtaXNoIH0gZnJvbSBcIi4vdXNlRWxtaXNoXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgICBMb2dnZXIsXG4gICAgTWVzc2FnZSxcbiAgICBDbWQsXG4gICAgRGlzcGF0Y2gsXG4gICAgSW5pdFJlc3VsdCxcbiAgICBVcGRhdGVSZXR1cm5UeXBlLFxuICAgIFN1YnNjcmlwdGlvblJlc3VsdCxcbiAgICBNc2dTb3VyY2UsXG4gICAgVXBkYXRlTWFwLFxuICAgIEVycm9yTWVzc2FnZSxcbn07XG5cbmV4cG9ydCB7XG4gICAgaW5pdCxcbiAgICBjcmVhdGVDbWQsXG4gICAgRWxtQ29tcG9uZW50LFxuICAgIGVycm9yTXNnLFxuICAgIGhhbmRsZUVycm9yLFxuICAgIHVzZUVsbWlzaCxcbn07Il19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dispatch } from "../Cmd";
|
|
2
|
+
import { InitFunction, UpdateFunction } from "../ElmComponent";
|
|
2
3
|
import { MessageBase } from "../ElmUtilities";
|
|
3
|
-
import { UpdateFunction } from "../ElmComponent";
|
|
4
4
|
/**
|
|
5
5
|
* Hook to use the Elm architecture pattern in a function component.
|
|
6
6
|
* @param props The props of the component.
|
|
@@ -12,4 +12,4 @@ import { UpdateFunction } from "../ElmComponent";
|
|
|
12
12
|
* const [model, dispatch] = useElmish(props, init, update, "MyComponent");
|
|
13
13
|
* @deprecated Use `useElmish` with an options object instead.
|
|
14
14
|
*/
|
|
15
|
-
export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init:
|
|
15
|
+
export declare function useElmish<TProps, TModel, TMsg extends MessageBase>(props: TProps, init: InitFunction<TProps, TModel, TMsg>, update: UpdateFunction<TProps, TModel, TMsg>, name: string): [TModel, Dispatch<TMsg>];
|
package/dist/legacy/useElmish.js
CHANGED
|
@@ -124,9 +124,12 @@ function useElmish(props, init, update, name) {
|
|
|
124
124
|
|
|
125
125
|
initializedModel = initModel;
|
|
126
126
|
setModel(initializedModel);
|
|
127
|
-
|
|
127
|
+
|
|
128
|
+
if (initCmd) {
|
|
129
|
+
execCmd(initCmd);
|
|
130
|
+
}
|
|
128
131
|
}
|
|
129
132
|
|
|
130
133
|
return [initializedModel, dispatch];
|
|
131
134
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZWdhY3kvdXNlRWxtaXNoLnRzIl0sIm5hbWVzIjpbInVzZUVsbWlzaCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsIm5hbWUiLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJjbWQiLCJmb3JFYWNoIiwiY2FsbCIsImRpc3BhdGNoIiwiZXgiLCJMb2dnZXJTZXJ2aWNlIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFNBQVQsQ0FBOERDLEtBQTlELEVBQTZFQyxJQUE3RSxFQUF1SEMsTUFBdkgsRUFBcUtDLElBQXJLLEVBQTZNO0FBQ2hOLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQWUsR0FBRyxFQUF4QjtBQUNBLE1BQUlDLFlBQTZCLEdBQUcsRUFBcEM7O0FBRUEsa0JBQTBCLHFCQUEyQixJQUEzQixDQUExQjtBQUFBO0FBQUEsTUFBT0MsS0FBUDtBQUFBLE1BQWNDLFFBQWQ7O0FBQ0EsTUFBSUMsZ0JBQWdCLEdBQUdGLEtBQXZCO0FBRUEsTUFBTUcsT0FBTyxHQUFHLHdCQUFZLFVBQUNDLEdBQUQsRUFBMEI7QUFDbERBLElBQUFBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFVBQUFDLElB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IjpbImltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi4vQ21kXCI7XG5pbXBvcnQgeyBkaXNwYXRjaE1pZGRsZXdhcmUsIExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBVcGRhdGVGdW5jdGlvbiB9IGZyb20gXCIuLi9FbG1Db21wb25lbnRcIjtcbmltcG9ydCB7IE1lc3NhZ2VCYXNlLCBOdWxsYWJsZSB9IGZyb20gXCIuLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIEhvb2sgdG8gdXNlIHRoZSBFbG0gYXJjaGl0ZWN0dXJlIHBhdHRlcm4gaW4gYSBmdW5jdGlvbiBjb21wb25lbnQuXG4gKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BzIG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gaW5pdCBGdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBtb2RlbC5cbiAqIEBwYXJhbSB1cGRhdGUgVGhlIHVwZGF0ZSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb21wb25lbnQuXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHByb3BzLCBpbml0LCB1cGRhdGUsIFwiTXlDb21wb25lbnRcIik7XG4gKiBAZGVwcmVjYXRlZCBVc2UgYHVzZUVsbWlzaGAgd2l0aCBhbiBvcHRpb25zIG9iamVjdCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTXNnIGV4dGVuZHMgTWVzc2FnZUJhc2U+IChwcm9wczogVFByb3BzLCBpbml0OiBJbml0RnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNc2c+LCB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTXNnPiwgbmFtZTogc3RyaW5nKTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1zZz5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTXNnIFtdID0gW107XG4gICAgbGV0IGN1cnJlbnRNb2RlbDogUGFydGlhbDxUTW9kZWw+ID0ge307XG5cbiAgICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZVN0YXRlPE51bGxhYmxlPFRNb2RlbD4+KG51bGwpO1xuICAgIGxldCBpbml0aWFsaXplZE1vZGVsID0gbW9kZWw7XG5cbiAgICBjb25zdCBleGVjQ21kID0gdXNlQ2FsbGJhY2soKGNtZDogQ21kPFRNc2c+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNc2cpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNc2cgfCB1bmRlZmluZWQgPSBtc2c7XG4gICAgICAgICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgd2hpbGUgKG5leHRNc2cpIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5pbmZvKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cubmFtZSk7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZyk7XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbbmV3TW9kZWwsIGNtZF0gPSB1cGRhdGUoeyAuLi5pbml0aWFsaXplZE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfSwgbmV4dE1zZywgcHJvcHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlbEhhc0NoYW5nZWQobmV3TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9kZWwgPSB7IC4uLmN1cnJlbnRNb2RlbCwgLi4ubmV3TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNtZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NtZChjbWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5leHRNc2cgPSBidWZmZXIuc2hpZnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRNb2RlbChwcmV2TW9kZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkTW9kZWwgPSB7IC4uLnByZXZNb2RlbCBhcyBUTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwidXBkYXRlIG1vZGVsIGZvclwiLCBuYW1lLCB1cGRhdGVkTW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTW9kZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoIWluaXRpYWxpemVkTW9kZWwpIHtcbiAgICAgICAgY29uc3QgW2luaXRNb2RlbCwgaW5pdENtZF0gPSBpbml0KHByb3BzKTtcblxuICAgICAgICBpbml0aWFsaXplZE1vZGVsID0gaW5pdE1vZGVsO1xuICAgICAgICBzZXRNb2RlbChpbml0aWFsaXplZE1vZGVsKTtcblxuICAgICAgICBpZiAoaW5pdENtZCkge1xuICAgICAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbaW5pdGlhbGl6ZWRNb2RlbCwgZGlzcGF0Y2hdO1xufSJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Dispatch } from "../Cmd";
|
|
2
2
|
import { MessageBase, UpdateMap } from "../ElmUtilities";
|
|
3
|
+
import { InitFunction } from "../ElmComponent";
|
|
3
4
|
/**
|
|
4
5
|
* Hook to use the Elm architecture pattern in a function component.
|
|
5
6
|
* @param props The props of the component.
|
|
@@ -11,4 +12,4 @@ import { MessageBase, UpdateMap } from "../ElmUtilities";
|
|
|
11
12
|
* const [model, dispatch] = useElmishMap(props, init, updateMap, "MyComponent");
|
|
12
13
|
* @deprecated Use `useElmish` with an options object instead.
|
|
13
14
|
*/
|
|
14
|
-
export declare function useElmishMap<TProps, TModel, TMessage extends MessageBase>(props: TProps, init:
|
|
15
|
+
export declare function useElmishMap<TProps, TModel, TMessage extends MessageBase>(props: TProps, init: InitFunction<TProps, TModel, TMessage>, updateMap: UpdateMap<TProps, TModel, TMessage>, name: string): [TModel, Dispatch<TMessage>];
|
|
@@ -126,9 +126,12 @@ function useElmishMap(props, init, updateMap, name) {
|
|
|
126
126
|
|
|
127
127
|
initializedModel = initModel;
|
|
128
128
|
setModel(initializedModel);
|
|
129
|
-
|
|
129
|
+
|
|
130
|
+
if (initCmd) {
|
|
131
|
+
execCmd(initCmd);
|
|
132
|
+
}
|
|
130
133
|
}
|
|
131
134
|
|
|
132
135
|
return [initializedModel, dispatch];
|
|
133
136
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sZWdhY3kvdXNlRWxtaXNoTWFwLnRzIl0sIm5hbWVzIjpbInVzZUVsbWlzaE1hcCIsInByb3BzIiwiaW5pdCIsInVwZGF0ZU1hcCIsIm5hbWUiLCJyZWVudGVyZWQiLCJidWZmZXIiLCJjdXJyZW50TW9kZWwiLCJtb2RlbCIsInNldE1vZGVsIiwiaW5pdGlhbGl6ZWRNb2RlbCIsImV4ZWNDbWQiLCJjbWQiLCJmb3JFYWNoIiwiY2FsbCIsImRpc3BhdGNoIiwiZXgiLCJMb2dnZXJTZXJ2aWNlIiwiZXJyb3IiLCJtc2ciLCJtb2RlbEhhc0NoYW5nZWQiLCJ1cGRhdGVkTW9kZWwiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwibGVuZ3RoIiwiZGlzcGF0Y2hNaWRkbGV3YXJlIiwicHVzaCIsIm5leHRNc2ciLCJtb2RpZmllZCIsImluZm8iLCJkZWJ1ZyIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFlBQVQsQ0FBcUVDLEtBQXJFLEVBQW9GQyxJQUFwRixFQUFrSUMsU0FBbEksRUFBa0xDLElBQWxMLEVBQThOO0FBQ2pPLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7QUFBQTtBQUFBLE1BQU9DLEtBQVA7QUFBQSxNQUFjQyxRQUFkOztBQUNBLE1BQUlDLGdCQUFnQixHQUFHRixLQUF2QjtBQUVBLE1BQU1HLE9BQU8sR0FBRyx3QkFBWSxVQUFDQyxHQUFELEVBQThCO0FBQ3REQSxJQUFBQSxHQUFHLENBQUNDLE9B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QVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENtZCwgRGlzcGF0Y2ggfSBmcm9tIFwiLi4vQ21kXCI7XG5pbXBvcnQgeyBkaXNwYXRjaE1pZGRsZXdhcmUsIExvZ2dlclNlcnZpY2UgfSBmcm9tIFwiLi4vSW5pdFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi4vRWxtVXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNhbGxVcGRhdGVNYXAgfSBmcm9tIFwiLi4vdXNlRWxtaXNoXCI7XG5pbXBvcnQgeyBJbml0RnVuY3Rpb24gfSBmcm9tIFwiLi4vRWxtQ29tcG9uZW50XCI7XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcHMgb2YgdGhlIGNvbXBvbmVudC5cbiAqIEBwYXJhbSBpbml0IEZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIG1vZGVsLlxuICogQHBhcmFtIHVwZGF0ZU1hcCBUaGUgdXBkYXRlIG1hcCBvYmplY3QuXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tcG9uZW50LlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaE1hcChwcm9wcywgaW5pdCwgdXBkYXRlTWFwLCBcIk15Q29tcG9uZW50XCIpO1xuICogQGRlcHJlY2F0ZWQgVXNlIGB1c2VFbG1pc2hgIHdpdGggYW4gb3B0aW9ucyBvYmplY3QgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVsbWlzaE1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHByb3BzOiBUUHJvcHMsIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCB1cGRhdGVNYXA6IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LCBuYW1lOiBzdHJpbmcpOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgY29uc3QgZXhlY0NtZCA9IHVzZUNhbGxiYWNrKChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwoZGlzcGF0Y2gpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uaW5mbyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnLm5hbWUpO1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZU1hcCh1cGRhdGVNYXAsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZE1vZGVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgaWYgKGluaXRDbWQpIHtcbiAgICAgICAgICAgIGV4ZWNDbWQoaW5pdENtZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn0iXX0=
|
package/dist/useElmish.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Cmd, Dispatch } from "./Cmd";
|
|
2
|
+
import { InitFunction, UpdateFunction, UpdateReturnType } from "./ElmComponent";
|
|
2
3
|
import { MessageBase, UpdateMap } from "./ElmUtilities";
|
|
3
|
-
|
|
4
|
+
export declare type SubscriptionResult<TMessage> = [Cmd<TMessage>, (() => void)?];
|
|
5
|
+
declare type Subscription<TModel, TMessage> = (model: TModel) => SubscriptionResult<TMessage>;
|
|
4
6
|
interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
7
|
+
name: string;
|
|
5
8
|
props: TProps;
|
|
6
|
-
init:
|
|
9
|
+
init: InitFunction<TProps, TModel, TMessage>;
|
|
7
10
|
update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>;
|
|
8
|
-
|
|
11
|
+
subscription?: Subscription<TModel, TMessage>;
|
|
9
12
|
}
|
|
10
13
|
/**
|
|
11
14
|
* Hook to use the Elm architecture pattern in a function component.
|
|
@@ -14,7 +17,7 @@ interface UseElmishOptions<TProps, TModel, TMessage extends MessageBase> {
|
|
|
14
17
|
* @example
|
|
15
18
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
16
19
|
*/
|
|
17
|
-
export declare function useElmish<TProps, TModel, TMessage extends MessageBase>({ props, init, update,
|
|
20
|
+
export declare function useElmish<TProps, TModel, TMessage extends MessageBase>({ name, props, init, update, subscription }: UseElmishOptions<TProps, TModel, TMessage>): [TModel, Dispatch<TMessage>];
|
|
18
21
|
export declare function callUpdate<TProps, TModel, TMessage extends MessageBase>(update: UpdateFunction<TProps, TModel, TMessage> | UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
19
22
|
export declare function callUpdateMap<TProps, TModel, TMessage extends MessageBase>(updateMap: UpdateMap<TProps, TModel, TMessage>, msg: TMessage, model: TModel, props: TProps): UpdateReturnType<TModel, TMessage>;
|
|
20
23
|
export {};
|
package/dist/useElmish.js
CHANGED
|
@@ -37,10 +37,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
37
37
|
* const [model, dispatch] = useElmish({ props, init, update, name: "MyComponent" });
|
|
38
38
|
*/
|
|
39
39
|
function useElmish(_ref) {
|
|
40
|
-
var
|
|
40
|
+
var name = _ref.name,
|
|
41
|
+
props = _ref.props,
|
|
41
42
|
init = _ref.init,
|
|
42
43
|
update = _ref.update,
|
|
43
|
-
|
|
44
|
+
subscription = _ref.subscription;
|
|
44
45
|
var reentered = false;
|
|
45
46
|
var buffer = [];
|
|
46
47
|
var currentModel = {};
|
|
@@ -126,9 +127,26 @@ function useElmish(_ref) {
|
|
|
126
127
|
|
|
127
128
|
initializedModel = initModel;
|
|
128
129
|
setModel(initializedModel);
|
|
129
|
-
|
|
130
|
+
|
|
131
|
+
if (initCmd) {
|
|
132
|
+
execCmd(initCmd);
|
|
133
|
+
}
|
|
130
134
|
}
|
|
131
135
|
|
|
136
|
+
(0, _react.useEffect)(function () {
|
|
137
|
+
if (subscription) {
|
|
138
|
+
var _subscription = subscription(initializedModel),
|
|
139
|
+
_subscription2 = _slicedToArray(_subscription, 2),
|
|
140
|
+
subCmd = _subscription2[0],
|
|
141
|
+
destructor = _subscription2[1];
|
|
142
|
+
|
|
143
|
+
execCmd(subCmd);
|
|
144
|
+
|
|
145
|
+
if (destructor) {
|
|
146
|
+
return destructor;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}, []);
|
|
132
150
|
return [initializedModel, dispatch];
|
|
133
151
|
}
|
|
134
152
|
|
|
@@ -145,4 +163,4 @@ function callUpdateMap(updateMap, msg, model, props) {
|
|
|
145
163
|
// @ts-expect-error -- We know that nextMsg fits
|
|
146
164
|
return updateMap[msg.name](msg, model, props);
|
|
147
165
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwicHJvcHMiLCJpbml0IiwidXBkYXRlIiwibmFtZSIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwiY2FsbFVwZGF0ZU1hcCIsInVwZGF0ZU1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0E7O0FBR0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxTQUFULE9BQTJLO0FBQUEsTUFBdkdDLEtBQXVHLFFBQXZHQSxLQUF1RztBQUFBLE1BQWhHQyxJQUFnRyxRQUFoR0EsSUFBZ0c7QUFBQSxNQUExRkMsTUFBMEYsUUFBMUZBLE1BQTBGO0FBQUEsTUFBbEZDLElBQWtGLFFBQWxGQSxJQUFrRjtBQUM5SyxNQUFJQyxTQUFTLEdBQUcsS0FBaEI7QUFDQSxNQUFNQyxNQUFtQixHQUFHLEVBQTVCO0FBQ0EsTUFBSUMsWUFBNkIsR0FBRyxFQUFwQzs7QUFFQSxrQkFBMEIscUJBQTJCLElBQTNCLENBQTFCO0FBQUE7QUFBQSxNQUFPQyxLQUFQO0FBQUEsTUFBY0MsUUFBZDs7QUFDQSxNQUFJQyxnQkFBZ0IsR0FBR0YsS0FBdkI7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QUFDSDs7QUFFRCxTQUFPLENBQUMxQixnQkFBRCxFQUFtQkssUUFBbkIsQ0FBUDtBQUNIOztBQUVNLFNBQVNnQixVQUFULENBQW1FNUIsTUFBbkUsRUFBMkpnQixHQUEzSixFQUEwS1gsS0FBMUssRUFBeUxQLEtBQXpMLEVBQTRPO0FBQy9PLE1BQUksT0FBT0UsTUFBUCxLQUFrQixVQUF0QixFQUFrQztBQUM5QixXQUFPQSxNQUFNLENBQUNLLEtBQUQsRUFBUVcsR0FBUixFQUFhbEIsS0FBYixDQUFiO0FBQ0g7O0FBRUQsU0FBT29DLGFBQWEsQ0FBQ2xDLE1BQUQsRUFBU2dCLEdBQVQsRUFBY1gsS0FBZCxFQUFxQlAsS0FBckIsQ0FBcEI7QUFDSDs7QUFFTSxTQUFTb0MsYUFBVCxDQUFzRUMsU0FBdEUsRUFBc0huQixHQUF0SCxFQUFxSVgsS0FBckksRUFBb0pQLEtBQXBKLEVBQXVNO0FBQzFNO0FBQ0E7QUFDQSxTQUFPcUMsU0FBUyxDQUFDbkIsR0FBRyxDQUFDZixJQUFMLENBQVQsQ0FBd0NlLEdBQXhDLEVBQTZDWCxLQUE3QyxFQUFvRFAsS0FBcEQsQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IFVwZGF0ZUZ1bmN0aW9uLCBVcGRhdGVSZXR1cm5UeXBlIH0gZnJvbSBcIi4vRWxtQ29tcG9uZW50XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW50ZXJmYWNlIFVzZUVsbWlzaE9wdGlvbnM8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+IHtcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IChwcm9wczogVFByb3BzKSA9PiBbVE1vZGVsLCBDbWQ8VE1lc3NhZ2U+XSxcbiAgICB1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPixcbiAgICBuYW1lOiBzdHJpbmcsXG59XG5cbi8qKlxuICogSG9vayB0byB1c2UgdGhlIEVsbSBhcmNoaXRlY3R1cmUgcGF0dGVybiBpbiBhIGZ1bmN0aW9uIGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7VXNlRWxtaXNoT3B0aW9uc30gb3B0aW9ucyBUaGUgb3B0aW9ucyBwYXNzZWQgdGhlIHRoZSBob29rLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRoZSBjdXJyZW50IG1vZGVsIGFuZCB0aGUgZGlzcGF0Y2hlci5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBbbW9kZWwsIGRpc3BhdGNoXSA9IHVzZUVsbWlzaCh7IHByb3BzLCBpbml0LCB1cGRhdGUsIG5hbWU6IFwiTXlDb21wb25lbnRcIiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUVsbWlzaDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4gKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZSB9OiBVc2VFbG1pc2hPcHRpb25zPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4pOiBbVE1vZGVsLCBEaXNwYXRjaDxUTWVzc2FnZT5dIHtcbiAgICBsZXQgcmVlbnRlcmVkID0gZmFsc2U7XG4gICAgY29uc3QgYnVmZmVyOiBUTWVzc2FnZSBbXSA9IFtdO1xuICAgIGxldCBjdXJyZW50TW9kZWw6IFBhcnRpYWw8VE1vZGVsPiA9IHt9O1xuXG4gICAgY29uc3QgW21vZGVsLCBzZXRNb2RlbF0gPSB1c2VTdGF0ZTxOdWxsYWJsZTxUTW9kZWw+PihudWxsKTtcbiAgICBsZXQgaW5pdGlhbGl6ZWRNb2RlbCA9IG1vZGVsO1xuXG4gICAgY29uc3QgZXhlY0NtZCA9IHVzZUNhbGxiYWNrKChjbWQ6IENtZDxUTWVzc2FnZT4pOiB2b2lkID0+IHtcbiAgICAgICAgY21kLmZvckVhY2goY2FsbCA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNhbGwoZGlzcGF0Y2gpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXg6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGRpc3BhdGNoID0gdXNlQ2FsbGJhY2soKG1zZzogVE1lc3NhZ2UpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlbEhhc0NoYW5nZWQgPSAodXBkYXRlZE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4pOiBib29sZWFuID0+IHVwZGF0ZWRNb2RlbCAhPT0gaW5pdGlhbGl6ZWRNb2RlbCAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh1cGRhdGVkTW9kZWwpLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgaWYgKGRpc3BhdGNoTWlkZGxld2FyZSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hNaWRkbGV3YXJlKG1zZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVlbnRlcmVkKSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChtc2cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVlbnRlcmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgbGV0IG5leHRNc2c6IFRNZXNzYWdlIHwgdW5kZWZpbmVkID0gbXNnO1xuICAgICAgICAgICAgbGV0IG1vZGlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHdoaWxlIChuZXh0TXNnKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uaW5mbyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnLm5hbWUpO1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmRlYnVnKFwiRWxtXCIsIFwibWVzc2FnZSBmcm9tXCIsIG5hbWUsIG5leHRNc2cpO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW25ld01vZGVsLCBjbWRdID0gY2FsbFVwZGF0ZSh1cGRhdGUsIG5leHRNc2csIHsgLi4uaW5pdGlhbGl6ZWRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH0sIHByb3BzKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZWxIYXNDaGFuZ2VkKG5ld01vZGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE1vZGVsID0geyAuLi5jdXJyZW50TW9kZWwsIC4uLm5ld01vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjbWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWNDbWQoY21kKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmVycm9yKGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBuZXh0TXNnID0gYnVmZmVyLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWVudGVyZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7XG4gICAgICAgICAgICAgICAgc2V0TW9kZWwocHJldk1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1vZGVsID0geyAuLi5wcmV2TW9kZWwgYXMgVE1vZGVsLCAuLi5jdXJyZW50TW9kZWwgfTtcblxuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcInVwZGF0ZSBtb2RlbCBmb3JcIiwgbmFtZSwgdXBkYXRlZE1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlZE1vZGVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgaWYgKCFpbml0aWFsaXplZE1vZGVsKSB7XG4gICAgICAgIGNvbnN0IFtpbml0TW9kZWwsIGluaXRDbWRdID0gaW5pdChwcm9wcyk7XG5cbiAgICAgICAgaW5pdGlhbGl6ZWRNb2RlbCA9IGluaXRNb2RlbDtcbiAgICAgICAgc2V0TW9kZWwoaW5pdGlhbGl6ZWRNb2RlbCk7XG5cbiAgICAgICAgZXhlY0NtZChpbml0Q21kKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBuZXh0TXNnIGZpdHNcbiAgICByZXR1cm4gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0obXNnLCBtb2RlbCwgcHJvcHMpO1xufSJdfQ==
|
|
166
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFbG1pc2gudHMiXSwibmFtZXMiOlsidXNlRWxtaXNoIiwibmFtZSIsInByb3BzIiwiaW5pdCIsInVwZGF0ZSIsInN1YnNjcmlwdGlvbiIsInJlZW50ZXJlZCIsImJ1ZmZlciIsImN1cnJlbnRNb2RlbCIsIm1vZGVsIiwic2V0TW9kZWwiLCJpbml0aWFsaXplZE1vZGVsIiwiZXhlY0NtZCIsImNtZCIsImZvckVhY2giLCJjYWxsIiwiZGlzcGF0Y2giLCJleCIsIkxvZ2dlclNlcnZpY2UiLCJlcnJvciIsIm1zZyIsIm1vZGVsSGFzQ2hhbmdlZCIsInVwZGF0ZWRNb2RlbCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJsZW5ndGgiLCJkaXNwYXRjaE1pZGRsZXdhcmUiLCJwdXNoIiwibmV4dE1zZyIsIm1vZGlmaWVkIiwiaW5mbyIsImRlYnVnIiwiY2FsbFVwZGF0ZSIsIm5ld01vZGVsIiwic2hpZnQiLCJwcmV2TW9kZWwiLCJpbml0TW9kZWwiLCJpbml0Q21kIiwic3ViQ21kIiwiZGVzdHJ1Y3RvciIsImNhbGxVcGRhdGVNYXAiLCJ1cGRhdGVNYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBOztBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsU0FBVCxPQUF5TDtBQUFBLE1BQXJIQyxJQUFxSCxRQUFySEEsSUFBcUg7QUFBQSxNQUEvR0MsS0FBK0csUUFBL0dBLEtBQStHO0FBQUEsTUFBeEdDLElBQXdHLFFBQXhHQSxJQUF3RztBQUFBLE1BQWxHQyxNQUFrRyxRQUFsR0EsTUFBa0c7QUFBQSxNQUExRkMsWUFBMEYsUUFBMUZBLFlBQTBGO0FBQzVMLE1BQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLE1BQU1DLE1BQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJQyxZQUE2QixHQUFHLEVBQXBDOztBQUVBLGtCQUEwQixxQkFBMkIsSUFBM0IsQ0FBMUI7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QUFDQTFCLElBQUFBLFFBQVEsQ0FBQ0MsZ0JBQUQsQ0FBUjs7QUFFQSxRQUFJMEIsT0FBSixFQUFhO0FBQ1R6QixNQUFBQSxPQUFPLENBQUN5QixPQUFELENBQVA7QUFDSDtBQUNKOztBQUVELHdCQUFVLFlBQU07QUFDWixRQUFJaEMsWUFBSixFQUFrQjtBQUNkLDBCQUE2QkEsWUFBWSxDQUFDTSxnQkFBRCxDQUF6QztBQUFBO0FBQUEsVUFBTzJCLE1BQVA7QUFBQSxVQUFlQyxVQUFmOztBQUVBM0IsTUFBQUEsT0FBTyxDQUFDMEIsTUFBRCxDQUFQOztBQUVBLFVBQUlDLFVBQUosRUFBZ0I7QUFDWixlQUFPQSxVQUFQO0FBQ0g7QUFDSjtBQUNKLEdBVkQsRUFVRyxFQVZIO0FBWUEsU0FBTyxDQUFDNUIsZ0JBQUQsRUFBbUJLLFFBQW5CLENBQVA7QUFDSDs7QUFFTSxTQUFTZ0IsVUFBVCxDQUFtRTVCLE1BQW5FLEVBQTJKZ0IsR0FBM0osRUFBMEtYLEtBQTFLLEVBQXlMUCxLQUF6TCxFQUE0TztBQUMvTyxNQUFJLE9BQU9FLE1BQVAsS0FBa0IsVUFBdEIsRUFBa0M7QUFDOUIsV0FBT0EsTUFBTSxDQUFDSyxLQUFELEVBQVFXLEdBQVIsRUFBYWxCLEtBQWIsQ0FBYjtBQUNIOztBQUVELFNBQU9zQyxhQUFhLENBQUNwQyxNQUFELEVBQVNnQixHQUFULEVBQWNYLEtBQWQsRUFBcUJQLEtBQXJCLENBQXBCO0FBQ0g7O0FBRU0sU0FBU3NDLGFBQVQsQ0FBc0VDLFNBQXRFLEVBQXNIckIsR0FBdEgsRUFBcUlYLEtBQXJJLEVBQW9KUCxLQUFwSixFQUF1TTtBQUMxTTtBQUNBO0FBQ0EsU0FBT3VDLFNBQVMsQ0FBQ3JCLEdBQUcsQ0FBQ25CLElBQUwsQ0FBVCxDQUF3Q21CLEdBQXhDLEVBQTZDWCxLQUE3QyxFQUFvRFAsS0FBcEQsQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ21kLCBEaXNwYXRjaCB9IGZyb20gXCIuL0NtZFwiO1xuaW1wb3J0IHsgZGlzcGF0Y2hNaWRkbGV3YXJlLCBMb2dnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vSW5pdFwiO1xuaW1wb3J0IHsgSW5pdEZ1bmN0aW9uLCBVcGRhdGVGdW5jdGlvbiwgVXBkYXRlUmV0dXJuVHlwZSB9IGZyb20gXCIuL0VsbUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTWVzc2FnZUJhc2UsIE51bGxhYmxlLCBVcGRhdGVNYXAgfSBmcm9tIFwiLi9FbG1VdGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIFN1YnNjcmlwdGlvblJlc3VsdDxUTWVzc2FnZT4gPSBbQ21kPFRNZXNzYWdlPiwgKCgpID0+IHZvaWQpP107XG50eXBlIFN1YnNjcmlwdGlvbjxUTW9kZWwsIFRNZXNzYWdlPiA9IChtb2RlbDogVE1vZGVsKSA9PiBTdWJzY3JpcHRpb25SZXN1bHQ8VE1lc3NhZ2U+O1xuXG5pbnRlcmZhY2UgVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZT4ge1xuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcm9wczogVFByb3BzLFxuICAgIGluaXQ6IEluaXRGdW5jdGlvbjxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHVwZGF0ZTogVXBkYXRlRnVuY3Rpb248VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiB8IFVwZGF0ZU1hcDxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+LFxuICAgIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjxUTW9kZWwsIFRNZXNzYWdlPixcbn1cblxuLyoqXG4gKiBIb29rIHRvIHVzZSB0aGUgRWxtIGFyY2hpdGVjdHVyZSBwYXR0ZXJuIGluIGEgZnVuY3Rpb24gY29tcG9uZW50LlxuICogQHBhcmFtIHtVc2VFbG1pc2hPcHRpb25zfSBvcHRpb25zIFRoZSBvcHRpb25zIHBhc3NlZCB0aGUgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbW9kZWwgYW5kIHRoZSBkaXNwYXRjaGVyLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IFttb2RlbCwgZGlzcGF0Y2hdID0gdXNlRWxtaXNoKHsgcHJvcHMsIGluaXQsIHVwZGF0ZSwgbmFtZTogXCJNeUNvbXBvbmVudFwiIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRWxtaXNoPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAoeyBuYW1lLCBwcm9wcywgaW5pdCwgdXBkYXRlLCBzdWJzY3JpcHRpb24gfTogVXNlRWxtaXNoT3B0aW9uczxUUHJvcHMsIFRNb2RlbCwgVE1lc3NhZ2U+KTogW1RNb2RlbCwgRGlzcGF0Y2g8VE1lc3NhZ2U+XSB7XG4gICAgbGV0IHJlZW50ZXJlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGJ1ZmZlcjogVE1lc3NhZ2UgW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE1vZGVsOiBQYXJ0aWFsPFRNb2RlbD4gPSB7fTtcblxuICAgIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlU3RhdGU8TnVsbGFibGU8VE1vZGVsPj4obnVsbCk7XG4gICAgbGV0IGluaXRpYWxpemVkTW9kZWwgPSBtb2RlbDtcblxuICAgIGNvbnN0IGV4ZWNDbWQgPSB1c2VDYWxsYmFjaygoY21kOiBDbWQ8VE1lc3NhZ2U+KTogdm9pZCA9PiB7XG4gICAgICAgIGNtZC5mb3JFYWNoKGNhbGwgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjYWxsKGRpc3BhdGNoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGV4OiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZXJyb3IoZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUNhbGxiYWNrKChtc2c6IFRNZXNzYWdlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9kZWxIYXNDaGFuZ2VkID0gKHVwZGF0ZWRNb2RlbDogUGFydGlhbDxUTW9kZWw+KTogYm9vbGVhbiA9PiB1cGRhdGVkTW9kZWwgIT09IGluaXRpYWxpemVkTW9kZWwgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModXBkYXRlZE1vZGVsKS5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChkaXNwYXRjaE1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoTWlkZGxld2FyZShtc2cpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlZW50ZXJlZCkge1xuICAgICAgICAgICAgYnVmZmVyLnB1c2gobXNnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZW50ZXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBuZXh0TXNnOiBUTWVzc2FnZSB8IHVuZGVmaW5lZCA9IG1zZztcbiAgICAgICAgICAgIGxldCBtb2RpZmllZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICB3aGlsZSAobmV4dE1zZykge1xuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2U/LmluZm8oXCJFbG1cIiwgXCJtZXNzYWdlIGZyb21cIiwgbmFtZSwgbmV4dE1zZy5uYW1lKTtcbiAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5kZWJ1ZyhcIkVsbVwiLCBcIm1lc3NhZ2UgZnJvbVwiLCBuYW1lLCBuZXh0TXNnKTtcblxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtuZXdNb2RlbCwgY21kXSA9IGNhbGxVcGRhdGUodXBkYXRlLCBuZXh0TXNnLCB7IC4uLmluaXRpYWxpemVkTW9kZWwsIC4uLmN1cnJlbnRNb2RlbCB9LCBwcm9wcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGVsSGFzQ2hhbmdlZChuZXdNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRNb2RlbCA9IHsgLi4uY3VycmVudE1vZGVsLCAuLi5uZXdNb2RlbCB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGVjQ21kKGNtZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChleDogdW5rbm93bikge1xuICAgICAgICAgICAgICAgICAgICBMb2dnZXJTZXJ2aWNlPy5lcnJvcihleCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV4dE1zZyA9IGJ1ZmZlci5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVlbnRlcmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChtb2RpZmllZCkge1xuICAgICAgICAgICAgICAgIHNldE1vZGVsKHByZXZNb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRNb2RlbCA9IHsgLi4ucHJldk1vZGVsIGFzIFRNb2RlbCwgLi4uY3VycmVudE1vZGVsIH07XG5cbiAgICAgICAgICAgICAgICAgICAgTG9nZ2VyU2VydmljZT8uZGVidWcoXCJFbG1cIiwgXCJ1cGRhdGUgbW9kZWwgZm9yXCIsIG5hbWUsIHVwZGF0ZWRNb2RlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRNb2RlbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIGlmICghaW5pdGlhbGl6ZWRNb2RlbCkge1xuICAgICAgICBjb25zdCBbaW5pdE1vZGVsLCBpbml0Q21kXSA9IGluaXQocHJvcHMpO1xuXG4gICAgICAgIGluaXRpYWxpemVkTW9kZWwgPSBpbml0TW9kZWw7XG4gICAgICAgIHNldE1vZGVsKGluaXRpYWxpemVkTW9kZWwpO1xuXG4gICAgICAgIGlmIChpbml0Q21kKSB7XG4gICAgICAgICAgICBleGVjQ21kKGluaXRDbWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgY29uc3QgW3N1YkNtZCwgZGVzdHJ1Y3Rvcl0gPSBzdWJzY3JpcHRpb24oaW5pdGlhbGl6ZWRNb2RlbCBhcyBUTW9kZWwpO1xuXG4gICAgICAgICAgICBleGVjQ21kKHN1YkNtZCk7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cnVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gW2luaXRpYWxpemVkTW9kZWwsIGRpc3BhdGNoXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGxVcGRhdGU8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUJhc2U+ICh1cGRhdGU6IFVwZGF0ZUZ1bmN0aW9uPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZT4gfCBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIGlmICh0eXBlb2YgdXBkYXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZShtb2RlbCwgbXNnLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbGxVcGRhdGVNYXAodXBkYXRlLCBtc2csIG1vZGVsLCBwcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxsVXBkYXRlTWFwPFRQcm9wcywgVE1vZGVsLCBUTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlPiAodXBkYXRlTWFwOiBVcGRhdGVNYXA8VFByb3BzLCBUTW9kZWwsIFRNZXNzYWdlPiwgbXNnOiBUTWVzc2FnZSwgbW9kZWw6IFRNb2RlbCwgcHJvcHM6IFRQcm9wcyk6IFVwZGF0ZVJldHVyblR5cGU8VE1vZGVsLCBUTWVzc2FnZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGtub3cgdGhhdCBuZXh0TXNnIGZpdHNcbiAgICByZXR1cm4gdXBkYXRlTWFwW21zZy5uYW1lIGFzIFRNZXNzYWdlW1wibmFtZVwiXV0obXNnLCBtb2RlbCwgcHJvcHMpO1xufSJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-elmish",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Elmish for React using Typescript",
|
|
5
5
|
"author": "atheck",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@babel/preset-env": "7.16.11",
|
|
15
15
|
"@babel/preset-react": "7.16.7",
|
|
16
16
|
"@babel/preset-typescript": "7.16.7",
|
|
17
|
-
"@testing-library/react": "
|
|
17
|
+
"@testing-library/react": "13.0.0",
|
|
18
18
|
"@types/jest": "27.4.1",
|
|
19
19
|
"@types/react": "17.0.43",
|
|
20
20
|
"eslint": "8.12.0",
|