@tethys/cdk 14.2.13 → 14.2.15
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/use-action.d.ts +11 -7
- package/behaviors/use-async.d.ts +4 -4
- package/dom/host-renderer.d.ts +3 -0
- package/esm2020/behaviors/use-action.mjs +34 -14
- package/esm2020/behaviors/use-async.mjs +3 -3
- package/esm2020/dom/host-renderer.mjs +4 -1
- package/fesm2015/tethys-cdk-behaviors.mjs +37 -15
- package/fesm2015/tethys-cdk-behaviors.mjs.map +1 -1
- package/fesm2015/tethys-cdk-dom.mjs +3 -0
- package/fesm2015/tethys-cdk-dom.mjs.map +1 -1
- package/fesm2020/tethys-cdk-behaviors.mjs +35 -15
- package/fesm2020/tethys-cdk-behaviors.mjs.map +1 -1
- package/fesm2020/tethys-cdk-dom.mjs +3 -0
- package/fesm2020/tethys-cdk-dom.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
2
|
+
export interface ActionBehaviorContext<T> {
|
|
3
|
+
success?: (result: T) => void;
|
|
4
|
+
error?: (error: Error) => void;
|
|
5
|
+
}
|
|
6
|
+
declare class ActionBehavior<T, A extends (...args: any) => Observable<T>> {
|
|
3
7
|
private action;
|
|
8
|
+
private context;
|
|
4
9
|
saving: boolean;
|
|
5
|
-
constructor(action:
|
|
6
|
-
execute(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}): void;
|
|
10
|
+
constructor(action: A, context: ActionBehaviorContext<T>);
|
|
11
|
+
execute(...params: Parameters<A>): void;
|
|
12
|
+
success(successFn: (result: T) => void): this;
|
|
13
|
+
error(errorFn: (error: Error) => void): this;
|
|
10
14
|
}
|
|
11
|
-
export declare function useAction<T>(
|
|
15
|
+
export declare function useAction<T, A extends (...args: any) => Observable<T> = (...args: any) => Observable<T>>(action: A, context?: ActionBehaviorContext<T>): ActionBehavior<T, A>;
|
|
12
16
|
export {};
|
package/behaviors/use-async.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
declare class AsyncBehavior<T
|
|
2
|
+
declare class AsyncBehavior<T, A extends (...args: any) => Observable<T>> {
|
|
3
3
|
private action;
|
|
4
4
|
loadingDone: boolean;
|
|
5
5
|
value: T;
|
|
6
6
|
state: 'pending' | 'loading' | 'success' | 'error';
|
|
7
7
|
error?: Error;
|
|
8
|
-
constructor(action:
|
|
9
|
-
execute():
|
|
8
|
+
constructor(action: A);
|
|
9
|
+
execute(...params: Parameters<A>): ReturnType<A>;
|
|
10
10
|
}
|
|
11
|
-
export declare function useAsync<T
|
|
11
|
+
export declare function useAsync<T, A extends (...args: any) => Observable<T>>(action: A): AsyncBehavior<unknown, A>;
|
|
12
12
|
export {};
|
package/dom/host-renderer.d.ts
CHANGED
|
@@ -1,27 +1,47 @@
|
|
|
1
1
|
import { finalize, tap } from 'rxjs/operators';
|
|
2
2
|
class ActionBehavior {
|
|
3
|
-
constructor(action) {
|
|
3
|
+
constructor(action, context) {
|
|
4
4
|
this.action = action;
|
|
5
|
+
this.context = context;
|
|
5
6
|
this.saving = false;
|
|
6
7
|
}
|
|
7
|
-
execute(
|
|
8
|
+
execute(...params) {
|
|
8
9
|
if (this.saving) {
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
12
|
this.saving = true;
|
|
12
|
-
|
|
13
|
-
.
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
try {
|
|
14
|
+
return this.action
|
|
15
|
+
.apply(null, params)
|
|
16
|
+
.pipe(finalize(() => {
|
|
17
|
+
this.saving = false;
|
|
18
|
+
}), tap(value => {
|
|
19
|
+
debugger;
|
|
20
|
+
this.saving = false;
|
|
21
|
+
}))
|
|
22
|
+
.subscribe({
|
|
23
|
+
next: this.context?.success,
|
|
24
|
+
error: (error) => {
|
|
25
|
+
this.saving = false;
|
|
26
|
+
this.context?.error(error);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
16
31
|
this.saving = false;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
32
|
+
this.context?.error(error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
success(successFn) {
|
|
36
|
+
this.context.success = successFn;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
error(errorFn) {
|
|
40
|
+
this.context.error = errorFn;
|
|
41
|
+
return this;
|
|
22
42
|
}
|
|
23
43
|
}
|
|
24
|
-
export function useAction(action) {
|
|
25
|
-
return new ActionBehavior(action);
|
|
44
|
+
export function useAction(action, context = {}) {
|
|
45
|
+
return new ActionBehavior(action, context);
|
|
26
46
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9iZWhhdmlvcnMvdXNlLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzNELE1BQU0sY0FBYztJQUdoQixZQUFvQixNQUFTLEVBQVUsT0FBaUM7UUFBcEQsV0FBTSxHQUFOLE1BQU0sQ0FBRztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBRnhFLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFFNEQsQ0FBQztJQUU1RSxPQUFPLENBQUMsR0FBRyxNQUFxQjtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJO1lBQ0EsT0FBTyxJQUFJLENBQUMsTUFBTTtpQkFDYixLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztpQkFDbkIsSUFBSSxDQUNELFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNSLFFBQVEsQ0FBQztnQkFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUM7Z0JBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTztnQkFDM0IsS0FBSyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsQ0FBQzthQUNKLENBQUMsQ0FBQztTQUNWO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBOEI7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBK0I7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3JCLE1BQVMsRUFDVCxVQUFvQyxFQUFFO0lBRXRDLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CZWhhdmlvckNvbnRleHQ8VD4ge1xuICAgIHN1Y2Nlc3M/OiAocmVzdWx0OiBUKSA9PiB2b2lkO1xuICAgIGVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbn1cblxuY2xhc3MgQWN0aW9uQmVoYXZpb3I8VCwgQSBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IE9ic2VydmFibGU8VD4+IHtcbiAgICBzYXZpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBLCBwcml2YXRlIGNvbnRleHQ6IEFjdGlvbkJlaGF2aW9yQ29udGV4dDxUPikge31cblxuICAgIGV4ZWN1dGUoLi4ucGFyYW1zOiBQYXJhbWV0ZXJzPEE+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNhdmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGlvblxuICAgICAgICAgICAgICAgIC5hcHBseShudWxsLCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YXAodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogdGhpcy5jb250ZXh0Py5zdWNjZXNzLFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dD8uZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0Py5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdWNjZXNzKHN1Y2Nlc3NGbjogKHJlc3VsdDogVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmNvbnRleHQuc3VjY2VzcyA9IHN1Y2Nlc3NGbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZXJyb3IoZXJyb3JGbjogKGVycm9yOiBFcnJvcikgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmNvbnRleHQuZXJyb3IgPSBlcnJvckZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBY3Rpb248VCwgQSBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IE9ic2VydmFibGU8VD4gPSAoLi4uYXJnczogYW55KSA9PiBPYnNlcnZhYmxlPFQ+PihcbiAgICBhY3Rpb246IEEsXG4gICAgY29udGV4dDogQWN0aW9uQmVoYXZpb3JDb250ZXh0PFQ+ID0ge31cbikge1xuICAgIHJldHVybiBuZXcgQWN0aW9uQmVoYXZpb3IoYWN0aW9uLCBjb250ZXh0KTtcbn1cbiJdfQ==
|
|
@@ -5,10 +5,10 @@ class AsyncBehavior {
|
|
|
5
5
|
this.loadingDone = false;
|
|
6
6
|
this.state = 'pending';
|
|
7
7
|
}
|
|
8
|
-
execute() {
|
|
8
|
+
execute(...params) {
|
|
9
9
|
this.loadingDone = false;
|
|
10
10
|
this.state = 'loading';
|
|
11
|
-
return this.action().pipe(finalize(() => {
|
|
11
|
+
return this.action.apply(undefined, params).pipe(finalize(() => {
|
|
12
12
|
this.loadingDone = true;
|
|
13
13
|
}), catchError(error => {
|
|
14
14
|
this.state = 'error';
|
|
@@ -23,4 +23,4 @@ class AsyncBehavior {
|
|
|
23
23
|
export function useAsync(action) {
|
|
24
24
|
return new AsyncBehavior(action);
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2JlaGF2aW9ycy91c2UtYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxhQUFhO0lBU2YsWUFBb0IsTUFBUztRQUFULFdBQU0sR0FBTixNQUFNLENBQUc7UUFSN0IsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJcEIsVUFBSyxHQUFnRCxTQUFTLENBQUM7SUFJL0IsQ0FBQztJQUVqQyxPQUFPLENBQUMsR0FBRyxNQUFxQjtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzVDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNoQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQVUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBK0MsTUFBUztJQUM1RSxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY2xhc3MgQXN5bmNCZWhhdmlvcjxULCBBIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gT2JzZXJ2YWJsZTxUPj4ge1xuICAgIGxvYWRpbmdEb25lID0gZmFsc2U7XG5cbiAgICB2YWx1ZTogVDtcblxuICAgIHN0YXRlOiAncGVuZGluZycgfCAnbG9hZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InID0gJ3BlbmRpbmcnO1xuXG4gICAgZXJyb3I/OiBFcnJvcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBKSB7fVxuXG4gICAgZXhlY3V0ZSguLi5wYXJhbXM6IFBhcmFtZXRlcnM8QT4pOiBSZXR1cm5UeXBlPEE+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nRG9uZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0YXRlID0gJ2xvYWRpbmcnO1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb24uYXBwbHkodW5kZWZpbmVkLCBwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRG9uZSA9IHRydWU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgYXMgVDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBc3luYzxULCBBIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gT2JzZXJ2YWJsZTxUPj4oYWN0aW9uOiBBKSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0JlaGF2aW9yKGFjdGlvbik7XG59XG4iXX0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Injectable, inject, ElementRef } from '@angular/core';
|
|
2
2
|
import { AbstractElementRenderer } from './abstract-element-renderer';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
4
7
|
export class HostRenderer extends AbstractElementRenderer {
|
|
5
8
|
constructor() {
|
|
6
9
|
super(...arguments);
|
|
@@ -18,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
18
21
|
export function useHostRenderer() {
|
|
19
22
|
return new HostRenderer();
|
|
20
23
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9kb20vaG9zdC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXRFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQWEsU0FBUSx1QkFBdUI7SUFEekQ7O1FBRVksZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUszQztJQUhHLElBQWMsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7O3lHQUxRLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVOztBQVNYLE1BQU0sVUFBVSxlQUFlO0lBQzNCLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEVsZW1lbnRSZW5kZXJlciB9IGZyb20gJy4vYWJzdHJhY3QtZWxlbWVudC1yZW5kZXJlcic7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEhvc3RSZW5kZXJlciBleHRlbmRzIEFic3RyYWN0RWxlbWVudFJlbmRlcmVyIHtcbiAgICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VIb3N0UmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBIb3N0UmVuZGVyZXIoKTtcbn1cbiJdfQ==
|
|
@@ -22,10 +22,10 @@ class AsyncBehavior {
|
|
|
22
22
|
this.loadingDone = false;
|
|
23
23
|
this.state = 'pending';
|
|
24
24
|
}
|
|
25
|
-
execute() {
|
|
25
|
+
execute(...params) {
|
|
26
26
|
this.loadingDone = false;
|
|
27
27
|
this.state = 'loading';
|
|
28
|
-
return this.action().pipe(finalize(() => {
|
|
28
|
+
return this.action.apply(undefined, params).pipe(finalize(() => {
|
|
29
29
|
this.loadingDone = true;
|
|
30
30
|
}), catchError(error => {
|
|
31
31
|
this.state = 'error';
|
|
@@ -42,29 +42,51 @@ function useAsync(action) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
class ActionBehavior {
|
|
45
|
-
constructor(action) {
|
|
45
|
+
constructor(action, context) {
|
|
46
46
|
this.action = action;
|
|
47
|
+
this.context = context;
|
|
47
48
|
this.saving = false;
|
|
48
49
|
}
|
|
49
|
-
execute(
|
|
50
|
+
execute(...params) {
|
|
51
|
+
var _a, _b;
|
|
50
52
|
if (this.saving) {
|
|
51
53
|
return;
|
|
52
54
|
}
|
|
53
55
|
this.saving = true;
|
|
54
|
-
|
|
55
|
-
.
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
try {
|
|
57
|
+
return this.action
|
|
58
|
+
.apply(null, params)
|
|
59
|
+
.pipe(finalize(() => {
|
|
60
|
+
this.saving = false;
|
|
61
|
+
}), tap(value => {
|
|
62
|
+
debugger;
|
|
63
|
+
this.saving = false;
|
|
64
|
+
}))
|
|
65
|
+
.subscribe({
|
|
66
|
+
next: (_a = this.context) === null || _a === void 0 ? void 0 : _a.success,
|
|
67
|
+
error: (error) => {
|
|
68
|
+
var _a;
|
|
69
|
+
this.saving = false;
|
|
70
|
+
(_a = this.context) === null || _a === void 0 ? void 0 : _a.error(error);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
58
75
|
this.saving = false;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
76
|
+
(_b = this.context) === null || _b === void 0 ? void 0 : _b.error(error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
success(successFn) {
|
|
80
|
+
this.context.success = successFn;
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
error(errorFn) {
|
|
84
|
+
this.context.error = errorFn;
|
|
85
|
+
return this;
|
|
64
86
|
}
|
|
65
87
|
}
|
|
66
|
-
function useAction(action) {
|
|
67
|
-
return new ActionBehavior(action);
|
|
88
|
+
function useAction(action, context = {}) {
|
|
89
|
+
return new ActionBehavior(action, context);
|
|
68
90
|
}
|
|
69
91
|
|
|
70
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-behaviors.mjs","sources":["../../../cdk/behaviors/run-in-zone.ts","../../../cdk/behaviors/use-async.ts","../../../cdk/behaviors/use-action.ts","../../../cdk/behaviors/tethys-cdk-behaviors.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable, OperatorFunction } from 'rxjs';\n\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: Error) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next: onNext,\n error: onError,\n complete: onComplete\n });\n });\n };\n}\n","import { Observable, of } from 'rxjs';\nimport { finalize, tap, catchError } from 'rxjs/operators';\n\nclass AsyncBehavior<T
|
|
1
|
+
{"version":3,"file":"tethys-cdk-behaviors.mjs","sources":["../../../cdk/behaviors/run-in-zone.ts","../../../cdk/behaviors/use-async.ts","../../../cdk/behaviors/use-action.ts","../../../cdk/behaviors/tethys-cdk-behaviors.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable, OperatorFunction } from 'rxjs';\n\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: Error) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next: onNext,\n error: onError,\n complete: onComplete\n });\n });\n };\n}\n","import { Observable, of } from 'rxjs';\nimport { finalize, tap, catchError } from 'rxjs/operators';\n\nclass AsyncBehavior<T, A extends (...args: any) => Observable<T>> {\n loadingDone = false;\n\n value: T;\n\n state: 'pending' | 'loading' | 'success' | 'error' = 'pending';\n\n error?: Error;\n\n constructor(private action: A) {}\n\n execute(...params: Parameters<A>): ReturnType<A> {\n this.loadingDone = false;\n this.state = 'loading';\n return this.action.apply(undefined, params).pipe(\n finalize(() => {\n this.loadingDone = true;\n }),\n catchError(error => {\n this.state = 'error';\n this.error = error;\n throw error;\n }),\n tap(value => {\n this.value = value as T;\n this.state = 'success';\n })\n );\n }\n}\n\nexport function useAsync<T, A extends (...args: any) => Observable<T>>(action: A) {\n return new AsyncBehavior(action);\n}\n","import { Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, tap } from 'rxjs/operators';\n\nexport interface ActionBehaviorContext<T> {\n success?: (result: T) => void;\n error?: (error: Error) => void;\n}\n\nclass ActionBehavior<T, A extends (...args: any) => Observable<T>> {\n saving = false;\n\n constructor(private action: A, private context: ActionBehaviorContext<T>) {}\n\n execute(...params: Parameters<A>): void {\n if (this.saving) {\n return;\n }\n this.saving = true;\n try {\n return this.action\n .apply(null, params)\n .pipe(\n finalize(() => {\n this.saving = false;\n }),\n tap(value => {\n debugger;\n this.saving = false;\n })\n )\n .subscribe({\n next: this.context?.success,\n error: (error: Error) => {\n this.saving = false;\n this.context?.error(error);\n }\n });\n } catch (error) {\n this.saving = false;\n this.context?.error(error);\n }\n }\n\n success(successFn: (result: T) => void) {\n this.context.success = successFn;\n return this;\n }\n\n error(errorFn: (error: Error) => void) {\n this.context.error = errorFn;\n return this;\n }\n}\n\nexport function useAction<T, A extends (...args: any) => Observable<T> = (...args: any) => Observable<T>>(\n action: A,\n context: ActionBehaviorContext<T> = {}\n) {\n return new ActionBehavior(action, context);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n/**\n * @private\n */\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -22,10 +22,10 @@ class AsyncBehavior {
|
|
|
22
22
|
this.loadingDone = false;
|
|
23
23
|
this.state = 'pending';
|
|
24
24
|
}
|
|
25
|
-
execute() {
|
|
25
|
+
execute(...params) {
|
|
26
26
|
this.loadingDone = false;
|
|
27
27
|
this.state = 'loading';
|
|
28
|
-
return this.action().pipe(finalize(() => {
|
|
28
|
+
return this.action.apply(undefined, params).pipe(finalize(() => {
|
|
29
29
|
this.loadingDone = true;
|
|
30
30
|
}), catchError(error => {
|
|
31
31
|
this.state = 'error';
|
|
@@ -42,29 +42,49 @@ function useAsync(action) {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
class ActionBehavior {
|
|
45
|
-
constructor(action) {
|
|
45
|
+
constructor(action, context) {
|
|
46
46
|
this.action = action;
|
|
47
|
+
this.context = context;
|
|
47
48
|
this.saving = false;
|
|
48
49
|
}
|
|
49
|
-
execute(
|
|
50
|
+
execute(...params) {
|
|
50
51
|
if (this.saving) {
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
54
|
this.saving = true;
|
|
54
|
-
|
|
55
|
-
.
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
try {
|
|
56
|
+
return this.action
|
|
57
|
+
.apply(null, params)
|
|
58
|
+
.pipe(finalize(() => {
|
|
59
|
+
this.saving = false;
|
|
60
|
+
}), tap(value => {
|
|
61
|
+
debugger;
|
|
62
|
+
this.saving = false;
|
|
63
|
+
}))
|
|
64
|
+
.subscribe({
|
|
65
|
+
next: this.context?.success,
|
|
66
|
+
error: (error) => {
|
|
67
|
+
this.saving = false;
|
|
68
|
+
this.context?.error(error);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
58
73
|
this.saving = false;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
74
|
+
this.context?.error(error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
success(successFn) {
|
|
78
|
+
this.context.success = successFn;
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
error(errorFn) {
|
|
82
|
+
this.context.error = errorFn;
|
|
83
|
+
return this;
|
|
64
84
|
}
|
|
65
85
|
}
|
|
66
|
-
function useAction(action) {
|
|
67
|
-
return new ActionBehavior(action);
|
|
86
|
+
function useAction(action, context = {}) {
|
|
87
|
+
return new ActionBehavior(action, context);
|
|
68
88
|
}
|
|
69
89
|
|
|
70
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-behaviors.mjs","sources":["../../../cdk/behaviors/run-in-zone.ts","../../../cdk/behaviors/use-async.ts","../../../cdk/behaviors/use-action.ts","../../../cdk/behaviors/tethys-cdk-behaviors.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable, OperatorFunction } from 'rxjs';\n\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: Error) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next: onNext,\n error: onError,\n complete: onComplete\n });\n });\n };\n}\n","import { Observable, of } from 'rxjs';\nimport { finalize, tap, catchError } from 'rxjs/operators';\n\nclass AsyncBehavior<T
|
|
1
|
+
{"version":3,"file":"tethys-cdk-behaviors.mjs","sources":["../../../cdk/behaviors/run-in-zone.ts","../../../cdk/behaviors/use-async.ts","../../../cdk/behaviors/use-action.ts","../../../cdk/behaviors/tethys-cdk-behaviors.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable, OperatorFunction } from 'rxjs';\n\nexport function runInZone<T>(zone: NgZone): OperatorFunction<T, T> {\n return source => {\n return new Observable(observer => {\n const onNext = (value: T) => zone.run(() => observer.next(value));\n const onError = (e: Error) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next: onNext,\n error: onError,\n complete: onComplete\n });\n });\n };\n}\n","import { Observable, of } from 'rxjs';\nimport { finalize, tap, catchError } from 'rxjs/operators';\n\nclass AsyncBehavior<T, A extends (...args: any) => Observable<T>> {\n loadingDone = false;\n\n value: T;\n\n state: 'pending' | 'loading' | 'success' | 'error' = 'pending';\n\n error?: Error;\n\n constructor(private action: A) {}\n\n execute(...params: Parameters<A>): ReturnType<A> {\n this.loadingDone = false;\n this.state = 'loading';\n return this.action.apply(undefined, params).pipe(\n finalize(() => {\n this.loadingDone = true;\n }),\n catchError(error => {\n this.state = 'error';\n this.error = error;\n throw error;\n }),\n tap(value => {\n this.value = value as T;\n this.state = 'success';\n })\n );\n }\n}\n\nexport function useAsync<T, A extends (...args: any) => Observable<T>>(action: A) {\n return new AsyncBehavior(action);\n}\n","import { Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, tap } from 'rxjs/operators';\n\nexport interface ActionBehaviorContext<T> {\n success?: (result: T) => void;\n error?: (error: Error) => void;\n}\n\nclass ActionBehavior<T, A extends (...args: any) => Observable<T>> {\n saving = false;\n\n constructor(private action: A, private context: ActionBehaviorContext<T>) {}\n\n execute(...params: Parameters<A>): void {\n if (this.saving) {\n return;\n }\n this.saving = true;\n try {\n return this.action\n .apply(null, params)\n .pipe(\n finalize(() => {\n this.saving = false;\n }),\n tap(value => {\n debugger;\n this.saving = false;\n })\n )\n .subscribe({\n next: this.context?.success,\n error: (error: Error) => {\n this.saving = false;\n this.context?.error(error);\n }\n });\n } catch (error) {\n this.saving = false;\n this.context?.error(error);\n }\n }\n\n success(successFn: (result: T) => void) {\n this.context.success = successFn;\n return this;\n }\n\n error(errorFn: (error: Error) => void) {\n this.context.error = errorFn;\n return this;\n }\n}\n\nexport function useAction<T, A extends (...args: any) => Observable<T> = (...args: any) => Observable<T>>(\n action: A,\n context: ActionBehaviorContext<T> = {}\n) {\n return new ActionBehavior(action, context);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGM,SAAU,SAAS,CAAI,IAAY,EAAA;IACrC,OAAO,MAAM,IAAG;AACZ,QAAA,OAAO,IAAI,UAAU,CAAC,QAAQ,IAAG;YAC7B,MAAM,MAAM,GAAG,CAAC,KAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,CAAC,CAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC,SAAS,CAAC;AACpB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,UAAU;AACvB,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AACP,KAAC,CAAC;AACN;;ACbA,MAAM,aAAa,CAAA;AASf,IAAA,WAAA,CAAoB,MAAS,EAAA;QAAT,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;QAR7B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAIpB,IAAK,CAAA,KAAA,GAAgD,SAAS,CAAC;KAI9B;IAEjC,OAAO,CAAC,GAAG,MAAqB,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAC5C,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,SAAC,CAAC,EACF,UAAU,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,MAAM,KAAK,CAAC;AAChB,SAAC,CAAC,EACF,GAAG,CAAC,KAAK,IAAG;AACR,YAAA,IAAI,CAAC,KAAK,GAAG,KAAU,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SAC1B,CAAC,CACL,CAAC;KACL;AACJ,CAAA;AAEK,SAAU,QAAQ,CAA+C,MAAS,EAAA;AAC5E,IAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC;;AC5BA,MAAM,cAAc,CAAA;IAGhB,WAAoB,CAAA,MAAS,EAAU,OAAiC,EAAA;QAApD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;QAFxE,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAE6D;IAE5E,OAAO,CAAC,GAAG,MAAqB,EAAA;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI;YACA,OAAO,IAAI,CAAC,MAAM;AACb,iBAAA,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACnB,iBAAA,IAAI,CACD,QAAQ,CAAC,MAAK;AACV,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,aAAC,CAAC,EACF,GAAG,CAAC,KAAK,IAAG;AACR,gBAAA,SAAS;AACT,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,aAAC,CAAC,CACL;AACA,iBAAA,SAAS,CAAC;AACP,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;AAC3B,gBAAA,KAAK,EAAE,CAAC,KAAY,KAAI;AACpB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC9B;AACJ,aAAA,CAAC,CAAC;AACV,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;KACJ;AAED,IAAA,OAAO,CAAC,SAA8B,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;AACjC,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,KAAK,CAAC,OAA+B,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC;KACf;AACJ,CAAA;SAEe,SAAS,CACrB,MAAS,EACT,UAAoC,EAAE,EAAA;AAEtC,IAAA,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C;;AC3DA;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAEsB,uBAAuB,CAAA;AAA7C,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAI7B,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;KAsDrC;AApDG,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,qFAAA,CAAuF,CAAC,CAAC;AAC5G,SAAA;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;AAED,IAAA,WAAW,CAAC,UAAoB,EAAA;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;gBAChC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AACnC,oBAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/B,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;QACD,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,QAAA,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;AAC3B,YAAA,IAAI,SAAS,EAAE;AACX,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,gBAAgB,CAAC,QAAiC,EAAA;QAC9C,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YACxB,IAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC/C,gBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,SAAiB,EAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,WAAW,CAAC,SAAiB,EAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACvD,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,QAAQ,CAAC,KAAa,EAAE,KAAU,EAAE,KAA2B,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9D,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;AC3DK,MAAO,eAAgB,SAAQ,uBAAuB,CAAA;AAOxD,IAAA,WAAA,CAAY,OAAgB,EAAA;AACxB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;AAPD,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;AAMJ,CAAA;AAEK,SAAU,kBAAkB,CAAC,OAAiB,EAAA;AAChD,IAAA,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;AACxC;;
|
|
1
|
+
{"version":3,"file":"tethys-cdk-dom.mjs","sources":["../../../cdk/dom/abstract-element-renderer.ts","../../../cdk/dom/element-renderer.ts","../../../cdk/dom/host-renderer.ts","../../../cdk/dom/tethys-cdk-dom.ts"],"sourcesContent":["import { Renderer2, inject, RendererStyleFlags2 } from '@angular/core';\n\nexport abstract class AbstractElementRenderer {\n private renderer = inject(Renderer2);\n\n protected abstract element: Element;\n\n private classNames: string[] = [];\n\n private get safeElement() {\n if (!this.element) {\n throw new Error(`Element is null, should call setElement method for ElementRenderer before update dom.`);\n }\n return this.element;\n }\n\n updateClass(classNames: string[]) {\n if (this.classNames) {\n this.classNames.forEach(className => {\n if (classNames.indexOf(className) < 0) {\n this.removeClass(className);\n }\n });\n }\n const newClasses: string[] = [];\n classNames.forEach(className => {\n if (className) {\n newClasses.push(className);\n if (this.classNames.indexOf(className) < 0) {\n this.addClass(className);\n }\n }\n });\n this.classNames = newClasses;\n return this;\n }\n\n updateClassByMap(classMap: Record<string, boolean>) {\n const newClasses = [];\n for (const key in classMap) {\n if (classMap.hasOwnProperty(key) && classMap[key]) {\n newClasses.push(key);\n }\n }\n this.updateClass(newClasses);\n }\n\n addClass(className: string) {\n this.renderer.addClass(this.safeElement, className);\n return this;\n }\n\n removeClass(className: string) {\n this.renderer.removeClass(this.safeElement, className);\n return this;\n }\n\n setStyle(style: string, value: any, flags?: RendererStyleFlags2) {\n this.renderer.setStyle(this.safeElement, style, value, flags);\n return this;\n }\n}\n","import { AbstractElementRenderer } from './abstract-element-renderer';\n\nexport class ElementRenderer extends AbstractElementRenderer {\n protected element: Element;\n\n setElement(element: Element) {\n this.element = element;\n }\n\n constructor(element: Element) {\n super();\n this.element = element;\n }\n}\n\nexport function useElementRenderer(element?: Element): ElementRenderer {\n return new ElementRenderer(element);\n}\n","import { Injectable, inject, ElementRef } from '@angular/core';\nimport { AbstractElementRenderer } from './abstract-element-renderer';\n\n/**\n * @private\n */\n@Injectable()\nexport class HostRenderer extends AbstractElementRenderer {\n private elementRef = inject(ElementRef);\n\n protected get element() {\n return this.elementRef.nativeElement;\n }\n}\n\nexport function useHostRenderer() {\n return new HostRenderer();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|