UNPKG

@raphy/ngx-equalizer

Version:

A library to equalize height and width of elements with Angular4+

117 lines (116 loc) 9.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { ContentChildren, Directive, ElementRef, HostListener, Input, QueryList, Renderer2 } from '@angular/core'; import { EqualizerService } from '../services/index'; import { EqualizerWatcherDirective } from './equalizer-watcher.directive'; export class EqualizerDirective { /** * @param {?} _elementRef * @param {?} _renderer * @param {?} _equalizerService */ constructor(_elementRef, _renderer, _equalizerService) { this._elementRef = _elementRef; this._renderer = _renderer; this._equalizerService = _equalizerService; this._params = 'height'; this._watchers = new QueryList(); } /** * @return {?} */ get params() { return this._params; } /** * @param {?} value * @return {?} */ set params(value) { this._params = value; this.equalize(); } /** * @return {?} */ get elementRef() { return this._elementRef; } /** * @return {?} */ get id() { return this._id; } /** * @param {?} value * @return {?} */ set id(value) { this._id = value; } /** * @return {?} */ ngAfterViewChecked() { this.equalize(); } /** * @return {?} */ _onResize() { this.equalize(); } /** * @return {?} */ equalize() { if (!this._params) { this._params = 'height'; } const /** @type {?} */ params = Object.assign({ property: 'height', reset: true }, typeof this._params === 'string' ? { property: this._params } : this._params); const /** @type {?} */ watchers = this._watchers.filter((watcher) => { console.log('ID matching', watcher.id, this.id); if (watcher.id || this.id) { return watcher.id === this.id; } return watcher.elementRef.nativeElement !== this._elementRef.nativeElement; }).map((watcher) => watcher.elementRef); this._equalizerService.equalize(this._renderer, watchers, params); } } EqualizerDirective.decorators = [ { type: Directive, args: [{ selector: '[equalizer]', exportAs: 'equalizer' },] }, ]; /** @nocollapse */ EqualizerDirective.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 }, { type: EqualizerService } ]; EqualizerDirective.propDecorators = { _params: [{ type: Input, args: ['equalizer',] }], _id: [{ type: Input, args: ['equalizerId',] }], _watchers: [{ type: ContentChildren, args: [EqualizerWatcherDirective, { read: EqualizerWatcherDirective },] }], _onResize: [{ type: HostListener, args: ['window:resize',] }] }; function EqualizerDirective_tsickle_Closure_declarations() { /** @type {?} */ EqualizerDirective.prototype._params; /** @type {?} */ EqualizerDirective.prototype._id; /** @type {?} */ EqualizerDirective.prototype._watchers; /** @type {?} */ EqualizerDirective.prototype._elementRef; /** @type {?} */ EqualizerDirective.prototype._renderer; /** @type {?} */ EqualizerDirective.prototype._equalizerService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxpemVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByYXBoeS9uZ3gtZXF1YWxpemVyLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZXF1YWxpemVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFvQixlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFPMUUsTUFBTTs7Ozs7O0lBZ0NGLFlBQ1ksYUFDQSxXQUNBO1FBRkEsZ0JBQVcsR0FBWCxXQUFXO1FBQ1gsY0FBUyxHQUFULFNBQVM7UUFDVCxzQkFBaUIsR0FBakIsaUJBQWlCO3VCQWpDMEIsUUFBUTt5QkFNTCxJQUFJLFNBQVMsRUFBNkI7S0E2Qm5HOzs7O0lBM0JELElBQUksTUFBTTtRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0tBQ3ZCOzs7OztJQUVELElBQUksTUFBTSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDbkI7Ozs7SUFFRCxJQUFJLFVBQVU7UUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztLQUMzQjs7OztJQUVELElBQUksRUFBRTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQ25COzs7OztJQUVELElBQUksRUFBRSxDQUFDLEtBQXNCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOzs7O0lBU00sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs7Ozs7SUFJWixTQUFTO1FBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ25COzs7O0lBRU0sUUFBUTtRQUNYLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7U0FDM0I7UUFFRCx1QkFBTSxNQUFNLEdBQW1CLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1Six1QkFBTSxRQUFRLEdBQWlCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEQsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQzthQUNqQztZQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztTQUM5RSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FDM0IsSUFBSSxDQUFDLFNBQVMsRUFDZCxRQUFRLEVBQ1IsTUFBTSxDQUNULENBQUM7Ozs7WUF2RVQsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixRQUFRLEVBQUUsV0FBVzthQUN4Qjs7OztZQVZzRCxVQUFVO1lBQWtDLFNBQVM7WUFHbkcsZ0JBQWdCOzs7c0JBU3BCLEtBQUssU0FBQyxXQUFXO2tCQUdqQixLQUFLLFNBQUMsYUFBYTt3QkFHbkIsZUFBZSxTQUFDLHlCQUF5QixFQUFFLEVBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFDO3dCQW9DNUUsWUFBWSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRXF1YWxpemVQYXJhbXMgfSBmcm9tICcuLi9lcXVhbGl6ZS1wYXJhbXMnO1xuaW1wb3J0IHsgRXF1YWxpemVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2luZGV4JztcbmltcG9ydCB7IEVxdWFsaXplcldhdGNoZXJEaXJlY3RpdmUgfSBmcm9tICcuL2VxdWFsaXplci13YXRjaGVyLmRpcmVjdGl2ZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXF1YWxpemVyXScsXG4gICAgZXhwb3J0QXM6ICdlcXVhbGl6ZXInXG59KVxuZXhwb3J0IGNsYXNzIEVxdWFsaXplckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIEBJbnB1dCgnZXF1YWxpemVyJylcbiAgICBwcml2YXRlIF9wYXJhbXM6ICdoZWlnaHQnIHwgJ3dpZHRoJyB8IEVxdWFsaXplUGFyYW1zID0gJ2hlaWdodCc7XG5cbiAgICBASW5wdXQoJ2VxdWFsaXplcklkJylcbiAgICBwcml2YXRlIF9pZDogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFcXVhbGl6ZXJXYXRjaGVyRGlyZWN0aXZlLCB7cmVhZDogRXF1YWxpemVyV2F0Y2hlckRpcmVjdGl2ZX0pXG4gICAgcHJpdmF0ZSBfd2F0Y2hlcnM6IFF1ZXJ5TGlzdDxFcXVhbGl6ZXJXYXRjaGVyRGlyZWN0aXZlPiA9IG5ldyBRdWVyeUxpc3Q8RXF1YWxpemVyV2F0Y2hlckRpcmVjdGl2ZT4oKTtcblxuICAgIGdldCBwYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJhbXM7XG4gICAgfVxuXG4gICAgc2V0IHBhcmFtcyh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9wYXJhbXMgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLmVxdWFsaXplKCk7XG4gICAgfVxuXG4gICAgZ2V0IGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIGdldCBpZCgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuXG4gICAgc2V0IGlkKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5faWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfZXF1YWxpemVyU2VydmljZTogRXF1YWxpemVyU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXF1YWxpemUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBwcml2YXRlIF9vblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lcXVhbGl6ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlcXVhbGl6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wYXJhbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcmFtcyA9ICdoZWlnaHQnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1zOiBFcXVhbGl6ZVBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe3Byb3BlcnR5OiAnaGVpZ2h0JywgcmVzZXQ6IHRydWV9LCB0eXBlb2YgdGhpcy5fcGFyYW1zID09PSAnc3RyaW5nJyA/IHtwcm9wZXJ0eTogdGhpcy5fcGFyYW1zfSA6IHRoaXMuX3BhcmFtcyk7XG4gICAgICAgIGNvbnN0IHdhdGNoZXJzOiBFbGVtZW50UmVmW10gPSB0aGlzLl93YXRjaGVycy5maWx0ZXIoKHdhdGNoZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdJRCBtYXRjaGluZycsIHdhdGNoZXIuaWQsIHRoaXMuaWQpO1xuICAgICAgICAgICAgaWYgKHdhdGNoZXIuaWQgfHwgdGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3YXRjaGVyLmlkID09PSB0aGlzLmlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gd2F0Y2hlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgIT09IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfSkubWFwKCh3YXRjaGVyKSA9PiB3YXRjaGVyLmVsZW1lbnRSZWYpO1xuXG4gICAgICAgIHRoaXMuX2VxdWFsaXplclNlcnZpY2UuZXF1YWxpemUoXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcixcbiAgICAgICAgICAgIHdhdGNoZXJzLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19