UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

88 lines 6.73 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { DOCUMENT } from '@angular/common'; import { Inject, Injectable } from '@angular/core'; import { isNotNil } from '../util/check'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class NzMeasureScrollbarService { // tslint:disable-next-line:no-any /** * @param {?} document */ constructor(document) { this.document = document; this.scrollbarMeasure = { position: 'absolute', top: '-9999px', width: '50px', height: '50px', overflow: 'scroll' }; this.initScrollBarWidth(); } /** * @return {?} */ get scrollBarWidth() { if (isNotNil(this._scrollbarWidth)) { return this._scrollbarWidth; } this.initScrollBarWidth(); return this._scrollbarWidth; } /** * @return {?} */ initScrollBarWidth() { /** @type {?} */ const scrollDiv = this.document.createElement('div'); for (const scrollProp in this.scrollbarMeasure) { if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) { scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp]; } } this.document.body.appendChild(scrollDiv); /** @type {?} */ const width = scrollDiv.offsetWidth - scrollDiv.clientWidth; this.document.body.removeChild(scrollDiv); this._scrollbarWidth = width; } } NzMeasureScrollbarService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NzMeasureScrollbarService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] } ]; /** @nocollapse */ NzMeasureScrollbarService.ngInjectableDef = i0.defineInjectable({ factory: function NzMeasureScrollbarService_Factory() { return new NzMeasureScrollbarService(i0.inject(i1.DOCUMENT)); }, token: NzMeasureScrollbarService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ NzMeasureScrollbarService.prototype._scrollbarWidth; /** * @type {?} * @private */ NzMeasureScrollbarService.prototype.scrollbarMeasure; /** * @type {?} * @private */ NzMeasureScrollbarService.prototype.document; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotbWVhc3VyZS1zY3JvbGxiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvY29yZS8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL256LW1lYXN1cmUtc2Nyb2xsYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFRQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBS3pDLE1BQU0sT0FBTyx5QkFBeUI7Ozs7O0lBZ0NwQyxZQUFzQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQTlCM0MscUJBQWdCLEdBQW9CO1lBQzFDLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEdBQUcsRUFBRSxTQUFTO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUM7UUF5QkEsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OztJQXhCRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs7O0lBRUQsa0JBQWtCOztjQUNWLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDcEQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDOUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRCxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNqRTtTQUNGO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDOztjQUNwQyxLQUFLLEdBQUcsU0FBUyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7O1lBaENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs0Q0FpQ2MsTUFBTSxTQUFDLFFBQVE7Ozs7Ozs7O0lBL0I1QixvREFBZ0M7Ozs7O0lBQ2hDLHFEQU1FOzs7OztJQXdCVSw2Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmRleGFibGVPYmplY3QgfSBmcm9tICcuLi90eXBlcy9pbmRleGFibGUnO1xuaW1wb3J0IHsgaXNOb3ROaWwgfSBmcm9tICcuLi91dGlsL2NoZWNrJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTnpNZWFzdXJlU2Nyb2xsYmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3Njcm9sbGJhcldpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgc2Nyb2xsYmFyTWVhc3VyZTogSW5kZXhhYmxlT2JqZWN0ID0ge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogJy05OTk5cHgnLFxuICAgIHdpZHRoOiAnNTBweCcsXG4gICAgaGVpZ2h0OiAnNTBweCcsXG4gICAgb3ZlcmZsb3c6ICdzY3JvbGwnXG4gIH07XG5cbiAgZ2V0IHNjcm9sbEJhcldpZHRoKCk6IG51bWJlciB7XG4gICAgaWYgKGlzTm90TmlsKHRoaXMuX3Njcm9sbGJhcldpZHRoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhcldpZHRoO1xuICAgIH1cbiAgICB0aGlzLmluaXRTY3JvbGxCYXJXaWR0aCgpO1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxiYXJXaWR0aDtcbiAgfVxuXG4gIGluaXRTY3JvbGxCYXJXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxEaXYgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGZvciAoY29uc3Qgc2Nyb2xsUHJvcCBpbiB0aGlzLnNjcm9sbGJhck1lYXN1cmUpIHtcbiAgICAgIGlmICh0aGlzLnNjcm9sbGJhck1lYXN1cmUuaGFzT3duUHJvcGVydHkoc2Nyb2xsUHJvcCkpIHtcbiAgICAgICAgc2Nyb2xsRGl2LnN0eWxlW3Njcm9sbFByb3BdID0gdGhpcy5zY3JvbGxiYXJNZWFzdXJlW3Njcm9sbFByb3BdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICBjb25zdCB3aWR0aCA9IHNjcm9sbERpdi5vZmZzZXRXaWR0aCAtIHNjcm9sbERpdi5jbGllbnRXaWR0aDtcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICB0aGlzLl9zY3JvbGxiYXJXaWR0aCA9IHdpZHRoO1xuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnkpIHtcbiAgICB0aGlzLmluaXRTY3JvbGxCYXJXaWR0aCgpO1xuICB9XG59XG4iXX0=