@tethys/cdk 19.1.14 → 20.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/behaviors/index.d.ts +45 -6
  2. package/dom/index.d.ts +49 -5
  3. package/event/index.d.ts +36 -3
  4. package/fesm2022/tethys-cdk-behaviors.mjs +6 -6
  5. package/fesm2022/tethys-cdk-behaviors.mjs.map +1 -1
  6. package/fesm2022/tethys-cdk-dom.mjs +6 -6
  7. package/fesm2022/tethys-cdk-dom.mjs.map +1 -1
  8. package/fesm2022/tethys-cdk-event.mjs +20 -24
  9. package/fesm2022/tethys-cdk-event.mjs.map +1 -1
  10. package/fesm2022/tethys-cdk-hotkey.mjs +17 -19
  11. package/fesm2022/tethys-cdk-hotkey.mjs.map +1 -1
  12. package/fesm2022/tethys-cdk-immutable.mjs.map +1 -1
  13. package/fesm2022/tethys-cdk-is.mjs.map +1 -1
  14. package/fesm2022/tethys-cdk-logger.mjs.map +1 -1
  15. package/hotkey/index.d.ts +52 -4
  16. package/immutable/index.d.ts +90 -2
  17. package/index.d.ts +5 -5
  18. package/is/index.d.ts +20 -1
  19. package/logger/index.d.ts +7 -1
  20. package/package.json +5 -5
  21. package/behaviors/action-behavior.d.ts +0 -11
  22. package/behaviors/async-behavior.d.ts +0 -15
  23. package/behaviors/behavior.d.ts +0 -17
  24. package/behaviors/error-handler.d.ts +0 -3
  25. package/behaviors/run-in-zone.d.ts +0 -3
  26. package/behaviors/types.d.ts +0 -5
  27. package/dom/abstract-element-renderer.d.ts +0 -12
  28. package/dom/element-renderer.d.ts +0 -7
  29. package/dom/host-renderer.d.ts +0 -12
  30. package/dom/stealth-view-directive.d.ts +0 -9
  31. package/dom/stealth-view-renderer.d.ts +0 -5
  32. package/event/click-dispatcher.d.ts +0 -9
  33. package/event/event-dispatcher.d.ts +0 -19
  34. package/event/keyboard-dispatcher.d.ts +0 -9
  35. package/hotkey/hotkey-dispatcher.d.ts +0 -14
  36. package/hotkey/hotkey.d.ts +0 -2
  37. package/hotkey/hotkey.directive.d.ts +0 -27
  38. package/hotkey/module.d.ts +0 -7
  39. package/immutable/immutable.d.ts +0 -78
  40. package/immutable/object-producer.d.ts +0 -11
  41. package/is/utils.d.ts +0 -17
  42. package/logger/logger.d.ts +0 -5
  43. package/public-api.d.ts +0 -5
