ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
87 lines (86 loc) • 6.81 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, ElementRef, NgZone, Inject } from "@angular/core";
import { _MAT_INK_BAR_POSITIONER } from "@angular/material/tabs";
export class XmatInkBarDirective {
/**
* @param {?} _elementRef
* @param {?} _ngZone
* @param {?} _inkBarPositioner
*/
constructor(_elementRef, _ngZone, _inkBarPositioner) {
this._elementRef = _elementRef;
this._ngZone = _ngZone;
this._inkBarPositioner = _inkBarPositioner;
}
/**
* Calculates the styles from the provided element in order to align the ink-bar to that element.
* Shows the ink bar if previously set as hidden.
* @param {?} element
* @return {?}
*/
alignToElement(element) {
this.show();
if (typeof requestAnimationFrame !== "undefined") {
this._ngZone.runOutsideAngular(() => {
requestAnimationFrame(() => this._setStyles(element));
});
}
else {
this._setStyles(element);
}
}
/**
* Shows the ink bar.
* @return {?}
*/
show() {
this._elementRef.nativeElement.style.visibility = "visible";
}
/**
* Hides the ink bar.
* @return {?}
*/
hide() {
this._elementRef.nativeElement.style.visibility = "hidden";
}
/**
* Sets the proper styles to the ink bar element.
* @param {?} element
* @return {?}
*/
_setStyles(element) {
/** @type {?} */
const positions = this._inkBarPositioner(element);
/** @type {?} */
const inkBar = this._elementRef.nativeElement;
inkBar.style.left = positions.left;
inkBar.style.width = positions.width;
}
}
XmatInkBarDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line:directive-selector
selector: "xmat-ink-bar",
host: {
"class": "mat-ink-bar",
},
},] }
];
/** @nocollapse */
XmatInkBarDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: NgZone },
{ type: undefined, decorators: [{ type: Inject, args: [_MAT_INK_BAR_POSITIONER,] }] }
];
if (false) {
/** @type {?} */
XmatInkBarDirective.prototype._elementRef;
/** @type {?} */
XmatInkBarDirective.prototype._ngZone;
/** @type {?} */
XmatInkBarDirective.prototype._inkBarPositioner;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1pbmstYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tYXQtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMveG1hdC1uYXYtYmFyL3htYXQtaW5rLWJhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILHVCQUF1QixFQUUxQixNQUFNLHdCQUF3QixDQUFDO0FBU2hDLE1BQU0sT0FBTyxtQkFBbUI7Ozs7OztJQUU1QixZQUNZLGFBQ0EsU0FDaUMsaUJBQXVDO1FBRnhFLGdCQUFXLEdBQVgsV0FBVztRQUNYLFlBQU8sR0FBUCxPQUFPO1FBQzBCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7S0FDbkY7Ozs7Ozs7SUFPRCxjQUFjLENBQUMsT0FBb0I7UUFDL0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosSUFBSSxPQUFPLHFCQUFxQixLQUFLLFdBQVcsRUFBRTtZQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDaEMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pELENBQUMsQ0FBQztTQUNOO2FBQ0k7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVCO0tBQ0o7Ozs7O0lBR0QsSUFBSTtRQUNBLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0tBQy9EOzs7OztJQUdELElBQUk7UUFDQSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztLQUM5RDs7Ozs7O0lBTU8sVUFBVSxDQUFDLE9BQW9COztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7O1FBQ2xELE1BQU0sTUFBTSxHQUFnQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUUzRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7Ozs7WUFwRDVDLFNBQVMsU0FBQzs7Z0JBRVAsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLElBQUksRUFBRTtvQkFDRixPQUFPLEVBQUUsYUFBYTtpQkFDekI7YUFDSjs7OztZQWZHLFVBQVU7WUFDVixNQUFNOzRDQW9CRCxNQUFNLFNBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBOZ1pvbmUsXG4gICAgSW5qZWN0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICAgIF9NQVRfSU5LX0JBUl9QT1NJVElPTkVSLFxuICAgIF9NYXRJbmtCYXJQb3NpdGlvbmVyXG59IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogXCJ4bWF0LWluay1iYXJcIixcbiAgICBob3N0OiB7XG4gICAgICAgIFwiY2xhc3NcIjogXCJtYXQtaW5rLWJhclwiLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFhtYXRJbmtCYXJEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChfTUFUX0lOS19CQVJfUE9TSVRJT05FUikgcHJpdmF0ZSBfaW5rQmFyUG9zaXRpb25lcjogX01hdElua0JhclBvc2l0aW9uZXIpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBzdHlsZXMgZnJvbSB0aGUgcHJvdmlkZWQgZWxlbWVudCBpbiBvcmRlciB0byBhbGlnbiB0aGUgaW5rLWJhciB0byB0aGF0IGVsZW1lbnQuXG4gICAgICogU2hvd3MgdGhlIGluayBiYXIgaWYgcHJldmlvdXNseSBzZXQgYXMgaGlkZGVuLlxuICAgICAqIEBwYXJhbSBlbGVtZW50XG4gICAgICovXG4gICAgYWxpZ25Ub0VsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zaG93KCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuX3NldFN0eWxlcyhlbGVtZW50KSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFN0eWxlcyhlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBTaG93cyB0aGUgaW5rIGJhci4gKi9cbiAgICBzaG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwidmlzaWJsZVwiO1xuICAgIH1cblxuICAgIC8qKiBIaWRlcyB0aGUgaW5rIGJhci4gKi9cbiAgICBoaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcHJvcGVyIHN0eWxlcyB0byB0aGUgaW5rIGJhciBlbGVtZW50LlxuICAgICAqIEBwYXJhbSBlbGVtZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2V0U3R5bGVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMuX2lua0JhclBvc2l0aW9uZXIoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGlua0JhcjogSFRNTEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaW5rQmFyLnN0eWxlLmxlZnQgPSBwb3NpdGlvbnMubGVmdDtcbiAgICAgICAgaW5rQmFyLnN0eWxlLndpZHRoID0gcG9zaXRpb25zLndpZHRoO1xuICAgIH1cblxufVxuIl19