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