ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
121 lines (120 loc) • 9.23 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, ViewEncapsulation, Input, Output, EventEmitter, TemplateRef } from '@angular/core';
import { takeUntil } from 'rxjs/operators';
import { Subject } from 'rxjs';
import { LocaleProviderService } from '../locale-provider/locale-provider.service';
export class PaginationComponent {
/**
* @param {?} _localeProviderService
*/
constructor(_localeProviderService) {
this._localeProviderService = _localeProviderService;
this.prefixCls = 'am-pagination';
this._locale = {};
this._unsubscribe$ = new Subject();
this.mode = 'button';
this.current = 1;
this.total = 0;
this.simple = false;
this.disabled = false;
this.onChange = new EventEmitter();
}
/**
* @return {?}
*/
get locale() {
return this._locale;
}
/**
* @param {?} v
* @return {?}
*/
set locale(v) {
this._locale = v;
this._unsubscribe$.next();
this._unsubscribe$.complete();
}
/**
* @param {?} key
* @return {?}
*/
isTemplateRef(key) {
return /** @type {?} */ (key) instanceof TemplateRef;
}
/**
* @param {?} p
* @return {?}
*/
onClick(p) {
this.current = p;
this.onChange.emit(p);
}
/**
* @param {?} p
* @return {?}
*/
getNumber(p) {
return new Array(p);
}
/**
* @return {?}
*/
ngOnInit() {
this._localeProviderService.localeChange.pipe(takeUntil(this._unsubscribe$)).subscribe(_ => {
this._locale = this._localeProviderService.getLocaleSubObj('Pagination');
});
}
/**
* @return {?}
*/
ngOnDestroy() {
this._unsubscribe$.next();
this._unsubscribe$.complete();
}
}
PaginationComponent.decorators = [
{ type: Component, args: [{
selector: 'Pagination, nzm-pagination',
template: "<div class=\"{{prefixCls}} {{prefixCls}}-align-center\">\n <Flex *ngIf=\"mode === 'button'\">\n <FlexItem class=\"{{prefixCls}}-wrap-btn {{prefixCls}}-wrap-btn-prev\">\n <a Button [inline]=\"true\" [disabled]=\"current <= 1\" (onClick)=\"onClick(current - 1)\">\n <ng-container *ngIf=\"!isTemplateRef(locale.prevText)\">\n {{locale.prevText}}\n </ng-container>\n <ng-template *ngIf=\"isTemplateRef(locale.prevText)\" [ngTemplateOutlet]=\"locale.prevText\"></ng-template>\n </a>\n </FlexItem>\n <FlexItem class=\"{{prefixCls}}-wrap\" aria-live=\"assertive\" *ngIf=\"!simple\">\n <span class=\"active\">{{current}}</span>/\n <span>{{total}}</span>\n </FlexItem>\n <FlexItem class=\"{{prefixCls}}-wrap-btn {{prefixCls}}-wrap-btn-next\">\n <a Button [inline]=\"true\" [disabled]=\"current>= total\" (onClick)=\"onClick(current + 1)\">\n <ng-container *ngIf=\"!isTemplateRef(locale.nextText)\">\n {{locale.nextText}}\n </ng-container>\n <ng-template *ngIf=\"isTemplateRef(locale.nextText)\" [ngTemplateOutlet]=\"locale.nextText\"></ng-template>\n </a>\n </FlexItem>\n </Flex>\n\n <div class=\"{{prefixCls}}-wrap\" *ngIf=\"mode === 'number'\">\n <span class=\"active\">{{current}}</span>/<span>{{total}}</span>\n </div>\n\n <div class=\"{{prefixCls}}-wrap\" *ngIf=\"mode === 'pointer'\">\n <div *ngFor=\"let number of getNumber(total); let i = index\" class=\"{{prefixCls}}-wrap-dot {{current === i+1 ? (prefixCls + '-wrap-dot-active') : ''}}\">\n <span></span>\n </div>\n </div>\n</div>\n",
encapsulation: ViewEncapsulation.None
}] }
];
/** @nocollapse */
PaginationComponent.ctorParameters = () => [
{ type: LocaleProviderService }
];
PaginationComponent.propDecorators = {
mode: [{ type: Input }],
current: [{ type: Input }],
total: [{ type: Input }],
simple: [{ type: Input }],
disabled: [{ type: Input }],
locale: [{ type: Input }],
onChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
PaginationComponent.prototype.prefixCls;
/** @type {?} */
PaginationComponent.prototype._locale;
/** @type {?} */
PaginationComponent.prototype._unsubscribe$;
/** @type {?} */
PaginationComponent.prototype.mode;
/** @type {?} */
PaginationComponent.prototype.current;
/** @type {?} */
PaginationComponent.prototype.total;
/** @type {?} */
PaginationComponent.prototype.simple;
/** @type {?} */
PaginationComponent.prototype.disabled;
/** @type {?} */
PaginationComponent.prototype.onChange;
/** @type {?} */
PaginationComponent.prototype._localeProviderService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbInBhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQU9uRixNQUFNOzs7O0lBNEJKLFlBQW9CLHNCQUE2QztRQUE3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO3lCQTNCckQsZUFBZTt1QkFFRCxFQUFFOzZCQUNXLElBQUksT0FBTyxFQUFRO29CQUczQyxRQUFRO3VCQUVMLENBQUM7cUJBRUgsQ0FBQztzQkFFQyxLQUFLO3dCQUVILEtBQUs7d0JBV0ssSUFBSSxZQUFZLEVBQU87S0FFZ0I7Ozs7SUFackUsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0tBQ3JCOzs7OztJQUNELElBQUksTUFBTSxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDL0I7Ozs7O0lBTUQsYUFBYSxDQUFDLEdBQUc7UUFDZix5QkFBWSxHQUFHLGFBQVksV0FBVyxDQUFDO0tBQ3hDOzs7OztJQUVELE9BQU8sQ0FBQyxDQUFTO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkI7Ozs7O0lBRUQsU0FBUyxDQUFDLENBQVM7UUFDakIsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyQjs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMxRSxDQUFDLENBQUM7S0FDSjs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDL0I7OztZQXpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtnQkFDdEMsdWxEQUEwQztnQkFDMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7Ozs7WUFOUSxxQkFBcUI7OzttQkFhM0IsS0FBSztzQkFFTCxLQUFLO29CQUVMLEtBQUs7cUJBRUwsS0FBSzt1QkFFTCxLQUFLO3FCQUVMLEtBQUs7dUJBU0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxlLXByb3ZpZGVyL2xvY2FsZS1wcm92aWRlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnUGFnaW5hdGlvbiwgbnptLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJlZml4Q2xzID0gJ2FtLXBhZ2luYXRpb24nO1xuXG4gIHByaXZhdGUgX2xvY2FsZTogb2JqZWN0ID0ge307XG4gIHByaXZhdGUgX3Vuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgbW9kZTogc3RyaW5nID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpXG4gIGN1cnJlbnQ6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpXG4gIHRvdGFsOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKVxuICBzaW1wbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IGxvY2FsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICB9XG4gIHNldCBsb2NhbGUodikge1xuICAgIHRoaXMuX2xvY2FsZSA9IHY7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuICBAT3V0cHV0KClcbiAgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9jYWxlUHJvdmlkZXJTZXJ2aWNlOiBMb2NhbGVQcm92aWRlclNlcnZpY2UpIHt9XG5cbiAgaXNUZW1wbGF0ZVJlZihrZXkpIHtcbiAgICByZXR1cm4gPGFueT5rZXkgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIG9uQ2xpY2socDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50ID0gcDtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQocCk7XG4gIH1cblxuICBnZXROdW1iZXIocDogbnVtYmVyKTogQXJyYXk8bnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShwKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xvY2FsZVByb3ZpZGVyU2VydmljZS5sb2NhbGVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgdGhpcy5fbG9jYWxlID0gdGhpcy5fbG9jYWxlUHJvdmlkZXJTZXJ2aWNlLmdldExvY2FsZVN1Yk9iaignUGFnaW5hdGlvbicpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19