ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
217 lines (216 loc) • 13.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, HostBinding, ElementRef, Renderer2 } from '@angular/core';
export class Badge {
/**
* @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(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(() => {
if (this._ref.nativeElement.children.length > 1) {
this._children = true;
this.setCls();
}
}, 10);
}
}
Badge.decorators = [
{ type: Component, args: [{
selector: 'Badge, nzm-badge',
template: "<ng-content></ng-content>\n<sup *ngIf=\"dot || text\"\n [ngClass]=\"scrollNumberCls\"\n [ngStyle]=\"style\">{{text}}\n</sup>\n"
}] }
];
/** @nocollapse */
Badge.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
Badge.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 {?} */
Badge.prototype.prefixCls;
/** @type {?} */
Badge.prototype.scrollNumberCls;
/** @type {?} */
Badge.prototype.style;
/** @type {?} */
Badge.prototype._text;
/** @type {?} */
Badge.prototype._setClass;
/** @type {?} */
Badge.prototype._size;
/** @type {?} */
Badge.prototype._dot;
/** @type {?} */
Badge.prototype._hot;
/** @type {?} */
Badge.prototype._corner;
/** @type {?} */
Badge.prototype._children;
/** @type {?} */
Badge.prototype._overflowCount;
/** @type {?} */
Badge.prototype.clsBadge;
/** @type {?} */
Badge.prototype.clsBadgeWrp;
/** @type {?} */
Badge.prototype.clsBadgeCornerWrp;
/** @type {?} */
Badge.prototype.clsBadgeHot;
/** @type {?} */
Badge.prototype.clsBadgeCornerWrpLg;
/** @type {?} */
Badge.prototype._ref;
/** @type {?} */
Badge.prototype.render;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJiYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU12SCxNQUFNOzs7OztJQTRFSixZQUFvQixJQUFnQixFQUFVLE1BQWlCO1FBQTNDLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFXO3lCQTNFM0MsVUFBVTsrQkFDSixFQUFFO3FCQUNaLEVBQUU7cUJBSU0sT0FBTztvQkFDUCxLQUFLO29CQUNMLEtBQUs7dUJBQ0YsS0FBSzt5QkFDSCxLQUFLOzhCQUNELEVBQUU7d0JBc0RmLElBQUk7MkJBRUQsQ0FBQyxJQUFJLENBQUMsU0FBUztpQ0FFVCxJQUFJLENBQUMsT0FBTzsyQkFFbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO21DQUVILElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPO0tBRUY7Ozs7O0lBOURuRSxJQUNJLElBQUksQ0FBQyxDQUFTO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ2Y7Ozs7SUFDRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDbkI7Ozs7O0lBQ0QsSUFBSSxJQUFJLENBQUMsQ0FBUztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUNmOzs7OztJQUNELElBQ0ksTUFBTSxDQUFDLENBQVU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDakIs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RyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNmO1NBQ0YsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUNSOzs7WUFqSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGdKQUFxQzthQUN0Qzs7OztZQUwwRCxVQUFVO1lBQWlCLFNBQVM7OzttQkFvQjVGLEtBQUs7bUJBS0wsS0FBSztxQkFRTCxLQUFLO2tCQUtMLEtBQUs7NEJBV0wsS0FBSztrQkFJTCxLQUFLO3VCQUtMLEtBQUs7d0JBSUwsS0FBSzt1QkFTTCxXQUFXLFNBQUMsZ0JBQWdCOzBCQUU1QixXQUFXLFNBQUMsOEJBQThCO2dDQUUxQyxXQUFXLFNBQUMsK0JBQStCOzBCQUUzQyxXQUFXLFNBQUMsb0JBQW9CO2tDQUVoQyxXQUFXLFNBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0QmluZGluZywgT25DaGFuZ2VzLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnQmFkZ2UsIG56bS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2UgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByZWZpeENsczogc3RyaW5nID0gJ2FtLWJhZGdlJztcbiAgc2Nyb2xsTnVtYmVyQ2xzOiBvYmplY3QgPSB7fTtcbiAgc3R5bGU6IG9iamVjdCA9IHt9O1xuXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2V0Q2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcbiAgcHJpdmF0ZSBfZG90OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2hvdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jb3JuZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2hpbGRyZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3ZlcmZsb3dDb3VudDogbnVtYmVyID0gOTk7XG5cbiAgQElucHV0KClcbiAgc2V0IHNpemUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0O1xuICB9XG4gIHNldCB0ZXh0KHY6IHN0cmluZykge1xuICAgIHRoaXMuX3RleHQgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGNvcm5lcih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29ybmVyID0gdjtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvdDtcbiAgfVxuICBzZXQgZG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kb3QgPSB2O1xuICAgIGlmICh0aGlzLl9kb3QpIHtcbiAgICAgIHRoaXMuX3RleHQgPSAnJztcbiAgICB9XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgb3ZlcmZsb3dDb3VudCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9vdmVyZmxvd0NvdW50ID0gdjtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgaG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ob3QgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHNldFN0eWxlKHY6IG9iamVjdCkge1xuICAgIHRoaXMuc3R5bGUgPSB2O1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjbGFzc05hbWUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2V0Q2xhc3MgPSB2O1xuICAgIGNvbnN0IGNsc0FyciA9IHRoaXMuX3NldENsYXNzLnNwbGl0KCcgJyk7XG4gICAgY2xzQXJyLmZvckVhY2goY2xzID0+IHtcbiAgICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LCBjbHMpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZScpXG4gIGNsc0JhZGdlOiBib29sZWFuID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ub3QtYS13cmFwcGVyJylcbiAgY2xzQmFkZ2VXcnA6IGJvb2xlYW4gPSAhdGhpcy5fY2hpbGRyZW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2UtY29ybmVyLXdyYXBwZXInKVxuICBjbHNCYWRnZUNvcm5lcldycDogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lcjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ob3QnKVxuICBjbHNCYWRnZUhvdDogYm9vbGVhbiA9ICEhdGhpcy5faG90O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLWJhZGdlLWNvcm5lci13cmFwcGVyLWxhcmdlJylcbiAgY2xzQmFkZ2VDb3JuZXJXcnBMZzogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lciAmJiB0aGlzLl9zaXplID09PSAnbGFyZ2UnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXI6IFJlbmRlcmVyMikge31cblxuICBzZXRDbHMoKSB7XG4gICAgdGhpcy5zY3JvbGxOdW1iZXJDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdGBdOiB0aGlzLl9kb3QsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdC1sYXJnZWBdOiB0aGlzLl9kb3QgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tdGV4dGBdOiAhdGhpcy5fZG90ICYmICF0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lcmBdOiB0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lci1sYXJnZWBdOiB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJ1xuICAgIH07XG4gICAgdGhpcy5jbHNCYWRnZVdycCA9ICF0aGlzLl9jaGlsZHJlbjtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwID0gdGhpcy5fY29ybmVyO1xuICAgIHRoaXMuY2xzQmFkZ2VIb3QgPSAhIXRoaXMuX2hvdDtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwTGcgPSB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fdGV4dCA9PT0gJ251bWJlcicgJiYgdGhpcy5fdGV4dCA+IHRoaXMuX292ZXJmbG93Q291bnQpIHtcbiAgICAgIHRoaXMuX3RleHQgPSB0aGlzLl9vdmVyZmxvd0NvdW50ICsgJysnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fcmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Q2xzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9XG59XG4iXX0=