UNPKG

@ngx-gallery/core

Version:

Angular gallery directive that hooks the lightbox with the images automatically.

94 lines 6.48 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input, Output, ElementRef, EventEmitter } from '@angular/core'; import { fromEvent, Subscription } from 'rxjs'; import { filter, tap } from 'rxjs/operators'; /** * This directive uses tap event if HammerJS is loaded, otherwise it falls back to normal click event */ var TapClick = /** @class */ (function () { function TapClick(_el) { this._el = _el; this.clickListener = Subscription.EMPTY; this.tapClick = new EventEmitter(); } /** * @return {?} */ TapClick.prototype.ngOnInit = /** * @return {?} */ function () { this.activateClickEvent(); }; /** * @return {?} */ TapClick.prototype.activateClickEvent = /** * @return {?} */ function () { var _this = this; if (typeof Hammer !== 'undefined') { // Use Hammer.js tap event this._hammer = new Hammer(this._el.nativeElement); this._hammer.on('tap', function () { if (!_this.tapClickDisabled) { _this.tapClick.emit(null); } }); } else { // Use normal click event this.clickListener = fromEvent(this._el.nativeElement, 'click').pipe(filter(function () { return !_this.tapClickDisabled; }), tap(function () { return _this.tapClick.emit(null); })).subscribe(); } }; /** * @return {?} */ TapClick.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this._hammer) { this._hammer.destroy(); } this.clickListener.unsubscribe(); }; TapClick.decorators = [ { type: Directive, args: [{ selector: '[tapClick]' },] } ]; /** @nocollapse */ TapClick.ctorParameters = function () { return [ { type: ElementRef } ]; }; TapClick.propDecorators = { tapClickDisabled: [{ type: Input }], tapClick: [{ type: Output }] }; return TapClick; }()); export { TapClick }; if (false) { /** * @type {?} * @private */ TapClick.prototype._hammer; /** @type {?} */ TapClick.prototype.clickListener; /** @type {?} */ TapClick.prototype.tapClickDisabled; /** @type {?} */ TapClick.prototype.tapClick; /** * @type {?} * @private */ TapClick.prototype._el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWNsaWNrLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1nYWxsZXJ5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy90YXAtY2xpY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzdDO0lBVUUsa0JBQW9CLEdBQWU7UUFBZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBSm5DLGtCQUFhLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUV6QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUd4QyxDQUFDOzs7O0lBRUQsMkJBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELHFDQUFrQjs7O0lBQWxCO1FBQUEsaUJBZ0JDO1FBZkMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDakMsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQzFCLEtBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLHlCQUF5QjtZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2xFLE1BQU0sQ0FBQyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLEVBQXRCLENBQXNCLENBQUMsRUFDcEMsR0FBRyxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBeEIsQ0FBd0IsQ0FBQyxDQUNwQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7O0lBRUQsOEJBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7O2dCQXhDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7aUJBQ3ZCOzs7O2dCQVhxRCxVQUFVOzs7bUNBZ0I3RCxLQUFLOzJCQUNMLE1BQU07O0lBaUNULGVBQUM7Q0FBQSxBQXpDRCxJQXlDQztTQXRDWSxRQUFROzs7Ozs7SUFFbkIsMkJBQXFCOztJQUNyQixpQ0FBbUM7O0lBQ25DLG9DQUFtQzs7SUFDbkMsNEJBQXdDOzs7OztJQUU1Qix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZGVjbGFyZSBjb25zdCBIYW1tZXI6IGFueTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB1c2VzIHRhcCBldmVudCBpZiBIYW1tZXJKUyBpcyBsb2FkZWQsIG90aGVyd2lzZSBpdCBmYWxscyBiYWNrIHRvIG5vcm1hbCBjbGljayBldmVudFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGFwQ2xpY2tdJ1xufSlcbmV4cG9ydCBjbGFzcyBUYXBDbGljayBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9oYW1tZXI6IGFueTtcbiAgY2xpY2tMaXN0ZW5lciA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgQElucHV0KCkgdGFwQ2xpY2tEaXNhYmxlZDogYm9vbGVhbjtcbiAgQE91dHB1dCgpIHRhcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsOiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFjdGl2YXRlQ2xpY2tFdmVudCgpO1xuICB9XG5cbiAgYWN0aXZhdGVDbGlja0V2ZW50KCkge1xuICAgIGlmICh0eXBlb2YgSGFtbWVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gVXNlIEhhbW1lci5qcyB0YXAgZXZlbnRcbiAgICAgIHRoaXMuX2hhbW1lciA9IG5ldyBIYW1tZXIodGhpcy5fZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICB0aGlzLl9oYW1tZXIub24oJ3RhcCcsICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnRhcENsaWNrRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnRhcENsaWNrLmVtaXQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVc2Ugbm9ybWFsIGNsaWNrIGV2ZW50XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSBmcm9tRXZlbnQodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLnRhcENsaWNrRGlzYWJsZWQpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy50YXBDbGljay5lbWl0KG51bGwpKVxuICAgICAgKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5faGFtbWVyKSB7XG4gICAgICB0aGlzLl9oYW1tZXIuZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLmNsaWNrTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19