@tethys/cdk 21.0.0-next.2 → 21.0.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/tethys-cdk-behaviors.mjs +6 -6
- package/fesm2022/tethys-cdk-behaviors.mjs.map +1 -1
- package/fesm2022/tethys-cdk-dom.mjs +6 -6
- package/fesm2022/tethys-cdk-event.mjs +9 -9
- package/fesm2022/tethys-cdk-hotkey.mjs +12 -12
- package/fesm2022/tethys-cdk-hotkey.mjs.map +1 -1
- package/package.json +3 -2
|
@@ -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, ...(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" }] : []));
|
|
74
|
+
this.loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
75
|
+
this.loadingDone = computed(() => !this.loading(), ...(ngDevMode ? [{ debugName: "loadingDone" }] : /* istanbul ignore next */ []));
|
|
76
|
+
this.value = signal(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
77
|
+
this.state = signal('pending', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
78
|
+
this.error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
|
|
79
79
|
this.takeUntilDestroyed = takeUntilDestroyed();
|
|
80
80
|
}
|
|
81
81
|
execute(successOrContext, error) {
|
|
@@ -135,7 +135,7 @@ class ActionBehaviorImpl {
|
|
|
135
135
|
constructor(action, context) {
|
|
136
136
|
this.action = action;
|
|
137
137
|
this.context = context;
|
|
138
|
-
this.saving = signal(false, ...(ngDevMode ? [{ debugName: "saving" }] : []));
|
|
138
|
+
this.saving = signal(false, ...(ngDevMode ? [{ debugName: "saving" }] : /* istanbul ignore next */ []));
|
|
139
139
|
this.takeUntilDestroyed = takeUntilDestroyed();
|
|
140
140
|
}
|
|
141
141
|
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> | undefined;\n let errorFn: ErrorFn | undefined;\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 | null>;\n value?: Signal<R | null>;\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 | null> = signal(null);\n\n state: WritableSignal<'pending' | 'loading' | 'success' | 'error'> = signal('pending');\n\n error: WritableSignal<Error | null> = 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 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 value => {\n callbacks.success?.(value as T);\n },\n 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 as Error);\n this.setLoadingState(false);\n handleBehaviorError(error as 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 as any)['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> | undefined;\n execute(context: BehaviorContext<R>): Observable<R> | undefined;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> | undefined;\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> | undefined;\n execute(context: BehaviorContext<R>): Observable<R> | undefined;\n execute(successOrContext?: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> | undefined {\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 as Observable<R>).subscribe({\n next: callbacks?.success,\n error: (error: Error) => {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n }\n });\n return result as Observable<R>;\n } catch (error) {\n this.saving.set(false);\n handleBehaviorError(error as 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 as any)['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> | undefined;\n let errorFn: ErrorFn | undefined;\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 | null>;\n value?: Signal<R | null>;\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 | null> = signal(null);\n\n state: WritableSignal<'pending' | 'loading' | 'success' | 'error'> = signal('pending');\n\n error: WritableSignal<Error | null> = 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 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 value => {\n callbacks.success?.(value as T);\n },\n 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 as Error);\n this.setLoadingState(false);\n handleBehaviorError(error as 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 as any)['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> | undefined;\n execute(context: BehaviorContext<R>): Observable<R> | undefined;\n execute(successOrContext: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> | undefined;\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> | undefined;\n execute(context: BehaviorContext<R>): Observable<R> | undefined;\n execute(successOrContext?: SuccessFn<R> | BehaviorContext<R>, error?: ErrorFn): Observable<R> | undefined {\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 as Observable<R>).subscribe({\n next: callbacks?.success,\n error: (error: Error) => {\n this.saving.set(false);\n handleBehaviorError(error, callbacks.error);\n }\n });\n return result as Observable<R>;\n } catch (error) {\n this.saving.set(false);\n handleBehaviorError(error as 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 as any)['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: "21.
|
|
83
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HostRenderer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
83
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: HostRenderer }); }
|
|
84
84
|
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", 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: "21.
|
|
126
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyStealthView, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
126
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: ThyStealthView, isStandalone: true, selector: "ng-template[thyStealthView]", exportAs: ["thyStealthView"], ngImport: i0 }); }
|
|
127
127
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyStealthView, decorators: [{
|
|
129
129
|
type: Directive,
|
|
130
130
|
args: [{
|
|
131
131
|
selector: 'ng-template[thyStealthView]',
|
|
@@ -50,10 +50,10 @@ class ThyEventDispatcher {
|
|
|
50
50
|
this._removeGlobalListener();
|
|
51
51
|
this._event$.complete();
|
|
52
52
|
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
54
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
54
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.6", type: ThyEventDispatcher, isStandalone: true, ngImport: i0 }); }
|
|
55
55
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyEventDispatcher, decorators: [{
|
|
57
57
|
type: Directive
|
|
58
58
|
}], ctorParameters: () => [] });
|
|
59
59
|
|
|
@@ -66,10 +66,10 @@ class ThyClickDispatcher extends ThyEventDispatcher {
|
|
|
66
66
|
clicked(auditTimeInMs = DEFAULT_CLICKED_TIME) {
|
|
67
67
|
return this.subscribe(auditTimeInMs);
|
|
68
68
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
70
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyClickDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyClickDispatcher, providedIn: 'root' }); }
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyClickDispatcher, decorators: [{
|
|
73
73
|
type: Injectable,
|
|
74
74
|
args: [{
|
|
75
75
|
providedIn: 'root'
|
|
@@ -92,10 +92,10 @@ class ThyKeyboardDispatcher extends ThyEventDispatcher {
|
|
|
92
92
|
keydown(auditTimeInMs = DEFAULT_KEYDOWN_TIME) {
|
|
93
93
|
return this.subscribe(auditTimeInMs);
|
|
94
94
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
96
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyKeyboardDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
96
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyKeyboardDispatcher, providedIn: 'root' }); }
|
|
97
97
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyKeyboardDispatcher, decorators: [{
|
|
99
99
|
type: Injectable,
|
|
100
100
|
args: [{
|
|
101
101
|
providedIn: 'root'
|
|
@@ -76,10 +76,10 @@ class ThyHotkeyDispatcher extends ThyEventDispatcher {
|
|
|
76
76
|
};
|
|
77
77
|
}).pipe(runInZone(this.ngZone));
|
|
78
78
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
80
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyDispatcher, providedIn: 'root' }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyDispatcher, decorators: [{
|
|
83
83
|
type: Injectable,
|
|
84
84
|
args: [{ providedIn: 'root' }]
|
|
85
85
|
}] });
|
|
@@ -95,11 +95,11 @@ class ThyHotkeyDirective {
|
|
|
95
95
|
/**
|
|
96
96
|
* 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入
|
|
97
97
|
*/
|
|
98
|
-
this.thyHotkey = input(...(ngDevMode ? [undefined, { debugName: "thyHotkey" }] : []));
|
|
98
|
+
this.thyHotkey = input(...(ngDevMode ? [undefined, { debugName: "thyHotkey" }] : /* istanbul ignore next */ []));
|
|
99
99
|
/**
|
|
100
100
|
* 配置热键触发范围,默认绑定在 document 上
|
|
101
101
|
*/
|
|
102
|
-
this.thyHotkeyScope = input(...(ngDevMode ? [undefined, { debugName: "thyHotkeyScope" }] : []));
|
|
102
|
+
this.thyHotkeyScope = input(...(ngDevMode ? [undefined, { debugName: "thyHotkeyScope" }] : /* istanbul ignore next */ []));
|
|
103
103
|
/**
|
|
104
104
|
* 热键触发后的事件
|
|
105
105
|
*/
|
|
@@ -125,20 +125,20 @@ class ThyHotkeyDirective {
|
|
|
125
125
|
this.subscription.unsubscribe();
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
129
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
129
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.6", 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 }); }
|
|
130
130
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyDirective, decorators: [{
|
|
132
132
|
type: Directive,
|
|
133
133
|
args: [{ selector: '[thyHotkey]' }]
|
|
134
134
|
}], 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"] }] } });
|
|
135
135
|
|
|
136
136
|
class ThyHotkeyModule {
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
138
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.
|
|
139
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
138
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyModule, imports: [ThyHotkeyDirective], exports: [ThyHotkeyDirective] }); }
|
|
139
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyModule }); }
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ThyHotkeyModule, decorators: [{
|
|
142
142
|
type: NgModule,
|
|
143
143
|
args: [{
|
|
144
144
|
imports: [ThyHotkeyDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethys-cdk-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, OperatorFunction } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\nfunction 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: any) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe(onNext, onError, onComplete);\n });\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n eventName = 'keydown';\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe();\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(\n filter(event => {\n return hotkeys.some(key => isHotkey(event as KeyboardEvent, key));\n })\n )\n .subscribe(event => {\n // 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键\n if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {\n return;\n }\n subscriber.next(event as KeyboardEvent);\n });\n return () => {\n subscription.unsubscribe();\n };\n }).pipe(runInZone(this.ngZone));\n }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, inject, input, output, DOCUMENT } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n private document = inject(DOCUMENT);\n private hotkeyDispatcher = inject(ThyHotkeyDispatcher);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n readonly thyHotkey = input<string | string[]>();\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n readonly thyHotkeyScope = input<string | Element | ElementRef<Element>>();\n\n /**\n * 热键触发后的事件\n */\n readonly thyHotkeyListener = output<KeyboardEvent>();\n\n private subscription!: Subscription;\n\n ngOnInit(): void {\n const hotkeyScope = this.thyHotkeyScope();\n const scope = isString(hotkeyScope) ? this.document.querySelector(hotkeyScope) : hotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey()!, scope!).subscribe(event => {\n event.preventDefault();\n event.stopPropagation();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [ThyHotkeyDirective],\n exports: [ThyHotkeyDirective]\n})\nexport class ThyHotkeyModule {}\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-hotkey.mjs","sources":["../../../cdk/hotkey/hotkey.ts","../../../cdk/hotkey/hotkey-dispatcher.ts","../../../cdk/hotkey/hotkey.directive.ts","../../../cdk/hotkey/module.ts","../../../cdk/hotkey/tethys-cdk-hotkey.ts"],"sourcesContent":["const modifierKeyNames: string[] = [`Control`, 'Alt', 'Meta', 'Shift'];\n\n// We don't want to show `Shift` when `event.key` is capital\nfunction showShift(event: KeyboardEvent): boolean {\n const { shiftKey, code, key } = event;\n return shiftKey && !(code.startsWith('Key') && key.toUpperCase() === key);\n}\n\nexport function hotkey(event: KeyboardEvent): string {\n const { ctrlKey, altKey, metaKey, key } = event;\n const hotkeyString: string[] = [];\n const modifiers: boolean[] = [ctrlKey, altKey, metaKey, showShift(event)];\n for (const [i, mod] of modifiers.entries()) {\n if (mod) hotkeyString.push(modifierKeyNames[i]);\n }\n\n if (!modifierKeyNames.includes(key)) {\n hotkeyString.push(key);\n }\n\n return hotkeyString.join('+');\n}\n\nexport function isHotkey(event: KeyboardEvent, key: string) {\n return key.toUpperCase() === hotkey(event).toUpperCase();\n}\n","import { coerceElement } from '@angular/cdk/coercion';\nimport { Injectable, NgZone, ElementRef } from '@angular/core';\nimport { ThyEventDispatcher } from '@tethys/cdk/event';\nimport { fromEvent, Observable, OperatorFunction } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { isFormElement, isString, isUndefinedOrNull } from '@tethys/cdk/is';\nimport { isHotkey } from './hotkey';\n\nfunction 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: any) => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe(onNext, onError, onComplete);\n });\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ThyHotkeyDispatcher extends ThyEventDispatcher {\n eventName = 'keydown';\n\n private createKeydownObservable(scope: Element | Document) {\n if (scope === this.document) {\n return this.subscribe();\n } else {\n return fromEvent(scope, 'keydown');\n }\n }\n\n /**\n * 热键事件订阅\n */\n keydown(hotkey: string | string[], scope?: ElementRef<Element> | Element | Document): Observable<KeyboardEvent> {\n const hotkeys = isString(hotkey) ? hotkey.split(',') : hotkey;\n const scopeElement = coerceElement(isUndefinedOrNull(scope) ? this.document : scope);\n const keydown = this.createKeydownObservable(scopeElement);\n return new Observable<KeyboardEvent>(subscriber => {\n const subscription = keydown\n .pipe(\n filter(event => {\n return hotkeys.some(key => isHotkey(event as KeyboardEvent, key));\n })\n )\n .subscribe(event => {\n // 如果当前焦点的元素是表单元素并且焦点原色不是Hotkey绑定元素则忽略快捷键\n if (isFormElement(this.document.activeElement) && this.document.activeElement !== scope) {\n return;\n }\n subscriber.next(event as KeyboardEvent);\n });\n return () => {\n subscription.unsubscribe();\n };\n }).pipe(runInZone(this.ngZone));\n }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, inject, input, output, DOCUMENT } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isFormElement, isString } from '@tethys/cdk/is';\nimport { ThyHotkeyDispatcher } from './hotkey-dispatcher';\n\n/**\n * @name thyHotkey\n */\n@Directive({ selector: '[thyHotkey]' })\nexport class ThyHotkeyDirective implements OnInit, OnDestroy {\n private document = inject(DOCUMENT);\n private hotkeyDispatcher = inject(ThyHotkeyDispatcher);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * 热键对应 Code,多个热键组合支持通过数组或逗号分割的形式传入\n */\n readonly thyHotkey = input<string | string[]>();\n\n /**\n * 配置热键触发范围,默认绑定在 document 上\n */\n readonly thyHotkeyScope = input<string | Element | ElementRef<Element>>();\n\n /**\n * 热键触发后的事件\n */\n readonly thyHotkeyListener = output<KeyboardEvent>();\n\n private subscription!: Subscription;\n\n ngOnInit(): void {\n const hotkeyScope = this.thyHotkeyScope();\n const scope = isString(hotkeyScope) ? this.document.querySelector(hotkeyScope) : hotkeyScope;\n this.subscription = this.hotkeyDispatcher.keydown(this.thyHotkey()!, scope!).subscribe(event => {\n event.preventDefault();\n event.stopPropagation();\n if (isFormElement(this.elementRef)) {\n this.elementRef.nativeElement.focus();\n } else {\n this.elementRef.nativeElement.click();\n }\n this.thyHotkeyListener.emit(event);\n });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyHotkeyDirective } from './hotkey.directive';\n\n@NgModule({\n imports: [ThyHotkeyDirective],\n exports: [ThyHotkeyDirective]\n})\nexport class ThyHotkeyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAA,MAAM,gBAAgB,GAAa,CAAC,CAAA,OAAA,CAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAEtE;AACA,SAAS,SAAS,CAAC,KAAoB,EAAA;IACnC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK;AACrC,IAAA,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;AAC7E;AAEM,SAAU,MAAM,CAAC,KAAoB,EAAA;IACvC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK;IAC/C,MAAM,YAAY,GAAa,EAAE;AACjC,IAAA,MAAM,SAAS,GAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAA,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;AACxC,QAAA,IAAI,GAAG;YAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnD;IAEA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACjC,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;AAEA,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AACjC;AAEM,SAAU,QAAQ,CAAC,KAAoB,EAAE,GAAW,EAAA;AACtD,IAAA,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;AAC5D;;ACjBA,SAAS,SAAS,CAAI,IAAY,EAAA;IAC9B,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;YACjE,MAAM,OAAO,GAAG,CAAC,CAAM,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;AACxD,QAAA,CAAC,CAAC;AACN,IAAA,CAAC;AACL;AAGM,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;AAD3D,IAAA,WAAA,GAAA;;QAEI,IAAA,CAAA,SAAS,GAAG,SAAS;AAoCxB,IAAA;AAlCW,IAAA,uBAAuB,CAAC,KAAyB,EAAA;AACrD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE;QAC3B;aAAO;AACH,YAAA,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC;QACtC;IACJ;AAEA;;AAEG;IACH,OAAO,CAAC,MAAyB,EAAE,KAAgD,EAAA;AAC/E,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM;AAC7D,QAAA,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACpF,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC;AAC1D,QAAA,OAAO,IAAI,UAAU,CAAgB,UAAU,IAAG;YAC9C,MAAM,YAAY,GAAG;AAChB,iBAAA,IAAI,CACD,MAAM,CAAC,KAAK,IAAG;AACX,gBAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAsB,EAAE,GAAG,CAAC,CAAC;AACrE,YAAA,CAAC,CAAC;iBAEL,SAAS,CAAC,KAAK,IAAG;;AAEf,gBAAA,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE;oBACrF;gBACJ;AACA,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAsB,CAAC;AAC3C,YAAA,CAAC,CAAC;AACN,YAAA,OAAO,MAAK;gBACR,YAAY,CAAC,WAAW,EAAE;AAC9B,YAAA,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC;8GApCS,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACdlC;;AAEG;MAEU,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAEhE;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAqB;AAE/C;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAA0C;AAEzE;;AAEG;QACM,IAAA,CAAA,iBAAiB,GAAG,MAAM,EAAiB;AAwBvD,IAAA;IApBG,QAAQ,GAAA;AACJ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW;QAC5F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAG,EAAE,KAAM,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YAC3F,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACzC;iBAAO;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;YACzC;AACA,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QACnC;IACJ;8GAzCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;;;MCDzB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAf,eAAe,EAAA,OAAA,EAAA,CAHd,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA;+GAEnB,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,OAAO,EAAE,CAAC,kBAAkB;AAC/B,iBAAA;;;ACND;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tethys/cdk",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^21.0.0",
|
|
6
6
|
"@angular/core": "^21.0.0",
|
|
@@ -48,5 +48,6 @@
|
|
|
48
48
|
"default": "./fesm2022/tethys-cdk-logger.mjs"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
|
-
"sideEffects": false
|
|
51
|
+
"sideEffects": false,
|
|
52
|
+
"type": "module"
|
|
52
53
|
}
|