UNPKG

@w11k/ngx-present

Version:

Angular based Presentation Tool

145 lines 9.33 kB
/** * @fileoverview added by tsickle * Generated from: lib/core/event.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, InjectionToken, Injector } from '@angular/core'; import { Subject } from 'rxjs'; import { filter } from 'rxjs/operators'; import { PresentationService } from './presentation.service'; import * as i0 from "@angular/core"; /** * @param {?} event * @return {?} */ export function nonNavigationEvent(event) { return noModifierPressed(event) && isNotEditable(event); } /** * @param {?} event * @return {?} */ export function isNotEditable(event) { /** @type {?} */ const srcElement = event.srcElement; if (srcElement instanceof HTMLElement) { /** @type {?} */ const tagName = srcElement.tagName; if (tagName === 'INPUT' || tagName === 'TEXTAREA' || srcElement.isContentEditable) { return false; } } return true; } /** * @param {?} event * @return {?} */ export function noModifierPressed(event) { if (event.altKey || event.ctrlKey || event.shiftKey || event.metaKey) { return false; } return true; } /** * @abstract */ export class KeyboardEventProcessor { } if (false) { /** * @abstract * @param {?} events$ * @return {?} */ KeyboardEventProcessor.prototype.init = function (events$) { }; } export class ToggleSideNav { /** * @param {?} service */ constructor(service) { this.service = service; } /** * @param {?} events$ * @return {?} */ init(events$) { events$ .pipe(filter(isNotEditable), filter((/** * @param {?} event * @return {?} */ event => !(event.ctrlKey || event.metaKey || event.shiftKey))), // letter m filter((/** * @param {?} event * @return {?} */ event => event.keyCode === 77))) .subscribe((/** * @param {?} event * @return {?} */ event => { event.preventDefault(); this.service.toggleSideBar(event); })); } } ToggleSideNav.decorators = [ { type: Injectable } ]; /** @nocollapse */ ToggleSideNav.ctorParameters = () => [ { type: PresentationService } ]; if (false) { /** * @type {?} * @private */ ToggleSideNav.prototype.service; } /** @type {?} */ export const KEYBOARD_EVENT_PROCESSOR_TOKEN = new InjectionToken('KEYBOARD_EVENT_PROCESSORS'); export class EventService { /** * @param {?} injector */ constructor(injector) { this.keyboardEvents$ = new Subject(); /** @type {?} */ const keyboardEventProcessors = injector.get(KEYBOARD_EVENT_PROCESSOR_TOKEN); for (const processor of keyboardEventProcessors) { processor.init(this.keyboardEvents$); } } /** * @param {?} event * @return {?} */ processKeyboardEvent(event) { // console.debug('EventService: emit keyboard event'); this.keyboardEvents$.next(event); } } EventService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ EventService.ctorParameters = () => [ { type: Injector } ]; /** @nocollapse */ EventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function EventService_Factory() { return new EventService(i0.ɵɵinject(i0.INJECTOR)); }, token: EventService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ EventService.prototype.keyboardEvents$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B3MTFrL25neC1wcmVzZW50LyIsInNvdXJjZXMiOlsibGliL2NvcmUvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBRzdELE1BQU0sVUFBVSxrQkFBa0IsQ0FBRSxLQUFvQjtJQUN0RCxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMxRCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBb0I7O1VBQzFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVTtJQUVuQyxJQUFJLFVBQVUsWUFBWSxXQUFXLEVBQUU7O2NBQy9CLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTztRQUVsQyxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLFVBQVUsSUFBSSxVQUFVLENBQUMsaUJBQWlCLEVBQUU7WUFDakYsT0FBTyxLQUFLLENBQUM7U0FDZDtLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFvQjtJQUNwRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7UUFDcEUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7OztBQUVELE1BQU0sT0FBZ0Isc0JBQXNCO0NBRTNDOzs7Ozs7O0lBREMsK0RBQXdEOztBQUkxRCxNQUFNLE9BQU8sYUFBYTs7OztJQUN4QixZQUE2QixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUFHLENBQUM7Ozs7O0lBRTdELElBQUksQ0FBQyxPQUFrQztRQUNyQyxPQUFPO2FBQ0osSUFBSSxDQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFDckIsTUFBTTs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUM7UUFDcEUsV0FBVztRQUNYLE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRSxFQUFDLENBQ3RDO2FBQ0EsU0FBUzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztZQWhCRixVQUFVOzs7O1lBakNGLG1CQUFtQjs7Ozs7OztJQW1DZCxnQ0FBNkM7OztBQWlCM0QsTUFBTSxPQUFPLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUEyQiwyQkFBMkIsQ0FBQztBQUt2SCxNQUFNLE9BQU8sWUFBWTs7OztJQUl2QixZQUFZLFFBQWtCO1FBRnRCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7O2NBRy9DLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUM7UUFFNUUsS0FBSyxNQUFNLFNBQVMsSUFBSSx1QkFBdUIsRUFBRTtZQUMvQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7Ozs7O0lBRUQsb0JBQW9CLENBQUMsS0FBb0I7UUFDdkMsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7OztZQWxCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUE1RG9DLFFBQVE7Ozs7Ozs7O0lBK0QzQyx1Q0FBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJlc2VudGF0aW9uU2VydmljZSB9IGZyb20gJy4vcHJlc2VudGF0aW9uLnNlcnZpY2UnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBub25OYXZpZ2F0aW9uRXZlbnQgKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBub01vZGlmaWVyUHJlc3NlZChldmVudCkgJiYgaXNOb3RFZGl0YWJsZShldmVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vdEVkaXRhYmxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHNyY0VsZW1lbnQgPSBldmVudC5zcmNFbGVtZW50O1xuXG4gIGlmIChzcmNFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCB0YWdOYW1lID0gc3JjRWxlbWVudC50YWdOYW1lO1xuXG4gICAgaWYgKHRhZ05hbWUgPT09ICdJTlBVVCcgfHwgdGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCBzcmNFbGVtZW50LmlzQ29udGVudEVkaXRhYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub01vZGlmaWVyUHJlc3NlZChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICBpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQubWV0YUtleSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS2V5Ym9hcmRFdmVudFByb2Nlc3NvciB7XG4gIGFic3RyYWN0IGluaXQoZXZlbnRzJDogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50Pik6IHZvaWQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUb2dnbGVTaWRlTmF2IGltcGxlbWVudHMgS2V5Ym9hcmRFdmVudFByb2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogUHJlc2VudGF0aW9uU2VydmljZSkge31cblxuICBpbml0KGV2ZW50cyQ6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4pIHtcbiAgICBldmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGlzTm90RWRpdGFibGUpLFxuICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gIShldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuc2hpZnRLZXkpKSxcbiAgICAgICAgLy8gbGV0dGVyIG1cbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50LmtleUNvZGUgPT09IDc3KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VydmljZS50b2dnbGVTaWRlQmFyKGV2ZW50KTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBLRVlCT0FSRF9FVkVOVF9QUk9DRVNTT1JfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48S2V5Ym9hcmRFdmVudFByb2Nlc3NvcltdPignS0VZQk9BUkRfRVZFTlRfUFJPQ0VTU09SUycpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFdmVudFNlcnZpY2Uge1xuXG4gIHByaXZhdGUga2V5Ym9hcmRFdmVudHMkID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBrZXlib2FyZEV2ZW50UHJvY2Vzc29ycyA9IGluamVjdG9yLmdldChLRVlCT0FSRF9FVkVOVF9QUk9DRVNTT1JfVE9LRU4pO1xuXG4gICAgZm9yIChjb25zdCBwcm9jZXNzb3Igb2Yga2V5Ym9hcmRFdmVudFByb2Nlc3NvcnMpIHtcbiAgICAgIHByb2Nlc3Nvci5pbml0KHRoaXMua2V5Ym9hcmRFdmVudHMkKTtcbiAgICB9XG4gIH1cblxuICBwcm9jZXNzS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoJ0V2ZW50U2VydmljZTogZW1pdCBrZXlib2FyZCBldmVudCcpO1xuICAgIHRoaXMua2V5Ym9hcmRFdmVudHMkLm5leHQoZXZlbnQpO1xuICB9XG5cbn1cbiJdfQ==