@raphy/ngx-equalizer
Version:
A library to equalize height and width of elements with Angular4+
136 lines (135 loc) • 10.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';
var EqualizerDirective = /** @class */ (function () {
function EqualizerDirective(_elementRef, _renderer, _equalizerService) {
this._elementRef = _elementRef;
this._renderer = _renderer;
this._equalizerService = _equalizerService;
this._params = 'height';
this._watchers = new QueryList();
}
Object.defineProperty(EqualizerDirective.prototype, "params", {
get: /**
* @return {?}
*/
function () {
return this._params;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._params = value;
this.equalize();
},
enumerable: true,
configurable: true
});
Object.defineProperty(EqualizerDirective.prototype, "elementRef", {
get: /**
* @return {?}
*/
function () {
return this._elementRef;
},
enumerable: true,
configurable: true
});
Object.defineProperty(EqualizerDirective.prototype, "id", {
get: /**
* @return {?}
*/
function () {
return this._id;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._id = value;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
EqualizerDirective.prototype.ngAfterViewChecked = /**
* @return {?}
*/
function () {
this.equalize();
};
/**
* @return {?}
*/
EqualizerDirective.prototype._onResize = /**
* @return {?}
*/
function () {
this.equalize();
};
/**
* @return {?}
*/
EqualizerDirective.prototype.equalize = /**
* @return {?}
*/
function () {
var _this = this;
if (!this._params) {
this._params = 'height';
}
var /** @type {?} */ params = Object.assign({ property: 'height', reset: true }, typeof this._params === 'string' ? { property: this._params } : this._params);
var /** @type {?} */ watchers = this._watchers.filter(function (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(function (watcher) { return watcher.elementRef; });
this._equalizerService.equalize(this._renderer, watchers, params);
};
EqualizerDirective.decorators = [
{ type: Directive, args: [{
selector: '[equalizer]',
exportAs: 'equalizer'
},] },
];
/** @nocollapse */
EqualizerDirective.ctorParameters = function () { return [
{ 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',] }]
};
return EqualizerDirective;
}());
export { EqualizerDirective };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxpemVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0ByYXBoeS9uZ3gtZXF1YWxpemVyLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZXF1YWxpemVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFvQixlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0lBdUN0RSw0QkFDWSxhQUNBLFdBQ0E7UUFGQSxnQkFBVyxHQUFYLFdBQVc7UUFDWCxjQUFTLEdBQVQsU0FBUztRQUNULHNCQUFpQixHQUFqQixpQkFBaUI7dUJBakMwQixRQUFRO3lCQU1MLElBQUksU0FBUyxFQUE2QjtLQTZCbkc7SUEzQkQsc0JBQUksc0NBQU07Ozs7UUFBVjtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3ZCOzs7OztRQUVELFVBQVcsS0FBSztZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBRXJCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjs7O09BTkE7SUFRRCxzQkFBSSwwQ0FBVTs7OztRQUFkO1lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDM0I7OztPQUFBO0lBRUQsc0JBQUksa0NBQUU7Ozs7UUFBTjtZQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ25COzs7OztRQUVELFVBQU8sS0FBc0I7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7U0FDcEI7OztPQUpBOzs7O0lBYU0sK0NBQWtCOzs7O1FBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs7Ozs7SUFJWixzQ0FBUzs7O0lBRGpCO1FBRUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ25COzs7O0lBRU0scUNBQVE7Ozs7O1FBQ1gsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztTQUMzQjtRQUVELHFCQUFNLE1BQU0sR0FBbUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVKLHFCQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBQyxPQUFPO1lBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksS0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUksQ0FBQyxFQUFFLENBQUM7YUFDakM7WUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEtBQUssS0FBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7U0FDOUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxVQUFVLEVBQWxCLENBQWtCLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUMzQixJQUFJLENBQUMsU0FBUyxFQUNkLFFBQVEsRUFDUixNQUFNLENBQ1QsQ0FBQzs7O2dCQXZFVCxTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO2lCQUN4Qjs7OztnQkFWc0QsVUFBVTtnQkFBa0MsU0FBUztnQkFHbkcsZ0JBQWdCOzs7MEJBU3BCLEtBQUssU0FBQyxXQUFXO3NCQUdqQixLQUFLLFNBQUMsYUFBYTs0QkFHbkIsZUFBZSxTQUFDLHlCQUF5QixFQUFFLEVBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFDOzRCQW9DNUUsWUFBWSxTQUFDLGVBQWU7OzZCQXREakM7O1NBV2Esa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVxdWFsaXplUGFyYW1zIH0gZnJvbSAnLi4vZXF1YWxpemUtcGFyYW1zJztcbmltcG9ydCB7IEVxdWFsaXplclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbmRleCc7XG5pbXBvcnQgeyBFcXVhbGl6ZXJXYXRjaGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9lcXVhbGl6ZXItd2F0Y2hlci5kaXJlY3RpdmUnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VxdWFsaXplcl0nLFxuICAgIGV4cG9ydEFzOiAnZXF1YWxpemVyJ1xufSlcbmV4cG9ydCBjbGFzcyBFcXVhbGl6ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgICBASW5wdXQoJ2VxdWFsaXplcicpXG4gICAgcHJpdmF0ZSBfcGFyYW1zOiAnaGVpZ2h0JyB8ICd3aWR0aCcgfCBFcXVhbGl6ZVBhcmFtcyA9ICdoZWlnaHQnO1xuXG4gICAgQElucHV0KCdlcXVhbGl6ZXJJZCcpXG4gICAgcHJpdmF0ZSBfaWQ6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRXF1YWxpemVyV2F0Y2hlckRpcmVjdGl2ZSwge3JlYWQ6IEVxdWFsaXplcldhdGNoZXJEaXJlY3RpdmV9KVxuICAgIHByaXZhdGUgX3dhdGNoZXJzOiBRdWVyeUxpc3Q8RXF1YWxpemVyV2F0Y2hlckRpcmVjdGl2ZT4gPSBuZXcgUXVlcnlMaXN0PEVxdWFsaXplcldhdGNoZXJEaXJlY3RpdmU+KCk7XG5cbiAgICBnZXQgcGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1zO1xuICAgIH1cblxuICAgIHNldCBwYXJhbXModmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5lcXVhbGl6ZSgpO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICBnZXQgaWQoKTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cblxuICAgIHNldCBpZCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2lkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgX2VxdWFsaXplclNlcnZpY2U6IEVxdWFsaXplclNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVxdWFsaXplKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gICAgcHJpdmF0ZSBfb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXF1YWxpemUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXF1YWxpemUoKSB7XG4gICAgICAgIGlmICghdGhpcy5fcGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXJhbXMgPSAnaGVpZ2h0JztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmFtczogRXF1YWxpemVQYXJhbXMgPSBPYmplY3QuYXNzaWduKHtwcm9wZXJ0eTogJ2hlaWdodCcsIHJlc2V0OiB0cnVlfSwgdHlwZW9mIHRoaXMuX3BhcmFtcyA9PT0gJ3N0cmluZycgPyB7cHJvcGVydHk6IHRoaXMuX3BhcmFtc30gOiB0aGlzLl9wYXJhbXMpO1xuICAgICAgICBjb25zdCB3YXRjaGVyczogRWxlbWVudFJlZltdID0gdGhpcy5fd2F0Y2hlcnMuZmlsdGVyKCh3YXRjaGVyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnSUQgbWF0Y2hpbmcnLCB3YXRjaGVyLmlkLCB0aGlzLmlkKTtcbiAgICAgICAgICAgIGlmICh3YXRjaGVyLmlkIHx8IHRoaXMuaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2F0Y2hlci5pZCA9PT0gdGhpcy5pZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHdhdGNoZXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50ICE9PSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH0pLm1hcCgod2F0Y2hlcikgPT4gd2F0Y2hlci5lbGVtZW50UmVmKTtcblxuICAgICAgICB0aGlzLl9lcXVhbGl6ZXJTZXJ2aWNlLmVxdWFsaXplKFxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIsXG4gICAgICAgICAgICB3YXRjaGVycyxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==