@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
119 lines • 15 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: button.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Directive, ElementRef, Output, EventEmitter, ViewChild, } from '@angular/core';
export class ButtonComponent {
constructor() {
this.type = 'button';
this.bsStyle = 'primary';
this.bsSize = 'md';
this.disabled = false;
this.showLoading = false;
this.autofocus = false;
this.btnClick = new EventEmitter();
}
// 新增click事件,解决直接在host上使用click,IE在disabled状态下还能触发事件
/**
* @param {?} event
* @return {?}
*/
onClick(event) {
this.btnClick.emit(event);
}
/**
* @return {?}
*/
hasContent() {
return !!this.buttonContent && this.buttonContent.nativeElement && this.buttonContent.nativeElement.innerHTML.trim();
}
}
ButtonComponent.decorators = [
{ type: Component, args: [{
selector: 'd-button',
template: "<button\r\n [attr.id]=\"id\"\r\n d-btn\r\n class=\"devui-btn devui-btn-{{ bsStyle }} devui-btn-{{ bsSize }}\"\r\n [type]=\"type\"\r\n [disabled]=\"disabled\"\r\n [class.bordered]=\"bordered\"\r\n [class.devui-loading]=\"showLoading\"\r\n [showLoading]=\"showLoading\"\r\n [loadingTemplateRef]=\"buttonWithLoading\"\r\n [backdrop]=\"true\"\r\n dLoading\r\n [ngStyle]=\"{ width: width }\"\r\n [dBtnAutofocus]=\"autofocus\"\r\n (click)=\"onClick($event)\"\r\n [ngClass]=\"{ 'd-btn-icon': !!icon && !hasContent() }\"\r\n>\r\n <span *ngIf=\"!!icon\" class=\"devui-icon-fix icon {{ icon }}\"></span\r\n ><!--\r\n --><span class=\"button-content\" #buttonContent><ng-content></ng-content></span>\r\n</button>\r\n\r\n<ng-template #buttonWithLoading>\r\n <div class=\"devui-loading-spinner-wrapper\">\r\n <div class=\"devui-loading-default-spinner\">\r\n <div class=\"bar1\"></div>\r\n <div class=\"bar2\"></div>\r\n <div class=\"bar3\"></div>\r\n <div class=\"bar4\"></div>\r\n <div class=\"bar5\"></div>\r\n <div class=\"bar6\"></div>\r\n <div class=\"bar7\"></div>\r\n <div class=\"bar8\"></div>\r\n <div class=\"bar9\"></div>\r\n <div class=\"bar10\"></div>\r\n <div class=\"bar11\"></div>\r\n <div class=\"bar12\"></div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n",
styles: [".devui-btn{padding:5px 20px;font-size:14px;height:32px;line-height:20px;border-radius:1px;background-color:transparent;-webkit-transition:.2s;transition:.2s;white-space:nowrap;border:1px solid transparent}.devui-btn.devui-btn-text{color:#5e7ce0;padding:0}.devui-btn.devui-btn-text-dark{color:#252b3a;padding:0}.devui-btn.devui-btn-common{color:#252b3a;min-width:80px;background-color:#fff;border-color:#adb0b8}.devui-btn.devui-btn-primary,.devui-btn.devui-btn-stress{color:#fff;min-width:80px;background-color:#5e7ce0}.devui-btn.devui-btn-xs{padding:1px 5px;height:28px;font-size:12px}.devui-btn.devui-btn-sm{padding:5px 10px;height:30px;font-size:12px}.devui-btn.devui-btn-lg{padding:10px 16px;height:46px;font-size:18px}.devui-btn.devui-btn-text-dark:active,.devui-btn.devui-btn-text-dark:focus,.devui-btn.devui-btn-text-dark:hover,.devui-btn.devui-btn-text:active,.devui-btn.devui-btn-text:focus,.devui-btn.devui-btn-text:hover{background-color:transparent;color:#344899}.devui-btn.devui-btn-common:active,.devui-btn.devui-btn-common:focus,.devui-btn.devui-btn-common:hover{border-color:#344899}.devui-btn.devui-btn-primary:active,.devui-btn.devui-btn-primary:focus,.devui-btn.devui-btn-primary:hover,.devui-btn.devui-btn-stress:active,.devui-btn.devui-btn-stress:focus,.devui-btn.devui-btn-stress:hover{background-color:#344899}.devui-btn.devui-btn-common:disabled{color:#252b3a;opacity:.3;background:#fff;border:1px solid #adb0b8}.devui-btn.devui-btn-primary:disabled{color:#252b3a;background:#fff;border:1px solid #adb0b8}.devui-btn.devui-btn-text-dark:disabled{color:#252b3a;background:#fff}.devui-btn.bordered.devui-btn-common{color:#252b3a;border-color:transparent}.devui-btn.bordered.devui-btn-common:active,.devui-btn.bordered.devui-btn-common:focus,.devui-btn.bordered.devui-btn-common:hover{border-color:#344899}.devui-btn.bordered.devui-btn-primary,.devui-btn.bordered.devui-btn-stress{border-color:#5e7ce0;color:#5e7ce0;background-color:#fff}.devui-btn.bordered.devui-btn-success{border-color:#50d4ab;color:#50d4ab;background-color:#fff}.devui-btn.bordered.devui-btn-warning{border-color:#fac20a;color:#fac20a;background-color:#fff}.devui-btn.bordered.devui-btn-danger{border-color:#f66f6a;color:#f66f6a;background-color:#fff}.devui-btn.d-btn-icon:focus,.devui-btn.d-btn-icon:hover{border:1px solid #f2f5fc;background-color:#f2f5fc}.devui-btn.d-btn-icon:disabled{background-color:#fff}:host{display:inline-block}.devui-btn:disabled,.devui-btn[disabled]{cursor:not-allowed;opacity:.3}.devui-btn.d-btn-icon{padding:7px 8px;line-height:1em;border:1px solid transparent}.devui-btn:not(.d-btn-icon) .icon-fix{font-size:16px}.devui-loading .devui-loading-spinner-wrapper{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:1001}.devui-loading .devui-loading-default-spinner{position:relative;display:inline-block;vertical-align:middle;width:20px;height:20px}.devui-loading .devui-loading-default-spinner div{background-color:#252b3a;position:absolute;left:44.5%;top:37%;width:10%;height:26%;border-radius:50px;opacity:0;-webkit-animation:1s linear infinite spinner-anim;animation:1s linear infinite spinner-anim}.devui-loading .devui-loading-default-spinner .bar1{-webkit-transform:rotate(0) translate(0,-142%);transform:rotate(0) translate(0,-142%);-webkit-animation-delay:-1s;animation-delay:-1s}.devui-loading .devui-loading-default-spinner .bar2{-webkit-transform:rotate(30deg) translate(0,-142%);transform:rotate(30deg) translate(0,-142%);-webkit-animation-delay:-.91667s;animation-delay:-.91667s}.devui-loading .devui-loading-default-spinner .bar3{-webkit-transform:rotate(60deg) translate(0,-142%);transform:rotate(60deg) translate(0,-142%);-webkit-animation-delay:-.83333s;animation-delay:-.83333s}.devui-loading .devui-loading-default-spinner .bar4{-webkit-transform:rotate(90deg) translate(0,-142%);transform:rotate(90deg) translate(0,-142%);-webkit-animation-delay:-.75s;animation-delay:-.75s}.devui-loading .devui-loading-default-spinner .bar5{-webkit-transform:rotate(120deg) translate(0,-142%);transform:rotate(120deg) translate(0,-142%);-webkit-animation-delay:-.66667s;animation-delay:-.66667s}.devui-loading .devui-loading-default-spinner .bar6{-webkit-transform:rotate(150deg) translate(0,-142%);transform:rotate(150deg) translate(0,-142%);-webkit-animation-delay:-.58333s;animation-delay:-.58333s}.devui-loading .devui-loading-default-spinner .bar7{-webkit-transform:rotate(180deg) translate(0,-142%);transform:rotate(180deg) translate(0,-142%);-webkit-animation-delay:-.5s;animation-delay:-.5s}.devui-loading .devui-loading-default-spinner .bar8{-webkit-transform:rotate(210deg) translate(0,-142%);transform:rotate(210deg) translate(0,-142%);-webkit-animation-delay:-.41667s;animation-delay:-.41667s}.devui-loading .devui-loading-default-spinner .bar9{-webkit-transform:rotate(240deg) translate(0,-142%);transform:rotate(240deg) translate(0,-142%);-webkit-animation-delay:-.33333s;animation-delay:-.33333s}.devui-loading .devui-loading-default-spinner .bar10{-webkit-transform:rotate(270deg) translate(0,-142%);transform:rotate(270deg) translate(0,-142%);-webkit-animation-delay:-.25s;animation-delay:-.25s}.devui-loading .devui-loading-default-spinner .bar11{-webkit-transform:rotate(300deg) translate(0,-142%);transform:rotate(300deg) translate(0,-142%);-webkit-animation-delay:-.16667s;animation-delay:-.16667s}.devui-loading .devui-loading-default-spinner .bar12{-webkit-transform:rotate(330deg) translate(0,-142%);transform:rotate(330deg) translate(0,-142%);-webkit-animation-delay:-83.33ms;animation-delay:-83.33ms}.devui-loading .devui-loading-default-text{display:inline-block;margin-left:6px;max-width:400px}@-webkit-keyframes spinner-anim{from{opacity:1}to{opacity:.25}}@keyframes spinner-anim{from{opacity:1}to{opacity:.25}}.devui-icon-fix{position:relative;top:2px}.button-content{display:inline-block;vertical-align:top}"]
}] }
];
/** @nocollapse */
ButtonComponent.ctorParameters = () => [];
ButtonComponent.propDecorators = {
id: [{ type: Input }],
type: [{ type: Input }],
bsStyle: [{ type: Input }],
bsSize: [{ type: Input }],
bordered: [{ type: Input }],
icon: [{ type: Input }],
disabled: [{ type: Input }],
showLoading: [{ type: Input }],
width: [{ type: Input }],
autofocus: [{ type: Input }],
btnClick: [{ type: Output }],
buttonContent: [{ type: ViewChild, args: ['buttonContent', { static: true },] }]
};
if (false) {
/** @type {?} */
ButtonComponent.prototype.id;
/** @type {?} */
ButtonComponent.prototype.type;
/** @type {?} */
ButtonComponent.prototype.bsStyle;
/** @type {?} */
ButtonComponent.prototype.bsSize;
/** @type {?} */
ButtonComponent.prototype.bordered;
/** @type {?} */
ButtonComponent.prototype.icon;
/** @type {?} */
ButtonComponent.prototype.disabled;
/** @type {?} */
ButtonComponent.prototype.showLoading;
/** @type {?} */
ButtonComponent.prototype.width;
/** @type {?} */
ButtonComponent.prototype.autofocus;
/** @type {?} */
ButtonComponent.prototype.btnClick;
/** @type {?} */
ButtonComponent.prototype.buttonContent;
}
export class BtnAutoFocusDirective {
/**
* @param {?} element
*/
constructor(element) {
this.element = element;
this.dBtnAutofocus = false;
}
/**
* @return {?}
*/
ngOnInit() {
if (this.dBtnAutofocus) {
this.element.nativeElement.focus();
}
}
}
BtnAutoFocusDirective.decorators = [
{ type: Directive, args: [{
selector: '[dBtnAutofocus]',
},] }
];
/** @nocollapse */
BtnAutoFocusDirective.ctorParameters = () => [
{ type: ElementRef }
];
BtnAutoFocusDirective.propDecorators = {
dBtnAutofocus: [{ type: Input }]
};
if (false) {
/** @type {?} */
BtnAutoFocusDirective.prototype.dBtnAutofocus;
/**
* @type {?}
* @private
*/
BtnAutoFocusDirective.prototype.element;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2J1dHRvbi8iLCJzb3VyY2VzIjpbImJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBV3ZCLE1BQU0sT0FBTyxlQUFlO0lBYTFCO1FBWFMsU0FBSSxHQUFnQixRQUFRLENBQUM7UUFDN0IsWUFBTyxHQUFpQixTQUFTLENBQUM7UUFDbEMsV0FBTSxHQUFnQixJQUFJLENBQUM7UUFHM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR3hDLENBQUM7Ozs7OztJQUdELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2SCxDQUFDOzs7WUE1QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQiw4MENBQXNDOzthQUV2Qzs7Ozs7aUJBRUUsS0FBSzttQkFDTCxLQUFLO3NCQUNMLEtBQUs7cUJBQ0wsS0FBSzt1QkFDTCxLQUFLO21CQUNMLEtBQUs7dUJBQ0wsS0FBSzswQkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxNQUFNOzRCQUNOLFNBQVMsU0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzs7O0lBWDVDLDZCQUFvQjs7SUFDcEIsK0JBQXNDOztJQUN0QyxrQ0FBMkM7O0lBQzNDLGlDQUFvQzs7SUFDcEMsbUNBQTJCOztJQUMzQiwrQkFBc0I7O0lBQ3RCLG1DQUEwQjs7SUFDMUIsc0NBQTZCOztJQUM3QixnQ0FBd0I7O0lBQ3hCLG9DQUEyQjs7SUFDM0IsbUNBQXdDOztJQUN4Qyx3Q0FBd0U7O0FBaUIxRSxNQUFNLE9BQU8scUJBQXFCOzs7O0lBRWhDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFEOUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7SUFDWSxDQUFDOzs7O0lBQzVDLFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdEM7SUFDTCxDQUFDOzs7WUFWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7OztZQTVDQyxVQUFVOzs7NEJBOENULEtBQUs7Ozs7SUFBTiw4Q0FBK0I7Ozs7O0lBQ25CLHdDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIElCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCc7XHJcbmV4cG9ydCB0eXBlIElCdXR0b25TdHlsZSA9ICdjb21tb24nIHwgJ3ByaW1hcnknIHwgJ3RleHQnIHwgJ3RleHQtZGFyayc7XHJcbmV4cG9ydCB0eXBlIElCdXR0b25TaXplID0gJ2xnJyB8ICdtZCcgfCAnc20nIHwgJ3hzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZC1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogSUJ1dHRvblR5cGUgPSAnYnV0dG9uJztcclxuICBASW5wdXQoKSBic1N0eWxlOiBJQnV0dG9uU3R5bGUgPSAncHJpbWFyeSc7XHJcbiAgQElucHV0KCkgYnNTaXplOiBJQnV0dG9uU2l6ZSA9ICdtZCc7XHJcbiAgQElucHV0KCkgYm9yZGVyZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2hvd0xvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcclxuICBASW5wdXQoKSBhdXRvZm9jdXMgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYnRuQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnYnV0dG9uQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGJ1dHRvbkNvbnRlbnQ6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICAvLyDmlrDlop5jbGlja+S6i+S7tu+8jOino+WGs+ebtOaOpeWcqGhvc3TkuIrkvb/nlKhjbGlja++8jElF5ZyoZGlzYWJsZWTnirbmgIHkuIvov5jog73op6blj5Hkuovku7ZcclxuICBvbkNsaWNrKGV2ZW50KSB7XHJcbiAgICB0aGlzLmJ0bkNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ29udGVudCgpIHtcclxuICAgIHJldHVybiAhIXRoaXMuYnV0dG9uQ29udGVudCAmJiB0aGlzLmJ1dHRvbkNvbnRlbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmJ1dHRvbkNvbnRlbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwudHJpbSgpO1xyXG4gIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZEJ0bkF1dG9mb2N1c10nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnRuQXV0b0ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkQnRuQXV0b2ZvY3VzID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7IH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgICAgaWYgKHRoaXMuZEJ0bkF1dG9mb2N1cykge1xyXG4gICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gIH1cclxufVxyXG4iXX0=