@tethys/cdk 14.2.13 → 14.2.14

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.
@@ -1,12 +1,16 @@
1
1
  import { Observable } from 'rxjs';
2
- declare class ActionBehavior<T> {
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: () => Observable<T>);
6
- execute(context?: {
7
- next?: () => void;
8
- error?: (error: Error) => void;
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>(action: () => Observable<T>): ActionBehavior<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 {};
@@ -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: () => Observable<T>);
9
- execute(): Observable<T>;
8
+ constructor(action: A);
9
+ execute(...params: Parameters<A>): ReturnType<A>;
10
10
  }
11
- export declare function useAsync<T>(action: () => Observable<T>): AsyncBehavior<T>;
11
+ export declare function useAsync<T, A extends (...args: any) => Observable<T>>(action: A): AsyncBehavior<unknown, A>;
12
12
  export {};
@@ -1,5 +1,8 @@
1
1
  import { AbstractElementRenderer } from './abstract-element-renderer';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * @private
5
+ */
3
6
  export declare class HostRenderer extends AbstractElementRenderer {
4
7
  private elementRef;
5
8
  protected get element(): any;
@@ -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(context = {}) {
8
+ execute(...params) {
8
9
  if (this.saving) {
9
10
  return;
10
11
  }
11
12
  this.saving = true;
12
- this.action()
13
- .pipe(finalize(() => {
14
- this.saving = false;
15
- }), tap(value => {
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
- .subscribe({
19
- error: context.error,
20
- next: context.next
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9iZWhhdmlvcnMvdXNlLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sY0FBYztJQUdoQixZQUFvQixNQUEyQjtRQUEzQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUYvQyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBRW1DLENBQUM7SUFFbkQsT0FBTyxDQUFDLFVBQWlFLEVBQUU7UUFDdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUNSLElBQUksQ0FDRCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUM7WUFDUCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1NBQ3JCLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxTQUFTLENBQUksTUFBMkI7SUFDcEQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY2xhc3MgQWN0aW9uQmVoYXZpb3I8VD4ge1xuICAgIHNhdmluZyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246ICgpID0+IE9ic2VydmFibGU8VD4pIHt9XG5cbiAgICBleGVjdXRlKGNvbnRleHQ6IHsgbmV4dD86ICgpID0+IHZvaWQ7IGVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZCB9ID0ge30pIHtcbiAgICAgICAgaWYgKHRoaXMuc2F2aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFjdGlvbigpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgZXJyb3I6IGNvbnRleHQuZXJyb3IsXG4gICAgICAgICAgICAgICAgbmV4dDogY29udGV4dC5uZXh0XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBY3Rpb248VD4oYWN0aW9uOiAoKSA9PiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIG5ldyBBY3Rpb25CZWhhdmlvcihhY3Rpb24pO1xufVxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY2RrL2JlaGF2aW9ycy91c2UtYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxhQUFhO0lBU2YsWUFBb0IsTUFBMkI7UUFBM0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFSL0MsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJcEIsVUFBSyxHQUFnRCxTQUFTLENBQUM7SUFJYixDQUFDO0lBRW5ELE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQ3JCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNoQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxNQUEyQjtJQUNuRCxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY2xhc3MgQXN5bmNCZWhhdmlvcjxUPiB7XG4gICAgbG9hZGluZ0RvbmUgPSBmYWxzZTtcblxuICAgIHZhbHVlOiBUO1xuXG4gICAgc3RhdGU6ICdwZW5kaW5nJyB8ICdsb2FkaW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgPSAncGVuZGluZyc7XG5cbiAgICBlcnJvcj86IEVycm9yO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246ICgpID0+IE9ic2VydmFibGU8VD4pIHt9XG5cbiAgICBleGVjdXRlKCkge1xuICAgICAgICB0aGlzLmxvYWRpbmdEb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGUgPSAnbG9hZGluZyc7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbigpLnBpcGUoXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRG9uZSA9IHRydWU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSAnZXJyb3InO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQXN5bmM8VD4oYWN0aW9uOiAoKSA9PiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0JlaGF2aW9yKGFjdGlvbik7XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Nkay9kb20vaG9zdC1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBR3RFLE1BQU0sT0FBTyxZQUFhLFNBQVEsdUJBQXVCO0lBRHpEOztRQUVZLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FLM0M7SUFIRyxJQUFjLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDOzt5R0FMUSxZQUFZOzZHQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFEeEIsVUFBVTs7QUFTWCxNQUFNLFVBQVUsZUFBZTtJQUMzQixPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RFbGVtZW50UmVuZGVyZXIgfSBmcm9tICcuL2Fic3RyYWN0LWVsZW1lbnQtcmVuZGVyZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSG9zdFJlbmRlcmVyIGV4dGVuZHMgQWJzdHJhY3RFbGVtZW50UmVuZGVyZXIge1xuICAgIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIHByb3RlY3RlZCBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUhvc3RSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gbmV3IEhvc3RSZW5kZXJlcigpO1xufVxuIl19
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(context = {}) {
50
+ execute(...params) {
51
+ var _a, _b;
50
52
  if (this.saving) {
51
53
  return;
52
54
  }
53
55
  this.saving = true;
54
- this.action()
55
- .pipe(finalize(() => {
56
- this.saving = false;
57
- }), tap(value => {
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
- .subscribe({
61
- error: context.error,
62
- next: context.next
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> {\n loadingDone = false;\n\n value: T;\n\n state: 'pending' | 'loading' | 'success' | 'error' = 'pending';\n\n error?: Error;\n\n constructor(private action: () => Observable<T>) {}\n\n execute() {\n this.loadingDone = false;\n this.state = 'loading';\n return this.action().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;\n this.state = 'success';\n })\n );\n }\n}\n\nexport function useAsync<T>(action: () => Observable<T>) {\n return new AsyncBehavior(action);\n}\n","import { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\n\nclass ActionBehavior<T> {\n saving = false;\n\n constructor(private action: () => Observable<T>) {}\n\n execute(context: { next?: () => void; error?: (error: Error) => void } = {}) {\n if (this.saving) {\n return;\n }\n this.saving = true;\n this.action()\n .pipe(\n finalize(() => {\n this.saving = false;\n }),\n tap(value => {\n this.saving = false;\n })\n )\n .subscribe({\n error: context.error,\n next: context.next\n });\n }\n}\n\nexport function useAction<T>(action: () => Observable<T>) {\n return new ActionBehavior(action);\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-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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"}
@@ -68,6 +68,9 @@ function useElementRenderer(element) {
68
68
  return new ElementRenderer(element);
69
69
  }
70
70
 
71
+ /**
72
+ * @private
73
+ */
71
74
  class HostRenderer extends AbstractElementRenderer {
72
75
  constructor() {
73
76
  super(...arguments);
@@ -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(context = {}) {
50
+ execute(...params) {
50
51
  if (this.saving) {
51
52
  return;
52
53
  }
53
54
  this.saving = true;
54
- this.action()
55
- .pipe(finalize(() => {
56
- this.saving = false;
57
- }), tap(value => {
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
- .subscribe({
61
- error: context.error,
62
- next: context.next
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> {\n loadingDone = false;\n\n value: T;\n\n state: 'pending' | 'loading' | 'success' | 'error' = 'pending';\n\n error?: Error;\n\n constructor(private action: () => Observable<T>) {}\n\n execute() {\n this.loadingDone = false;\n this.state = 'loading';\n return this.action().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;\n this.state = 'success';\n })\n );\n }\n}\n\nexport function useAsync<T>(action: () => Observable<T>) {\n return new AsyncBehavior(action);\n}\n","import { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\n\nclass ActionBehavior<T> {\n saving = false;\n\n constructor(private action: () => Observable<T>) {}\n\n execute(context: { next?: () => void; error?: (error: Error) => void } = {}) {\n if (this.saving) {\n return;\n }\n this.saving = true;\n this.action()\n .pipe(\n finalize(() => {\n this.saving = false;\n }),\n tap(value => {\n this.saving = false;\n })\n )\n .subscribe({\n error: context.error,\n next: context.next\n });\n }\n}\n\nexport function useAction<T>(action: () => Observable<T>) {\n return new ActionBehavior(action);\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,MAA2B,EAAA;QAA3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAqB;QAR/C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAIpB,IAAK,CAAA,KAAA,GAAgD,SAAS,CAAC;KAIZ;IAEnD,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACrB,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,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SAC1B,CAAC,CACL,CAAC;KACL;AACJ,CAAA;AAEK,SAAU,QAAQ,CAAI,MAA2B,EAAA;AACnD,IAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC;;ACjCA,MAAM,cAAc,CAAA;AAGhB,IAAA,WAAA,CAAoB,MAA2B,EAAA;QAA3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAqB;QAF/C,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAEoC;IAEnD,OAAO,CAAC,UAAiE,EAAE,EAAA;QACvE,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE;AACR,aAAA,IAAI,CACD,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,SAAC,CAAC,EACF,GAAG,CAAC,KAAK,IAAG;AACR,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,SAAC,CAAC,CACL;AACA,aAAA,SAAS,CAAC;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;AACrB,SAAA,CAAC,CAAC;KACV;AACJ,CAAA;AAEK,SAAU,SAAS,CAAI,MAA2B,EAAA;AACpD,IAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACtC;;AC/BA;;AAEG;;;;"}
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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"}
@@ -68,6 +68,9 @@ function useElementRenderer(element) {
68
68
  return new ElementRenderer(element);
69
69
  }
70
70
 
71
+ /**
72
+ * @private
73
+ */
71
74
  class HostRenderer extends AbstractElementRenderer {
72
75
  constructor() {
73
76
  super(...arguments);
@@ -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;;ACbM,MAAO,YAAa,SAAQ,uBAAuB,CAAA;AADzD,IAAA,WAAA,GAAA;;AAEY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAK3C,KAAA;AAHG,IAAA,IAAc,OAAO,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;;yGALQ,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;SASK,eAAe,GAAA;IAC3B,OAAO,IAAI,YAAY,EAAE,CAAC;AAC9B;;ACdA;;AAEG;;;;"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tethys/cdk",
3
- "version": "14.2.13",
3
+ "version": "14.2.14",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0",