@tethys/cdk 15.0.0-next.4 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/behaviors/action-behavior.d.ts +11 -0
- package/behaviors/async-behavior.d.ts +14 -0
- package/behaviors/behavior.d.ts +17 -0
- package/behaviors/index.d.ts +2 -2
- package/behaviors/types.d.ts +3 -0
- package/esm2020/behaviors/action-behavior.mjs +52 -0
- package/esm2020/behaviors/async-behavior.mjs +64 -0
- package/esm2020/behaviors/behavior.mjs +42 -0
- package/esm2020/behaviors/index.mjs +3 -3
- package/esm2020/behaviors/types.mjs +1 -1
- package/esm2020/dom/host-renderer.mjs +3 -3
- package/esm2020/event/click-dispatcher.mjs +3 -3
- package/esm2020/event/event-dispatcher.mjs +3 -3
- package/esm2020/event/keyboard-dispatcher.mjs +3 -3
- package/esm2020/hotkey/hotkey-dispatcher.mjs +3 -3
- package/esm2020/hotkey/hotkey.directive.mjs +3 -3
- package/esm2020/hotkey/module.mjs +4 -4
- package/fesm2015/tethys-cdk-behaviors.mjs +114 -43
- package/fesm2015/tethys-cdk-behaviors.mjs.map +1 -1
- package/fesm2015/tethys-cdk-dom.mjs +3 -3
- package/fesm2015/tethys-cdk-event.mjs +9 -9
- package/fesm2015/tethys-cdk-hotkey.mjs +10 -10
- package/fesm2020/tethys-cdk-behaviors.mjs +114 -42
- package/fesm2020/tethys-cdk-behaviors.mjs.map +1 -1
- package/fesm2020/tethys-cdk-dom.mjs +3 -3
- package/fesm2020/tethys-cdk-event.mjs +9 -9
- package/fesm2020/tethys-cdk-hotkey.mjs +10 -10
- package/package.json +1 -1
- package/behaviors/use-action.d.ts +0 -18
- package/behaviors/use-async.d.ts +0 -12
- package/esm2020/behaviors/use-action.mjs +0 -56
- package/esm2020/behaviors/use-async.mjs +0 -29
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { Behavior, BehaviorContext } from './behavior';
|
|
3
|
+
import { ErrorFn, ExtractObservableValue, SuccessFn } from './types';
|
|
4
|
+
interface ActionBehavior<R> {
|
|
5
|
+
saving: boolean;
|
|
6
|
+
execute(success?: SuccessFn<R>, error?: ErrorFn): void;
|
|
7
|
+
execute(context: BehaviorContext<R>): void;
|
|
8
|
+
execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): void;
|
|
9
|
+
}
|
|
10
|
+
export declare function useAction<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(action: A, context?: BehaviorContext<ExtractObservableValue<ReturnType<A>>>): Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> & ActionBehavior<ExtractObservableValue<ReturnType<A>>>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { Behavior, BehaviorContext } from './behavior';
|
|
3
|
+
import { ErrorFn, ExtractObservableValue, SuccessFn } from './types';
|
|
4
|
+
export interface AsyncBehavior<R> {
|
|
5
|
+
loadingDone: boolean;
|
|
6
|
+
loading: boolean;
|
|
7
|
+
state: 'pending' | 'loading' | 'success' | 'error';
|
|
8
|
+
error?: Error;
|
|
9
|
+
value?: R;
|
|
10
|
+
execute(success?: SuccessFn<R>, error?: ErrorFn): void;
|
|
11
|
+
execute(context: BehaviorContext<R>): void;
|
|
12
|
+
execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function useAsync<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(action: A, context?: BehaviorContext<ExtractObservableValue<ReturnType<A>>>): Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> & AsyncBehavior<ExtractObservableValue<ReturnType<A>>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ErrorFn, SuccessFn } from './types';
|
|
2
|
+
declare const BEHAVIOR: unique symbol;
|
|
3
|
+
export type Behavior<P extends Array<any>, R> = (...args: P) => R & {
|
|
4
|
+
[BEHAVIOR]: true;
|
|
5
|
+
};
|
|
6
|
+
export interface BehaviorContext<R> {
|
|
7
|
+
success?: SuccessFn<R>;
|
|
8
|
+
error?: ErrorFn;
|
|
9
|
+
}
|
|
10
|
+
export declare function createBehaviorFromFunction<P extends any[], R>(fn: () => R): Behavior<P, R>;
|
|
11
|
+
export declare function createBehaviorFromFunction<P extends any[], R, U extends Record<string, unknown>>(fn: () => R, extraApi: U): Behavior<P, R> & U;
|
|
12
|
+
export declare function pickBehaviorCallbacks<R>(beforeContext: BehaviorContext<R>, successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): {
|
|
13
|
+
success: SuccessFn<R>;
|
|
14
|
+
error: ErrorFn;
|
|
15
|
+
};
|
|
16
|
+
export declare function handleBehaviorError(error: Error, errorFn: ErrorFn): void;
|
|
17
|
+
export {};
|
package/behaviors/index.d.ts
CHANGED
package/behaviors/types.d.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
export type ExtractObservableValue<T> = T extends Observable<infer V> ? V : T;
|
|
3
|
+
export type ParametersWithAppend<Fn extends (...args: any[]) => any, NextArg> = Fn extends (...args: infer PrevArg) => any ? [...PrevArg, NextArg] : never;
|
|
4
|
+
export type SuccessFn<R> = (result: R) => void;
|
|
5
|
+
export type ErrorFn = (error: Error) => void;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { finalize, tap } from 'rxjs/operators';
|
|
2
|
+
import { createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';
|
|
3
|
+
class ActionBehaviorImpl {
|
|
4
|
+
constructor(action, context) {
|
|
5
|
+
this.action = action;
|
|
6
|
+
this.context = context;
|
|
7
|
+
this.saving = false;
|
|
8
|
+
}
|
|
9
|
+
execute(successOrContext, error) {
|
|
10
|
+
if (this.saving) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
this.saving = true;
|
|
14
|
+
const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);
|
|
15
|
+
try {
|
|
16
|
+
return this.action
|
|
17
|
+
.apply(undefined, this.executeParams)
|
|
18
|
+
.pipe(finalize(() => {
|
|
19
|
+
this.saving = false;
|
|
20
|
+
this.executeParams = undefined;
|
|
21
|
+
}), tap(value => {
|
|
22
|
+
this.saving = false;
|
|
23
|
+
this.executeParams = undefined;
|
|
24
|
+
}))
|
|
25
|
+
.subscribe({
|
|
26
|
+
next: callbacks?.success,
|
|
27
|
+
error: (error) => {
|
|
28
|
+
this.saving = false;
|
|
29
|
+
handleBehaviorError(error, callbacks.error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
this.saving = false;
|
|
35
|
+
handleBehaviorError(error, callbacks.error);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function useAction(action, context = {}) {
|
|
40
|
+
const behavior = new ActionBehaviorImpl(action, context);
|
|
41
|
+
const fn = function (...params) {
|
|
42
|
+
fn['executeParams'] = params;
|
|
43
|
+
return fn;
|
|
44
|
+
};
|
|
45
|
+
return createBehaviorFromFunction(fn, {
|
|
46
|
+
context: context,
|
|
47
|
+
action: action,
|
|
48
|
+
execute: behavior.execute,
|
|
49
|
+
saving: behavior.saving
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJlaGF2aW9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2JlaGF2aW9ycy9hY3Rpb24tYmVoYXZpb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQTZCLDBCQUEwQixFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBWS9ILE1BQU0sa0JBQWtCO0lBSXBCLFlBQW9CLE1BQVMsRUFBVSxPQUEyQjtRQUE5QyxXQUFNLEdBQU4sTUFBTSxDQUFHO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFIbEUsV0FBTSxHQUFHLEtBQUssQ0FBQztJQUdzRCxDQUFDO0lBSXRFLE9BQU8sQ0FBQyxnQkFBbUQsRUFBRSxLQUFlO1FBQ3hFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0UsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU07aUJBQ2IsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO2lCQUNwQyxJQUFJLENBQ0QsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDbkMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUM7Z0JBQ1AsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPO2dCQUN4QixLQUFLLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLG1CQUFtQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7YUFDSixDQUFDLENBQUM7U0FDVjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3JCLE1BQVMsRUFDVCxVQUFrRSxFQUFFO0lBRXBFLE1BQU0sUUFBUSxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXpELE1BQU0sRUFBRSxHQUFHLFVBQVMsR0FBRyxNQUFxQjtRQUN4QyxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBQ0YsT0FBUSwwQkFBMEIsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsT0FBTyxFQUFFLE9BQU87UUFDaEIsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87UUFDekIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO0tBQzFCLENBQ3dELENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3IsIEJlaGF2aW9yQ29udGV4dCwgY3JlYXRlQmVoYXZpb3JGcm9tRnVuY3Rpb24sIGhhbmRsZUJlaGF2aW9yRXJyb3IsIHBpY2tCZWhhdmlvckNhbGxiYWNrcyB9IGZyb20gJy4vYmVoYXZpb3InO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEVycm9ySGFuZGxlciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBFcnJvckZuLCBFeHRyYWN0T2JzZXJ2YWJsZVZhbHVlLCBTdWNjZXNzRm4gfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEFjdGlvbkJlaGF2aW9yPFI+IHtcbiAgICBzYXZpbmc6IGJvb2xlYW47XG5cbiAgICBleGVjdXRlKHN1Y2Nlc3M/OiBTdWNjZXNzRm48Uj4sIGVycm9yPzogRXJyb3JGbik6IHZvaWQ7XG4gICAgZXhlY3V0ZShjb250ZXh0OiBCZWhhdmlvckNvbnRleHQ8Uj4pOiB2b2lkO1xuICAgIGV4ZWN1dGUoc3VjY2Vzc09yQ29udGV4dDogU3VjY2Vzc0ZuPFI+IHwgQmVoYXZpb3JDb250ZXh0PFI+LCBlcnJvcj86IEVycm9yRm4pOiB2b2lkO1xufVxuXG5jbGFzcyBBY3Rpb25CZWhhdmlvckltcGw8UiwgQSBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IE9ic2VydmFibGU8Uj4+IGltcGxlbWVudHMgQWN0aW9uQmVoYXZpb3I8Uj4ge1xuICAgIHNhdmluZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBleGVjdXRlUGFyYW1zOiBQYXJhbWV0ZXJzPEE+O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBLCBwcml2YXRlIGNvbnRleHQ6IEJlaGF2aW9yQ29udGV4dDxSPikge31cblxuICAgIGV4ZWN1dGUoc3VjY2Vzcz86IFN1Y2Nlc3NGbjxSPiwgZXJyb3I/OiBFcnJvckZuKTogdm9pZDtcbiAgICBleGVjdXRlKGNvbnRleHQ6IEJlaGF2aW9yQ29udGV4dDxSPik6IHZvaWQ7XG4gICAgZXhlY3V0ZShzdWNjZXNzT3JDb250ZXh0OiBTdWNjZXNzRm48Uj4gfCBCZWhhdmlvckNvbnRleHQ8Uj4sIGVycm9yPzogRXJyb3JGbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zYXZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrcyA9IHBpY2tCZWhhdmlvckNhbGxiYWNrcyh0aGlzLmNvbnRleHQsIHN1Y2Nlc3NPckNvbnRleHQsIGVycm9yKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGlvblxuICAgICAgICAgICAgICAgIC5hcHBseSh1bmRlZmluZWQsIHRoaXMuZXhlY3V0ZVBhcmFtcylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVBhcmFtcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlUGFyYW1zID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogY2FsbGJhY2tzPy5zdWNjZXNzLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJlaGF2aW9yRXJyb3IoZXJyb3IsIGNhbGxiYWNrcy5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgICAgICBoYW5kbGVCZWhhdmlvckVycm9yKGVycm9yLCBjYWxsYmFja3MuZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQWN0aW9uPEEgZXh0ZW5kcyAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4gPSAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4+KFxuICAgIGFjdGlvbjogQSxcbiAgICBjb250ZXh0OiBCZWhhdmlvckNvbnRleHQ8RXh0cmFjdE9ic2VydmFibGVWYWx1ZTxSZXR1cm5UeXBlPEE+Pj4gPSB7fVxuKSB7XG4gICAgY29uc3QgYmVoYXZpb3IgPSBuZXcgQWN0aW9uQmVoYXZpb3JJbXBsKGFjdGlvbiwgY29udGV4dCk7XG5cbiAgICBjb25zdCBmbiA9IGZ1bmN0aW9uKC4uLnBhcmFtczogUGFyYW1ldGVyczxBPikge1xuICAgICAgICBmblsnZXhlY3V0ZVBhcmFtcyddID0gcGFyYW1zO1xuICAgICAgICByZXR1cm4gZm47XG4gICAgfTtcbiAgICByZXR1cm4gKGNyZWF0ZUJlaGF2aW9yRnJvbUZ1bmN0aW9uKGZuLCB7XG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBleGVjdXRlOiBiZWhhdmlvci5leGVjdXRlLFxuICAgICAgICBzYXZpbmc6IGJlaGF2aW9yLnNhdmluZ1xuICAgIH0pIGFzIHVua25vd24pIGFzIEJlaGF2aW9yPFBhcmFtZXRlcnM8QT4sIEFjdGlvbkJlaGF2aW9yPEV4dHJhY3RPYnNlcnZhYmxlVmFsdWU8UmV0dXJuVHlwZTxBPj4+PiAmXG4gICAgICAgIEFjdGlvbkJlaGF2aW9yPEV4dHJhY3RPYnNlcnZhYmxlVmFsdWU8UmV0dXJuVHlwZTxBPj4+O1xufVxuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { finalize, tap } from 'rxjs/operators';
|
|
2
|
+
import { createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';
|
|
3
|
+
class AsyncBehaviorImpl {
|
|
4
|
+
constructor(action, context) {
|
|
5
|
+
this.action = action;
|
|
6
|
+
this.context = context;
|
|
7
|
+
this.loadingDone = true;
|
|
8
|
+
this.loading = false;
|
|
9
|
+
this.state = 'pending';
|
|
10
|
+
}
|
|
11
|
+
execute(successOrContext, error) {
|
|
12
|
+
this.setLoadingState(true);
|
|
13
|
+
this.state = 'loading';
|
|
14
|
+
const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);
|
|
15
|
+
try {
|
|
16
|
+
return this.action
|
|
17
|
+
.apply(undefined, this.executeParams)
|
|
18
|
+
.pipe(finalize(() => {
|
|
19
|
+
this.setLoadingState(false);
|
|
20
|
+
}), tap(value => {
|
|
21
|
+
this.value = value;
|
|
22
|
+
this.state = 'success';
|
|
23
|
+
this.setLoadingState(false);
|
|
24
|
+
}))
|
|
25
|
+
.subscribe({
|
|
26
|
+
next: callbacks.success,
|
|
27
|
+
error: error => {
|
|
28
|
+
this.state = 'error';
|
|
29
|
+
this.error = error;
|
|
30
|
+
handleBehaviorError(error, callbacks.error);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
this.state = 'error';
|
|
36
|
+
this.error = error;
|
|
37
|
+
this.setLoadingState(false);
|
|
38
|
+
handleBehaviorError(error, callbacks.error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
setLoadingState(loading) {
|
|
42
|
+
this.loading = loading;
|
|
43
|
+
this.loadingDone = !loading;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function useAsync(action, context = {}) {
|
|
47
|
+
const behavior = new AsyncBehaviorImpl(action, context);
|
|
48
|
+
const fn = function (...params) {
|
|
49
|
+
fn['executeParams'] = params;
|
|
50
|
+
return fn;
|
|
51
|
+
};
|
|
52
|
+
return createBehaviorFromFunction(fn, {
|
|
53
|
+
context: context,
|
|
54
|
+
action: action,
|
|
55
|
+
execute: behavior.execute,
|
|
56
|
+
setLoadingState: behavior.setLoadingState,
|
|
57
|
+
loadingDone: behavior.loadingDone,
|
|
58
|
+
loading: behavior.loading,
|
|
59
|
+
state: behavior.state,
|
|
60
|
+
error: behavior.error,
|
|
61
|
+
value: behavior.value
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvYmVoYXZpb3JzL2FzeW5jLWJlaGF2aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUE2QiwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQWUvSCxNQUFNLGlCQUFpQjtJQWFuQixZQUFvQixNQUFTLEVBQVUsT0FBMkI7UUFBOUMsV0FBTSxHQUFOLE1BQU0sQ0FBRztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBWmxFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFJaEIsVUFBSyxHQUFnRCxTQUFTLENBQUM7SUFNTSxDQUFDO0lBSXRFLE9BQU8sQ0FBQyxnQkFBbUQsRUFBRSxLQUFlO1FBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRSxJQUFJO1lBQ0EsT0FBTyxJQUFJLENBQUMsTUFBTTtpQkFDYixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7aUJBQ3BDLElBQUksQ0FDRCxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBVSxDQUFDO2dCQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUM7Z0JBQ1AsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUN2QixLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO29CQUNuQixtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO2FBQ0osQ0FBQyxDQUFDO1NBQ1Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUNwQixNQUFTLEVBQ1QsVUFBa0UsRUFBRTtJQUVwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV4RCxNQUFNLEVBQUUsR0FBRyxVQUFTLEdBQUcsTUFBcUI7UUFDeEMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM3QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUMsQ0FBQztJQUNGLE9BQVEsMEJBQTBCLENBQUMsRUFBRSxFQUFFO1FBQ25DLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLGVBQWUsRUFBRSxRQUFRLENBQUMsZUFBZTtRQUN6QyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7UUFDakMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO0tBQ3hCLENBQ3VELENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3IsIEJlaGF2aW9yQ29udGV4dCwgY3JlYXRlQmVoYXZpb3JGcm9tRnVuY3Rpb24sIGhhbmRsZUJlaGF2aW9yRXJyb3IsIHBpY2tCZWhhdmlvckNhbGxiYWNrcyB9IGZyb20gJy4vYmVoYXZpb3InO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEVycm9ySGFuZGxlciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBFcnJvckZuLCBFeHRyYWN0T2JzZXJ2YWJsZVZhbHVlLCBTdWNjZXNzRm4gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3luY0JlaGF2aW9yPFI+IHtcbiAgICBsb2FkaW5nRG9uZTogYm9vbGVhbjtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIHN0YXRlOiAncGVuZGluZycgfCAnbG9hZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuICAgIGVycm9yPzogRXJyb3I7XG4gICAgdmFsdWU/OiBSO1xuICAgIGV4ZWN1dGUoc3VjY2Vzcz86IFN1Y2Nlc3NGbjxSPiwgZXJyb3I/OiBFcnJvckZuKTogdm9pZDtcbiAgICBleGVjdXRlKGNvbnRleHQ6IEJlaGF2aW9yQ29udGV4dDxSPik6IHZvaWQ7XG4gICAgZXhlY3V0ZShzdWNjZXNzT3JDb250ZXh0OiBTdWNjZXNzRm48Uj4gfCBCZWhhdmlvckNvbnRleHQ8Uj4sIGVycm9yPzogRXJyb3JGbik6IHZvaWQ7XG59XG5cbmNsYXNzIEFzeW5jQmVoYXZpb3JJbXBsPFQsIEEgZXh0ZW5kcyAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPFQ+PiBpbXBsZW1lbnRzIEFzeW5jQmVoYXZpb3I8VD4ge1xuICAgIGxvYWRpbmdEb25lID0gdHJ1ZTtcblxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHZhbHVlOiBUO1xuXG4gICAgc3RhdGU6ICdwZW5kaW5nJyB8ICdsb2FkaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgPSAncGVuZGluZyc7XG5cbiAgICBlcnJvcj86IEVycm9yO1xuXG4gICAgcHJpdmF0ZSBleGVjdXRlUGFyYW1zOiBQYXJhbWV0ZXJzPEE+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246IEEsIHByaXZhdGUgY29udGV4dDogQmVoYXZpb3JDb250ZXh0PFQ+KSB7fVxuXG4gICAgZXhlY3V0ZShzdWNjZXNzPzogU3VjY2Vzc0ZuPFQ+LCBlcnJvcj86IEVycm9yRm4pOiB2b2lkO1xuICAgIGV4ZWN1dGUoY29udGV4dDogQmVoYXZpb3JDb250ZXh0PFQ+KTogdm9pZDtcbiAgICBleGVjdXRlKHN1Y2Nlc3NPckNvbnRleHQ6IFN1Y2Nlc3NGbjxUPiB8IEJlaGF2aW9yQ29udGV4dDxUPiwgZXJyb3I/OiBFcnJvckZuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKHRydWUpO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2xvYWRpbmcnO1xuICAgICAgICBjb25zdCBjYWxsYmFja3MgPSBwaWNrQmVoYXZpb3JDYWxsYmFja3ModGhpcy5jb250ZXh0LCBzdWNjZXNzT3JDb250ZXh0LCBlcnJvcik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25cbiAgICAgICAgICAgICAgICAuYXBwbHkodW5kZWZpbmVkLCB0aGlzLmV4ZWN1dGVQYXJhbXMpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgYXMgVDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiBjYWxsYmFja3Muc3VjY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmVoYXZpb3JFcnJvcihlcnJvciwgY2FsbGJhY2tzLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdlcnJvcic7XG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICBoYW5kbGVCZWhhdmlvckVycm9yKGVycm9yLCBjYWxsYmFja3MuZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0TG9hZGluZ1N0YXRlKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gbG9hZGluZztcbiAgICAgICAgdGhpcy5sb2FkaW5nRG9uZSA9ICFsb2FkaW5nO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUFzeW5jPEEgZXh0ZW5kcyAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4gPSAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4+KFxuICAgIGFjdGlvbjogQSxcbiAgICBjb250ZXh0OiBCZWhhdmlvckNvbnRleHQ8RXh0cmFjdE9ic2VydmFibGVWYWx1ZTxSZXR1cm5UeXBlPEE+Pj4gPSB7fVxuKSB7XG4gICAgY29uc3QgYmVoYXZpb3IgPSBuZXcgQXN5bmNCZWhhdmlvckltcGwoYWN0aW9uLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IGZuID0gZnVuY3Rpb24oLi4ucGFyYW1zOiBQYXJhbWV0ZXJzPEE+KSB7XG4gICAgICAgIGZuWydleGVjdXRlUGFyYW1zJ10gPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICB9O1xuICAgIHJldHVybiAoY3JlYXRlQmVoYXZpb3JGcm9tRnVuY3Rpb24oZm4sIHtcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGV4ZWN1dGU6IGJlaGF2aW9yLmV4ZWN1dGUsXG4gICAgICAgIHNldExvYWRpbmdTdGF0ZTogYmVoYXZpb3Iuc2V0TG9hZGluZ1N0YXRlLFxuICAgICAgICBsb2FkaW5nRG9uZTogYmVoYXZpb3IubG9hZGluZ0RvbmUsXG4gICAgICAgIGxvYWRpbmc6IGJlaGF2aW9yLmxvYWRpbmcsXG4gICAgICAgIHN0YXRlOiBiZWhhdmlvci5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IGJlaGF2aW9yLmVycm9yLFxuICAgICAgICB2YWx1ZTogYmVoYXZpb3IudmFsdWVcbiAgICB9KSBhcyB1bmtub3duKSBhcyBCZWhhdmlvcjxQYXJhbWV0ZXJzPEE+LCBBc3luY0JlaGF2aW9yPEV4dHJhY3RPYnNlcnZhYmxlVmFsdWU8UmV0dXJuVHlwZTxBPj4+PiAmXG4gICAgICAgIEFzeW5jQmVoYXZpb3I8RXh0cmFjdE9ic2VydmFibGVWYWx1ZTxSZXR1cm5UeXBlPEE+Pj47XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isFunction } from '@tethys/cdk/is';
|
|
2
|
+
import { getDefaultErrorHandler } from './error-handler';
|
|
3
|
+
const BEHAVIOR = Symbol('BEHAVIOR');
|
|
4
|
+
export function createBehaviorFromFunction(fn, extraApi = {}) {
|
|
5
|
+
fn[BEHAVIOR] = true;
|
|
6
|
+
Object.keys(extraApi).forEach(key => {
|
|
7
|
+
const value = extraApi[key];
|
|
8
|
+
Object.assign(fn, { [key]: isFunction(value) ? value.bind(fn) : value });
|
|
9
|
+
});
|
|
10
|
+
return fn;
|
|
11
|
+
}
|
|
12
|
+
export function pickBehaviorCallbacks(beforeContext, successOrContext, error) {
|
|
13
|
+
let successFn;
|
|
14
|
+
let errorFn;
|
|
15
|
+
if (successOrContext) {
|
|
16
|
+
if (isFunction(successOrContext)) {
|
|
17
|
+
successFn = successOrContext;
|
|
18
|
+
errorFn = error;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
successFn = successOrContext.success;
|
|
22
|
+
errorFn = successOrContext.error;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
errorFn = error;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
success: successFn || beforeContext?.success,
|
|
30
|
+
error: errorFn || beforeContext?.error
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function handleBehaviorError(error, errorFn) {
|
|
34
|
+
if (errorFn) {
|
|
35
|
+
errorFn(error);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const defaultErrorHandler = getDefaultErrorHandler();
|
|
39
|
+
defaultErrorHandler && defaultErrorHandler(error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvYmVoYXZpb3JzL2JlaGF2aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7QUFrQnBDLE1BQU0sVUFBVSwwQkFBMEIsQ0FDdEMsRUFBVyxFQUNYLFdBQWMsRUFBTztJQUVwQixFQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxFQUF3QixDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLGFBQWlDLEVBQ2pDLGdCQUFtRCxFQUNuRCxLQUFlO0lBRWYsSUFBSSxTQUF1QixDQUFDO0lBQzVCLElBQUksT0FBZ0IsQ0FBQztJQUNyQixJQUFJLGdCQUFnQixFQUFFO1FBQ2xCLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDOUIsU0FBUyxHQUFHLGdCQUFnQixDQUFDO1lBQzdCLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDbkI7YUFBTTtZQUNILFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7WUFDckMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztTQUNwQztLQUNKO1NBQU07UUFDSCxPQUFPLEdBQUcsS0FBSyxDQUFDO0tBQ25CO0lBQ0QsT0FBTztRQUNILE9BQU8sRUFBRSxTQUFTLElBQUksYUFBYSxFQUFFLE9BQU87UUFDNUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsS0FBSztLQUN6QyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7SUFDOUQsSUFBSSxPQUFPLEVBQUU7UUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEI7U0FBTTtRQUNILE1BQU0sbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUNyRCxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyRDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnQHRldGh5cy9jZGsvaXMnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEVycm9ySGFuZGxlciB9IGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBFcnJvckZuLCBTdWNjZXNzRm4gfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgQkVIQVZJT1IgPSBTeW1ib2woJ0JFSEFWSU9SJyk7XG5cbmV4cG9ydCB0eXBlIEJlaGF2aW9yPFAgZXh0ZW5kcyBBcnJheTxhbnk+LCBSPiA9IChcbiAgICAuLi5hcmdzOiBQXG4pID0+IFIgJiB7XG4gICAgW0JFSEFWSU9SXTogdHJ1ZTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmVoYXZpb3JDb250ZXh0PFI+IHtcbiAgICBzdWNjZXNzPzogU3VjY2Vzc0ZuPFI+O1xuICAgIGVycm9yPzogRXJyb3JGbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJlaGF2aW9yRnJvbUZ1bmN0aW9uPFAgZXh0ZW5kcyBhbnlbXSwgUj4oZm46ICgpID0+IFIpOiBCZWhhdmlvcjxQLCBSPjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCZWhhdmlvckZyb21GdW5jdGlvbjxQIGV4dGVuZHMgYW55W10sIFIsIFUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gICAgZm46ICgpID0+IFIsXG4gICAgZXh0cmFBcGk6IFVcbik6IEJlaGF2aW9yPFAsIFI+ICYgVTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCZWhhdmlvckZyb21GdW5jdGlvbjxQIGV4dGVuZHMgYW55W10sIFIsIFUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9PihcbiAgICBmbjogKCkgPT4gUixcbiAgICBleHRyYUFwaTogVSA9IHt9IGFzIFVcbik6IEJlaGF2aW9yPFAsIFI+ICYgVSB7XG4gICAgKGZuIGFzIGFueSlbQkVIQVZJT1JdID0gdHJ1ZTtcbiAgICBPYmplY3Qua2V5cyhleHRyYUFwaSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGV4dHJhQXBpW2tleV07XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZm4sIHsgW2tleV06IGlzRnVuY3Rpb24odmFsdWUpID8gdmFsdWUuYmluZChmbikgOiB2YWx1ZSB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZm4gYXMgQmVoYXZpb3I8UCwgUj4gJiBVO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja0JlaGF2aW9yQ2FsbGJhY2tzPFI+KFxuICAgIGJlZm9yZUNvbnRleHQ6IEJlaGF2aW9yQ29udGV4dDxSPixcbiAgICBzdWNjZXNzT3JDb250ZXh0OiBTdWNjZXNzRm48Uj4gfCBCZWhhdmlvckNvbnRleHQ8Uj4sXG4gICAgZXJyb3I/OiBFcnJvckZuXG4pIHtcbiAgICBsZXQgc3VjY2Vzc0ZuOiBTdWNjZXNzRm48Uj47XG4gICAgbGV0IGVycm9yRm46IEVycm9yRm47XG4gICAgaWYgKHN1Y2Nlc3NPckNvbnRleHQpIHtcbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oc3VjY2Vzc09yQ29udGV4dCkpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3NGbiA9IHN1Y2Nlc3NPckNvbnRleHQ7XG4gICAgICAgICAgICBlcnJvckZuID0gZXJyb3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdWNjZXNzRm4gPSBzdWNjZXNzT3JDb250ZXh0LnN1Y2Nlc3M7XG4gICAgICAgICAgICBlcnJvckZuID0gc3VjY2Vzc09yQ29udGV4dC5lcnJvcjtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yRm4gPSBlcnJvcjtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2Vzczogc3VjY2Vzc0ZuIHx8IGJlZm9yZUNvbnRleHQ/LnN1Y2Nlc3MsXG4gICAgICAgIGVycm9yOiBlcnJvckZuIHx8IGJlZm9yZUNvbnRleHQ/LmVycm9yXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUJlaGF2aW9yRXJyb3IoZXJyb3I6IEVycm9yLCBlcnJvckZuOiBFcnJvckZuKSB7XG4gICAgaWYgKGVycm9yRm4pIHtcbiAgICAgICAgZXJyb3JGbihlcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEVycm9ySGFuZGxlciA9IGdldERlZmF1bHRFcnJvckhhbmRsZXIoKTtcbiAgICAgICAgZGVmYXVsdEVycm9ySGFuZGxlciAmJiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycm9yKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './run-in-zone';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
2
|
+
export * from './async-behavior';
|
|
3
|
+
export * from './action-behavior';
|
|
4
4
|
export * from './error-handler';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvYmVoYXZpb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydW4taW4tem9uZSc7XG5leHBvcnQgKiBmcm9tICcuL2FzeW5jLWJlaGF2aW9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLWJlaGF2aW9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItaGFuZGxlcic7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvYmVoYXZpb3JzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RPYnNlcnZhYmxlVmFsdWU8VD4gPSBUIGV4dGVuZHMgT2JzZXJ2YWJsZTxpbmZlciBWPiA/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jZGsvYmVoYXZpb3JzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEV4dHJhY3RPYnNlcnZhYmxlVmFsdWU8VD4gPSBUIGV4dGVuZHMgT2JzZXJ2YWJsZTxpbmZlciBWPiA/IFYgOiBUO1xuXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJzV2l0aEFwcGVuZDxGbiBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LCBOZXh0QXJnPiA9IEZuIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIFByZXZBcmcpID0+IGFueVxuICAgID8gWy4uLlByZXZBcmcsIE5leHRBcmddXG4gICAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgU3VjY2Vzc0ZuPFI+ID0gKHJlc3VsdDogUikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEVycm9yRm4gPSAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xuIl19
|
|
@@ -13,9 +13,9 @@ export class HostRenderer extends AbstractElementRenderer {
|
|
|
13
13
|
return this.elementRef.nativeElement;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
HostRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
17
|
-
HostRenderer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
16
|
+
HostRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: HostRenderer, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
HostRenderer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: HostRenderer });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: HostRenderer, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}] });
|
|
21
21
|
export function useHostRenderer() {
|
|
@@ -11,9 +11,9 @@ export class ThyClickDispatcher extends ThyEventDispatcher {
|
|
|
11
11
|
return this.subscribe(auditTimeInMs);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
ThyClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
15
|
-
ThyClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
14
|
+
ThyClickDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyClickDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
ThyClickDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyClickDispatcher, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -51,9 +51,9 @@ export class ThyEventDispatcher {
|
|
|
51
51
|
this._event$.complete();
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
ThyEventDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
55
|
-
ThyEventDispatcher.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
54
|
+
ThyEventDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyEventDispatcher, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
+
ThyEventDispatcher.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ThyEventDispatcher, ngImport: i0 });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyEventDispatcher, decorators: [{
|
|
57
57
|
type: Directive
|
|
58
58
|
}], ctorParameters: function () { return [{ type: Document }, { type: i0.NgZone }, { type: undefined }]; } });
|
|
59
59
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9ldmVudC9ldmVudC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUU3RCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUcvQixNQUFNLE9BQWdCLGtCQUFrQjtJQU81QixrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQzFELE9BQU8sU0FBUyxDQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVEsRUFBRSxFQUFFO2dCQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBc0IsUUFBa0IsRUFBWSxNQUFjLEVBQVUsU0FBaUI7UUFBdkUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFZLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBekJyRix3QkFBbUIsR0FBaUIsSUFBSSxDQUFDO1FBRXpDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBSyxDQUFDO1FBRTNCLHVCQUFrQixHQUFHLENBQUMsQ0FBQztJQXFCaUUsQ0FBQztJQUV2RixTQUFTLENBQUMsZ0JBQXdCLGtCQUFrQjtRQUMxRCxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzdCO1lBQ0Qsa0VBQWtFO1lBQ2xFLGdFQUFnRTtZQUNoRSxNQUFNLFlBQVksR0FDZCxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTNILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxFQUFFO2dCQUNSLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2lCQUNoQztZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OytHQXJEaUIsa0JBQWtCO21HQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgREVGQVVMVF9FVkVOVF9USU1FID0gMTAwO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUaHlFdmVudERpc3BhdGNoZXI8VCA9IEV2ZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfZ2xvYmFsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfZXZlbnQkID0gbmV3IFN1YmplY3Q8VD4oKTtcblxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbkNvdW50ID0gMDtcblxuICAgIHByaXZhdGUgX2FkZEdsb2JhbExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24gPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PFQ+KHRoaXMuZG9jdW1lbnQsIHRoaXMuZXZlbnROYW1lKS5zdWJzY3JpYmUoKGV2ZW50OiBUKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZUdsb2JhbExpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZ2xvYmFsU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRvY3VtZW50OiBEb2N1bWVudCwgcHJvdGVjdGVkIG5nWm9uZTogTmdab25lLCBwcml2YXRlIGV2ZW50TmFtZTogc3RyaW5nKSB7fVxuXG4gICAgcHJvdGVjdGVkIHN1YnNjcmliZShhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX0VWRU5UX1RJTUUpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkR2xvYmFsTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGEgMG1zIGRlbGF5LCB1c2UgYW4gb2JzZXJ2YWJsZSB3aXRob3V0IGF1ZGl0VGltZVxuICAgICAgICAgICAgLy8gc2luY2UgaXQgZG9lcyBhZGQgYSBwZXJjZXB0aWJsZSBkZWxheSBpbiBwcm9jZXNzaW5nIG92ZXJoZWFkLlxuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgICBhdWRpdFRpbWVJbk1zID4gMCA/IHRoaXMuX2V2ZW50JC5waXBlKGF1ZGl0VGltZShhdWRpdFRpbWVJbk1zKSkuc3Vic2NyaWJlKG9ic2VydmVyKSA6IHRoaXMuX2V2ZW50JC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuXG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25Db3VudCsrO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25Db3VudC0tO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9zdWJzY3JpcHRpb25Db3VudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9yZW1vdmVHbG9iYWxMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLl9ldmVudCQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -18,9 +18,9 @@ export class ThyKeyboardDispatcher extends ThyEventDispatcher {
|
|
|
18
18
|
return this.subscribe(auditTimeInMs);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
ThyKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
22
|
-
ThyKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
21
|
+
ThyKeyboardDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
ThyKeyboardDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
|
|
24
24
|
type: Injectable,
|
|
25
25
|
args: [{
|
|
26
26
|
providedIn: 'root'
|
|
@@ -52,9 +52,9 @@ export class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
52
52
|
}).pipe(runInZone(this.ngZone));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
ThyHotkeyDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
56
|
-
ThyHotkeyDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
55
|
+
ThyHotkeyDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
56
|
+
ThyHotkeyDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
|
|
58
58
|
type: Injectable,
|
|
59
59
|
args: [{ providedIn: 'root' }]
|
|
60
60
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -38,9 +38,9 @@ export class ThyHotkeyDirective {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
ThyHotkeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
42
|
-
ThyHotkeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
41
|
+
ThyHotkeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyDirective, deps: [{ token: DOCUMENT }, { token: i1.ThyHotkeyDispatcher }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
+
ThyHotkeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ThyHotkeyDirective, selector: "[thyHotkey]", inputs: { thyHotkey: "thyHotkey", thyHotkeyScope: "thyHotkeyScope" }, outputs: { thyHotkeyListener: "thyHotkeyListener" }, ngImport: i0 });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
|
|
44
44
|
type: Directive,
|
|
45
45
|
args: [{ selector: '[thyHotkey]' }]
|
|
46
46
|
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
@@ -3,10 +3,10 @@ import { ThyHotkeyDirective } from './hotkey.directive';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ThyHotkeyModule {
|
|
5
5
|
}
|
|
6
|
-
ThyHotkeyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
7
|
-
ThyHotkeyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
8
|
-
ThyHotkeyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
6
|
+
ThyHotkeyModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
ThyHotkeyModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyModule, declarations: [ThyHotkeyDirective], exports: [ThyHotkeyDirective] });
|
|
8
|
+
ThyHotkeyModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ThyHotkeyModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
imports: [],
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { finalize,
|
|
2
|
+
import { finalize, tap } from 'rxjs/operators';
|
|
3
|
+
import { isFunction } from '@tethys/cdk/is';
|
|
3
4
|
|
|
4
5
|
function runInZone(zone) {
|
|
5
6
|
return source => {
|
|
@@ -24,86 +25,156 @@ function getDefaultErrorHandler() {
|
|
|
24
25
|
return _defaultErrorHandler;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
const BEHAVIOR = Symbol('BEHAVIOR');
|
|
29
|
+
function createBehaviorFromFunction(fn, extraApi = {}) {
|
|
30
|
+
fn[BEHAVIOR] = true;
|
|
31
|
+
Object.keys(extraApi).forEach(key => {
|
|
32
|
+
const value = extraApi[key];
|
|
33
|
+
Object.assign(fn, { [key]: isFunction(value) ? value.bind(fn) : value });
|
|
34
|
+
});
|
|
35
|
+
return fn;
|
|
36
|
+
}
|
|
37
|
+
function pickBehaviorCallbacks(beforeContext, successOrContext, error) {
|
|
38
|
+
let successFn;
|
|
39
|
+
let errorFn;
|
|
40
|
+
if (successOrContext) {
|
|
41
|
+
if (isFunction(successOrContext)) {
|
|
42
|
+
successFn = successOrContext;
|
|
43
|
+
errorFn = error;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
successFn = successOrContext.success;
|
|
47
|
+
errorFn = successOrContext.error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
errorFn = error;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
success: successFn || (beforeContext === null || beforeContext === void 0 ? void 0 : beforeContext.success),
|
|
55
|
+
error: errorFn || (beforeContext === null || beforeContext === void 0 ? void 0 : beforeContext.error)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function handleBehaviorError(error, errorFn) {
|
|
59
|
+
if (errorFn) {
|
|
60
|
+
errorFn(error);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const defaultErrorHandler = getDefaultErrorHandler();
|
|
64
|
+
defaultErrorHandler && defaultErrorHandler(error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
class AsyncBehaviorImpl {
|
|
69
|
+
constructor(action, context) {
|
|
29
70
|
this.action = action;
|
|
30
|
-
this.
|
|
71
|
+
this.context = context;
|
|
72
|
+
this.loadingDone = true;
|
|
73
|
+
this.loading = false;
|
|
31
74
|
this.state = 'pending';
|
|
32
75
|
}
|
|
33
|
-
execute(
|
|
34
|
-
this.
|
|
76
|
+
execute(successOrContext, error) {
|
|
77
|
+
this.setLoadingState(true);
|
|
35
78
|
this.state = 'loading';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
79
|
+
const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);
|
|
80
|
+
try {
|
|
81
|
+
return this.action
|
|
82
|
+
.apply(undefined, this.executeParams)
|
|
83
|
+
.pipe(finalize(() => {
|
|
84
|
+
this.setLoadingState(false);
|
|
85
|
+
}), tap(value => {
|
|
86
|
+
this.value = value;
|
|
87
|
+
this.state = 'success';
|
|
88
|
+
this.setLoadingState(false);
|
|
89
|
+
}))
|
|
90
|
+
.subscribe({
|
|
91
|
+
next: callbacks.success,
|
|
92
|
+
error: error => {
|
|
93
|
+
this.state = 'error';
|
|
94
|
+
this.error = error;
|
|
95
|
+
handleBehaviorError(error, callbacks.error);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
39
100
|
this.state = 'error';
|
|
40
101
|
this.error = error;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
102
|
+
this.setLoadingState(false);
|
|
103
|
+
handleBehaviorError(error, callbacks.error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
setLoadingState(loading) {
|
|
107
|
+
this.loading = loading;
|
|
108
|
+
this.loadingDone = !loading;
|
|
48
109
|
}
|
|
49
110
|
}
|
|
50
|
-
function useAsync(action) {
|
|
51
|
-
|
|
111
|
+
function useAsync(action, context = {}) {
|
|
112
|
+
const behavior = new AsyncBehaviorImpl(action, context);
|
|
113
|
+
const fn = function (...params) {
|
|
114
|
+
fn['executeParams'] = params;
|
|
115
|
+
return fn;
|
|
116
|
+
};
|
|
117
|
+
return createBehaviorFromFunction(fn, {
|
|
118
|
+
context: context,
|
|
119
|
+
action: action,
|
|
120
|
+
execute: behavior.execute,
|
|
121
|
+
setLoadingState: behavior.setLoadingState,
|
|
122
|
+
loadingDone: behavior.loadingDone,
|
|
123
|
+
loading: behavior.loading,
|
|
124
|
+
state: behavior.state,
|
|
125
|
+
error: behavior.error,
|
|
126
|
+
value: behavior.value
|
|
127
|
+
});
|
|
52
128
|
}
|
|
53
129
|
|
|
54
|
-
class
|
|
130
|
+
class ActionBehaviorImpl {
|
|
55
131
|
constructor(action, context) {
|
|
56
132
|
this.action = action;
|
|
57
133
|
this.context = context;
|
|
58
134
|
this.saving = false;
|
|
59
135
|
}
|
|
60
|
-
execute(
|
|
61
|
-
var _a;
|
|
136
|
+
execute(successOrContext, error) {
|
|
62
137
|
if (this.saving) {
|
|
63
138
|
return;
|
|
64
139
|
}
|
|
65
140
|
this.saving = true;
|
|
141
|
+
const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);
|
|
66
142
|
try {
|
|
67
143
|
return this.action
|
|
68
|
-
.apply(
|
|
144
|
+
.apply(undefined, this.executeParams)
|
|
69
145
|
.pipe(finalize(() => {
|
|
70
146
|
this.saving = false;
|
|
147
|
+
this.executeParams = undefined;
|
|
71
148
|
}), tap(value => {
|
|
72
149
|
this.saving = false;
|
|
150
|
+
this.executeParams = undefined;
|
|
73
151
|
}))
|
|
74
152
|
.subscribe({
|
|
75
|
-
next:
|
|
153
|
+
next: callbacks === null || callbacks === void 0 ? void 0 : callbacks.success,
|
|
76
154
|
error: (error) => {
|
|
77
155
|
this.saving = false;
|
|
78
|
-
|
|
156
|
+
handleBehaviorError(error, callbacks.error);
|
|
79
157
|
}
|
|
80
158
|
});
|
|
81
159
|
}
|
|
82
160
|
catch (error) {
|
|
83
161
|
this.saving = false;
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
success(successFn) {
|
|
88
|
-
this.context.success = successFn;
|
|
89
|
-
return this;
|
|
90
|
-
}
|
|
91
|
-
error(errorFn) {
|
|
92
|
-
this.context.error = errorFn;
|
|
93
|
-
return this;
|
|
94
|
-
}
|
|
95
|
-
handleError(error) {
|
|
96
|
-
const defaultErrorHandler = getDefaultErrorHandler();
|
|
97
|
-
if (this.context.error) {
|
|
98
|
-
this.context.error(error);
|
|
99
|
-
}
|
|
100
|
-
else if (defaultErrorHandler) {
|
|
101
|
-
defaultErrorHandler(error);
|
|
162
|
+
handleBehaviorError(error, callbacks.error);
|
|
102
163
|
}
|
|
103
164
|
}
|
|
104
165
|
}
|
|
105
166
|
function useAction(action, context = {}) {
|
|
106
|
-
|
|
167
|
+
const behavior = new ActionBehaviorImpl(action, context);
|
|
168
|
+
const fn = function (...params) {
|
|
169
|
+
fn['executeParams'] = params;
|
|
170
|
+
return fn;
|
|
171
|
+
};
|
|
172
|
+
return createBehaviorFromFunction(fn, {
|
|
173
|
+
context: context,
|
|
174
|
+
action: action,
|
|
175
|
+
execute: behavior.execute,
|
|
176
|
+
saving: behavior.saving
|
|
177
|
+
});
|
|
107
178
|
}
|
|
108
179
|
|
|
109
180
|
/**
|