UNPKG

@js-sugar/angular-bootstrap

Version:

JS-Sugar Bootstrap components for Angular

69 lines 10.8 kB
import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { Input, Directive, HostListener, Output, EventEmitter } from '@angular/core'; import * as i0 from "@angular/core"; export class ButtonDirective { constructor(_element, _renderer) { this._element = _element; this._renderer = _renderer; this._disabled = false; this.size = 'default'; this.kind = 'primary'; this.safeClick = new EventEmitter(); } get disabled() { return this._disabled; } set disabled(value) { this._disabled = coerceBooleanProperty(value); } ngOnInit() { this._renderer.addClass(this._element.nativeElement, 'btn'); } _onClick(e) { if (!this.disabled) { this.safeClick.emit(e); } } } ButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ButtonDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); ButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: ButtonDirective, selector: "button[jssButton], a[jssButton], input[jssButton]", inputs: { size: "size", kind: "kind" }, outputs: { safeClick: "safeClick" }, host: { listeners: { "click": "_onClick($event)" }, properties: { "class.disabled": "disabled", "class.btn-primary": "!outline && kind==\"primary\"", "class.btn-secondary": "!outline && kind==\"secondary\"", "class.btn-success": "!outline && kind==\"success\"", "class.btn-danger": "!outline && kind==\"danger\"", "class.btn-warning": "!outline && kind==\"warning\"", "class.btn-info": "!outline && kind==\"info\"", "class.btn-light": "!outline && kind==\"light\"", "class.btn-dark": "!outline && kind==\"dark\"", "class.btn-link": "kind==\"link\"", "class.btn-outline-primary": "outline && kind==\"primary\"", "class.btn-outline-secondary": "outline && kind==\"secondary\"", "class.btn-outline-success": "outline && kind==\"success\"", "class.btn-outline-danger": "outline && kind==\"danger\"", "class.btn-outline-warning": "outline && kind==\"warning\"", "class.btn-outline-info": "outline && kind==\"info\"", "class.btn-outline-light": "outline && kind==\"light\"", "class.btn-outline-dark": "outline && kind==\"dark\"", "class.btn-sm": "size==\"small\"", "class.btn-lg": "size==\"large\"", "prop.disabled": "disabled", "attr.aria-disabled": "disabled", "attr.tabindex": "disabled ? \"-1\" : \"\" " } }, exportAs: ["jssButton"], ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ButtonDirective, decorators: [{ type: Directive, args: [{ selector: 'button[jssButton], a[jssButton], input[jssButton]', exportAs: 'jssButton', host: { '[class.disabled]': 'disabled', '[class.btn-primary]': '!outline && kind=="primary"', '[class.btn-secondary]': '!outline && kind=="secondary"', '[class.btn-success]': '!outline && kind=="success"', '[class.btn-danger]': '!outline && kind=="danger"', '[class.btn-warning]': '!outline && kind=="warning"', '[class.btn-info]': '!outline && kind=="info"', '[class.btn-light]': '!outline && kind=="light"', '[class.btn-dark]': '!outline && kind=="dark"', '[class.btn-link]': 'kind=="link"', '[class.btn-outline-primary]': 'outline && kind=="primary"', '[class.btn-outline-secondary]': 'outline && kind=="secondary"', '[class.btn-outline-success]': 'outline && kind=="success"', '[class.btn-outline-danger]': 'outline && kind=="danger"', '[class.btn-outline-warning]': 'outline && kind=="warning"', '[class.btn-outline-info]': 'outline && kind=="info"', '[class.btn-outline-light]': 'outline && kind=="light"', '[class.btn-outline-dark]': 'outline && kind=="dark"', '[class.btn-sm]': 'size=="small"', '[class.btn-lg]': 'size=="large"', '[prop.disabled]': 'disabled', '[attr.aria-disabled]': 'disabled', '[attr.tabindex]': 'disabled ? "-1" : "" ', } }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { size: [{ type: Input }], kind: [{ type: Input }], safeClick: [{ type: Output }], _onClick: [{ type: HostListener, args: ['click', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYm9vdHN0cmFwL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWlDLE1BQU0sZUFBZSxDQUFDOztBQW9DcEgsTUFBTSxPQUFPLGVBQWU7SUFXMUIsWUFBb0IsUUFBb0IsRUFBVSxTQUFvQjtRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVY5RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBTWpCLFNBQUksR0FBZSxTQUFTLENBQUM7UUFDN0IsU0FBSSxHQUFlLFNBQVMsQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUdyRCxDQUFDO0lBVEQsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6QyxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFRRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUUwQyxRQUFRLENBQUMsQ0FBYTtRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7OzRHQXRCVSxlQUFlO2dHQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFqQzNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1EQUFtRDtvQkFDN0QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxVQUFVO3dCQUU5QixxQkFBcUIsRUFBRSw2QkFBNkI7d0JBQ3BELHVCQUF1QixFQUFFLCtCQUErQjt3QkFDeEQscUJBQXFCLEVBQUUsNkJBQTZCO3dCQUNwRCxvQkFBb0IsRUFBRSw0QkFBNEI7d0JBQ2xELHFCQUFxQixFQUFFLDZCQUE2Qjt3QkFDcEQsa0JBQWtCLEVBQUUsMEJBQTBCO3dCQUM5QyxtQkFBbUIsRUFBRSwyQkFBMkI7d0JBQ2hELGtCQUFrQixFQUFFLDBCQUEwQjt3QkFDOUMsa0JBQWtCLEVBQUUsY0FBYzt3QkFFbEMsNkJBQTZCLEVBQUUsNEJBQTRCO3dCQUMzRCwrQkFBK0IsRUFBRSw4QkFBOEI7d0JBQy9ELDZCQUE2QixFQUFFLDRCQUE0Qjt3QkFDM0QsNEJBQTRCLEVBQUUsMkJBQTJCO3dCQUN6RCw2QkFBNkIsRUFBRSw0QkFBNEI7d0JBQzNELDBCQUEwQixFQUFFLHlCQUF5Qjt3QkFDckQsMkJBQTJCLEVBQUUsMEJBQTBCO3dCQUN2RCwwQkFBMEIsRUFBRSx5QkFBeUI7d0JBRXJELGdCQUFnQixFQUFFLGVBQWU7d0JBQ2pDLGdCQUFnQixFQUFFLGVBQWU7d0JBRWpDLGlCQUFpQixFQUFFLFVBQVU7d0JBQzdCLHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLGlCQUFpQixFQUFFLHVCQUF1QjtxQkFDM0M7aUJBQ0Y7eUhBUVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQVNvQyxRQUFRO3NCQUFsRCxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uU2l6ZSwgQnV0dG9uS2luZCB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdidXR0b25banNzQnV0dG9uXSwgYVtqc3NCdXR0b25dLCBpbnB1dFtqc3NCdXR0b25dJyxcclxuICBleHBvcnRBczogJ2pzc0J1dHRvbicsXHJcbiAgaG9zdDoge1xyXG4gICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxyXG5cclxuICAgICdbY2xhc3MuYnRuLXByaW1hcnldJzogJyFvdXRsaW5lICYmIGtpbmQ9PVwicHJpbWFyeVwiJyxcclxuICAgICdbY2xhc3MuYnRuLXNlY29uZGFyeV0nOiAnIW91dGxpbmUgJiYga2luZD09XCJzZWNvbmRhcnlcIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1zdWNjZXNzXSc6ICchb3V0bGluZSAmJiBraW5kPT1cInN1Y2Nlc3NcIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1kYW5nZXJdJzogJyFvdXRsaW5lICYmIGtpbmQ9PVwiZGFuZ2VyXCInLFxyXG4gICAgJ1tjbGFzcy5idG4td2FybmluZ10nOiAnIW91dGxpbmUgJiYga2luZD09XCJ3YXJuaW5nXCInLFxyXG4gICAgJ1tjbGFzcy5idG4taW5mb10nOiAnIW91dGxpbmUgJiYga2luZD09XCJpbmZvXCInLFxyXG4gICAgJ1tjbGFzcy5idG4tbGlnaHRdJzogJyFvdXRsaW5lICYmIGtpbmQ9PVwibGlnaHRcIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1kYXJrXSc6ICchb3V0bGluZSAmJiBraW5kPT1cImRhcmtcIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1saW5rXSc6ICdraW5kPT1cImxpbmtcIicsXHJcblxyXG4gICAgJ1tjbGFzcy5idG4tb3V0bGluZS1wcmltYXJ5XSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwicHJpbWFyeVwiJyxcclxuICAgICdbY2xhc3MuYnRuLW91dGxpbmUtc2Vjb25kYXJ5XSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwic2Vjb25kYXJ5XCInLFxyXG4gICAgJ1tjbGFzcy5idG4tb3V0bGluZS1zdWNjZXNzXSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwic3VjY2Vzc1wiJyxcclxuICAgICdbY2xhc3MuYnRuLW91dGxpbmUtZGFuZ2VyXSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwiZGFuZ2VyXCInLFxyXG4gICAgJ1tjbGFzcy5idG4tb3V0bGluZS13YXJuaW5nXSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwid2FybmluZ1wiJyxcclxuICAgICdbY2xhc3MuYnRuLW91dGxpbmUtaW5mb10nOiAnb3V0bGluZSAmJiBraW5kPT1cImluZm9cIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1vdXRsaW5lLWxpZ2h0XSc6ICdvdXRsaW5lICYmIGtpbmQ9PVwibGlnaHRcIicsXHJcbiAgICAnW2NsYXNzLmJ0bi1vdXRsaW5lLWRhcmtdJzogJ291dGxpbmUgJiYga2luZD09XCJkYXJrXCInLFxyXG5cclxuICAgICdbY2xhc3MuYnRuLXNtXSc6ICdzaXplPT1cInNtYWxsXCInLFxyXG4gICAgJ1tjbGFzcy5idG4tbGddJzogJ3NpemU9PVwibGFyZ2VcIicsXHJcblxyXG4gICAgJ1twcm9wLmRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXHJcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxyXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdkaXNhYmxlZCA/IFwiLTFcIiA6IFwiXCIgJyxcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIGdldCBkaXNhYmxlZCgpIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogQnV0dG9uU2l6ZSA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBraW5kOiBCdXR0b25LaW5kID0gJ3ByaW1hcnknO1xyXG4gIEBPdXRwdXQoKSBzYWZlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnYnRuJyk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIHByaXZhdGUgX29uQ2xpY2soZTogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuc2FmZUNsaWNrLmVtaXQoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==