@taiga-ui/kit
Version:
Taiga UI Angular main components kit
71 lines (67 loc) • 3.38 kB
JavaScript
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