@taiga-ui/kit
Version:
Taiga UI Angular main components kit
70 lines • 7.21 kB
JavaScript
import { ChangeDetectionStrategy, Component, inject, 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';
import * as i0 from "@angular/core";
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.preventDefault();
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 }); }
}
export { TuiButtonLoading };
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
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWxvYWRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvYnV0dG9uLWxvYWRpbmcvYnV0dG9uLWxvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTNELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFFakUsTUF1QmEsZ0JBQWdCO0lBdkI3QjtRQXdCcUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRy9DLFNBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUd6QixZQUFPLEdBQTRCLEtBQUssQ0FBQztLQWdCbkQ7SUFkRyxJQUFjLFVBQVU7UUFDcEIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBYyxLQUFLO1FBQ2YsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFpQjtRQUMvQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzsrR0F0QlEsZ0JBQWdCO21HQUFoQixnQkFBZ0Isa1NBbkJmOzs7Ozs7Ozs7OztLQVdULDREQVpTLFNBQVM7O1NBb0JWLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQXZCNUIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUNwQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLElBQUksRUFBRTt3QkFDRixzQkFBc0IsRUFBRSxTQUFTO3dCQUNqQyxrQkFBa0IsRUFBRSxTQUFTO3dCQUM3QixpQkFBaUIsRUFBRSxpQkFBaUI7cUJBQ3ZDO2lCQUNKOzhCQUtVLElBQUk7c0JBRFYsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlJc1N0cmluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX0JVVFRPTl9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1R1aUxvYWRlcn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9sb2FkZXInO1xuaW1wb3J0IHt0eXBlIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge3R1aVNpemVCaWdnZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUJ1dHRvbl1bbG9hZGluZ10sW3R1aUljb25CdXR0b25dW2xvYWRpbmddJyxcbiAgICBpbXBvcnRzOiBbVHVpTG9hZGVyXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8dHVpLWxvYWRlclxuICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWxvYWRlclwiXG4gICAgICAgICAgICBbaW5oZXJpdENvbG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISFsb2FkaW5nXCJcbiAgICAgICAgICAgIFtzaXplXT1cImxvYWRlclNpemVcIlxuICAgICAgICAgICAgW3RleHRDb250ZW50XT1cImxhYmVsXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2xvYWRpbmcnLFxuICAgICAgICAnW2NsYXNzLl9sb2FkaW5nXSc6ICdsb2FkaW5nJyxcbiAgICAgICAgJyhjbGljay5jYXB0dXJlKSc6ICdvbkNsaWNrKCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJ1dHRvbkxvYWRpbmcge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfQlVUVE9OX09QVElPTlMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZSA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBnZXQgbG9hZGVyU2l6ZSgpOiBUdWlTaXplUyB7XG4gICAgICAgIHJldHVybiB0dWlTaXplQmlnZ2VyKHRoaXMuc2l6ZSkgPyAnbScgOiAncyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdHVpSXNTdHJpbmcodGhpcy5sb2FkaW5nKSA/IHRoaXMubG9hZGluZyA6ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==