@@ -1,6 +1,45 @@
1
- export * from './run-in-zone';
2
- export * from './async-behavior';
3
- export * from './action-behavior';
4
- export * from './error-handler';
5
- export { BehaviorContext } from './behavior';
6
- export * from './types';
1
+ import { NgZone, Signal } from '@angular/core';
2
+ import { OperatorFunction, Observable } from 'rxjs';
3
+
4
+ declare function runInZone<T>(zone: NgZone): OperatorFunction<T, T>;
5
+
6
+ type ExtractObservableValue<T> = T extends Observable<infer V> ? V : T;
7
+ type ParametersWithAppend<Fn extends (...args: any[]) => any, NextArg> = Fn extends (...args: infer PrevArg) => any ? [...PrevArg, NextArg] : never;
8
+ type SuccessFn<R> = (result: R) => void;
9
+ type ErrorFn = (error: Error) => void;
10
+
11
+ declare const BEHAVIOR: unique symbol;
12
+ type Behavior<P extends Array<any>, R> = (...args: P) => R & {
13
+ [BEHAVIOR]: true;
14
+ };
15
+ interface BehaviorContext<R> {
16
+ success?: SuccessFn<R>;
17
+ error?: ErrorFn;
18
+ }
19
+
20
+ interface AsyncBehavior<R> {
21
+ loadingDone: Signal<boolean>;
22
+ loading: Signal<boolean>;
23
+ state: Signal<'pending' | 'loading' | 'success' | 'error'>;
24
+ error?: Signal<Error>;
25
+ value?: Signal<R>;
26
+ execute(success?: SuccessFn<R>, error?: ErrorFn): void;
27
+ execute(context: BehaviorContext<R>): void;
28
+ execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): void;
29
+ }
30
+ declare function asyncBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(action: A, context?: BehaviorContext<ExtractObservableValue<ReturnType<A>>>): Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> & AsyncBehavior<ExtractObservableValue<ReturnType<A>>>;
31
+
32
+ interface ActionBehavior<R> {
33
+ saving: Signal<boolean>;
34
+ execute(success?: SuccessFn<R>, error?: ErrorFn): Observable<R>;
35
+ execute(context: BehaviorContext<R>): Observable<R>;
36
+ execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R>;
37
+ }
38
+ declare function actionBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(action: A, context?: BehaviorContext<ExtractObservableValue<ReturnType<A>>>): Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> & ActionBehavior<ExtractObservableValue<ReturnType<A>>>;
39
+
40
+ type DefaultErrorHandler = (error: Error) => void;
41
+ declare function setDefaultErrorHandler(defaultErrorHandler: DefaultErrorHandler): void;
42
+ declare function getDefaultErrorHandler(): DefaultErrorHandler;
43
+
44
+ export { actionBehavior, asyncBehavior, getDefaultErrorHandler, runInZone, setDefaultErrorHandler };
45
+ export type { ActionBehavior, AsyncBehavior, BehaviorContext, DefaultErrorHandler, ErrorFn, ExtractObservableValue, ParametersWithAppend, SuccessFn };
package/dom/index.d.ts CHANGED
@@ -1,5 +1,49 @@
1
- export * from './abstract-element-renderer';
2
- export * from './element-renderer';
3
- export * from './host-renderer';
4
- export * from './stealth-view-renderer';
5
- export * from './stealth-view-directive';
1
+ import * as i0 from '@angular/core';
2
+ import { RendererStyleFlags2, Signal, TemplateRef } from '@angular/core';
3
+
4
+ declare abstract class AbstractElementRenderer {
5
+ private renderer;
6
+ protected abstract element: Element;
7
+ private classNames;
8
+ private get safeElement();
9
+ updateClass(classNames: string[]): this;
10
+ updateClassByMap(classMap: Record<string, boolean>): void;
11
+ addClass(className: string): this;
12
+ removeClass(className: string): this;
13
+ setStyle(style: string, value: any, flags?: RendererStyleFlags2): this;
14
+ }
15
+
16
+ declare class ElementRenderer extends AbstractElementRenderer {
17
+ protected element: Element;
18
+ setElement(element: Element): void;
19
+ constructor(element: Element);
20
+ }
21
+ declare function useElementRenderer(element?: Element): ElementRenderer;
22
+
23
+ /**
24
+ * @private
25
+ */
26
+ declare class HostRenderer extends AbstractElementRenderer {
27
+ private elementRef;
28
+ protected get element(): any;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<HostRenderer, never>;
30
+ static ɵprov: i0.ɵɵInjectableDeclaration<HostRenderer>;
31
+ }
32
+ declare function useHostRenderer(): HostRenderer;
33
+
34
+ interface StealthViewRenderer {
35
+ rootNodes: Node[];
36
+ }
37
+ declare function useStealthViewRenderer(templateRefInput: Signal<TemplateRef<any>> | TemplateRef<any>): StealthViewRenderer;
38
+
39
+ declare class ThyStealthView {
40
+ private templateRef;
41
+ private stealthViewBehavior;
42
+ get rootNodes(): Node[];
43
+ constructor();
44
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThyStealthView, never>;
45
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ThyStealthView, "ng-template[thyStealthView]", ["thyStealthView"], {}, {}, never, never, true, never>;
46
+ }
47
+
48
+ export { AbstractElementRenderer, ElementRenderer, HostRenderer, ThyStealthView, useElementRenderer, useHostRenderer, useStealthViewRenderer };
49
+ export type { StealthViewRenderer };
package/event/index.d.ts CHANGED
@@ -1,3 +1,36 @@
1
- export * from './event-dispatcher';
2
- export * from './click-dispatcher';
3
- export * from './keyboard-dispatcher';
1
+ import { Subscription, Observable } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { OnDestroy, NgZone } from '@angular/core';
4
+
5
+ declare abstract class ThyEventDispatcher<T = Event> implements OnDestroy {
6
+ private _globalSubscription;
7
+ private _event$;
8
+ private _subscriptionCount;
9
+ private _addGlobalListener;
10
+ private _removeGlobalListener;
11
+ get globalSubscription(): Subscription;
12
+ protected document: Document;
13
+ protected ngZone: NgZone;
14
+ protected abstract eventName: string;
15
+ constructor();
16
+ protected subscribe(auditTimeInMs?: number): Observable<T>;
17
+ ngOnDestroy(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThyEventDispatcher<any>, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ThyEventDispatcher<any>, never, never, {}, {}, never, never, true, never>;
20
+ }
21
+
22
+ declare class ThyClickDispatcher extends ThyEventDispatcher {
23
+ eventName: string;
24
+ clicked(auditTimeInMs?: number): Observable<Event>;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThyClickDispatcher, never>;
26
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThyClickDispatcher>;
27
+ }
28
+
29
+ declare class ThyKeyboardDispatcher extends ThyEventDispatcher {
30
+ eventName: string;
31
+ keydown(auditTimeInMs?: number): Observable<Event>;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThyKeyboardDispatcher, never>;
33
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThyKeyboardDispatcher>;
34
+ }
35
+
36
+ export { ThyClickDispatcher, ThyEventDispatcher, ThyKeyboardDispatcher };
@@ -71,11 +71,11 @@ class AsyncBehaviorImpl {
71
71
  constructor(action, context) {
72
72
  this.action = action;
73
73
  this.context = context;
74
- this.loading = signal(false);
75
- this.loadingDone = computed(() => !this.loading());
76
- this.value = signal(null);
77
- this.state = signal('pending');
78
- this.error = signal(null);
74
+ this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
75
+ this.loadingDone = computed(() => !this.loading(), ...(ngDevMode ? [{ debugName: "loadingDone" }] : []));
76
+ this.value = signal(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
77
+ this.state = signal('pending', ...(ngDevMode ? [{ debugName: "state" }] : []));
78
+ this.error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : []));
79
79
  this.takeUntilDestroyed = takeUntilDestroyed();
80
80
  }
81
81
  execute(successOrContext, error) {
@@ -136,7 +136,7 @@ class ActionBehaviorImpl {
136
136
  constructor(action, context) {
137
137
  this.action = action;
138
138
  this.context = context;
139
- this.saving = signal(false);
139
+ this.saving = signal(false, ...(ngDevMode ? [{ debugName: "saving" }] : []));
140
140
  this.takeUntilDestroyed = takeUntilDestroyed();
141
141
  }
142
142
  execute(successOrContext, error) {
@@ -1 +1 @@
1
- {"version":3,"file":"tethys-cdk-behaviors.mjs","sources":["../../../cdk/behaviors/run-in-zone.ts","../../../cdk/behaviors/error-handler.ts","../../../cdk/behaviors/behavior.ts","../../../cdk/behaviors/async-behavior.ts","../../../cdk/behaviors/action-behavior.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","export type DefaultErrorHandler = (error: Error) => void;\n\nlet _defaultErrorHandler: DefaultErrorHandler = (error: Error) => {};\n\nexport function setDefaultErrorHandler(defaultErrorHandler: DefaultErrorHandler) {\n _defaultErrorHandler = defaultErrorHandler;\n}\n\nexport function getDefaultErrorHandler() {\n return _defaultErrorHandler;\n}\n","import { isFunction } from '@tethys/cdk/is';\nimport { getDefaultErrorHandler } from './error-handler';\nimport { ErrorFn, SuccessFn } from './types';\n\nconst BEHAVIOR = Symbol('BEHAVIOR');\n\nexport type Behavior<P extends Array<any>, R> = (...args: P) => R & {\n [BEHAVIOR]: true;\n};\n\nexport interface BehaviorContext<R> {\n success?: SuccessFn<R>;\n error?: ErrorFn;\n}\n\nexport function createBehaviorFromFunction<P extends any[], R>(fn: () => R): Behavior<P, R>;\nexport function createBehaviorFromFunction<P extends any[], R, U extends Record<string, unknown>>(\n fn: () => R,\n extraApi: U\n): Behavior<P, R> & U;\nexport function createBehaviorFromFunction<P extends any[], R, U extends Record<string, unknown> = {}>(\n fn: () => R,\n extraApi: U = {} as U\n): Behavior<P, R> & U {\n (fn as any)[BEHAVIOR] = true;\n Object.keys(extraApi).forEach(key => {\n const value = extraApi[key];\n Object.assign(fn, { [key]: value });\n });\n return fn as Behavior<P, R> & U;\n}\n\nexport function pickBehaviorCallbacks<R>(\n beforeContext: BehaviorContext<R>,\n successOrContext: SuccessFn<R> | BehaviorContext<R>,\n error?: ErrorFn\n) {\n let successFn: SuccessFn<R>;\n let errorFn: ErrorFn;\n if (successOrContext) {\n if (isFunction(successOrContext)) {\n successFn = successOrContext;\n errorFn = error;\n } else {\n successFn = successOrContext.success;\n errorFn = successOrContext.error;\n }\n } else {\n errorFn = error;\n }\n return {\n success: successFn || beforeContext?.success,\n error: errorFn || beforeContext?.error\n };\n}\n\nexport function handleBehaviorError(error: Error, errorFn: ErrorFn) {\n if (errorFn) {\n errorFn(error);\n } else {\n const defaultErrorHandler = getDefaultErrorHandler();\n defaultErrorHandler && defaultErrorHandler(error);\n }\n}\n","import { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\nimport { Behavior, BehaviorContext, createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';\n\nimport { ErrorFn, ExtractObservableValue, SuccessFn } from './types';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Signal, WritableSignal, computed, signal } from '@angular/core';\n\nexport interface AsyncBehavior<R> {\n loadingDone: Signal<boolean>;\n loading: Signal<boolean>;\n state: Signal<'pending' | 'loading' | 'success' | 'error'>;\n error?: Signal<Error>;\n value?: Signal<R>;\n execute(success?: SuccessFn<R>, error?: ErrorFn): void;\n execute(context: BehaviorContext<R>): void;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): void;\n}\n\nclass AsyncBehaviorImpl<T, A extends (...args: any) => Observable<T>> implements AsyncBehavior<T> {\n loading: WritableSignal<boolean> = signal(false);\n\n loadingDone: Signal<boolean> = computed(() => !this.loading());\n\n value: WritableSignal<T> = signal(null);\n\n state: WritableSignal<'pending' | 'loading' | 'success' | 'error'> = signal('pending');\n\n error?: WritableSignal<Error> = signal(null);\n\n executeParams: Parameters<A>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(\n private action: A,\n private context: BehaviorContext<T>\n ) {}\n\n execute(success?: SuccessFn<T>, error?: ErrorFn): void;\n execute(context: BehaviorContext<T>): void;\n execute(successOrContext: SuccessFn<T> | BehaviorContext<T>, error?: ErrorFn): void {\n this.setLoadingState(true);\n this.state.set('loading');\n const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);\n try {\n return this.action\n .apply(undefined, this.executeParams)\n .pipe(\n this.takeUntilDestroyed,\n finalize(() => {\n this.setLoadingState(false);\n }),\n tap(value => {\n this.value.set(value as T);\n this.state.set('success');\n this.setLoadingState(false);\n })\n )\n .subscribe({\n next: callbacks.success,\n error: error => {\n this.state.set('error');\n this.error.set(error);\n handleBehaviorError(error, callbacks.error);\n }\n });\n } catch (error) {\n this.state.set('error');\n this.error.set(error);\n this.setLoadingState(false);\n handleBehaviorError(error, callbacks.error);\n }\n }\n\n setLoadingState(loading: boolean) {\n this.loading.set(loading);\n }\n}\n\nexport function asyncBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(\n action: A,\n context: BehaviorContext<ExtractObservableValue<ReturnType<A>>> = {}\n): Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> & AsyncBehavior<ExtractObservableValue<ReturnType<A>>> {\n const behavior = new AsyncBehaviorImpl(action, context);\n\n const fn = function (...params: Parameters<A>) {\n fn['executeParams'] = params;\n return fn;\n };\n return createBehaviorFromFunction(fn, {\n context: context,\n action: action,\n takeUntilDestroyed: behavior.takeUntilDestroyed,\n execute: behavior.execute.bind(fn),\n setLoadingState: behavior.setLoadingState.bind(fn),\n loadingDone: behavior.loadingDone,\n loading: behavior.loading,\n state: behavior.state,\n error: behavior.error,\n value: behavior.value\n }) as unknown as Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> &\n AsyncBehavior<ExtractObservableValue<ReturnType<A>>>;\n}\n","import { Observable, throwError } from 'rxjs';\nimport { finalize, shareReplay, tap } from 'rxjs/operators';\n\nimport { Signal, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Behavior, BehaviorContext, createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';\nimport { ErrorFn, ExtractObservableValue, SuccessFn } from './types';\n\nexport interface ActionBehavior<R> {\n saving: Signal<boolean>;\n\n execute(success?: SuccessFn<R>, error?: ErrorFn): Observable<R>;\n execute(context: BehaviorContext<R>): Observable<R>;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R>;\n}\n\nclass ActionBehaviorImpl<R, A extends (...args: any) => Observable<R>> implements ActionBehavior<R> {\n saving = signal(false);\n\n executeParams: Parameters<A>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(\n private action: A,\n private context: BehaviorContext<R>\n ) {}\n\n execute(success?: SuccessFn<R>, error?: ErrorFn): Observable<R>;\n execute(context: BehaviorContext<R>): Observable<R>;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> {\n if (this.saving()) {\n return;\n }\n this.saving.set(true);\n const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);\n try {\n const result = this.action.apply(undefined, this.executeParams).pipe(\n this.takeUntilDestroyed,\n finalize(() => {\n this.saving.set(false);\n this.executeParams = undefined;\n }),\n tap(value => {\n this.saving.set(false);\n this.executeParams = undefined;\n }),\n shareReplay(1)\n );\n result.subscribe({\n next: callbacks?.success,\n error: (error: Error) => {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n }\n });\n return result;\n } catch (error) {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n return throwError(error);\n }\n }\n}\n\nexport function actionBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(\n action: A,\n context: BehaviorContext<ExtractObservableValue<ReturnType<A>>> = {}\n): Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> & ActionBehavior<ExtractObservableValue<ReturnType<A>>> {\n const behavior = new ActionBehaviorImpl(action, context);\n\n const fn = function (...params: Parameters<A>) {\n fn['executeParams'] = params;\n return fn;\n };\n return createBehaviorFromFunction(fn, {\n context: context,\n action: action,\n takeUntilDestroyed: behavior.takeUntilDestroyed,\n execute: behavior.execute.bind(fn),\n saving: behavior.saving\n }) as unknown as Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> &\n ActionBehavior<ExtractObservableValue<ReturnType<A>>>;\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/error-handler.ts","../../../cdk/behaviors/behavior.ts","../../../cdk/behaviors/async-behavior.ts","../../../cdk/behaviors/action-behavior.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","export type DefaultErrorHandler = (error: Error) => void;\n\nlet _defaultErrorHandler: DefaultErrorHandler = (error: Error) => {};\n\nexport function setDefaultErrorHandler(defaultErrorHandler: DefaultErrorHandler) {\n _defaultErrorHandler = defaultErrorHandler;\n}\n\nexport function getDefaultErrorHandler() {\n return _defaultErrorHandler;\n}\n","import { isFunction } from '@tethys/cdk/is';\nimport { getDefaultErrorHandler } from './error-handler';\nimport { ErrorFn, SuccessFn } from './types';\n\nconst BEHAVIOR = Symbol('BEHAVIOR');\n\nexport type Behavior<P extends Array<any>, R> = (...args: P) => R & {\n [BEHAVIOR]: true;\n};\n\nexport interface BehaviorContext<R> {\n success?: SuccessFn<R>;\n error?: ErrorFn;\n}\n\nexport function createBehaviorFromFunction<P extends any[], R>(fn: () => R): Behavior<P, R>;\nexport function createBehaviorFromFunction<P extends any[], R, U extends Record<string, unknown>>(\n fn: () => R,\n extraApi: U\n): Behavior<P, R> & U;\nexport function createBehaviorFromFunction<P extends any[], R, U extends Record<string, unknown> = {}>(\n fn: () => R,\n extraApi: U = {} as U\n): Behavior<P, R> & U {\n (fn as any)[BEHAVIOR] = true;\n Object.keys(extraApi).forEach(key => {\n const value = extraApi[key];\n Object.assign(fn, { [key]: value });\n });\n return fn as Behavior<P, R> & U;\n}\n\nexport function pickBehaviorCallbacks<R>(\n beforeContext: BehaviorContext<R>,\n successOrContext: SuccessFn<R> | BehaviorContext<R>,\n error?: ErrorFn\n) {\n let successFn: SuccessFn<R>;\n let errorFn: ErrorFn;\n if (successOrContext) {\n if (isFunction(successOrContext)) {\n successFn = successOrContext;\n errorFn = error;\n } else {\n successFn = successOrContext.success;\n errorFn = successOrContext.error;\n }\n } else {\n errorFn = error;\n }\n return {\n success: successFn || beforeContext?.success,\n error: errorFn || beforeContext?.error\n };\n}\n\nexport function handleBehaviorError(error: Error, errorFn: ErrorFn) {\n if (errorFn) {\n errorFn(error);\n } else {\n const defaultErrorHandler = getDefaultErrorHandler();\n defaultErrorHandler && defaultErrorHandler(error);\n }\n}\n","import { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\nimport { Behavior, BehaviorContext, createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';\n\nimport { ErrorFn, ExtractObservableValue, SuccessFn } from './types';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Signal, WritableSignal, computed, signal } from '@angular/core';\n\nexport interface AsyncBehavior<R> {\n loadingDone: Signal<boolean>;\n loading: Signal<boolean>;\n state: Signal<'pending' | 'loading' | 'success' | 'error'>;\n error?: Signal<Error>;\n value?: Signal<R>;\n execute(success?: SuccessFn<R>, error?: ErrorFn): void;\n execute(context: BehaviorContext<R>): void;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): void;\n}\n\nclass AsyncBehaviorImpl<T, A extends (...args: any) => Observable<T>> implements AsyncBehavior<T> {\n loading: WritableSignal<boolean> = signal(false);\n\n loadingDone: Signal<boolean> = computed(() => !this.loading());\n\n value: WritableSignal<T> = signal(null);\n\n state: WritableSignal<'pending' | 'loading' | 'success' | 'error'> = signal('pending');\n\n error?: WritableSignal<Error> = signal(null);\n\n executeParams: Parameters<A>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(\n private action: A,\n private context: BehaviorContext<T>\n ) {}\n\n execute(success?: SuccessFn<T>, error?: ErrorFn): void;\n execute(context: BehaviorContext<T>): void;\n execute(successOrContext: SuccessFn<T> | BehaviorContext<T>, error?: ErrorFn): void {\n this.setLoadingState(true);\n this.state.set('loading');\n const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);\n try {\n return this.action\n .apply(undefined, this.executeParams)\n .pipe(\n this.takeUntilDestroyed,\n finalize(() => {\n this.setLoadingState(false);\n }),\n tap(value => {\n this.value.set(value as T);\n this.state.set('success');\n this.setLoadingState(false);\n })\n )\n .subscribe({\n next: callbacks.success,\n error: error => {\n this.state.set('error');\n this.error.set(error);\n handleBehaviorError(error, callbacks.error);\n }\n });\n } catch (error) {\n this.state.set('error');\n this.error.set(error);\n this.setLoadingState(false);\n handleBehaviorError(error, callbacks.error);\n }\n }\n\n setLoadingState(loading: boolean) {\n this.loading.set(loading);\n }\n}\n\nexport function asyncBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(\n action: A,\n context: BehaviorContext<ExtractObservableValue<ReturnType<A>>> = {}\n): Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> & AsyncBehavior<ExtractObservableValue<ReturnType<A>>> {\n const behavior = new AsyncBehaviorImpl(action, context);\n\n const fn = function (...params: Parameters<A>) {\n fn['executeParams'] = params;\n return fn;\n };\n return createBehaviorFromFunction(fn, {\n context: context,\n action: action,\n takeUntilDestroyed: behavior.takeUntilDestroyed,\n execute: behavior.execute.bind(fn),\n setLoadingState: behavior.setLoadingState.bind(fn),\n loadingDone: behavior.loadingDone,\n loading: behavior.loading,\n state: behavior.state,\n error: behavior.error,\n value: behavior.value\n }) as unknown as Behavior<Parameters<A>, AsyncBehavior<ExtractObservableValue<ReturnType<A>>>> &\n AsyncBehavior<ExtractObservableValue<ReturnType<A>>>;\n}\n","import { Observable, throwError } from 'rxjs';\nimport { finalize, shareReplay, tap } from 'rxjs/operators';\nimport { Signal, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Behavior, BehaviorContext, createBehaviorFromFunction, handleBehaviorError, pickBehaviorCallbacks } from './behavior';\nimport { ErrorFn, ExtractObservableValue, SuccessFn } from './types';\n\nexport interface ActionBehavior<R> {\n saving: Signal<boolean>;\n\n execute(success?: SuccessFn<R>, error?: ErrorFn): Observable<R>;\n execute(context: BehaviorContext<R>): Observable<R>;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R>;\n}\n\nclass ActionBehaviorImpl<R, A extends (...args: any) => Observable<R>> implements ActionBehavior<R> {\n saving = signal(false);\n\n executeParams: Parameters<A>;\n\n takeUntilDestroyed = takeUntilDestroyed();\n\n constructor(\n private action: A,\n private context: BehaviorContext<R>\n ) {}\n\n execute(success?: SuccessFn<R>, error?: ErrorFn): Observable<R>;\n execute(context: BehaviorContext<R>): Observable<R>;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> {\n if (this.saving()) {\n return;\n }\n this.saving.set(true);\n const callbacks = pickBehaviorCallbacks(this.context, successOrContext, error);\n try {\n const result = this.action.apply(undefined, this.executeParams).pipe(\n this.takeUntilDestroyed,\n finalize(() => {\n this.saving.set(false);\n this.executeParams = undefined;\n }),\n tap(value => {\n this.saving.set(false);\n this.executeParams = undefined;\n }),\n shareReplay(1)\n );\n result.subscribe({\n next: callbacks?.success,\n error: (error: Error) => {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n }\n });\n return result;\n } catch (error) {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n return throwError(error);\n }\n }\n}\n\nexport function actionBehavior<A extends (...args: any) => Observable<any> = (...args: any) => Observable<any>>(\n action: A,\n context: BehaviorContext<ExtractObservableValue<ReturnType<A>>> = {}\n): Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> & ActionBehavior<ExtractObservableValue<ReturnType<A>>> {\n const behavior = new ActionBehaviorImpl(action, context);\n\n const fn = function (...params: Parameters<A>) {\n fn['executeParams'] = params;\n return fn;\n };\n return createBehaviorFromFunction(fn, {\n context: context,\n action: action,\n takeUntilDestroyed: behavior.takeUntilDestroyed,\n execute: behavior.execute.bind(fn),\n saving: behavior.saving\n }) as unknown as Behavior<Parameters<A>, ActionBehavior<ExtractObservableValue<ReturnType<A>>>> &\n ActionBehavior<ExtractObservableValue<ReturnType<A>>>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -79,10 +79,10 @@ class HostRenderer extends AbstractElementRenderer {
79
79
  get element() {
80
80
  return this.elementRef.nativeElement;
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: HostRenderer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
83
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: HostRenderer }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: HostRenderer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: HostRenderer }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: HostRenderer, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: HostRenderer, decorators: [{
86
86
  type: Injectable
87
87
  }] });
88
88
  function useHostRenderer() {
@@ -122,10 +122,10 @@ class ThyStealthView {
122
122
  this.templateRef = inject((TemplateRef));
123
123
  this.stealthViewBehavior = useStealthViewRenderer(this.templateRef);
124
124
  }
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyStealthView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
126
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: ThyStealthView, isStandalone: true, selector: "ng-template[thyStealthView]", exportAs: ["thyStealthView"], ngImport: i0 }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyStealthView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
126
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ThyStealthView, isStandalone: true, selector: "ng-template[thyStealthView]", exportAs: ["thyStealthView"], ngImport: i0 }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyStealthView, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyStealthView, decorators: [{
129
129
  type: Directive,
130
130
  args: [{
131
131
  selector: 'ng-template[thyStealthView]',
@@ -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/stealth-view-renderer.ts","../../../cdk/dom/stealth-view-directive.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","import { ApplicationRef, DestroyRef, Directive, EmbeddedViewRef, inject, Injector, isSignal, Signal, TemplateRef } from '@angular/core';\n\nexport interface StealthViewRenderer {\n rootNodes: Node[];\n}\n\nexport function useStealthViewRenderer(templateRefInput: Signal<TemplateRef<any>> | TemplateRef<any>): StealthViewRenderer {\n const injector = inject(Injector);\n const applicationRef = inject(ApplicationRef);\n const destroyRef = inject(DestroyRef);\n\n let embeddedViewRef: EmbeddedViewRef<any>;\n\n destroyRef.onDestroy(() => {\n if (embeddedViewRef) {\n embeddedViewRef.destroy();\n applicationRef.detachView(embeddedViewRef);\n }\n });\n\n const result = {\n get rootNodes() {\n if (!embeddedViewRef) {\n const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;\n embeddedViewRef = templateRef.createEmbeddedView({}, injector);\n applicationRef.attachView(embeddedViewRef);\n }\n return embeddedViewRef.rootNodes;\n }\n };\n return result;\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { useStealthViewRenderer } from './stealth-view-renderer';\n\n@Directive({\n selector: 'ng-template[thyStealthView]',\n exportAs: 'thyStealthView'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyStealthView {\n private templateRef = inject(TemplateRef<any>);\n\n private stealthViewBehavior = useStealthViewRenderer(this.templateRef);\n\n get rootNodes() {\n return this.stealthViewBehavior.rootNodes;\n }\n\n constructor() {}\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;QAI5B,IAAU,CAAA,UAAA,GAAa,EAAE;;AAEjC,IAAA,IAAY,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,qFAAA,CAAuF,CAAC;;QAE5G,OAAO,IAAI,CAAC,OAAO;;AAGvB,IAAA,WAAW,CAAC,UAAoB,EAAA;AAC5B,QAAA,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;;AAEnC,aAAC,CAAC;;QAEN,MAAM,UAAU,GAAa,EAAE;AAC/B,QAAA,UAAU,CAAC,OAAO,CAAC,SAAS,IAAG;YAC3B,IAAI,SAAS,EAAE;AACX,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;;AAGpC,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,OAAO,IAAI;;AAGf,IAAA,gBAAgB,CAAC,QAAiC,EAAA;QAC9C,MAAM,UAAU,GAAG,EAAE;AACrB,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACxB,YAAA,IAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC/C,gBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;;AAG5B,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;;AAGhC,IAAA,QAAQ,CAAC,SAAiB,EAAA;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;AACnD,QAAA,OAAO,IAAI;;AAGf,IAAA,WAAW,CAAC,SAAiB,EAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;AACtD,QAAA,OAAO,IAAI;;AAGf,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;AAC7D,QAAA,OAAO,IAAI;;AAElB;;AC3DK,MAAO,eAAgB,SAAQ,uBAAuB,CAAA;AAGxD,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AAG1B,IAAA,WAAA,CAAY,OAAgB,EAAA;AACxB,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;AAE7B;AAEK,SAAU,kBAAkB,CAAC,OAAiB,EAAA;AAChD,IAAA,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC;AACvC;;ACdA;;AAEG;AAEG,MAAO,YAAa,SAAQ,uBAAuB,CAAA;AADzD,IAAA,WAAA,GAAA;;AAEY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAK1C;AAHG,IAAA,IAAc,OAAO,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;;8GAJ/B,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;SASe,eAAe,GAAA;IAC3B,OAAO,IAAI,YAAY,EAAE;AAC7B;;ACXM,SAAU,sBAAsB,CAAC,gBAA6D,EAAA;AAChG,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC,IAAA,IAAI,eAAqC;AAEzC,IAAA,UAAU,CAAC,SAAS,CAAC,MAAK;QACtB,IAAI,eAAe,EAAE;YACjB,eAAe,CAAC,OAAO,EAAE;AACzB,YAAA,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC;;AAElD,KAAC,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG;AACX,QAAA,IAAI,SAAS,GAAA;YACT,IAAI,CAAC,eAAe,EAAE;AAClB,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB;gBACtF,eAAe,GAAG,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC;AAC9D,gBAAA,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC;;YAE9C,OAAO,eAAe,CAAC,SAAS;;KAEvC;AACD,IAAA,OAAO,MAAM;AACjB;;ACxBA;MACa,cAAc,CAAA;AAKvB,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS;;AAG7C,IAAA,WAAA,GAAA;AARQ,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,WAAgB,EAAC;AAEtC,QAAA,IAAA,CAAA,mBAAmB,GAAG,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC;;8GAH7D,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;ACND;;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/stealth-view-renderer.ts","../../../cdk/dom/stealth-view-directive.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","import { ApplicationRef, DestroyRef, Directive, EmbeddedViewRef, inject, Injector, isSignal, Signal, TemplateRef } from '@angular/core';\n\nexport interface StealthViewRenderer {\n rootNodes: Node[];\n}\n\nexport function useStealthViewRenderer(templateRefInput: Signal<TemplateRef<any>> | TemplateRef<any>): StealthViewRenderer {\n const injector = inject(Injector);\n const applicationRef = inject(ApplicationRef);\n const destroyRef = inject(DestroyRef);\n\n let embeddedViewRef: EmbeddedViewRef<any>;\n\n destroyRef.onDestroy(() => {\n if (embeddedViewRef) {\n embeddedViewRef.destroy();\n applicationRef.detachView(embeddedViewRef);\n }\n });\n\n const result = {\n get rootNodes() {\n if (!embeddedViewRef) {\n const templateRef = isSignal(templateRefInput) ? templateRefInput() : templateRefInput;\n embeddedViewRef = templateRef.createEmbeddedView({}, injector);\n applicationRef.attachView(embeddedViewRef);\n }\n return embeddedViewRef.rootNodes;\n }\n };\n return result;\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { useStealthViewRenderer } from './stealth-view-renderer';\n\n@Directive({\n selector: 'ng-template[thyStealthView]',\n exportAs: 'thyStealthView'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class ThyStealthView {\n private templateRef = inject(TemplateRef<any>);\n\n private stealthViewBehavior = useStealthViewRenderer(this.templateRef);\n\n get rootNodes() {\n return this.stealthViewBehavior.rootNodes;\n }\n\n constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { fromEvent, Subject, Observable } from 'rxjs';
2
2
  import { auditTime } from 'rxjs/operators';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, inject, NgZone, Injectable } from '@angular/core';
5
- import { DOCUMENT } from '@angular/common';
4
+ import { inject, DOCUMENT, NgZone, Directive, Injectable } from '@angular/core';
6
5
 
7
6
  const DEFAULT_EVENT_TIME = 100;
8
7
  class ThyEventDispatcher {
@@ -22,13 +21,12 @@ class ThyEventDispatcher {
22
21
  get globalSubscription() {
23
22
  return this._globalSubscription;
24
23
  }
25
- constructor(document, ngZone, eventName) {
26
- this.document = document;
27
- this.ngZone = ngZone;
28
- this.eventName = eventName;
24
+ constructor() {
29
25
  this._globalSubscription = null;
30
26
  this._event$ = new Subject();
31
27
  this._subscriptionCount = 0;
28
+ this.document = inject(DOCUMENT);
29
+ this.ngZone = inject(NgZone);
32
30
  }
33
31
  subscribe(auditTimeInMs = DEFAULT_EVENT_TIME) {
34
32
  return new Observable(observer => {
@@ -52,32 +50,31 @@ class ThyEventDispatcher {
52
50
  this._removeGlobalListener();
53
51
  this._event$.complete();
54
52
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyEventDispatcher, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
56
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: ThyEventDispatcher, isStandalone: true, ngImport: i0 }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
54
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ThyEventDispatcher, isStandalone: true, ngImport: i0 }); }
57
55
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyEventDispatcher, decorators: [{
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyEventDispatcher, decorators: [{
59
57
  type: Directive
60
- }], ctorParameters: () => [{ type: Document }, { type: i0.NgZone }, { type: undefined }] });
58
+ }], ctorParameters: () => [] });
61
59
 
62
60
  const DEFAULT_CLICKED_TIME = 100;
63
61
  class ThyClickDispatcher extends ThyEventDispatcher {
64
62
  constructor() {
65
- const document = inject(DOCUMENT);
66
- const ngZone = inject(NgZone);
67
- super(document, ngZone, 'click');
63
+ super(...arguments);
64
+ this.eventName = 'click';
68
65
  }
69
66
  clicked(auditTimeInMs = DEFAULT_CLICKED_TIME) {
70
67
  return this.subscribe(auditTimeInMs);
71
68
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyClickDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
73
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyClickDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' }); }
74
71
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyClickDispatcher, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyClickDispatcher, decorators: [{
76
73
  type: Injectable,
77
74
  args: [{
78
75
  providedIn: 'root'
79
76
  }]
80
- }], ctorParameters: () => [] });
77
+ }] });
81
78
 
82
79
  /**
83
80
  * @license
@@ -89,22 +86,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
89
86
  const DEFAULT_KEYDOWN_TIME = 100;
90
87
  class ThyKeyboardDispatcher extends ThyEventDispatcher {
91
88
  constructor() {
92
- const document = inject(DOCUMENT);
93
- const ngZone = inject(NgZone);
94
- super(document, ngZone, 'keydown');
89
+ super(...arguments);
90
+ this.eventName = 'keydown';
95
91
  }
96
92
  keydown(auditTimeInMs = DEFAULT_KEYDOWN_TIME) {
97
93
  return this.subscribe(auditTimeInMs);
98
94
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyKeyboardDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
100
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyKeyboardDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
96
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' }); }
101
97
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
103
99
  type: Injectable,
104
100
  args: [{
105
101
  providedIn: 'root'
106
102
  }]
107
- }], ctorParameters: () => [] });
103
+ }] });
108
104
 
109
105
  /**
110
106
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"tethys-cdk-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { Directive, NgZone, OnDestroy } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n constructor(\n protected document: Document,\n protected ngZone: NgZone,\n private eventName: string\n ) {}\n\n protected subscribe(auditTimeInMs: number = DEFAULT_EVENT_TIME): Observable<T> {\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription =\n auditTimeInMs > 0 ? this._event$.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._event$.subscribe(observer);\n\n this._subscriptionCount++;\n return () => {\n subscription.unsubscribe();\n this._subscriptionCount--;\n\n if (!this._subscriptionCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n\n ngOnDestroy() {\n this._removeGlobalListener();\n this._event$.complete();\n }\n}\n","import { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_CLICKED_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickDispatcher extends ThyEventDispatcher {\n constructor() {\n const document = inject(DOCUMENT);\n const ngZone = inject(NgZone);\n\n super(document, ngZone, 'click');\n }\n\n clicked(auditTimeInMs: number = DEFAULT_CLICKED_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport { Injectable, NgZone, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_KEYDOWN_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyKeyboardDispatcher extends ThyEventDispatcher {\n constructor() {\n const document = inject(DOCUMENT);\n const ngZone = inject(NgZone);\n\n super(document, ngZone, 'keydown');\n }\n\n keydown(auditTimeInMs: number = DEFAULT_KEYDOWN_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n\n// @Injectable({ providedIn: 'root' })\n// export class ThyKeyboardDispatcher implements OnDestroy {\n// /** Currently attached keydown refs in the order they were attached. */\n// _attachedKeydownSubjects: Subject<KeyboardEvent>[] = [];\n\n// private _document: Document;\n\n// private _isAttached: boolean;\n\n// /** Keyboard event listener that will be attached to the body. */\n// private _keydownListener = (event: KeyboardEvent) => {\n// const keydownRefs = this._attachedKeydownSubjects;\n\n// for (let i = keydownRefs.length - 1; i > -1; i--) {\n// keydownRefs[i].next(event);\n// break;\n// }\n// }\n\n// /** Detaches the global keyboard event listener. */\n// private _detach() {\n// if (this._isAttached) {\n// this._document.body.removeEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = false;\n// }\n// }\n\n// constructor(@Inject(DOCUMENT) document: any) {\n// this._document = document;\n// }\n\n// ngOnDestroy() {\n// this._detach();\n// }\n\n// /** Add a new overlay to the list of attached overlay refs. */\n// add(keydownSubject: Subject<KeyboardEvent>): void {\n// // Ensure that we don't get the same overlay multiple times.\n// this.remove(keydownSubject);\n\n// // Lazily start dispatcher once first overlay is added\n// if (!this._isAttached) {\n// this._document.body.addEventListener(\n// 'keydown',\n// this._keydownListener,\n// true\n// );\n// this._isAttached = true;\n// }\n\n// this._attachedKeydownSubjects.push(keydownSubject);\n// }\n\n// /** Remove an keydown ref from the list of attached keydown refs. */\n// remove(keydownRef: Subject<KeyboardEvent>): void {\n// const index = this._attachedKeydownSubjects.indexOf(keydownRef);\n\n// if (index > -1) {\n// this._attachedKeydownSubjects.splice(index, 1);\n// }\n\n// // Remove the global listener once there are no more refs.\n// if (this._attachedKeydownSubjects.length === 0) {\n// this._detach();\n// }\n// }\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-event.mjs","sources":["../../../cdk/event/event-dispatcher.ts","../../../cdk/event/click-dispatcher.ts","../../../cdk/event/keyboard-dispatcher.ts","../../../cdk/event/tethys-cdk-event.ts"],"sourcesContent":["import { fromEvent, Observable, Subject, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\nimport { Directive, NgZone, OnDestroy, inject, DOCUMENT } from '@angular/core';\n\nconst DEFAULT_EVENT_TIME = 100;\n\n@Directive()\nexport abstract class ThyEventDispatcher<T = Event> implements OnDestroy {\n private _globalSubscription: Subscription = null;\n\n private _event$ = new Subject<T>();\n\n private _subscriptionCount = 0;\n\n private _addGlobalListener() {\n this._globalSubscription = this.ngZone.runOutsideAngular(() => {\n return fromEvent<T>(this.document, this.eventName).subscribe((event: T) => {\n this._event$.next(event);\n });\n });\n }\n\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n\n get globalSubscription(): Subscription {\n return this._globalSubscription;\n }\n\n protected document: Document = inject(DOCUMENT);\n\n protected ngZone: NgZone = inject(NgZone);\n\n protected abstract eventName: string;\n\n constructor() {}\n\n protected subscribe(auditTimeInMs: number = DEFAULT_EVENT_TIME): Observable<T> {\n return new Observable(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription =\n auditTimeInMs > 0 ? this._event$.pipe(auditTime(auditTimeInMs)).subscribe(observer) : this._event$.subscribe(observer);\n\n this._subscriptionCount++;\n return () => {\n subscription.unsubscribe();\n this._subscriptionCount--;\n\n if (!this._subscriptionCount) {\n this._removeGlobalListener();\n }\n };\n });\n }\n\n ngOnDestroy() {\n this._removeGlobalListener();\n this._event$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_CLICKED_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyClickDispatcher extends ThyEventDispatcher {\n eventName = 'click';\n\n clicked(auditTimeInMs: number = DEFAULT_CLICKED_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ThyEventDispatcher } from './event-dispatcher';\n\nconst DEFAULT_KEYDOWN_TIME = 100;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyKeyboardDispatcher extends ThyEventDispatcher {\n eventName = 'keydown';\n\n keydown(auditTimeInMs: number = DEFAULT_KEYDOWN_TIME): Observable<Event> {\n return this.subscribe(auditTimeInMs);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, NgZone, Injectable, ElementRef, input, output, Directive, NgModule } from '@angular/core';
3
- import { DOCUMENT } from '@angular/common';
2
+ import { Injectable, inject, DOCUMENT, ElementRef, input, output, Directive, NgModule } from '@angular/core';
4
3
  import { isString, isUndefinedOrNull, isFormElement } from '@tethys/cdk/is';
5
4
  import { coerceElement } from '@angular/cdk/coercion';
6
5
  import { ThyEventDispatcher } from '@tethys/cdk/event';
@@ -42,9 +41,8 @@ function runInZone(zone) {
42
41
  }
43
42
  class ThyHotkeyDispatcher extends ThyEventDispatcher {
44
43
  constructor() {
45
- const document = inject(DOCUMENT);
46
- const ngZone = inject(NgZone);
47
- super(document, ngZone, 'keydown');
44
+ super(...arguments);
45
+ this.eventName = 'keydown';
48
46
  }
49
47
  createKeydownObservable(scope) {
50
48
  if (scope === this.document) {
@@ -76,13 +74,13 @@ class ThyHotkeyDispatcher extends ThyEventDispatcher {
76
74
  };
77
75
  }).pipe(runInZone(this.ngZone));
78
76
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
80
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' }); }
77
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
78
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' }); }
81
79
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
83
81
  type: Injectable,
84
82
  args: [{ providedIn: 'root' }]
85
- }], ctorParameters: () => [] });
83
+ }] });
86
84
 
87
85
  /**
88
86
  * @name thyHotkey
@@ -95,11 +93,11 @@ class ThyHotkeyDirective {
95
93
  /**
96
94
  * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入
97
95
  */
98
- this.thyHotkey = input();
96
+ this.thyHotkey = input(...(ngDevMode ? [undefined, { debugName: "thyHotkey" }] : []));
99
97
  /**
100
98
  * 配置热键触发范围,默认绑定在 document 上
101
99
  */
102
- this.thyHotkeyScope = input();
100
+ this.thyHotkeyScope = input(...(ngDevMode ? [undefined, { debugName: "thyHotkeyScope" }] : []));
103
101
  /**
104
102
  * 热键触发后的事件
105
103
  */
@@ -126,20 +124,20 @@ class ThyHotkeyDirective {
126
124
  this.subscription.unsubscribe();
127
125
  }
128
126
  }
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
130
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: ThyHotkeyDirective, isStandalone: true, selector: "[thyHotkey]", inputs: { thyHotkey: { classPropertyName: "thyHotkey", publicName: "thyHotkey", isSignal: true, isRequired: false, transformFunction: null }, thyHotkeyScope: { classPropertyName: "thyHotkeyScope", publicName: "thyHotkeyScope", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyHotkeyListener: "thyHotkeyListener" }, ngImport: i0 }); }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
128
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyHotkeyDirective, isStandalone: true, selector: "[thyHotkey]", inputs: { thyHotkey: { classPropertyName: "thyHotkey", publicName: "thyHotkey", isSignal: true, isRequired: false, transformFunction: null }, thyHotkeyScope: { classPropertyName: "thyHotkeyScope", publicName: "thyHotkeyScope", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyHotkeyListener: "thyHotkeyListener" }, ngImport: i0 }); }
131
129
  }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
133
131
  type: Directive,
134
132
  args: [{ selector: '[thyHotkey]' }]
135
- }] });
133
+ }], propDecorators: { thyHotkey: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyHotkey", required: false }] }], thyHotkeyScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyHotkeyScope", required: false }] }], thyHotkeyListener: [{ type: i0.Output, args: ["thyHotkeyListener"] }] } });
136
134
 
137
135
  class ThyHotkeyModule {
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
139
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyModule, imports: [ThyHotkeyDirective], exports: [ThyHotkeyDirective] }); }
140
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyModule }); }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
137
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyModule, imports: [ThyHotkeyDirective], exports: [ThyHotkeyDirective] }); }
138
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyModule }); }
141
139
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyHotkeyModule, decorators: [{
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyHotkeyModule, decorators: [{
143
141
  type: NgModule,
144
142
  args: [{
145
143
  imports: [ThyHotkeyDirective],