UNPKG

ng-zorro-antd

Version:

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

212 lines 16.1 kB
/** * @fileoverview added by tsickle * Generated from: src/table-style.service.ts * @suppress {checkTypes,constantProperty,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 { Injectable } from '@angular/core'; import { BehaviorSubject, combineLatest, merge, ReplaySubject } from 'rxjs'; import { map } from 'rxjs/operators'; export class NzTableStyleService { constructor() { this.theadTemplate$ = new ReplaySubject(1); this.hasFixLeft$ = new ReplaySubject(1); this.hasFixRight$ = new ReplaySubject(1); this.hostWidth$ = new ReplaySubject(1); this.columnCount$ = new ReplaySubject(1); this.showEmpty$ = new ReplaySubject(1); this.noResult$ = new ReplaySubject(1); this.listOfThWidthConfigPx$ = new BehaviorSubject([]); this.tableWidthConfigPx$ = new BehaviorSubject([]); this.manualWidthConfigPx$ = combineLatest([this.tableWidthConfigPx$, this.listOfThWidthConfigPx$]).pipe(map((/** * @param {?} __0 * @return {?} */ ([widthConfig, listOfWidth]) => (widthConfig.length ? widthConfig : listOfWidth)))); this.listOfAutoWidthPx$ = new ReplaySubject(1); this.listOfListOfThWidthPx$ = merge(this.manualWidthConfigPx$, combineLatest([this.listOfAutoWidthPx$, this.manualWidthConfigPx$]).pipe(map((/** * @param {?} __0 * @return {?} */ ([autoWidth, manualWidth]) => { /** use autoWidth until column length match **/ return autoWidth.length !== manualWidth.length ? manualWidth : autoWidth; })))); this.listOfMeasureColumn$ = new ReplaySubject(1); this.listOfListOfThWidth$ = this.listOfAutoWidthPx$.pipe(map((/** * @param {?} list * @return {?} */ list => list.map((/** * @param {?} width * @return {?} */ width => parseInt(width, 10)))))); this.enableAutoMeasure$ = new ReplaySubject(1); } /** * @param {?} template * @return {?} */ setTheadTemplate(template) { this.theadTemplate$.next(template); } /** * @param {?} hasFixLeft * @return {?} */ setHasFixLeft(hasFixLeft) { this.hasFixLeft$.next(hasFixLeft); } /** * @param {?} hasFixRight * @return {?} */ setHasFixRight(hasFixRight) { this.hasFixRight$.next(hasFixRight); } /** * @param {?} widthConfig * @return {?} */ setTableWidthConfig(widthConfig) { this.tableWidthConfigPx$.next(widthConfig); } /** * @param {?} listOfTh * @return {?} */ setListOfTh(listOfTh) { /** @type {?} */ let columnCount = 0; listOfTh.forEach((/** * @param {?} th * @return {?} */ th => { columnCount += (th.colspan && +th.colspan) || 1; })); /** @type {?} */ const listOfThPx = listOfTh.map((/** * @param {?} item * @return {?} */ item => item.nzWidth)); this.columnCount$.next(columnCount); this.listOfThWidthConfigPx$.next(listOfThPx); } /** * @param {?} listOfTh * @return {?} */ setListOfMeasureColumn(listOfTh) { /** @type {?} */ const listOfKeys = []; listOfTh.forEach((/** * @param {?} th * @return {?} */ th => { /** @type {?} */ const length = (th.colspan && +th.colspan) || 1; for (let i = 0; i < length; i++) { listOfKeys.push(`measure_key_${i}`); } })); this.listOfMeasureColumn$.next(listOfKeys); } /** * @param {?} listOfAutoWidth * @return {?} */ setListOfAutoWidth(listOfAutoWidth) { this.listOfAutoWidthPx$.next(listOfAutoWidth.map((/** * @param {?} width * @return {?} */ width => `${width}px`))); } /** * @param {?} showEmpty * @return {?} */ setShowEmpty(showEmpty) { this.showEmpty$.next(showEmpty); } /** * @param {?} noResult * @return {?} */ setNoResult(noResult) { this.noResult$.next(noResult); } /** * @param {?} scrollX * @param {?} scrollY * @return {?} */ setScroll(scrollX, scrollY) { /** @type {?} */ const enableAutoMeasure = !!(scrollX || scrollY); if (!enableAutoMeasure) { this.setListOfAutoWidth([]); } this.enableAutoMeasure$.next(enableAutoMeasure); } } NzTableStyleService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NzTableStyleService.ctorParameters = () => []; if (false) { /** @type {?} */ NzTableStyleService.prototype.theadTemplate$; /** @type {?} */ NzTableStyleService.prototype.hasFixLeft$; /** @type {?} */ NzTableStyleService.prototype.hasFixRight$; /** @type {?} */ NzTableStyleService.prototype.hostWidth$; /** @type {?} */ NzTableStyleService.prototype.columnCount$; /** @type {?} */ NzTableStyleService.prototype.showEmpty$; /** @type {?} */ NzTableStyleService.prototype.noResult$; /** * @type {?} * @private */ NzTableStyleService.prototype.listOfThWidthConfigPx$; /** * @type {?} * @private */ NzTableStyleService.prototype.tableWidthConfigPx$; /** * @type {?} * @private */ NzTableStyleService.prototype.manualWidthConfigPx$; /** * @type {?} * @private */ NzTableStyleService.prototype.listOfAutoWidthPx$; /** @type {?} */ NzTableStyleService.prototype.listOfListOfThWidthPx$; /** @type {?} */ NzTableStyleService.prototype.listOfMeasureColumn$; /** @type {?} */ NzTableStyleService.prototype.listOfListOfThWidth$; /** @type {?} */ NzTableStyleService.prototype.enableAutoMeasure$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvdGFibGUvIiwic291cmNlcyI6WyJzcmMvdGFibGUtc3R5bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFRQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE1BQU0sT0FBTyxtQkFBbUI7SUFvRjlCO1FBbkZBLG1CQUFjLEdBQUcsSUFBSSxhQUFhLENBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzlELGdCQUFXLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksYUFBYSxDQUE4QyxDQUFDLENBQUMsQ0FBQztRQUN0RSwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDdkUsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLHlCQUFvQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEcsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxXQUFXLEVB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KiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTnpUaE1lYXN1cmVEaXJlY3RpdmUgfSBmcm9tICcuL2NlbGwvdGgtbWVhc3VyZS5kaXJlY3RpdmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTnpUYWJsZVN0eWxlU2VydmljZSB7XG4gIHRoZWFkVGVtcGxhdGUkID0gbmV3IFJlcGxheVN1YmplY3Q8VGVtcGxhdGVSZWY8TnpTYWZlQW55Pj4oMSk7XG4gIGhhc0ZpeExlZnQkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG4gIGhhc0ZpeFJpZ2h0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBob3N0V2lkdGgkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgY29sdW1uQ291bnQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcbiAgc2hvd0VtcHR5JCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBub1Jlc3VsdCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmcgfCBUZW1wbGF0ZVJlZjxOelNhZmVBbnk+IHwgdW5kZWZpbmVkPigxKTtcbiAgcHJpdmF0ZSBsaXN0T2ZUaFdpZHRoQ29uZmlnUHgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmcgfCBudWxsPj4oW10pO1xuICBwcml2YXRlIHRhYmxlV2lkdGhDb25maWdQeCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHN0cmluZyB8IG51bGw+PihbXSk7XG4gIHByaXZhdGUgbWFudWFsV2lkdGhDb25maWdQeCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRhYmxlV2lkdGhDb25maWdQeCQsIHRoaXMubGlzdE9mVGhXaWR0aENvbmZpZ1B4JF0pLnBpcGUoXG4gICAgbWFwKChbd2lkdGhDb25maWcsIGxpc3RPZldpZHRoXSkgPT4gKHdpZHRoQ29uZmlnLmxlbmd0aCA/IHdpZHRoQ29uZmlnIDogbGlzdE9mV2lkdGgpKVxuICApO1xuICBwcml2YXRlIGxpc3RPZkF1dG9XaWR0aFB4JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZ1tdPigxKTtcbiAgbGlzdE9mTGlzdE9mVGhXaWR0aFB4JCA9IG1lcmdlKFxuICAgIHRoaXMubWFudWFsV2lkdGhDb25maWdQeCQsXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5saXN0T2ZBdXRvV2lkdGhQeCQsIHRoaXMubWFudWFsV2lkdGhDb25maWdQeCRdKS5waXBlKFxuICAgICAgbWFwKChbYXV0b1dpZHRoLCBtYW51YWxXaWR0aF0pID0+IHtcbiAgICAgICAgLyoqIHVzZSBhdXRvV2lkdGggdW50aWwgY29sdW1uIGxlbmd0aCBtYXRjaCAqKi9cbiAgICAgICAgcmV0dXJuIGF1dG9XaWR0aC5sZW5ndGggIT09IG1hbnVhbFdpZHRoLmxlbmd0aCA/IG1hbnVhbFdpZHRoIDogYXV0b1dpZHRoO1xuICAgICAgfSlcbiAgICApXG4gICk7XG4gIGxpc3RPZk1lYXN1cmVDb2x1bW4kID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nW10+KDEpO1xuICBsaXN0T2ZMaXN0T2ZUaFdpZHRoJCA9IHRoaXMubGlzdE9mQXV0b1dpZHRoUHgkLnBpcGUobWFwKGxpc3QgPT4gbGlzdC5tYXAod2lkdGggPT4gcGFyc2VJbnQod2lkdGgsIDEwKSkpKTtcbiAgZW5hYmxlQXV0b01lYXN1cmUkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgc2V0VGhlYWRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8TnpTYWZlQW55Pik6IHZvaWQge1xuICAgIHRoaXMudGhlYWRUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBzZXRIYXNGaXhMZWZ0KGhhc0ZpeExlZnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZpeExlZnQkLm5leHQoaGFzRml4TGVmdCk7XG4gIH1cblxuICBzZXRIYXNGaXhSaWdodChoYXNGaXhSaWdodDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaGFzRml4UmlnaHQkLm5leHQoaGFzRml4UmlnaHQpO1xuICB9XG5cbiAgc2V0VGFibGVXaWR0aENvbmZpZyh3aWR0aENvbmZpZzogQXJyYXk8c3RyaW5nIHwgbnVsbD4pOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlV2lkdGhDb25maWdQeCQubmV4dCh3aWR0aENvbmZpZyk7XG4gIH1cblxuICBzZXRMaXN0T2ZUaChsaXN0T2ZUaDogTnpUaE1lYXN1cmVEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGxldCBjb2x1bW5Db3VudCA9IDA7XG4gICAgbGlzdE9mVGguZm9yRWFjaCh0aCA9PiB7XG4gICAgICBjb2x1bW5Db3VudCArPSAodGguY29sc3BhbiAmJiArdGguY29sc3BhbikgfHwgMTtcbiAgICB9KTtcbiAgICBjb25zdCBsaXN0T2ZUaFB4ID0gbGlzdE9mVGgubWFwKGl0ZW0gPT4gaXRlbS5ueldpZHRoKTtcbiAgICB0aGlzLmNvbHVtbkNvdW50JC5uZXh0KGNvbHVtbkNvdW50KTtcbiAgICB0aGlzLmxpc3RPZlRoV2lkdGhDb25maWdQeCQubmV4dChsaXN0T2ZUaFB4KTtcbiAgfVxuXG4gIHNldExpc3RPZk1lYXN1cmVDb2x1bW4obGlzdE9mVGg6IE56VGhNZWFzdXJlRGlyZWN0aXZlW10pOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0T2ZLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxpc3RPZlRoLmZvckVhY2godGggPT4ge1xuICAgICAgY29uc3QgbGVuZ3RoID0gKHRoLmNvbHNwYW4gJiYgK3RoLmNvbHNwYW4pIHx8IDE7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RPZktleXMucHVzaChgbWVhc3VyZV9rZXlfJHtpfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubGlzdE9mTWVhc3VyZUNvbHVtbiQubmV4dChsaXN0T2ZLZXlzKTtcbiAgfVxuXG4gIHNldExpc3RPZkF1dG9XaWR0aChsaXN0T2ZBdXRvV2lkdGg6IG51bWJlcltdKTogdm9pZCB7XG4gICAgdGhpcy5saXN0T2ZBdXRvV2lkdGhQeCQubmV4dChsaXN0T2ZBdXRvV2lkdGgubWFwKHdpZHRoID0+IGAke3dpZHRofXB4YCkpO1xuICB9XG5cbiAgc2V0U2hvd0VtcHR5KHNob3dFbXB0eTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0VtcHR5JC5uZXh0KHNob3dFbXB0eSk7XG4gIH1cblxuICBzZXROb1Jlc3VsdChub1Jlc3VsdDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMubm9SZXN1bHQkLm5leHQobm9SZXN1bHQpO1xuICB9XG5cbiAgc2V0U2Nyb2xsKHNjcm9sbFg6IHN0cmluZyB8IG51bGwsIHNjcm9sbFk6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVBdXRvTWVhc3VyZSA9ICEhKHNjcm9sbFggfHwgc2Nyb2xsWSk7XG4gICAgaWYgKCFlbmFibGVBdXRvTWVhc3VyZSkge1xuICAgICAgdGhpcy5zZXRMaXN0T2ZBdXRvV2lkdGgoW10pO1xuICAgIH1cbiAgICB0aGlzLmVuYWJsZUF1dG9NZWFzdXJlJC5uZXh0KGVuYWJsZUF1dG9NZWFzdXJlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==