angular-calendar
Version:
A calendar component for angular 15.0+ that can display events on a month, week or day view
44 lines • 5.56 kB
JavaScript
import { Directive, Output, EventEmitter, } from '@angular/core';
import * as i0 from "@angular/core";
export class KeydownEnterDirective {
constructor(host, ngZone, renderer) {
this.host = host;
this.ngZone = ngZone;
this.renderer = renderer;
this.keydown = new EventEmitter(); // eslint-disable-line
this.keydownListener = null;
}
ngOnInit() {
this.ngZone.runOutsideAngular(() => {
this.keydownListener = this.renderer.listen(this.host.nativeElement, 'keydown', (event) => {
if (event.keyCode === 13 ||
event.which === 13 ||
event.key === 'Enter') {
event.preventDefault();
event.stopPropagation();
this.ngZone.run(() => {
this.keydown.emit(event);
});
}
});
});
}
ngOnDestroy() {
if (this.keydownListener !== null) {
this.keydownListener();
this.keydownListener = null;
}
}
}
KeydownEnterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: KeydownEnterDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
KeydownEnterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: KeydownEnterDirective, selector: "[mwlKeydownEnter]", outputs: { keydown: "mwlKeydownEnter" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: KeydownEnterDirective, decorators: [{
type: Directive,
args: [{
selector: '[mwlKeydownEnter]',
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { keydown: [{
type: Output,
args: ['mwlKeydownEnter']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5ZG93bi1lbnRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNhbGVuZGFyL3NyYy9tb2R1bGVzL2NvbW1vbi9rZXlkb3duLWVudGVyL2tleWRvd24tZW50ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksR0FNYixNQUFNLGVBQWUsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUNVLElBQTZCLEVBQzdCLE1BQWMsRUFDZCxRQUFtQjtRQUZuQixTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVBGLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQyxDQUFDLHNCQUFzQjtRQUV0RixvQkFBZSxHQUF3QixJQUFJLENBQUM7SUFNakQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFDdkIsU0FBUyxFQUNULENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUN2QixJQUNFLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRTtvQkFDcEIsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUNsQixLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFDckI7b0JBQ0EsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBRXhCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUNqQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7SUFDSCxDQUFDOztrSEF2Q1UscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs4SUFFNEIsT0FBTztzQkFBakMsTUFBTTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmLFxuICBOZ1pvbmUsXG4gIFJlbmRlcmVyMixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXdsS2V5ZG93bkVudGVyXScsXG59KVxuZXhwb3J0IGNsYXNzIEtleWRvd25FbnRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgnbXdsS2V5ZG93bkVudGVyJykga2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyOiBWb2lkRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgICB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAxMyB8fFxuICAgICAgICAgICAgZXZlbnQud2hpY2ggPT09IDEzIHx8XG4gICAgICAgICAgICBldmVudC5rZXkgPT09ICdFbnRlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5rZXlkb3duLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMua2V5ZG93bkxpc3RlbmVyICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lcigpO1xuICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19