@raphy/ngx-equalizer
Version:
A library to equalize height and width of elements with Angular4+
117 lines (116 loc) • 9.2 kB
JavaScript
/**
* @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