ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
254 lines • 15.7 kB
JavaScript
/**
* @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