UNPKG

ngx-teximate

Version:
177 lines 15.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Directive, Output, Inject, ElementRef, EventEmitter, forwardRef } from '@angular/core'; import { Subscription, fromEvent, merge, of } from 'rxjs'; import { filter, switchMap, tap } from 'rxjs/operators'; import { Teximate } from './teximate'; var TeximateEvents = /** @class */ (function () { function TeximateEvents(element, teximate) { this.element = element; this.teximate = teximate; this.events = Subscription.EMPTY; this.click = new EventEmitter(); this.hover = new EventEmitter(); } /** * @return {?} */ TeximateEvents.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; this.events = this.teximate.state.pipe(filter(function () { return !!_this.click.observers.length || !!_this.hover.observers.length; }), switchMap(function () { /** @type {?} */ var clickEvents = of(null); /** @type {?} */ var hoverEvents = of(null); /** @type {?} */ var words = _this.element.nativeElement.querySelectorAll(_this.selector); if (_this.click.observers.length) { /** @type {?} */ var events = Array.from(words).map(function (el) { return fromEvent(el, 'click'); }); clickEvents = merge.apply(void 0, tslib_1.__spread(events)).pipe(tap(function (e) { return _this.click.emit(e); })); } if (_this.hover.observers.length) { /** @type {?} */ var events = Array.from(words).map(function (el) { return fromEvent(el, 'mouseenter'); }); hoverEvents = merge.apply(void 0, tslib_1.__spread(events)).pipe(tap(function (e) { return _this.hover.emit(e); })); } return merge(clickEvents, hoverEvents); })).subscribe(); }; /** * @return {?} */ TeximateEvents.prototype.ngOnDestroy = /** * @return {?} */ function () { this.events.unsubscribe(); }; /** @nocollapse */ TeximateEvents.ctorParameters = function () { return [ { type: ElementRef }, { type: Teximate, decorators: [{ type: Inject, args: [forwardRef(function () { return Teximate; }),] }] } ]; }; TeximateEvents.propDecorators = { click: [{ type: Output, args: ['',] }], hover: [{ type: Output, args: ['',] }] }; return TeximateEvents; }()); export { TeximateEvents }; if (false) { /** @type {?} */ TeximateEvents.prototype.selector; /** @type {?} */ TeximateEvents.prototype.events; /** @type {?} */ TeximateEvents.prototype.click; /** @type {?} */ TeximateEvents.prototype.hover; /** @type {?} */ TeximateEvents.prototype.element; /** @type {?} */ TeximateEvents.prototype.teximate; } var ParagraphEvents = /** @class */ (function (_super) { tslib_1.__extends(ParagraphEvents, _super); function ParagraphEvents(element, teximate) { var _this = _super.call(this, element, teximate) || this; _this.click = new EventEmitter(); _this.hover = new EventEmitter(); _this.selector = '.teximate-paragraph'; return _this; } ParagraphEvents.decorators = [ { type: Directive, args: [{ selector: 'teximate[paragraphClick], teximate[paragraphHover]' },] } ]; /** @nocollapse */ ParagraphEvents.ctorParameters = function () { return [ { type: ElementRef }, { type: Teximate, decorators: [{ type: Inject, args: [forwardRef(function () { return Teximate; }),] }] } ]; }; ParagraphEvents.propDecorators = { click: [{ type: Output, args: ['paragraphClick',] }], hover: [{ type: Output, args: ['paragraphHover',] }] }; return ParagraphEvents; }(TeximateEvents)); export { ParagraphEvents }; if (false) { /** @type {?} */ ParagraphEvents.prototype.click; /** @type {?} */ ParagraphEvents.prototype.hover; } var WordEvents = /** @class */ (function (_super) { tslib_1.__extends(WordEvents, _super); function WordEvents(element, teximate) { var _this = _super.call(this, element, teximate) || this; _this.click = new EventEmitter(); _this.hover = new EventEmitter(); _this.selector = '.teximate-word'; return _this; } WordEvents.decorators = [ { type: Directive, args: [{ selector: 'teximate[wordClick], teximate[wordHover]' },] } ]; /** @nocollapse */ WordEvents.ctorParameters = function () { return [ { type: ElementRef }, { type: Teximate, decorators: [{ type: Inject, args: [forwardRef(function () { return Teximate; }),] }] } ]; }; WordEvents.propDecorators = { click: [{ type: Output, args: ['wordClick',] }], hover: [{ type: Output, args: ['wordHover',] }] }; return WordEvents; }(TeximateEvents)); export { WordEvents }; if (false) { /** @type {?} */ WordEvents.prototype.click; /** @type {?} */ WordEvents.prototype.hover; } var LetterEvents = /** @class */ (function (_super) { tslib_1.__extends(LetterEvents, _super); function LetterEvents(element, teximate) { var _this = _super.call(this, element, teximate) || this; _this.click = new EventEmitter(); _this.hover = new EventEmitter(); _this.selector = '.teximate-letter'; return _this; } LetterEvents.decorators = [ { type: Directive, args: [{ selector: 'teximate[letterClick], teximate[letterHover]' },] } ]; /** @nocollapse */ LetterEvents.ctorParameters = function () { return [ { type: ElementRef }, { type: Teximate, decorators: [{ type: Inject, args: [forwardRef(function () { return Teximate; }),] }] } ]; }; LetterEvents.propDecorators = { click: [{ type: Output, args: ['letterClick',] }], hover: [{ type: Output, args: ['letterHover',] }] }; return LetterEvents; }(TeximateEvents)); export { LetterEvents }; if (false) { /** @type {?} */ LetterEvents.prototype.click; /** @type {?} */ LetterEvents.prototype.hover; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4aW1hdGUtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRleGltYXRlLyIsInNvdXJjZXMiOlsibGliL3RleGltYXRlLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QztJQU9FLHdCQUFtQixPQUFtQixFQUE2QyxRQUFrQjtRQUFsRixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQTZDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKckcsV0FBTSxHQUFxQixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR3ZDLENBQUM7Ozs7SUFFRCx3Q0FBZTs7O0lBQWY7UUFBQSxpQkFrQkM7UUFqQkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3BDLE1BQU0sQ0FBQyxjQUFNLE9BQUEsQ0FBQyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUE5RCxDQUE4RCxDQUFDLEVBQzVFLFNBQVMsQ0FBQzs7Z0JBQ0osV0FBVyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7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QUFFLENBQUM7UUFDM0IsV0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJOUMsS0FBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQzs7SUFDbkMsQ0FBQzs7Z0JBVkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSwwQ0FBMEM7aUJBQ3JEOzs7O2dCQXhENkQsVUFBVTtnQkFHL0QsUUFBUSx1QkEwRG1CLE1BQU0sU0FBQyxVQUFVLENBQUMsY0FBTSxPQUFBLFFBQVEsRUFBUixDQUFRLENBQUM7Ozt3QkFIbEUsTUFBTSxTQUFDLFdBQVc7d0JBQ2xCLE1BQU0sU0FBQyxXQUFXOztJQU1yQixpQkFBQztDQUFBLEFBWEQsQ0FHZ0MsY0FBYyxHQVE3QztTQVJZLFVBQVU7OztJQUNyQiwyQkFBZ0Q7O0lBQ2hELDJCQUFnRDs7QUFRbEQ7SUFHa0Msd0NBQWM7SUFJOUMsc0JBQVksT0FBbUIsRUFBc0MsUUFBa0I7UUFBdkYsWUFDRSxrQkFBTSxPQUFPLEVBQUUsUUFBUSxDQUFDLFNBRXpCO1FBTnNCLFdBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFdBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSWhELEtBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7O0lBQ3JDLENBQUM7O2dCQVZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsOENBQThDO2lCQUN6RDs7OztnQkFyRTZELFVBQVU7Z0JBRy9ELFFBQVEsdUJBdUVtQixNQUFNLFNBQUMsVUFBVSxDQUFDLGNBQU0sT0FBQSxRQUFRLEVBQVIsQ0FBUSxDQUFDOzs7d0JBSGxFLE1BQU0sU0FBQyxhQUFhO3dCQUNwQixNQUFNLFNBQUMsYUFBYTs7SUFNdkIsbUJBQUM7Q0FBQSxBQVhELENBR2tDLGNBQWMsR0FRL0M7U0FSWSxZQUFZOzs7SUFDdkIsNkJBQWtEOztJQUNsRCw2QkFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBJbmplY3QsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIG1lcmdlLCBTdWJzY3JpcHRpb25MaWtlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRleGltYXRlIH0gZnJvbSAnLi90ZXhpbWF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBUZXhpbWF0ZUV2ZW50cyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgZXZlbnRzOiBTdWJzY3JpcHRpb25MaWtlID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICBAT3V0cHV0KCcnKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnJykgaG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBUZXhpbWF0ZSkpIHB1YmxpYyB0ZXhpbWF0ZTogVGV4aW1hdGUpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmV2ZW50cyA9IHRoaXMudGV4aW1hdGUuc3RhdGUucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuY2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCB8fCAhIXRoaXMuaG92ZXIub2JzZXJ2ZXJzLmxlbmd0aCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBsZXQgY2xpY2tFdmVudHMgPSBvZihudWxsKTtcbiAgICAgICAgbGV0IGhvdmVyRXZlbnRzID0gb2YobnVsbCk7XG4gICAgICAgIGNvbnN0IHdvcmRzID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCh0aGlzLnNlbGVjdG9yKTtcbiAgICAgICAgaWYgKHRoaXMuY2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IEFycmF5LmZyb20od29yZHMpLm1hcCgoZWw6IEhUTUxFbGVtZW50KSA9PiBmcm9tRXZlbnQoZWwsICdjbGljaycpKTtcbiAgICAgICAgICBjbGlja0V2ZW50cyA9IG1lcmdlKC4uLmV2ZW50cykucGlwZSh0YXAoZSA9PiB0aGlzLmNsaWNrLmVtaXQoZSkpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ob3Zlci5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgZXZlbnRzID0gQXJyYXkuZnJvbSh3b3JkcykubWFwKChlbDogSFRNTEVsZW1lbnQpID0+IGZyb21FdmVudChlbCwgJ21vdXNlZW50ZXInKSk7XG4gICAgICAgICAgaG92ZXJFdmVudHMgPSBtZXJnZSguLi5ldmVudHMpLnBpcGUodGFwKGUgPT4gdGhpcy5ob3Zlci5lbWl0KGUpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lcmdlKGNsaWNrRXZlbnRzLCBob3ZlckV2ZW50cyk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmV2ZW50cy51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndGV4aW1hdGVbcGFyYWdyYXBoQ2xpY2tdLCB0ZXhpbWF0ZVtwYXJhZ3JhcGhIb3Zlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaEV2ZW50cyBleHRlbmRzIFRleGltYXRlRXZlbnRzIHtcbiAgQE91dHB1dCgncGFyYWdyYXBoQ2xpY2snKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgncGFyYWdyYXBoSG92ZXInKSBob3ZlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gVGV4aW1hdGUpKSB0ZXhpbWF0ZTogVGV4aW1hdGUpIHtcbiAgICBzdXBlcihlbGVtZW50LCB0ZXhpbWF0ZSk7XG4gICAgdGhpcy5zZWxlY3RvciA9ICcudGV4aW1hdGUtcGFyYWdyYXBoJztcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZXhpbWF0ZVt3b3JkQ2xpY2tdLCB0ZXhpbWF0ZVt3b3JkSG92ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBXb3JkRXZlbnRzIGV4dGVuZHMgVGV4aW1hdGVFdmVudHMge1xuICBAT3V0cHV0KCd3b3JkQ2xpY2snKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnd29yZEhvdmVyJykgaG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZiwgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFRleGltYXRlKSkgdGV4aW1hdGU6IFRleGltYXRlKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgdGV4aW1hdGUpO1xuICAgIHRoaXMuc2VsZWN0b3IgPSAnLnRleGltYXRlLXdvcmQnO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RleGltYXRlW2xldHRlckNsaWNrXSwgdGV4aW1hdGVbbGV0dGVySG92ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBMZXR0ZXJFdmVudHMgZXh0ZW5kcyBUZXhpbWF0ZUV2ZW50cyB7XG4gIEBPdXRwdXQoJ2xldHRlckNsaWNrJykgY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ2xldHRlckhvdmVyJykgaG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZiwgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFRleGltYXRlKSkgdGV4aW1hdGU6IFRleGltYXRlKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgdGV4aW1hdGUpO1xuICAgIHRoaXMuc2VsZWN0b3IgPSAnLnRleGltYXRlLWxldHRlcic7XG4gIH1cbn1cbiJdfQ==