UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

71 lines (67 loc) 3.38 kB
import * as i0 from '@angular/core'; import { inject, input, computed, ChangeDetectionStrategy, Component } 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 = input(this.options.size); this.loading = input(false); this.loaderSize = computed(() => tuiSizeBigger(this.size()) ? 'm' : 's'); this.label = computed(() => { const loading = this.loading(); return tuiIsString(loading) ? loading : ''; }); } onClick(event) { if (this.loading()) { event.preventDefault(); event.stopPropagation(); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiButtonLoading, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.21", type: TuiButtonLoading, isStandalone: true, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, 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" [loading]="!!loading()" [size]="loaderSize()" [textContent]="label()" /> `, isInline: true, dependencies: [{ kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "loading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiButtonLoading, decorators: [{ type: Component, args: [{ selector: '[tuiButton][loading],[tuiIconButton][loading]', imports: [TuiLoader], template: ` <ng-content /> <tui-loader aria-live="polite" role="status" class="t-loader" [inheritColor]="true" [loading]="!!loading()" [size]="loaderSize()" [textContent]="label()" /> `, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.aria-disabled]': 'loading()', '[class._loading]': 'loading()', '(click.capture)': 'onClick($event)', }, }] }] }); /** * Generated bundle index. Do not edit. */ export { TuiButtonLoading }; //# sourceMappingURL=taiga-ui-kit-components-button-loading.mjs.map