UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

76 lines (72 loc) 3.2 kB
import * as i0 from '@angular/core'; import { inject, Component, ChangeDetectionStrategy, Input } from '@angular/core'; import { tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous'; import { TUI_BUTTON_OPTIONS } from '@taiga-ui/core/components/button'; import { TuiLoader } from '@taiga-ui/core/components/loader'; import { tuiSizeBigger } from '@taiga-ui/core/utils/miscellaneous'; class TuiButtonLoading { constructor() { this.options = inject(TUI_BUTTON_OPTIONS); this.size = this.options.size; this.loading = false; } get loaderSize() { return tuiSizeBigger(this.size) ? 'm' : 's'; } get label() { return tuiIsString(this.loading) ? this.loading : ''; } onClick(event) { if (this.loading) { event.stopPropagation(); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonLoading, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonLoading, isStandalone: true, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: { size: "size", loading: "loading" }, host: { listeners: { "click.capture": "onClick($event)" }, properties: { "attr.aria-disabled": "loading", "class._loading": "loading" } }, ngImport: i0, template: ` <ng-content /> <tui-loader aria-live="polite" role="status" class="t-loader" [inheritColor]="true" [showLoader]="!!loading" [size]="loaderSize" [textContent]="label" /> `, isInline: true, dependencies: [{ kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonLoading, decorators: [{ type: Component, args: [{ standalone: true, selector: '[tuiButton][loading],[tuiIconButton][loading]', imports: [TuiLoader], template: ` <ng-content /> <tui-loader aria-live="polite" role="status" class="t-loader" [inheritColor]="true" [showLoader]="!!loading" [size]="loaderSize" [textContent]="label" /> `, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.aria-disabled]': 'loading', '[class._loading]': 'loading', '(click.capture)': 'onClick($event)', }, }] }], propDecorators: { size: [{ type: Input }], loading: [{ type: Input }] } }); /** * Generated bundle index. Do not edit. */ export { TuiButtonLoading }; //# sourceMappingURL=taiga-ui-kit-components-button-loading.mjs.map