@w11k/ngx-present
Version:
Angular based Presentation Tool
145 lines • 9.33 kB
JavaScript
/**
* @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==