UNPKG

ng-zorro-antd-mobile

Version:

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

316 lines (315 loc) 21.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, ViewEncapsulation, Input, Output, ElementRef, HostListener, EventEmitter, Renderer2, TemplateRef } from '@angular/core'; var Button = /** @class */ (function () { function Button(_elementRef, _render) { this._elementRef = _elementRef; this._render = _render; this.prefixCls = 'am-button'; this.ngTemplate = false; this._className = ''; this._classList = []; this._size = 'large'; this._loading = false; this._active = false; this._inline = false; this._disabled = false; this._icon = ''; this._userAgent = (/** @type {?} */ (navigator)).userAgent || (/** @type {?} */ (navigator)).vendor || (/** @type {?} */ (window)).opera; this.onClick = new EventEmitter(); this._el = this._elementRef.nativeElement; this._render.addClass(this._el, this.prefixCls); this._className = this._el.className; } Object.defineProperty(Button.prototype, "type", { get: /** * @return {?} */ function () { return this._type; }, set: /** * @param {?} value * @return {?} */ function (value) { this._type = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "size", { get: /** * @return {?} */ function () { return this._size; }, set: /** * @param {?} value * @return {?} */ function (value) { this._size = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "disabled", { get: /** * @return {?} */ function () { return this._disabled; }, set: /** * @param {?} value * @return {?} */ function (value) { this._disabled = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "loading", { get: /** * @return {?} */ function () { return this._loading; }, set: /** * @param {?} value * @return {?} */ function (value) { this._loading = value; if (value) { if (this._el.querySelector('icon')) { this._el.querySelector('icon').parentNode.removeChild(this._el.querySelector('icon')); } } this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "inline", { get: /** * @return {?} */ function () { return this._inline; }, set: /** * @param {?} value * @return {?} */ function (value) { this._inline = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "icon", { get: /** * @return {?} */ function () { return this._icon; }, set: /** * @param {?} value * @return {?} */ function (value) { if (value instanceof TemplateRef) { this.ngTemplate = true; this._icon = value; } else { this.ngTemplate = false; this._icon = /** @type {?} */ (value); this.setClassMap(); } }, enumerable: true, configurable: true }); Object.defineProperty(Button.prototype, "className", { set: /** * @param {?} v * @return {?} */ function (v) { this._className = this._className + ' ' + v; this.setClassMap(); }, enumerable: true, configurable: true }); /** * @param {?} event * @return {?} */ Button.prototype.touchStart = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this._active = true; this.setClassMap(); }; /** * @param {?} event * @return {?} */ Button.prototype.touchEnd = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this._active = false; this.setClassMap(); }; /** * @param {?} event * @return {?} */ Button.prototype.click = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this.onClick.emit(); }; /** * @param {?} value * @return {?} */ Button.prototype.isTemplateRef = /** * @param {?} value * @return {?} */ function (value) { if (value) { return value instanceof TemplateRef; } return false; }; /** * @return {?} */ Button.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (this._el.querySelector('img')) { /** @type {?} */ var amSize = this._size === 'small' ? 'am-icon-xxs' : 'am-icon-md'; this._el.querySelector('img').setAttribute('class', "am-icon " + this.prefixCls + "-icon " + amSize); this._render.addClass(this._el, this.prefixCls + "-icon"); } }; /** * @return {?} */ Button.prototype.setClassMap = /** * @return {?} */ function () { this.iconType = this._loading ? 'loading' : this._icon; this._classList = [ this._type && this.prefixCls + "-" + this._type, this._size === 'small' && this.prefixCls + "-" + this._size, this._disabled && this.prefixCls + "-disabled", this._loading && this.prefixCls + "-loading", this.iconType && this.prefixCls + "-icon", this._active && this.prefixCls + "-active", this._inline && this.prefixCls + "-inline" ].filter(function (item) { return !!item; }); this._el.className = this._className + ' ' + this._classList.join(' '); }; Button.decorators = [ { type: Component, args: [{ selector: '[Button], nzm-button', encapsulation: ViewEncapsulation.None, template: "<Icon *ngIf=\"!ngTemplate\"\n class=\"{{prefixCls}}-icon\"\n [type]=\"iconType\"\n [size]=\"size ==='small' ? 'xxs' : 'md'\"\n></Icon>\n<ng-template *ngIf=\"ngTemplate\" [ngTemplateOutlet]=\"icon\"></ng-template>\n<ng-content select=\"img\"></ng-content>\n<div class=\"{{prefixCls}}-content\">\n <span>\n <ng-content></ng-content>\n </span>\n</div>" }] } ]; /** @nocollapse */ Button.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; Button.propDecorators = { type: [{ type: Input }], size: [{ type: Input }], disabled: [{ type: Input }], loading: [{ type: Input }], inline: [{ type: Input }], icon: [{ type: Input }], className: [{ type: Input }], onClick: [{ type: Output }], touchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }, { type: HostListener, args: ['mousedown', ['$event'],] }], touchEnd: [{ type: HostListener, args: ['touchend', ['$event'],] }, { type: HostListener, args: ['mouseup', ['$event'],] }, { type: HostListener, args: ['touchmove', ['$event'],] }, { type: HostListener, args: ['mousemove', ['$event'],] }, { type: HostListener, args: ['touchcancel', ['$event'],] }], click: [{ type: HostListener, args: ['click', ['$event'],] }] }; return Button; }()); export { Button }; if (false) { /** @type {?} */ Button.prototype.prefixCls; /** @type {?} */ Button.prototype.ngTemplate; /** @type {?} */ Button.prototype.iconType; /** @type {?} */ Button.prototype._el; /** @type {?} */ Button.prototype._className; /** @type {?} */ Button.prototype._classList; /** @type {?} */ Button.prototype._type; /** @type {?} */ Button.prototype._size; /** @type {?} */ Button.prototype._loading; /** @type {?} */ Button.prototype._active; /** @type {?} */ Button.prototype._inline; /** @type {?} */ Button.prototype._disabled; /** @type {?} */ Button.prototype._icon; /** @type {?} */ Button.prototype._userAgent; /** @type {?} */ Button.prototype.onClick; /** @type {?} */ Button.prototype._elementRef; /** @type {?} */ Button.prototype._render; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsiYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQzs7SUFnR3JCLGdCQUFvQixXQUF1QixFQUFVLE9BQWtCO1FBQW5ELGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBVzt5QkF4Rm5ELFdBQVc7MEJBQ1QsS0FBSzswQkFJTixFQUFFOzBCQUNHLEVBQUU7cUJBRVosT0FBTzt3QkFDSixLQUFLO3VCQUNOLEtBQUs7dUJBQ0wsS0FBSzt5QkFDSCxLQUFLO3FCQUNrQixFQUFFOzBCQUN4QixtQkFBTSxTQUFTLEVBQUMsQ0FBQyxTQUFTLElBQUksbUJBQU0sU0FBUyxFQUFDLENBQUMsTUFBTSxJQUFJLG1CQUFNLE1BQU0sRUFBQyxDQUFDLEtBQUs7dUJBMENwRSxJQUFJLFlBQVksRUFBRTtRQWlDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0tBQ3RDO0lBNUVELHNCQUNJLHdCQUFJOzs7O1FBRFI7WUFFRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7Ozs7O1FBa0ZELFVBQVMsS0FBYTtZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtB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Vmlld0VuY2Fwc3VsYXRpb24sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgRXZlbnRFbWl0dGVyLFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbQnV0dG9uXSwgbnptLWJ1dHRvbicsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcmVmaXhDbHM6IHN0cmluZyA9ICdhbS1idXR0b24nO1xuICBuZ1RlbXBsYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIGljb25UeXBlOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZWw6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9jbGFzc05hbWUgPSAnJztcbiAgcHJpdmF0ZSBfY2xhc3NMaXN0OiBhbnkgPSBbXTtcbiAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nO1xuICBwcml2YXRlIF9zaXplID0gJ2xhcmdlJztcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaW5saW5lID0gZmFsc2U7XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2ljb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSAnJztcbiAgcHJpdmF0ZSBfdXNlckFnZW50ID0gKDxhbnk+bmF2aWdhdG9yKS51c2VyQWdlbnQgfHwgKDxhbnk+bmF2aWdhdG9yKS52ZW5kb3IgfHwgKDxhbnk+d2luZG93KS5vcGVyYTtcblxuICBASW5wdXQoKVxuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBzaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgaW5saW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbmxpbmU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGljb24oKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cbiAgc2V0IGljb24odmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5uZ1RlbXBsYXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2ljb24gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZ1RlbXBsYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLl9pY29uID0gPHN0cmluZz52YWx1ZTtcbiAgICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGNsYXNzTmFtZSh2KSB7XG4gICAgdGhpcy5fY2xhc3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lICsgJyAnICsgdjtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICB0b3VjaFN0YXJ0KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd0b3VjaG1vdmUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZW1vdmUnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIFsnJGV2ZW50J10pXG4gIHRvdWNoRW5kKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xpY2soZXZlbnQpIHtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlbmRlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy5fZWwgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5fcmVuZGVyLmFkZENsYXNzKHRoaXMuX2VsLCB0aGlzLnByZWZpeENscyk7XG4gICAgdGhpcy5fY2xhc3NOYW1lID0gdGhpcy5fZWwuY2xhc3NOYW1lO1xuICB9XG5cbiAgaXNUZW1wbGF0ZVJlZih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNldCB0eXBlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLl9lbC5xdWVyeVNlbGVjdG9yKCdpY29uJykpIHtcbiAgICAgICAgdGhpcy5fZWwucXVlcnlTZWxlY3RvcignaWNvbicpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fZWwucXVlcnlTZWxlY3RvcignaWNvbicpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgc2V0IHNpemUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICBzZXQgaW5saW5lKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5saW5lID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLl9lbC5xdWVyeVNlbGVjdG9yKCdpbWcnKSkge1xuICAgICAgY29uc3QgYW1TaXplID0gdGhpcy5fc2l6ZSA9PT0gJ3NtYWxsJyA/ICdhbS1pY29uLXh4cycgOiAnYW0taWNvbi1tZCc7XG4gICAgICB0aGlzLl9lbC5xdWVyeVNlbGVjdG9yKCdpbWcnKS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgYGFtLWljb24gJHt0aGlzLnByZWZpeENsc30taWNvbiAke2FtU2l6ZX1gKTtcbiAgICAgIHRoaXMuX3JlbmRlci5hZGRDbGFzcyh0aGlzLl9lbCwgYCR7dGhpcy5wcmVmaXhDbHN9LWljb25gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENsYXNzTWFwKCk6IHZvaWQge1xuICAgIHRoaXMuaWNvblR5cGUgPSB0aGlzLl9sb2FkaW5nID8gJ2xvYWRpbmcnIDogdGhpcy5faWNvbjtcbiAgICB0aGlzLl9jbGFzc0xpc3QgPSBbXG4gICAgICB0aGlzLl90eXBlICYmIGAke3RoaXMucHJlZml4Q2xzfS0ke3RoaXMuX3R5cGV9YCxcbiAgICAgIHRoaXMuX3NpemUgPT09ICdzbWFsbCcgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LSR7dGhpcy5fc2l6ZX1gLFxuICAgICAgdGhpcy5fZGlzYWJsZWQgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LWRpc2FibGVkYCxcbiAgICAgIHRoaXMuX2xvYWRpbmcgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LWxvYWRpbmdgLFxuICAgICAgdGhpcy5pY29uVHlwZSAmJiBgJHt0aGlzLnByZWZpeENsc30taWNvbmAsXG4gICAgICB0aGlzLl9hY3RpdmUgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LWFjdGl2ZWAsXG4gICAgICB0aGlzLl9pbmxpbmUgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LWlubGluZWBcbiAgICBdLmZpbHRlcihpdGVtID0+IHtcbiAgICAgIHJldHVybiAhIWl0ZW07XG4gICAgfSk7XG4gICAgdGhpcy5fZWwuY2xhc3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lICsgJyAnICsgdGhpcy5fY2xhc3NMaXN0LmpvaW4oJyAnKTtcbiAgfVxufVxuIl19