ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
260 lines • 17.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: src/table-style.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __read } from "tslib";
/**
* @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';
var NzTableStyleService = /** @class */ (function () {
function NzTableStyleService() {
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 {?}
*/
function (_a) {
var _b = __read(_a, 2), widthConfig = _b[0], listOfWidth = _b[1];
return (widthConfig.length ? widthConfig : listOfWidth);
})));
this.listOfAutoWidthPx$ = new ReplaySubject(1);
this.listOfListOfThWidthPx$ = merge(this.manualWidthConfigPx$, combineLatest([this.listOfAutoWidthPx$, this.manualWidthConfigPx$]).pipe(map((/**
* @param {?} __0
* @return {?}
*/
function (_a) {
var _b = __read(_a, 2), autoWidth = _b[0], manualWidth = _b[1];
/** 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 {?}
*/
function (list) { return list.map((/**
* @param {?} width
* @return {?}
*/
function (width) { return parseInt(width, 10); })); })));
this.enableAutoMeasure$ = new ReplaySubject(1);
}
/**
* @param {?} template
* @return {?}
*/
NzTableStyleService.prototype.setTheadTemplate = /**
* @param {?} template
* @return {?}
*/
function (template) {
this.theadTemplate$.next(template);
};
/**
* @param {?} hasFixLeft
* @return {?}
*/
NzTableStyleService.prototype.setHasFixLeft = /**
* @param {?} hasFixLeft
* @return {?}
*/
function (hasFixLeft) {
this.hasFixLeft$.next(hasFixLeft);
};
/**
* @param {?} hasFixRight
* @return {?}
*/
NzTableStyleService.prototype.setHasFixRight = /**
* @param {?} hasFixRight
* @return {?}
*/
function (hasFixRight) {
this.hasFixRight$.next(hasFixRight);
};
/**
* @param {?} widthConfig
* @return {?}
*/
NzTableStyleService.prototype.setTableWidthConfig = /**
* @param {?} widthConfig
* @return {?}
*/
function (widthConfig) {
this.tableWidthConfigPx$.next(widthConfig);
};
/**
* @param {?} listOfTh
* @return {?}
*/
NzTableStyleService.prototype.setListOfTh = /**
* @param {?} listOfTh
* @return {?}
*/
function (listOfTh) {
/** @type {?} */
var columnCount = 0;
listOfTh.forEach((/**
* @param {?} th
* @return {?}
*/
function (th) {
columnCount += th.colspan || 1;
}));
/** @type {?} */
var listOfThPx = listOfTh.map((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.nzWidth; }));
this.columnCount$.next(columnCount);
this.listOfThWidthConfigPx$.next(listOfThPx);
};
/**
* @param {?} listOfTh
* @return {?}
*/
NzTableStyleService.prototype.setListOfMeasureColumn = /**
* @param {?} listOfTh
* @return {?}
*/
function (listOfTh) {
/** @type {?} */
var listOfKeys = [];
listOfTh.forEach((/**
* @param {?} th
* @return {?}
*/
function (th) {
/** @type {?} */
var length = th.colspan || 1;
for (var i = 0; i < length; i++) {
listOfKeys.push("measure_key_" + i);
}
}));
this.listOfMeasureColumn$.next(listOfKeys);
};
/**
* @param {?} listOfAutoWidth
* @return {?}
*/
NzTableStyleService.prototype.setListOfAutoWidth = /**
* @param {?} listOfAutoWidth
* @return {?}
*/
function (listOfAutoWidth) {
this.listOfAutoWidthPx$.next(listOfAutoWidth.map((/**
* @param {?} width
* @return {?}
*/
function (width) { return width + "px"; })));
};
/**
* @param {?} showEmpty
* @return {?}
*/
NzTableStyleService.prototype.setShowEmpty = /**
* @param {?} showEmpty
* @return {?}
*/
function (showEmpty) {
this.showEmpty$.next(showEmpty);
};
/**
* @param {?} noResult
* @return {?}
*/
NzTableStyleService.prototype.setNoResult = /**
* @param {?} noResult
* @return {?}
*/
function (noResult) {
this.noResult$.next(noResult);
};
/**
* @param {?} scrollX
* @param {?} scrollY
* @return {?}
*/
NzTableStyleService.prototype.setScroll = /**
* @param {?} scrollX
* @param {?} scrollY
* @return {?}
*/
function (scrollX, scrollY) {
/** @type {?} */
var enableAutoMeasure = !!(scrollX || scrollY);
if (!enableAutoMeasure) {
this.setListOfAutoWidth([]);
}
this.enableAutoMeasure$.next(enableAutoMeasure);
};
NzTableStyleService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NzTableStyleService.ctorParameters = function () { return []; };
return NzTableStyleService;
}());
export { NzTableStyleService };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQvdGFibGUvIiwic291cmNlcyI6WyJzcmMvdGFibGUtc3R5bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQztJQXFGRTtRQW5GQSxtQkFBYyxHQUFHLElBQUksYUFBYSxDQUF5QixDQUFDLENBQUMsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0MsZUFBVSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzNDLGNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBOEMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUF1QixFQUFFLENBQUMsQ0FBQztRQUNwRSx5QkFBb0IsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hHLEdBQUc7Ozs7UUFBQyxVQUFDLEVBQTBCO2dCQUExQixrQkFBMEIsRUFBekIsbUJB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O0lBQzVFLG1EQUVFOzs7OztJQUNGLGlEQUE0RDs7SUFDNUQscURBUUU7O0lBQ0YsbURBQXNEOztJQUN0RCxtREFBeUc7O0lBQ3pHLGlEQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2UsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE56VGhNZWFzdXJlRGlyZWN0aXZlIH0gZnJvbSAnLi9jZWxsL3RoLW1lYXN1cmUuZGlyZWN0aXZlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE56VGFibGVTdHlsZVNlcnZpY2Uge1xuICB0aGVhZFRlbXBsYXRlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRlbXBsYXRlUmVmPE56U2FmZUFueT4+KDEpO1xuICBoYXNGaXhMZWZ0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICBoYXNGaXhSaWdodCQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgaG9zdFdpZHRoJCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIGNvbHVtbkNvdW50JCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHNob3dFbXB0eSQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgbm9SZXN1bHQkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nIHwgVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IHVuZGVmaW5lZD4oMSk7XG4gIHByaXZhdGUgbGlzdE9mVGhXaWR0aENvbmZpZ1B4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8c3RyaW5nIHwgbnVsbD4+KFtdKTtcbiAgcHJpdmF0ZSB0YWJsZVdpZHRoQ29uZmlnUHgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmcgfCBudWxsPj4oW10pO1xuICBwcml2YXRlIG1hbnVhbFdpZHRoQ29uZmlnUHgkID0gY29tYmluZUxhdGVzdChbdGhpcy50YWJsZVdpZHRoQ29uZmlnUHgkLCB0aGlzLmxpc3RPZlRoV2lkdGhDb25maWdQeCRdKS5waXBlKFxuICAgIG1hcCgoW3dpZHRoQ29uZmlnLCBsaXN0T2ZXaWR0aF0pID0+ICh3aWR0aENvbmZpZy5sZW5ndGggPyB3aWR0aENvbmZpZyA6IGxpc3RPZldpZHRoKSlcbiAgKTtcbiAgcHJpdmF0ZSBsaXN0T2ZBdXRvV2lkdGhQeCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmdbXT4oMSk7XG4gIGxpc3RPZkxpc3RPZlRoV2lkdGhQeCQgPSBtZXJnZShcbiAgICB0aGlzLm1hbnVhbFdpZHRoQ29uZmlnUHgkLFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubGlzdE9mQXV0b1dpZHRoUHgkLCB0aGlzLm1hbnVhbFdpZHRoQ29uZmlnUHgkXSkucGlwZShcbiAgICAgIG1hcCgoW2F1dG9XaWR0aCwgbWFudWFsV2lkdGhdKSA9PiB7XG4gICAgICAgIC8qKiB1c2UgYXV0b1dpZHRoIHVudGlsIGNvbHVtbiBsZW5ndGggbWF0Y2ggKiovXG4gICAgICAgIHJldHVybiBhdXRvV2lkdGgubGVuZ3RoICE9PSBtYW51YWxXaWR0aC5sZW5ndGggPyBtYW51YWxXaWR0aCA6IGF1dG9XaWR0aDtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuICBsaXN0T2ZNZWFzdXJlQ29sdW1uJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHN0cmluZ1tdPigxKTtcbiAgbGlzdE9mTGlzdE9mVGhXaWR0aCQgPSB0aGlzLmxpc3RPZkF1dG9XaWR0aFB4JC5waXBlKG1hcChsaXN0ID0+IGxpc3QubWFwKHdpZHRoID0+IHBhcnNlSW50KHdpZHRoLCAxMCkpKSk7XG4gIGVuYWJsZUF1dG9NZWFzdXJlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIHNldFRoZWFkVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPE56U2FmZUFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnRoZWFkVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgc2V0SGFzRml4TGVmdChoYXNGaXhMZWZ0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5oYXNGaXhMZWZ0JC5uZXh0KGhhc0ZpeExlZnQpO1xuICB9XG5cbiAgc2V0SGFzRml4UmlnaHQoaGFzRml4UmlnaHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZpeFJpZ2h0JC5uZXh0KGhhc0ZpeFJpZ2h0KTtcbiAgfVxuXG4gIHNldFRhYmxlV2lkdGhDb25maWcod2lkdGhDb25maWc6IEFycmF5PHN0cmluZyB8IG51bGw+KTogdm9pZCB7XG4gICAgdGhpcy50YWJsZVdpZHRoQ29uZmlnUHgkLm5leHQod2lkdGhDb25maWcpO1xuICB9XG5cbiAgc2V0TGlzdE9mVGgobGlzdE9mVGg6IE56VGhNZWFzdXJlRGlyZWN0aXZlW10pOiB2b2lkIHtcbiAgICBsZXQgY29sdW1uQ291bnQgPSAwO1xuICAgIGxpc3RPZlRoLmZvckVhY2godGggPT4ge1xuICAgICAgY29sdW1uQ291bnQgKz0gdGguY29sc3BhbiB8fCAxO1xuICAgIH0pO1xuICAgIGNvbnN0IGxpc3RPZlRoUHggPSBsaXN0T2ZUaC5tYXAoaXRlbSA9PiBpdGVtLm56V2lkdGgpO1xuICAgIHRoaXMuY29sdW1uQ291bnQkLm5leHQoY29sdW1uQ291bnQpO1xuICAgIHRoaXMubGlzdE9mVGhXaWR0aENvbmZpZ1B4JC5uZXh0KGxpc3RPZlRoUHgpO1xuICB9XG5cbiAgc2V0TGlzdE9mTWVhc3VyZUNvbHVtbihsaXN0T2ZUaDogTnpUaE1lYXN1cmVEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3RPZktleXM6IHN0cmluZ1tdID0gW107XG4gICAgbGlzdE9mVGguZm9yRWFjaCh0aCA9PiB7XG4gICAgICBjb25zdCBsZW5ndGggPSB0aC5jb2xzcGFuIHx8IDE7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RPZktleXMucHVzaChgbWVhc3VyZV9rZXlfJHtpfWApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubGlzdE9mTWVhc3VyZUNvbHVtbiQubmV4dChsaXN0T2ZLZXlzKTtcbiAgfVxuXG4gIHNldExpc3RPZkF1dG9XaWR0aChsaXN0T2ZBdXRvV2lkdGg6IG51bWJlcltdKTogdm9pZCB7XG4gICAgdGhpcy5saXN0T2ZBdXRvV2lkdGhQeCQubmV4dChsaXN0T2ZBdXRvV2lkdGgubWFwKHdpZHRoID0+IGAke3dpZHRofXB4YCkpO1xuICB9XG5cbiAgc2V0U2hvd0VtcHR5KHNob3dFbXB0eTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0VtcHR5JC5uZXh0KHNob3dFbXB0eSk7XG4gIH1cblxuICBzZXROb1Jlc3VsdChub1Jlc3VsdDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMubm9SZXN1bHQkLm5leHQobm9SZXN1bHQpO1xuICB9XG5cbiAgc2V0U2Nyb2xsKHNjcm9sbFg6IHN0cmluZyB8IG51bGwsIHNjcm9sbFk6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVBdXRvTWVhc3VyZSA9ICEhKHNjcm9sbFggfHwgc2Nyb2xsWSk7XG4gICAgaWYgKCFlbmFibGVBdXRvTWVhc3VyZSkge1xuICAgICAgdGhpcy5zZXRMaXN0T2ZBdXRvV2lkdGgoW10pO1xuICAgIH1cbiAgICB0aGlzLmVuYWJsZUF1dG9NZWFzdXJlJC5uZXh0KGVuYWJsZUF1dG9NZWFzdXJlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==