UNPKG

ng-zorro-antd-mobile

Version:

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

254 lines 15.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, HostBinding, ElementRef, Renderer2 } from '@angular/core'; export class BadgeComponent { /** * @param {?} _ref * @param {?} render */ constructor(_ref, render) { this._ref = _ref; this.render = render; this.prefixCls = 'am-badge'; this.scrollNumberCls = {}; this.style = {}; this._size = 'small'; this._dot = false; this._hot = false; this._corner = false; this._children = false; this._overflowCount = 99; this.clsBadge = true; this.clsBadgeWrp = !this._children; this.clsBadgeCornerWrp = this._corner; this.clsBadgeHot = !!this._hot; this.clsBadgeCornerWrpLg = this._corner && this._size === 'large'; } /** * @param {?} v * @return {?} */ set size(v) { this._size = v; this.setCls(); } /** * @return {?} */ get text() { return this._text; } /** * @param {?} v * @return {?} */ set text(v) { this._text = v; this.setCls(); } /** * @param {?} v * @return {?} */ set corner(v) { this._corner = v; this.setCls(); } /** * @return {?} */ get dot() { return this._dot; } /** * @param {?} v * @return {?} */ set dot(v) { this._dot = v; if (this._dot) { this._text = ''; } this.setCls(); } /** * @param {?} v * @return {?} */ set overflowCount(v) { this._overflowCount = v; } /** * @param {?} v * @return {?} */ set hot(v) { this._hot = v; this.setCls(); } /** * @param {?} v * @return {?} */ set setStyle(v) { this.style = v; } /** * @param {?} v * @return {?} */ set className(v) { this._setClass = v; /** @type {?} */ const clsArr = this._setClass.split(' '); clsArr.forEach((/** * @param {?} cls * @return {?} */ cls => { this.render.addClass(this._ref.nativeElement, cls); })); } /** * @return {?} */ setCls() { this.scrollNumberCls = { [`${this.prefixCls}-dot`]: this._dot, [`${this.prefixCls}-dot-large`]: this._dot && this._size === 'large', [`${this.prefixCls}-text`]: !this._dot && !this._corner, [`${this.prefixCls}-corner`]: this._corner, [`${this.prefixCls}-corner-large`]: this._corner && this._size === 'large' }; this.clsBadgeWrp = !this._children; this.clsBadgeCornerWrp = this._corner; this.clsBadgeHot = !!this._hot; this.clsBadgeCornerWrpLg = this._corner && this._size === 'large'; } /** * @return {?} */ ngOnChanges() { if (typeof this._text === 'number' && this._text > this._overflowCount) { this._text = this._overflowCount + '+'; } } /** * @return {?} */ ngOnInit() { this.setCls(); } /** * @return {?} */ ngAfterViewInit() { setTimeout((/** * @return {?} */ () => { if (this._ref.nativeElement.children.length > 1 || (this._ref.nativeElement.children.length === 1 && !this.dot && !this.text)) { this._children = true; this.setCls(); } }), 10); } } BadgeComponent.decorators = [ { type: Component, args: [{ selector: 'Badge, nzm-badge', template: "<ng-content></ng-content>\n<sup *ngIf=\"dot || text\" [ngClass]=\"scrollNumberCls\" [ngStyle]=\"style\">\n <span>{{ text }}</span>\n</sup>\n" }] } ]; /** @nocollapse */ BadgeComponent.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; BadgeComponent.propDecorators = { size: [{ type: Input }], text: [{ type: Input }], corner: [{ type: Input }], dot: [{ type: Input }], overflowCount: [{ type: Input }], hot: [{ type: Input }], setStyle: [{ type: Input }], className: [{ type: Input }], clsBadge: [{ type: HostBinding, args: ['class.am-badge',] }], clsBadgeWrp: [{ type: HostBinding, args: ['class.am-badge-not-a-wrapper',] }], clsBadgeCornerWrp: [{ type: HostBinding, args: ['class.am-badge-corner-wrapper',] }], clsBadgeHot: [{ type: HostBinding, args: ['class.am-badge-hot',] }], clsBadgeCornerWrpLg: [{ type: HostBinding, args: ['class.am-badge-corner-wrapper-large',] }] }; if (false) { /** @type {?} */ BadgeComponent.prototype.prefixCls; /** @type {?} */ BadgeComponent.prototype.scrollNumberCls; /** @type {?} */ BadgeComponent.prototype.style; /** * @type {?} * @private */ BadgeComponent.prototype._text; /** * @type {?} * @private */ BadgeComponent.prototype._setClass; /** * @type {?} * @private */ BadgeComponent.prototype._size; /** * @type {?} * @private */ BadgeComponent.prototype._dot; /** * @type {?} * @private */ BadgeComponent.prototype._hot; /** * @type {?} * @private */ BadgeComponent.prototype._corner; /** * @type {?} * @private */ BadgeComponent.prototype._children; /** * @type {?} * @private */ BadgeComponent.prototype._overflowCount; /** @type {?} */ BadgeComponent.prototype.clsBadge; /** @type {?} */ BadgeComponent.prototype.clsBadgeWrp; /** @type {?} */ BadgeComponent.prototype.clsBadgeCornerWrp; /** @type {?} */ BadgeComponent.prototype.clsBadgeHot; /** @type {?} */ BadgeComponent.prototype.clsBadgeCornerWrpLg; /** * @type {?} * @private */ BadgeComponent.prototype._ref; /** * @type {?} * @private */ BadgeComponent.prototype.render; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJiYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU12SCxNQUFNLE9BQU8sY0FBYzs7Ozs7SUE0RXpCLFlBQW9CLElBQWdCLEVBQVUsTUFBaUI7UUFBM0MsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUEzRS9ELGNBQVMsR0FBVyxVQUFVLENBQUM7UUFDL0Isb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0IsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUlYLFVBQUssR0FBVyxPQUFPLENBQUM7UUFDeEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQXNEcEMsYUFBUSxHQUFZLElBQUksQ0FBQztRQUV6QixnQkFBVyxHQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV2QyxzQkFBaUIsR0FBWSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTFDLGdCQUFXLEdBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFbkMsd0JBQW1CLEdBQVksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQztJQUVKLENBQUM7Ozs7O0lBOURuRSxJQUNJLElBQUksQ0FBQyxDQUFTO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFD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QUFnQzs7Ozs7SUFDaEMsOEJBQThCOzs7OztJQUM5Qiw4QkFBOEI7Ozs7O0lBQzlCLGlDQUFpQzs7Ozs7SUFDakMsbUNBQW1DOzs7OztJQUNuQyx3Q0FBb0M7O0lBcURwQyxrQ0FDeUI7O0lBQ3pCLHFDQUN1Qzs7SUFDdkMsMkNBQzBDOztJQUMxQyxxQ0FDbUM7O0lBQ25DLDZDQUNzRTs7Ozs7SUFFMUQsOEJBQXdCOzs7OztJQUFFLGdDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdEJpbmRpbmcsIE9uQ2hhbmdlcywgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0JhZGdlLCBuem0tYmFkZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFkZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJhZGdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBwcmVmaXhDbHM6IHN0cmluZyA9ICdhbS1iYWRnZSc7XG4gIHNjcm9sbE51bWJlckNsczogb2JqZWN0ID0ge307XG4gIHN0eWxlOiBvYmplY3QgPSB7fTtcblxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgX3NldENsYXNzOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpemU6IHN0cmluZyA9ICdzbWFsbCc7XG4gIHByaXZhdGUgX2RvdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9ob3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29ybmVyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX292ZXJmbG93Q291bnQ6IG51bWJlciA9IDk5O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBzaXplKHY6IHN0cmluZykge1xuICAgIHRoaXMuX3NpemUgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcbiAgfVxuICBzZXQgdGV4dCh2OiBzdHJpbmcpIHtcbiAgICB0aGlzLl90ZXh0ID0gdjtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjb3JuZXIodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nvcm5lciA9IHY7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgZG90KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kb3Q7XG4gIH1cbiAgc2V0IGRvdCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fZG90ID0gdjtcbiAgICBpZiAodGhpcy5fZG90KSB7XG4gICAgICB0aGlzLl90ZXh0ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IG92ZXJmbG93Q291bnQodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fb3ZlcmZsb3dDb3VudCA9IHY7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGhvdCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5faG90ID0gdjtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzZXRTdHlsZSh2OiBvYmplY3QpIHtcbiAgICB0aGlzLnN0eWxlID0gdjtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgY2xhc3NOYW1lKHY6IHN0cmluZykge1xuICAgIHRoaXMuX3NldENsYXNzID0gdjtcbiAgICBjb25zdCBjbHNBcnIgPSB0aGlzLl9zZXRDbGFzcy5zcGxpdCgnICcpO1xuICAgIGNsc0Fyci5mb3JFYWNoKGNscyA9PiB7XG4gICAgICB0aGlzLnJlbmRlci5hZGRDbGFzcyh0aGlzLl9yZWYubmF0aXZlRWxlbWVudCwgY2xzKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2UnKVxuICBjbHNCYWRnZTogYm9vbGVhbiA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2Utbm90LWEtd3JhcHBlcicpXG4gIGNsc0JhZGdlV3JwOiBib29sZWFuID0gIXRoaXMuX2NoaWxkcmVuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLWJhZGdlLWNvcm5lci13cmFwcGVyJylcbiAgY2xzQmFkZ2VDb3JuZXJXcnA6IGJvb2xlYW4gPSB0aGlzLl9jb3JuZXI7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2UtaG90JylcbiAgY2xzQmFkZ2VIb3Q6IGJvb2xlYW4gPSAhIXRoaXMuX2hvdDtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1jb3JuZXItd3JhcHBlci1sYXJnZScpXG4gIGNsc0JhZGdlQ29ybmVyV3JwTGc6IGJvb2xlYW4gPSB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgc2V0Q2xzKCkge1xuICAgIHRoaXMuc2Nyb2xsTnVtYmVyQ2xzID0ge1xuICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kb3RgXTogdGhpcy5fZG90LFxuICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1kb3QtbGFyZ2VgXTogdGhpcy5fZG90ICYmIHRoaXMuX3NpemUgPT09ICdsYXJnZScsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LXRleHRgXTogIXRoaXMuX2RvdCAmJiAhdGhpcy5fY29ybmVyLFxuICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1jb3JuZXJgXTogdGhpcy5fY29ybmVyLFxuICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1jb3JuZXItbGFyZ2VgXTogdGhpcy5fY29ybmVyICYmIHRoaXMuX3NpemUgPT09ICdsYXJnZSdcbiAgICB9O1xuICAgIHRoaXMuY2xzQmFkZ2VXcnAgPSAhdGhpcy5fY2hpbGRyZW47XG4gICAgdGhpcy5jbHNCYWRnZUNvcm5lcldycCA9IHRoaXMuX2Nvcm5lcjtcbiAgICB0aGlzLmNsc0JhZGdlSG90ID0gISF0aGlzLl9ob3Q7XG4gICAgdGhpcy5jbHNCYWRnZUNvcm5lcldycExnID0gdGhpcy5fY29ybmVyICYmIHRoaXMuX3NpemUgPT09ICdsYXJnZSc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX3RleHQgPT09ICdudW1iZXInICYmIHRoaXMuX3RleHQgPiB0aGlzLl9vdmVyZmxvd0NvdW50KSB7XG4gICAgICB0aGlzLl90ZXh0ID0gdGhpcy5fb3ZlcmZsb3dDb3VudCArICcrJztcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9yZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAxIHx8XG4gICAgICAgICh0aGlzLl9yZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgIXRoaXMuZG90ICYmICF0aGlzLnRleHQpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLnNldENscygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxufVxuIl19