Browse Source

feature(core): add form-keyup-listener.directive

pull/1647/head
mehmet-erim 7 years ago
parent
commit
d6a1386fad
  1. 3
      npm/ng-packs/packages/core/src/lib/core.module.ts
  2. 23
      npm/ng-packs/packages/core/src/lib/directives/form-keyup-listener.directive.ts
  3. 1
      npm/ng-packs/packages/core/src/lib/directives/index.ts

3
npm/ng-packs/packages/core/src/lib/core.module.ts

@ -22,6 +22,7 @@ import { EllipsisDirective } from './directives/ellipsis.directive';
import { AutofocusDirective } from './directives/autofocus.directive'; import { AutofocusDirective } from './directives/autofocus.directive';
import { InputEventDebounceDirective } from './directives/debounce.directive'; import { InputEventDebounceDirective } from './directives/debounce.directive';
import { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive'; import { ClickEventStopPropagationDirective } from './directives/stop-propagation.directive';
import { FormKeyupListenerDirective } from './directives/form-keyup-listener.directive';
@NgModule({ @NgModule({
imports: [ imports: [
@ -39,6 +40,7 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio
DynamicLayoutComponent, DynamicLayoutComponent,
AutofocusDirective, AutofocusDirective,
EllipsisDirective, EllipsisDirective,
FormKeyupListenerDirective,
LocalizationPipe, LocalizationPipe,
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,
@ -55,6 +57,7 @@ import { ClickEventStopPropagationDirective } from './directives/stop-propagatio
DynamicLayoutComponent, DynamicLayoutComponent,
AutofocusDirective, AutofocusDirective,
EllipsisDirective, EllipsisDirective,
FormKeyupListenerDirective,
LocalizationPipe, LocalizationPipe,
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,

23
npm/ng-packs/packages/core/src/lib/directives/form-keyup-listener.directive.ts

@ -0,0 +1,23 @@
import { Directive, ElementRef, EventEmitter, Output, OnDestroy } from '@angular/core';
import { fromEvent } from 'rxjs';
import { debounceTime, filter, tap } from 'rxjs/operators';
import { takeUntilDestroy } from '../utils/rxjs-utils';
@Directive({
selector: 'form[ngSubmit]',
})
export class FormKeyupListenerDirective implements OnDestroy {
@Output() ngSubmit = new EventEmitter();
constructor(private elRef: ElementRef) {
fromEvent(elRef.nativeElement as HTMLElement, 'keyup')
.pipe(
debounceTime(200),
filter((key: KeyboardEvent) => key && key.key === 'Enter'),
takeUntilDestroy(this),
)
.subscribe(() => this.ngSubmit.emit());
}
ngOnDestroy(): void {}
}

1
npm/ng-packs/packages/core/src/lib/directives/index.ts

@ -1,4 +1,5 @@
export * from './autofocus.directive'; export * from './autofocus.directive';
export * from './ellipsis.directive'; export * from './ellipsis.directive';
export * from './form-keyup-listener.directive';
export * from './permission.directive'; export * from './permission.directive';
export * from './visibility.directive'; export * from './visibility.directive';

Loading…
Cancel
Save