UNPKG

ng-zorro-antd-mobile

Version:

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

299 lines 17.8 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'; var BadgeComponent = /** @class */ (function () { function BadgeComponent(_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'; } Object.defineProperty(BadgeComponent.prototype, "size", { set: /** * @param {?} v * @return {?} */ function (v) { this._size = v; this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "text", { get: /** * @return {?} */ function () { return this._text; }, set: /** * @param {?} v * @return {?} */ function (v) { this._text = v; this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "corner", { set: /** * @param {?} v * @return {?} */ function (v) { this._corner = v; this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "dot", { get: /** * @return {?} */ function () { return this._dot; }, set: /** * @param {?} v * @return {?} */ function (v) { this._dot = v; if (this._dot) { this._text = ''; } this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "overflowCount", { set: /** * @param {?} v * @return {?} */ function (v) { this._overflowCount = v; }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "hot", { set: /** * @param {?} v * @return {?} */ function (v) { this._hot = v; this.setCls(); }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "setStyle", { set: /** * @param {?} v * @return {?} */ function (v) { this.style = v; }, enumerable: true, configurable: true }); Object.defineProperty(BadgeComponent.prototype, "className", { set: /** * @param {?} v * @return {?} */ function (v) { var _this = this; this._setClass = v; /** @type {?} */ var clsArr = this._setClass.split(' '); clsArr.forEach((/** * @param {?} cls * @return {?} */ function (cls) { _this.render.addClass(_this._ref.nativeElement, cls); })); }, enumerable: true, configurable: true }); /** * @return {?} */ BadgeComponent.prototype.setCls = /** * @return {?} */ function () { var _a; this.scrollNumberCls = (_a = {}, _a[this.prefixCls + "-dot"] = this._dot, _a[this.prefixCls + "-dot-large"] = this._dot && this._size === 'large', _a[this.prefixCls + "-text"] = !this._dot && !this._corner, _a[this.prefixCls + "-corner"] = this._corner, _a[this.prefixCls + "-corner-large"] = this._corner && this._size === 'large', _a); this.clsBadgeWrp = !this._children; this.clsBadgeCornerWrp = this._corner; this.clsBadgeHot = !!this._hot; this.clsBadgeCornerWrpLg = this._corner && this._size === 'large'; }; /** * @return {?} */ BadgeComponent.prototype.ngOnChanges = /** * @return {?} */ function () { if (typeof this._text === 'number' && this._text > this._overflowCount) { this._text = this._overflowCount + '+'; } }; /** * @return {?} */ BadgeComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.setCls(); }; /** * @return {?} */ BadgeComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { var _this = this; setTimeout((/** * @return {?} */ function () { 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 = function () { return [ { 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',] }] }; return BadgeComponent; }()); export { BadgeComponent }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJiYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SDtJQWdGRSx3QkFBb0IsSUFBZ0IsRUFBVSxNQUFpQjtRQUEzQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQTNFL0QsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSVgsVUFBSyxHQUFXLE9BQU8sQ0FBQztRQUN4QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBc0RwQyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLGdCQUFXLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXZDLHNCQUFpQixHQUFZLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsZ0JBQVcsR0FBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVuQyx3QkFBbUIsR0FBWSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO0lBRUosQ0FBQztJQTlEbkUsc0JBQ0ksZ0NBQUk7Ozs7O1FBRFIsVUFDUyxDQUFTO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7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LElBcUhDO1NBakhZLGNBQWM7OztJQUN6QixtQ0FBK0I7O0lBQy9CLHlDQUE2Qjs7SUFDN0IsK0JBQW1COzs7OztJQUVuQiwrQkFBc0I7Ozs7O0lBQ3RCLG1DQUEwQjs7Ozs7SUFDMUIsK0JBQWdDOzs7OztJQUNoQyw4QkFBOEI7Ozs7O0lBQzlCLDhCQUE4Qjs7Ozs7SUFDOUIsaUNBQWlDOzs7OztJQUNqQyxtQ0FBbUM7Ozs7O0lBQ25DLHdDQUFvQzs7SUFxRHBDLGtDQUN5Qjs7SUFDekIscUNBQ3VDOztJQUN2QywyQ0FDMEM7O0lBQzFDLHFDQUNtQzs7SUFDbkMsNkNBQ3NFOzs7OztJQUUxRCw4QkFBd0I7Ozs7O0lBQUUsZ0NBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0QmluZGluZywgT25DaGFuZ2VzLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnQmFkZ2UsIG56bS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByZWZpeENsczogc3RyaW5nID0gJ2FtLWJhZGdlJztcbiAgc2Nyb2xsTnVtYmVyQ2xzOiBvYmplY3QgPSB7fTtcbiAgc3R5bGU6IG9iamVjdCA9IHt9O1xuXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2V0Q2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcbiAgcHJpdmF0ZSBfZG90OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2hvdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jb3JuZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2hpbGRyZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3ZlcmZsb3dDb3VudDogbnVtYmVyID0gOTk7XG5cbiAgQElucHV0KClcbiAgc2V0IHNpemUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0O1xuICB9XG4gIHNldCB0ZXh0KHY6IHN0cmluZykge1xuICAgIHRoaXMuX3RleHQgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGNvcm5lcih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29ybmVyID0gdjtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvdDtcbiAgfVxuICBzZXQgZG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kb3QgPSB2O1xuICAgIGlmICh0aGlzLl9kb3QpIHtcbiAgICAgIHRoaXMuX3RleHQgPSAnJztcbiAgICB9XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgb3ZlcmZsb3dDb3VudCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9vdmVyZmxvd0NvdW50ID0gdjtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgaG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ob3QgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHNldFN0eWxlKHY6IG9iamVjdCkge1xuICAgIHRoaXMuc3R5bGUgPSB2O1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjbGFzc05hbWUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2V0Q2xhc3MgPSB2O1xuICAgIGNvbnN0IGNsc0FyciA9IHRoaXMuX3NldENsYXNzLnNwbGl0KCcgJyk7XG4gICAgY2xzQXJyLmZvckVhY2goY2xzID0+IHtcbiAgICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LCBjbHMpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZScpXG4gIGNsc0JhZGdlOiBib29sZWFuID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ub3QtYS13cmFwcGVyJylcbiAgY2xzQmFkZ2VXcnA6IGJvb2xlYW4gPSAhdGhpcy5fY2hpbGRyZW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2UtY29ybmVyLXdyYXBwZXInKVxuICBjbHNCYWRnZUNvcm5lcldycDogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lcjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ob3QnKVxuICBjbHNCYWRnZUhvdDogYm9vbGVhbiA9ICEhdGhpcy5faG90O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLWJhZGdlLWNvcm5lci13cmFwcGVyLWxhcmdlJylcbiAgY2xzQmFkZ2VDb3JuZXJXcnBMZzogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lciAmJiB0aGlzLl9zaXplID09PSAnbGFyZ2UnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXI6IFJlbmRlcmVyMikge31cblxuICBzZXRDbHMoKSB7XG4gICAgdGhpcy5zY3JvbGxOdW1iZXJDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdGBdOiB0aGlzLl9kb3QsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdC1sYXJnZWBdOiB0aGlzLl9kb3QgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tdGV4dGBdOiAhdGhpcy5fZG90ICYmICF0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lcmBdOiB0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lci1sYXJnZWBdOiB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJ1xuICAgIH07XG4gICAgdGhpcy5jbHNCYWRnZVdycCA9ICF0aGlzLl9jaGlsZHJlbjtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwID0gdGhpcy5fY29ybmVyO1xuICAgIHRoaXMuY2xzQmFkZ2VIb3QgPSAhIXRoaXMuX2hvdDtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwTGcgPSB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fdGV4dCA9PT0gJ251bWJlcicgJiYgdGhpcy5fdGV4dCA+IHRoaXMuX292ZXJmbG93Q291bnQpIHtcbiAgICAgIHRoaXMuX3RleHQgPSB0aGlzLl9vdmVyZmxvd0NvdW50ICsgJysnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDEgfHxcbiAgICAgICAgKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5kb3QgJiYgIXRoaXMudGV4dClcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Q2xzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9XG59XG4iXX0=