UNPKG

cocori-ng

Version:

Cocori-ng is an Angular full of great components & utilites based on Material

71 lines 11.1 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { TypeButtonEnum } from 'cocori-ng/src/feature-core'; import { Subject, takeUntil } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "cocori-ng/src/feature-core"; import * as i2 from "@angular/common"; import * as i3 from "@angular/material/icon"; import * as i4 from "@angular/material/button"; export class CocoringButtonComponent { constructor(loadingService, cdr) { this.loadingService = loadingService; this.cdr = cdr; this.callback = new EventEmitter(); this.click = new EventEmitter(); this.disabled = false; this.type = TypeButtonEnum.SUBMIT; this.class = 'primary'; this.isLoading = false; this.destroy$ = new Subject(); } set config(config) { if (!config) return; this.text = config.text; this.icon = config.icon; this.class = config.className || this.class; this.iconPosition = config.iconPosition; this.type = config.type; this.onClickSubmit = config.onClickSubmit; } ngOnInit() { this.loadingService.subject.pipe(takeUntil(this.destroy$)).subscribe((isLoading) => { this.isLoading = isLoading; this.cdr.detectChanges(); }); this.callback.emit(this.text); } ngOnDestroy() { this.destroy$.next(undefined); this.destroy$.complete(); } onClick() { if (this.type === TypeButtonEnum.SUBMIT && this.onClickSubmit) { this.onClickSubmit(); } else if (this.type === TypeButtonEnum.BUTTON && this.onClickSubmit) { this.click.emit(); } } } CocoringButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CocoringButtonComponent, deps: [{ token: i1.LoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); CocoringButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: CocoringButtonComponent, selector: "cocoring-button", inputs: { disabled: "disabled", text: "text", type: "type", class: "class", config: "config" }, outputs: { callback: "callback", click: "click" }, ngImport: i0, template: "<button class=\"btn\" mat-raised-button [ngClass]=\"class\" [class.spinner]=\"isLoading\" type=\"{{type}}\"\r\n [disabled]=\"isLoading || disabled\" (click)=\"onClick()\">\r\n <mat-icon *ngIf=\"icon && iconPosition === 'start' \">{{icon}}</mat-icon>\r\n {{text}}\r\n <ng-content></ng-content>\r\n <mat-icon *ngIf=\"icon && iconPosition === 'end'\">{{icon}}</mat-icon>\r\n</button>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: CocoringButtonComponent, decorators: [{ type: Component, args: [{ selector: 'cocoring-button', template: "<button class=\"btn\" mat-raised-button [ngClass]=\"class\" [class.spinner]=\"isLoading\" type=\"{{type}}\"\r\n [disabled]=\"isLoading || disabled\" (click)=\"onClick()\">\r\n <mat-icon *ngIf=\"icon && iconPosition === 'start' \">{{icon}}</mat-icon>\r\n {{text}}\r\n <ng-content></ng-content>\r\n <mat-icon *ngIf=\"icon && iconPosition === 'end'\">{{icon}}</mat-icon>\r\n</button>" }] }], ctorParameters: function () { return [{ type: i1.LoadingService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { callback: [{ type: Output }], click: [{ type: Output }], disabled: [{ type: Input }], text: [{ type: Input }], type: [{ type: Input }], class: [{ type: Input }], config: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29jb3JpbmctYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvY29yaS1uZy9zcmMvZmVhdHVyZS1mb3JtL3NoYXJlZC9jb21wb25lbnQvYnV0dG9uL2NvY29yaW5nLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2Nvcmktbmcvc3JjL2ZlYXR1cmUtZm9ybS9zaGFyZWQvY29tcG9uZW50L2J1dHRvbi9jb2NvcmluZy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBNEQsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU8xQyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JoQyxZQUNZLGNBQThCLEVBQzlCLEdBQXNCO1FBRHRCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpCeEIsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELFVBQUssR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUxRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLFNBQUksR0FBVyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3JDLFVBQUssR0FBVyxTQUFTLENBQUM7UUFHbkMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUlWLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzFDLENBQUM7SUFFRCxJQUNJLE1BQU0sQ0FBQyxNQUE2QjtRQUNwQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFcEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFrQixFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUM1QixDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtTQUN2QjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtTQUNwQjtJQUNMLENBQUM7O29IQXZEUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwwTUNUcEMsNllBTVM7MkZER0ksdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNJLGlCQUFpQjtxSUFLakIsUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBRUUsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFlRixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudElucHV0cywgQnV0dG9uSWNvblBvc2l0b24sIExvYWRpbmdTZXJ2aWNlLCBUeXBlQnV0dG9uRW51bSB9IGZyb20gJ2NvY29yaS1uZy9zcmMvZmVhdHVyZS1jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29jb3JpbmctYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnY29jb3JpbmctYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvY29yaW5nLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2NvcmluZ0J1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBPdXRwdXQoKSBjYWxsYmFjazogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBjbGljazogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gVHlwZUJ1dHRvbkVudW0uU1VCTUlUO1xyXG4gICAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICdwcmltYXJ5JztcclxuXHJcbiAgICBvbkNsaWNrU3VibWl0OiBGdW5jdGlvbjtcclxuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgaWNvblBvc2l0aW9uOiBCdXR0b25JY29uUG9zaXRvbjtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsKSB7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBjb25maWcoY29uZmlnOiBCdXR0b25Db21wb25lbnRJbnB1dHMpIHtcclxuICAgICAgICBpZiAoIWNvbmZpZykgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnRleHQgPSBjb25maWcudGV4dDtcclxuICAgICAgICB0aGlzLmljb24gPSBjb25maWcuaWNvbjtcclxuICAgICAgICB0aGlzLmNsYXNzID0gY29uZmlnLmNsYXNzTmFtZSB8fCB0aGlzLmNsYXNzO1xyXG4gICAgICAgIHRoaXMuaWNvblBvc2l0aW9uID0gY29uZmlnLmljb25Qb3NpdGlvbjtcclxuICAgICAgICB0aGlzLnR5cGUgPSBjb25maWcudHlwZTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2tTdWJtaXQgPSBjb25maWcub25DbGlja1N1Ym1pdDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnN1YmplY3QucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKGlzTG9hZGluZzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGlzTG9hZGluZ1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLmNhbGxiYWNrLmVtaXQodGhpcy50ZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGljaygpIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBUeXBlQnV0dG9uRW51bS5TVUJNSVQgJiYgdGhpcy5vbkNsaWNrU3VibWl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DbGlja1N1Ym1pdCgpXHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFR5cGVCdXR0b25FbnVtLkJVVFRPTiAmJiB0aGlzLm9uQ2xpY2tTdWJtaXQpIHtcclxuICAgICAgICAgICAgdGhpcy5jbGljay5lbWl0KClcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGJ1dHRvbiBjbGFzcz1cImJ0blwiIG1hdC1yYWlzZWQtYnV0dG9uIFtuZ0NsYXNzXT1cImNsYXNzXCIgW2NsYXNzLnNwaW5uZXJdPVwiaXNMb2FkaW5nXCIgdHlwZT1cInt7dHlwZX19XCJcclxuICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcgfHwgZGlzYWJsZWRcIiAoY2xpY2spPVwib25DbGljaygpXCI+XHJcbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uICYmIGljb25Qb3NpdGlvbiA9PT0gJ3N0YXJ0JyBcIj57e2ljb259fTwvbWF0LWljb24+XHJcbiAgICB7e3RleHR9fVxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvbiAmJiBpY29uUG9zaXRpb24gPT09ICdlbmQnXCI+e3tpY29ufX08L21hdC1pY29uPlxyXG48L2J1dHRvbj4iXX0=