@taiga-ui/kit 4.63.0 → 4.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,9 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@taiga-ui/core/directives/dropdown";
5
5
  import * as i2 from "@taiga-ui/cdk/directives/native-validator";
6
6
  import * as i3 from "@taiga-ui/core/components/textfield";
7
- export declare class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {
7
+ export declare class TuiButtonSelect<T> extends TuiControl<T | T[]> implements TuiDataListHost<T> {
8
8
  private readonly open;
9
+ private readonly handlers;
9
10
  readonly size = "s";
10
11
  handleOption(option: T): void;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiButtonSelect<any>, never>;
@@ -18,13 +18,13 @@ class TuiConfirm {
18
18
  return this.isMobile ? 'secondary' : 'flat';
19
19
  }
20
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
23
  export { TuiConfirm };
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, decorators: [{
25
25
  type: Component,
26
- args: [{ standalone: true, selector: 'tui-confirm', imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"] }]
26
+ args: [{ standalone: true, selector: 'tui-confirm', imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"] }]
27
27
  }] });
28
28
  export const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);
29
29
  export const TUI_CONFIRM_DIALOG = tuiCreateToken(TUI_CONFIRM);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY29uZmlybS9jb25maXJtLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYixxQkFBcUIsRUFFckIsa0JBQWtCLEdBQ3JCLE1BQU0sd0JBQXdCLENBQUM7O0FBU2hDLDhCQUE4QjtBQUM5QixNQVFhLFVBQVU7SUFSdkI7UUFTcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsWUFBTyxHQUNuQixhQUFhLEVBQXlELENBQUM7S0FLOUU7SUFIRyxJQUFjLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDOytHQVRRLFVBQVU7bUdBQVYsVUFBVSx1RUMvQnZCLHN3QkErQkEsNG9CRExjLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxrQkFBa0IsOEhBQUUsWUFBWSxxRkFBRSxTQUFTOztTQUs3RCxVQUFVOzRGQUFWLFVBQVU7a0JBUnRCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGFBQWEsV0FDZCxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxtQkFHdEQsdUJBQXVCLENBQUMsTUFBTTs7QUFjbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzNCLGNBQWMsQ0FBMEQsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQXV0b0ZvY3VzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHt0eXBlIFR1aURpYWxvZ0NvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7VFVJX0NPTkZJUk1fV09SRFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgaW5qZWN0Q29udGV4dCxcbiAgICBQb2x5bW9ycGhldXNDb21wb25lbnQsXG4gICAgdHlwZSBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgIFBvbHltb3JwaGV1c091dGxldCxcbn0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQ29uZmlybURhdGEge1xuICAgIHJlYWRvbmx5IGNvbnRlbnQ/OiBQb2x5bW9ycGhldXNDb250ZW50O1xuICAgIHJlYWRvbmx5IG5vPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHllcz86IHN0cmluZztcbiAgICByZWFkb25seSBhcHBlYXJhbmNlPzogc3RyaW5nO1xufVxuXG4vLyBUT0RPOiBSZW1vdmUgc2VsZWN0b3IgaW4gdjVcbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktY29uZmlybScsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlBdXRvRm9jdXMsIFR1aUJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNvbmZpcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdvcmRzJCA9IGluamVjdChUVUlfQ09ORklSTV9XT1JEUyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dCA9XG4gICAgICAgIGluamVjdENvbnRleHQ8VHVpRGlhbG9nQ29udGV4dDxib29sZWFuLCBUdWlDb25maXJtRGF0YSB8IHVuZGVmaW5lZD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFwcGVhcmFuY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAnc2Vjb25kYXJ5JyA6ICdmbGF0JztcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBUVUlfQ09ORklSTSA9IG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQoVHVpQ29uZmlybSk7XG5leHBvcnQgY29uc3QgVFVJX0NPTkZJUk1fRElBTE9HID1cbiAgICB0dWlDcmVhdGVUb2tlbjxQb2x5bW9ycGhldXNDb250ZW50PFR1aURpYWxvZ0NvbnRleHQ8Ym9vbGVhbiwgdW5rbm93bj4+PihUVUlfQ09ORklSTSk7XG4iLCI8cFxuICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmRhdGE/LmNvbnRlbnQgYXMgdGV4dFwiXG4gICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgIFtpbm5lckhUTUxdPVwidGV4dFwiXG4+PC9wPlxuPGZvb3RlclxuICAgICpuZ0lmPVwid29yZHMkIHwgYXN5bmMgYXMgd29yZHNcIlxuICAgIGNsYXNzPVwidC1idXR0b25zXCJcbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgIChjbGljayk9XCJjb250ZXh0LmNvbXBsZXRlV2l0aChmYWxzZSlcIlxuICAgID5cbiAgICAgICAge3sgY29udGV4dC5kYXRhPy5ubyB8fCB3b3Jkcy5ubyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICB0dWlBdXRvRm9jdXNcbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiY29udGV4dC5kYXRhPy5hcHBlYXJhbmNlIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIChjbGljayk9XCJjb250ZXh0LmNvbXBsZXRlV2l0aCh0cnVlKVwiXG4gICAgPlxuICAgICAgICB7eyBjb250ZXh0LmRhdGE/LnllcyB8fCB3b3Jkcy55ZXMgfX1cbiAgICA8L2J1dHRvbj5cbjwvZm9vdGVyPlxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvY29uZmlybS9jb25maXJtLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYixxQkFBcUIsRUFFckIsa0JBQWtCLEdBQ3JCLE1BQU0sd0JBQXdCLENBQUM7O0FBU2hDLDhCQUE4QjtBQUM5QixNQVFhLFVBQVU7SUFSdkI7UUFTcUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsWUFBTyxHQUNuQixhQUFhLEVBQXlELENBQUM7S0FLOUU7SUFIRyxJQUFjLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoRCxDQUFDOytHQVRRLFVBQVU7bUdBQVYsVUFBVSx1RUMvQnZCLHd4QkErQkEsNG9CRExjLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxrQkFBa0IsOEhBQUUsWUFBWSxxRkFBRSxTQUFTOztTQUs3RCxVQUFVOzRGQUFWLFVBQVU7a0JBUnRCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGFBQWEsV0FDZCxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxtQkFHdEQsdUJBQXVCLENBQUMsTUFBTTs7QUFjbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQzNCLGNBQWMsQ0FBMEQsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQXV0b0ZvY3VzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cyc7XG5pbXBvcnQge1RVSV9JU19NT0JJTEV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHt0eXBlIFR1aURpYWxvZ0NvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7VFVJX0NPTkZJUk1fV09SRFN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgaW5qZWN0Q29udGV4dCxcbiAgICBQb2x5bW9ycGhldXNDb21wb25lbnQsXG4gICAgdHlwZSBQb2x5bW9ycGhldXNDb250ZW50LFxuICAgIFBvbHltb3JwaGV1c091dGxldCxcbn0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQ29uZmlybURhdGEge1xuICAgIHJlYWRvbmx5IGNvbnRlbnQ/OiBQb2x5bW9ycGhldXNDb250ZW50O1xuICAgIHJlYWRvbmx5IG5vPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHllcz86IHN0cmluZztcbiAgICByZWFkb25seSBhcHBlYXJhbmNlPzogc3RyaW5nO1xufVxuXG4vLyBUT0RPOiBSZW1vdmUgc2VsZWN0b3IgaW4gdjVcbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktY29uZmlybScsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgUG9seW1vcnBoZXVzT3V0bGV0LCBUdWlBdXRvRm9jdXMsIFR1aUJ1dHRvbl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0udGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUNvbmZpcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdvcmRzJCA9IGluamVjdChUVUlfQ09ORklSTV9XT1JEUyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dCA9XG4gICAgICAgIGluamVjdENvbnRleHQ8VHVpRGlhbG9nQ29udGV4dDxib29sZWFuLCBUdWlDb25maXJtRGF0YSB8IHVuZGVmaW5lZD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFwcGVhcmFuY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAnc2Vjb25kYXJ5JyA6ICdmbGF0JztcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBUVUlfQ09ORklSTSA9IG5ldyBQb2x5bW9ycGhldXNDb21wb25lbnQoVHVpQ29uZmlybSk7XG5leHBvcnQgY29uc3QgVFVJX0NPTkZJUk1fRElBTE9HID1cbiAgICB0dWlDcmVhdGVUb2tlbjxQb2x5bW9ycGhldXNDb250ZW50PFR1aURpYWxvZ0NvbnRleHQ8Ym9vbGVhbiwgdW5rbm93bj4+PihUVUlfQ09ORklSTSk7XG4iLCI8cFxuICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmRhdGE/LmNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogY29udGV4dFwiXG4gICAgY2xhc3M9XCJ0LWNvbnRlbnRcIlxuICAgIFtpbm5lckhUTUxdPVwidGV4dFwiXG4+PC9wPlxuPGZvb3RlclxuICAgICpuZ0lmPVwid29yZHMkIHwgYXN5bmMgYXMgd29yZHNcIlxuICAgIGNsYXNzPVwidC1idXR0b25zXCJcbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgICAgIChjbGljayk9XCJjb250ZXh0LmNvbXBsZXRlV2l0aChmYWxzZSlcIlxuICAgID5cbiAgICAgICAge3sgY29udGV4dC5kYXRhPy5ubyB8fCB3b3Jkcy5ubyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICB0dWlBdXRvRm9jdXNcbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgW2FwcGVhcmFuY2VdPVwiY29udGV4dC5kYXRhPy5hcHBlYXJhbmNlIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIChjbGljayk9XCJjb250ZXh0LmNvbXBsZXRlV2l0aCh0cnVlKVwiXG4gICAgPlxuICAgICAgICB7eyBjb250ZXh0LmRhdGE/LnllcyB8fCB3b3Jkcy55ZXMgfX1cbiAgICA8L2J1dHRvbj5cbjwvZm9vdGVyPlxuIl19
@@ -36,13 +36,14 @@ class TuiMultiSelectNative {
36
36
  this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));
37
37
  }
38
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: "items", labels: "labels", placeholder: "placeholder" }, host: { attributes: { "multiple": "" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }, { directive: i2.TuiSelectLike }], ngImport: i0, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "component", type: i3.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["labels"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: "items", labels: "labels", placeholder: "placeholder" }, host: { attributes: { "multiple": "", "size": "1" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }, { directive: i2.TuiSelectLike }], ngImport: i0, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "component", type: i3.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["labels"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
40
  }
41
41
  export { TuiMultiSelectNative };
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectNative, decorators: [{
43
43
  type: Component,
44
44
  args: [{ standalone: true, selector: 'select[tuiMultiSelect]', imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [TuiInputChipDirective, TuiSelectLike], host: {
45
45
  multiple: '',
46
+ size: '1',
46
47
  '(click.stop.zoneless)': '0',
47
48
  '(input)': 'onInput()',
48
49
  }, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n" }]
@@ -53,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
53
54
  }], placeholder: [{
54
55
  type: Input
55
56
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS9tdWx0aS1zZWxlY3QtbmF0aXZlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtbmF0aXZlL211bHRpLXNlbGVjdC1uYXRpdmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxjQUFjLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLHFCQUFxQixHQUN4QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDSCxrQkFBa0IsR0FFckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBRTFGLE1BY2Esb0JBQW9CO0lBZGpDO1FBZXFCLFlBQU8sR0FBNkIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELGNBQVMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV4QyxXQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ25CLGFBQVEsR0FBd0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsT0FBRSxHQUFHLGdCQUFnQixFQUFxQixDQUFDO1FBQzNDLFdBQU0sR0FDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0QsZUFBVSxHQUFHLFFBQVEsQ0FDcEMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQzdCLENBQUMsQ0FBSSxFQUFFLEVBQUUsQ0FDTCxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ25CLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3pFLENBQUM7UUFHSyxVQUFLLEdBQXNELEVBQUUsQ0FBQztRQUc5RCxXQUFNLEdBQXNCLEVBQUUsQ0FBQztLQWF6QztJQVhHLElBQ1csV0FBVyxDQUFDLFdBQW1CO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUM5QyxDQUFDO0lBRVMsT0FBTztRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7K0dBakNRLG9CQUFvQjttR0FBcEIsb0JBQW9CLDBQQVJsQixDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUMsc0hDM0J6RCxtcUNBeUNBLDRDRGpCYyxPQUFPLG1IQUFFLElBQUksNkZBQUUsZ0JBQWdCOztTQVdoQyxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFkaEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sd0JBQXdCLFdBQ3pCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUMsbUJBRTNELHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGtCQUNyQyxDQUFDLHFCQUFxQixFQUFFLGFBQWEsQ0FBQyxRQUNoRDt3QkFDRixRQUFRLEVBQUUsRUFBRTt3QkFDWix1QkFBdUIsRUFBRSxHQUFHO3dCQUM1QixTQUFTLEVBQUUsV0FBVztxQkFDekI7OEJBb0JNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUssV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfSVNfQU5EUk9JRCwgVFVJX0lTX0lPU30gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50LCB0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuaW1wb3J0IHt0dWlBc09wdGlvbkNvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7XG4gICAgVHVpU2VsZWN0TGlrZSxcbiAgICBUdWlUZXh0ZmllbGQsXG4gICAgVHVpVGV4dGZpZWxkQ29tcG9uZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgICB0eXBlIFR1aUl0ZW1zSGFuZGxlcnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUdWlEYXRhTGlzdFdyYXBwZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9kYXRhLWxpc3Qtd3JhcHBlcic7XG5pbXBvcnQge1R1aUlucHV0Q2hpcERpcmVjdGl2ZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2lucHV0LWNoaXAnO1xuaW1wb3J0IHt0dWlJc0ZsYXR9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMnO1xuXG5pbXBvcnQge1R1aU11bHRpU2VsZWN0T3B0aW9ufSBmcm9tICcuLi9tdWx0aS1zZWxlY3Qtb3B0aW9uL211bHRpLXNlbGVjdC1vcHRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NlbGVjdFt0dWlNdWx0aVNlbGVjdF0nLFxuICAgIGltcG9ydHM6IFtOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBUdWlEYXRhTGlzdFdyYXBwZXIsIFR1aVRleHRmaWVsZF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL211bHRpLXNlbGVjdC1uYXRpdmUudGVtcGxhdGUuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbdHVpQXNPcHRpb25Db250ZW50KFR1aU11bHRpU2VsZWN0T3B0aW9uKV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlJbnB1dENoaXBEaXJlY3RpdmUsIFR1aVNlbGVjdExpa2VdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgbXVsdGlwbGU6ICcnLFxuICAgICAgICAnKGNsaWNrLnN0b3Auem9uZWxlc3MpJzogJzAnLFxuICAgICAgICAnKGlucHV0KSc6ICdvbklucHV0KCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aU11bHRpU2VsZWN0TmF0aXZlPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2w6IFR1aUNvbnRyb2w8cmVhZG9ubHkgVFtdPiA9IGluamVjdChUdWlDb250cm9sKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUdWlUZXh0ZmllbGRDb21wb25lbnQpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRmxhdCA9IHR1aUlzRmxhdDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxTZWxlY3RFbGVtZW50PigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2JpbGUgPVxuICAgICAgICBpbmplY3QoVFVJX0lTX0lPUykgfHwgKGluamVjdChUVUlfSVNfQU5EUk9JRCkgJiYgJ3Nob3dQaWNrZXInIGluIHRoaXMuZWwpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU2VsZWN0ZWQgPSBjb21wdXRlZChcbiAgICAgICAgKHZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlKCkpID0+XG4gICAgICAgICAgICAoeDogVCkgPT5cbiAgICAgICAgICAgICAgICB0dWlJc1ByZXNlbnQodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuc29tZSgoaXRlbSkgPT4gdGhpcy5oYW5kbGVycy5pZGVudGl0eU1hdGNoZXIoKSh4LCBpdGVtKSksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbHM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRleHRmaWVsZC5maWxsZXJTZXR0ZXIgPSBwbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zIHx8IFtdO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLmVsLnNlbGVjdGVkT3B0aW9ucykubWFwKCh7aW5kZXh9KSA9PiBpbmRleCk7XG5cbiAgICAgICAgdGhpcy50ZXh0ZmllbGQuY3ZhPy5vbkNoYW5nZShpdGVtcy5mbGF0KCkuZmlsdGVyKChfLCBpKSA9PiBvcHRpb25zLmluY2x1ZGVzKGkpKSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zICYmICFpc0ZsYXQoaXRlbXMpOyBlbHNlIGZsYXRJdGVtc1wiPlxuICAgIDxvcHRncm91cFxuICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbGFiZWxzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbHNbaW5kZXhdXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zOyBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtc1tpbmRleF19XCIgLz5cbiAgICA8L29wdGdyb3VwPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgW2xhYmVsc109XCJsYWJlbHNcIlxuICAgICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZmxhdEl0ZW1zPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zOyBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtc31cIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICBbaXRlbXNdPVwiJGFueShpdGVtcylcIlxuICAgICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI29wdGlvbnNcbiAgICBsZXQtaXRlbXNcbj5cbiAgICA8b3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbXNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaGFuZGxlcnMuZGlzYWJsZWRJdGVtSGFuZGxlcigpKG9wdGlvbilcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZCgpKG9wdGlvbilcIlxuICAgICAgICBbdmFsdWVdPVwiaGFuZGxlcnMuc3RyaW5naWZ5KCkob3B0aW9uKVwiXG4gICAgPlxuICAgICAgICB7eyBoYW5kbGVycy5zdHJpbmdpZnkoKShvcHRpb24pIH19XG4gICAgPC9vcHRpb24+XG48L25nLXRlbXBsYXRlPlxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LW5hdGl2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LW5hdGl2ZS9tdWx0aS1zZWxlY3QtbmF0aXZlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QtbmF0aXZlL211bHRpLXNlbGVjdC1uYXRpdmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxjQUFjLEVBQUUsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCxhQUFhLEVBQ2IsWUFBWSxFQUNaLHFCQUFxQixHQUN4QixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFDSCxrQkFBa0IsR0FFckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBRTFGLE1BZWEsb0JBQW9CO0lBZmpDO1FBZ0JxQixZQUFPLEdBQTZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFeEMsV0FBTSxHQUFHLFNBQVMsQ0FBQztRQUNuQixhQUFRLEdBQXdCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNELE9BQUUsR0FBRyxnQkFBZ0IsRUFBcUIsQ0FBQztRQUMzQyxXQUFNLEdBQ3JCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNELGVBQVUsR0FBRyxRQUFRLENBQ3BDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUM3QixDQUFDLENBQUksRUFBRSxFQUFFLENBQ0wsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUN6RSxDQUFDO1FBR0ssVUFBSyxHQUFzRCxFQUFFLENBQUM7UUFHOUQsV0FBTSxHQUFzQixFQUFFLENBQUM7S0FhekM7SUFYRyxJQUNXLFdBQVcsQ0FBQyxXQUFtQjtRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVTLE9BQU87UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDOytHQWpDUSxvQkFBb0I7bUdBQXBCLG9CQUFvQix1UUFUbEIsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLHNIQzNCekQsbXFDQXlDQSw0Q0RqQmMsT0FBTyxtSEFBRSxJQUFJLDZGQUFFLGdCQUFnQjs7U0FZaEMsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBZmhDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHdCQUF3QixXQUN6QixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLG1CQUUzRCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxrQkFDckMsQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsUUFDaEQ7d0JBQ0YsUUFBUSxFQUFFLEVBQUU7d0JBQ1osSUFBSSxFQUFFLEdBQUc7d0JBQ1QsdUJBQXVCLEVBQUUsR0FBRzt3QkFDNUIsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCOzhCQW9CTSxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlLLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX0lTX0FORFJPSUQsIFRVSV9JU19JT1N9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudCwgdHVpSXNQcmVzZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcbmltcG9ydCB7dHVpQXNPcHRpb25Db250ZW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1xuICAgIFR1aVNlbGVjdExpa2UsXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIFR1aVRleHRmaWVsZENvbXBvbmVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUVUlfSVRFTVNfSEFORExFUlMsXG4gICAgdHlwZSBUdWlJdGVtc0hhbmRsZXJzLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VHVpRGF0YUxpc3RXcmFwcGVyfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvZGF0YS1saXN0LXdyYXBwZXInO1xuaW1wb3J0IHtUdWlJbnB1dENoaXBEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1jaGlwJztcbmltcG9ydCB7dHVpSXNGbGF0fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuaW1wb3J0IHtUdWlNdWx0aVNlbGVjdE9wdGlvbn0gZnJvbSAnLi4vbXVsdGktc2VsZWN0LW9wdGlvbi9tdWx0aS1zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzZWxlY3RbdHVpTXVsdGlTZWxlY3RdJyxcbiAgICBpbXBvcnRzOiBbTmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgVHVpRGF0YUxpc3RXcmFwcGVyLCBUdWlUZXh0ZmllbGRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtbmF0aXZlLnRlbXBsYXRlLmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW3R1aUFzT3B0aW9uQ29udGVudChUdWlNdWx0aVNlbGVjdE9wdGlvbildLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpSW5wdXRDaGlwRGlyZWN0aXZlLCBUdWlTZWxlY3RMaWtlXSxcbiAgICBob3N0OiB7XG4gICAgICAgIG11bHRpcGxlOiAnJyxcbiAgICAgICAgc2l6ZTogJzEnLFxuICAgICAgICAnKGNsaWNrLnN0b3Auem9uZWxlc3MpJzogJzAnLFxuICAgICAgICAnKGlucHV0KSc6ICdvbklucHV0KCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aU11bHRpU2VsZWN0TmF0aXZlPFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2w6IFR1aUNvbnRyb2w8cmVhZG9ubHkgVFtdPiA9IGluamVjdChUdWlDb250cm9sKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUdWlUZXh0ZmllbGRDb21wb25lbnQpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRmxhdCA9IHR1aUlzRmxhdDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50PEhUTUxTZWxlY3RFbGVtZW50PigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtb2JpbGUgPVxuICAgICAgICBpbmplY3QoVFVJX0lTX0lPUykgfHwgKGluamVjdChUVUlfSVNfQU5EUk9JRCkgJiYgJ3Nob3dQaWNrZXInIGluIHRoaXMuZWwpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU2VsZWN0ZWQgPSBjb21wdXRlZChcbiAgICAgICAgKHZhbHVlID0gdGhpcy5jb250cm9sLnZhbHVlKCkpID0+XG4gICAgICAgICAgICAoeDogVCkgPT5cbiAgICAgICAgICAgICAgICB0dWlJc1ByZXNlbnQodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuc29tZSgoaXRlbSkgPT4gdGhpcy5oYW5kbGVycy5pZGVudGl0eU1hdGNoZXIoKSh4LCBpdGVtKSksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbHM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRleHRmaWVsZC5maWxsZXJTZXR0ZXIgPSBwbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zIHx8IFtdO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gQXJyYXkuZnJvbSh0aGlzLmVsLnNlbGVjdGVkT3B0aW9ucykubWFwKCh7aW5kZXh9KSA9PiBpbmRleCk7XG5cbiAgICAgICAgdGhpcy50ZXh0ZmllbGQuY3ZhPy5vbkNoYW5nZShpdGVtcy5mbGF0KCkuZmlsdGVyKChfLCBpKSA9PiBvcHRpb25zLmluY2x1ZGVzKGkpKSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zICYmICFpc0ZsYXQoaXRlbXMpOyBlbHNlIGZsYXRJdGVtc1wiPlxuICAgIDxvcHRncm91cFxuICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgbGFiZWxzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbHNbaW5kZXhdXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zOyBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtc1tpbmRleF19XCIgLz5cbiAgICA8L29wdGdyb3VwPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgW2xhYmVsc109XCJsYWJlbHNcIlxuICAgICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZmxhdEl0ZW1zPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zOyBjb250ZXh0OiB7JGltcGxpY2l0OiBpdGVtc31cIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbW9iaWxlXCI+XG4gICAgICAgIDx0dWktZGF0YS1saXN0LXdyYXBwZXJcbiAgICAgICAgICAgICp0dWlUZXh0ZmllbGREcm9wZG93blxuICAgICAgICAgICAgbmV3XG4gICAgICAgICAgICBbaXRlbXNdPVwiJGFueShpdGVtcylcIlxuICAgICAgICAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICAgI29wdGlvbnNcbiAgICBsZXQtaXRlbXNcbj5cbiAgICA8b3B0aW9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbXNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaGFuZGxlcnMuZGlzYWJsZWRJdGVtSGFuZGxlcigpKG9wdGlvbilcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZCgpKG9wdGlvbilcIlxuICAgICAgICBbdmFsdWVdPVwiaGFuZGxlcnMuc3RyaW5naWZ5KCkob3B0aW9uKVwiXG4gICAgPlxuICAgICAgICB7eyBoYW5kbGVycy5zdHJpbmdpZnkoKShvcHRpb24pIH19XG4gICAgPC9vcHRpb24+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -37,7 +37,7 @@ class TuiSwitch {
37
37
  return this.showIcons && icon ? `url(${resolver(icon)})` : null;
38
38
  }
39
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSwitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSwitch, isStandalone: true, selector: "input[type=\"checkbox\"][tuiSwitch]", inputs: { size: "size", showIcons: "showIcons" }, host: { attributes: { "role": "switch" }, properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "icon" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1.125rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;inline-size:1.375rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSwitch, isStandalone: true, selector: "input[type=\"checkbox\"][tuiSwitch]", inputs: { size: "size", showIcons: "showIcons" }, host: { attributes: { "role": "switch" }, properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "icon" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{left:.125rem;display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
41
41
  }
42
42
  export { TuiSwitch };
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSwitch, decorators: [{
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
54
54
  '[attr.data-size]': 'size',
55
55
  '[class._readonly]': '!control',
56
56
  '[style.--t-checked-icon]': 'icon',
57
- }, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1.125rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;inline-size:1.375rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"] }]
57
+ }, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{left:.125rem;display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"] }]
58
58
  }], propDecorators: { size: [{
59
59
  type: Input
60
60
  }], showIcons: [{
@@ -1,9 +1,11 @@
1
- import { Directive } from '@angular/core';
1
+ import { Directive, inject } from '@angular/core';
2
2
  import { TuiControl } from '@taiga-ui/cdk/classes';
3
3
  import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
4
+ import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
4
5
  import { tuiAsDataListHost, tuiAsOptionContent, } from '@taiga-ui/core/components/data-list';
5
6
  import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
6
7
  import { TuiDropdownDirective, tuiDropdownOpen, tuiDropdownOptionsProvider, TuiWithDropdownOpen, } from '@taiga-ui/core/directives/dropdown';
8
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
7
9
  import { TuiSelectOption } from '@taiga-ui/kit/components/select';
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "@taiga-ui/core/directives/dropdown";
@@ -13,11 +15,18 @@ class TuiButtonSelect extends TuiControl {
13
15
  constructor() {
14
16
  super(...arguments);
15
17
  this.open = tuiDropdownOpen();
18
+ this.handlers = inject(TUI_ITEMS_HANDLERS);
16
19
  this.size = 's';
17
20
  }
18
21
  handleOption(option) {
19
- this.onChange(option);
20
- this.open.set(false);
22
+ if (Array.isArray(this.control.value)) {
23
+ const result = tuiArrayToggle(this.control.value, option, this.handlers.identityMatcher());
24
+ this.onChange(result);
25
+ }
26
+ else {
27
+ this.onChange(option);
28
+ this.open.set(false);
29
+ }
21
30
  }
22
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
23
32
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
@@ -45,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
54
  ],
46
55
  }]
47
56
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXNlbGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvZGlyZWN0aXZlcy9idXR0b24tc2VsZWN0L2J1dHRvbi1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsa0JBQWtCLEdBRXJCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUNILG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLG1CQUFtQixHQUN0QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFFaEUsTUFlYSxlQUFtQixTQUFRLFVBQWE7SUFmckQ7O1FBZ0JxQixTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFMUIsU0FBSSxHQUFHLEdBQUcsQ0FBQztLQU05QjtJQUpVLFlBQVksQ0FBQyxNQUFTO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzsrR0FSUSxlQUFlO21HQUFmLGVBQWUsc0VBWmI7WUFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7WUFDbkMsaUJBQWlCLENBQUMsZUFBZSxDQUFDO1lBQ2xDLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDO1NBQy9DOztTQVFRLGVBQWU7NEZBQWYsZUFBZTtrQkFmM0IsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsU0FBUyxFQUFFO3dCQUNQLGtCQUFrQixDQUFDLGVBQWUsQ0FBQzt3QkFDbkMsaUJBQWlCLGlCQUFpQjt3QkFDbEMsMEJBQTBCLENBQUMsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUM7cUJBQy9DO29CQUNELGNBQWMsRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix3QkFBd0I7cUJBQzNCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlOYXRpdmVWYWxpZGF0b3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmltcG9ydCB7XG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgdHVpQXNPcHRpb25Db250ZW50LFxuICAgIHR5cGUgVHVpRGF0YUxpc3RIb3N0LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1R1aVdpdGhUZXh0ZmllbGREcm9wZG93bn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICB0dWlEcm9wZG93bk9wZW4sXG4gICAgdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIsXG4gICAgVHVpV2l0aERyb3Bkb3duT3Blbixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1R1aVNlbGVjdE9wdGlvbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NlbGVjdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdidXR0b25bdHVpQnV0dG9uU2VsZWN0XScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzT3B0aW9uQ29udGVudChUdWlTZWxlY3RPcHRpb24pLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlCdXR0b25TZWxlY3QpLFxuICAgICAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcih7YWxpZ246ICdyaWdodCd9KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUdWlOYXRpdmVWYWxpZGF0b3IsXG4gICAgICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG4gICAgICAgIFR1aVdpdGhUZXh0ZmllbGREcm9wZG93bixcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlCdXR0b25TZWxlY3Q8VD4gZXh0ZW5kcyBUdWlDb250cm9sPFQ+IGltcGxlbWVudHMgVHVpRGF0YUxpc3RIb3N0PFQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBzaXplID0gJ3MnO1xuXG4gICAgcHVibGljIGhhbmRsZU9wdGlvbihvcHRpb246IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShvcHRpb24pO1xuICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICB9XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXNlbGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvZGlyZWN0aXZlcy9idXR0b24tc2VsZWN0L2J1dHRvbi1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUNILGlCQUFpQixFQUNqQixrQkFBa0IsR0FFckIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZiwwQkFBMEIsRUFDMUIsbUJBQW1CLEdBQ3RCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDOzs7OztBQUVoRSxNQWVhLGVBQ1QsU0FBUSxVQUFtQjtJQWhCL0I7O1FBbUJxQixTQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZDLFNBQUksR0FBRyxHQUFHLENBQUM7S0FnQjlCO0lBZFUsWUFBWSxDQUFDLE1BQVM7UUFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQVksRUFDekIsTUFBTSxFQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQ2xDLENBQUM7WUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzsrR0F0QlEsZUFBZTttR0FBZixlQUFlLHNFQVpiO1lBQ1Asa0JBQWtCLENBQUMsZUFBZSxDQUFDO1lBQ25DLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztZQUNsQywwQkFBMEIsQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsQ0FBQztTQUMvQzs7U0FRUSxlQUFlOzRGQUFmLGVBQWU7a0JBZjNCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7d0JBQ25DLGlCQUFpQixpQkFBaUI7d0JBQ2xDLDBCQUEwQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDO3FCQUMvQztvQkFDRCxjQUFjLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlOYXRpdmVWYWxpZGF0b3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9uYXRpdmUtdmFsaWRhdG9yJztcbmltcG9ydCB7dHVpQXJyYXlUb2dnbGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1xuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIHR1aUFzT3B0aW9uQ29udGVudCxcbiAgICB0eXBlIFR1aURhdGFMaXN0SG9zdCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd259IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgdHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUVUlfSVRFTVNfSEFORExFUlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHtUdWlTZWxlY3RPcHRpb259IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWxlY3QnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW3R1aUJ1dHRvblNlbGVjdF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVHVpU2VsZWN0T3B0aW9uKSxcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpQnV0dG9uU2VsZWN0KSxcbiAgICAgICAgdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIoe2FsaWduOiAncmlnaHQnfSksXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpTmF0aXZlVmFsaWRhdG9yLFxuICAgICAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxuICAgICAgICBUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd24sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQnV0dG9uU2VsZWN0PFQ+XG4gICAgZXh0ZW5kcyBUdWlDb250cm9sPFQgfCBUW10+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEhvc3Q8VD5cbntcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXJzID0gaW5qZWN0KFRVSV9JVEVNU19IQU5ETEVSUyk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9ICdzJztcblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHR1aUFycmF5VG9nZ2xlKFxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZSBhcyBUW10sXG4gICAgICAgICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMuaWRlbnRpdHlNYXRjaGVyKCksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG9wdGlvbik7XG4gICAgICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -21,11 +21,11 @@ class TuiConfirm {
21
21
  return this.isMobile ? 'secondary' : 'flat';
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiConfirm, isStandalone: true, selector: "tui-confirm", ngImport: i0, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, decorators: [{
27
27
  type: Component,
28
- args: [{ standalone: true, selector: 'tui-confirm', imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"] }]
28
+ args: [{ standalone: true, selector: 'tui-confirm', imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n", styles: [":host{display:block}.t-content:not(:empty){margin-block-end:.875rem;overflow-wrap:break-word}.t-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap-reverse;margin:.375rem -.375rem -.375rem}.t-button{margin:.375rem;white-space:nowrap}:host-context(tui-root._mobile) .t-button{flex:1;overflow:visible}:host-context(tui-dialog[new]){margin-block-start:-.75rem}:host-context(tui-dialog[new]) .t-button{margin:0}:host-context(tui-dialog[new]) .t-buttons{margin-block-end:0;margin-inline-end:0;margin-inline-start:0}:host-context(tui-dialog[new]) .t-buttons:first-child{margin-block-start:2rem}\n"] }]
29
29
  }] });
30
30
  const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);
31
31
  const TUI_CONFIRM_DIALOG = tuiCreateToken(TUI_CONFIRM);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n// TODO: Remove selector in v5\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\nexport const TUI_CONFIRM_DIALOG =\n tuiCreateToken<PolymorpheusContent<TuiDialogContext<boolean, unknown>>>(TUI_CONFIRM);\n","<p\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM_DIALOG, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private readonly component = inject(TUI_CONFIRM_DIALOG);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm<T = TuiConfirmData>(\n // TODO: Replace with NoInfer in v5\n options: Partial<TuiDialogOptions<T extends infer U ? U : never>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(this.component, {size: 's', ...options})\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {AsyncPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {\n injectContext,\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n// TODO: Remove selector in v5\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [AsyncPipe, NgIf, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n public readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\nexport const TUI_CONFIRM_DIALOG =\n tuiCreateToken<PolymorpheusContent<TuiDialogContext<boolean, unknown>>>(TUI_CONFIRM);\n","<p\n *polymorpheusOutlet=\"context.data?.content as text; context: context\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></p>\n<footer\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</footer>\n","import {inject, Injectable} from '@angular/core';\nimport {type TuiDialogOptions, TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport {defer, type Observable, of} from 'rxjs';\n\nimport {TUI_CONFIRM_DIALOG, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private readonly component = inject(TUI_CONFIRM_DIALOG);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm<T = TuiConfirmData>(\n // TODO: Replace with NoInfer in v5\n options: Partial<TuiDialogOptions<T extends infer U ? U : never>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(this.component, {size: 's', ...options})\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -130,12 +130,13 @@ class TuiMultiSelectNative {
130
130
  this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));
131
131
  }
132
132
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectNative, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: "items", labels: "labels", placeholder: "placeholder" }, host: { attributes: { "multiple": "" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }, { directive: i2.TuiSelectLike }], ngImport: i0, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "component", type: i3.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["labels"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiMultiSelectNative, isStandalone: true, selector: "select[tuiMultiSelect]", inputs: { items: "items", labels: "labels", placeholder: "placeholder" }, host: { attributes: { "multiple": "", "size": "1" }, listeners: { "click.stop.zoneless": "0", "input": "onInput()" } }, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [{ directive: i1.TuiInputChipDirective }, { directive: i2.TuiSelectLike }], ngImport: i0, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.TuiDataListWrapperComponent, selector: "tui-data-list-wrapper:not([labels]), tui-data-list-wrapper:not([labels])[new]", inputs: ["items", "disabledItemHandler", "emptyContent", "size", "itemContent"], outputs: ["itemClick"] }, { kind: "component", type: i3.TuiDataListGroupWrapperComponent, selector: "tui-data-list-wrapper[labels]", inputs: ["labels"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
134
  }
135
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiMultiSelectNative, decorators: [{
136
136
  type: Component,
137
137
  args: [{ standalone: true, selector: 'select[tuiMultiSelect]', imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsOptionContent(TuiMultiSelectOption)], hostDirectives: [TuiInputChipDirective, TuiSelectLike], host: {
138
138
  multiple: '',
139
+ size: '1',
139
140
  '(click.stop.zoneless)': '0',
140
141
  '(input)': 'onInput()',
141
142
  }, template: "<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n" }]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [NgIf, TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = toSignal(inject(TUI_MULTI_SELECT_TEXTS));\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value().some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const others = this.value().filter((current) =>\n values.every((item) => !matcher(current, item)),\n );\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","<span\n *ngIf=\"values().length\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()?.[checked() ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [NgIf, TuiCheckbox],\n template: `\n <input\n *ngIf=\"option\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n `,\n styles: [\n `\n :host-context(tui-dropdown-mobile) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n standalone: true,\n selector: 'select[tuiMultiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n this.textfield.fillerSetter = placeholder;\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [NgIf, TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrls: ['./multi-select-group.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = toSignal(inject(TUI_MULTI_SELECT_TEXTS));\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value().some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const others = this.value().filter((current) =>\n values.every((item) => !matcher(current, item)),\n );\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","<span\n *ngIf=\"values().length\"\n class=\"t-wrapper\"\n>\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()?.[checked() ? 'none' : 'all'] }}\n </button>\n</span>\n<ng-content />\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n imports: [NgIf, TuiCheckbox],\n template: `\n <input\n *ngIf=\"option\"\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n `,\n styles: [\n `\n :host-context(tui-dropdown-mobile) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiDataListWrapper} from '@taiga-ui/kit/components/data-list-wrapper';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n standalone: true,\n selector: 'select[tuiMultiSelect]',\n imports: [NgForOf, NgIf, NgTemplateOutlet, TuiDataListWrapper, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n size: '1',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n this.textfield.fillerSetter = placeholder;\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","<ng-container *ngIf=\"items && !isFlat(items); else flatItems\">\n <optgroup\n *ngFor=\"let group of labels; let index = index\"\n [label]=\"labels[index]\"\n >\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[index]}\" />\n </optgroup>\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"items\"\n [labels]=\"labels\"\n />\n </ng-container>\n</ng-container>\n\n<ng-template #flatItems>\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n <ng-container *ngIf=\"!mobile\">\n <tui-data-list-wrapper\n *tuiTextfieldDropdown\n new\n [items]=\"$any(items)\"\n />\n </ng-container>\n</ng-template>\n\n<ng-template\n #options\n let-items\n>\n <option\n *ngFor=\"let option of items\"\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":"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"}
@@ -50,7 +50,7 @@ class TuiSwitch {
50
50
  return this.showIcons && icon ? `url(${resolver(icon)})` : null;
51
51
  }
52
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSwitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSwitch, isStandalone: true, selector: "input[type=\"checkbox\"][tuiSwitch]", inputs: { size: "size", showIcons: "showIcons" }, host: { attributes: { "role": "switch" }, properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "icon" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1.125rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;inline-size:1.375rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiSwitch, isStandalone: true, selector: "input[type=\"checkbox\"][tuiSwitch]", inputs: { size: "size", showIcons: "showIcons" }, host: { attributes: { "role": "switch" }, properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "icon" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{left:.125rem;display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSwitch, decorators: [{
56
56
  type: Component,
@@ -66,7 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
66
  '[attr.data-size]': 'size',
67
67
  '[class._readonly]': '!control',
68
68
  '[style.--t-checked-icon]': 'icon',
69
- }, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1.125rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;inline-size:1.375rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"] }]
69
+ }, styles: ["[tuiSwitch]{transition-property:background,box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;inline-size:3rem;block-size:1.5rem;border-radius:2rem;overflow:hidden;cursor:pointer;margin:0;flex-shrink:0}[tuiSwitch][data-size=s]{block-size:1rem;inline-size:2rem}[tuiSwitch][data-size=s]:before{inline-size:1rem;transform:translate(-1rem);-webkit-mask-size:.75rem;mask-size:.75rem}[tuiSwitch][data-size=s]:after{inline-size:1rem;box-shadow:-2.625rem 0 0 .5rem var(--tui-background-base);outline-width:.167rem;transform:scale(.375)}[tuiSwitch][data-size=s]:checked:after{transform:scale(.375) translate(2.625rem)}[tuiSwitch]:checked:before{transform:none}[tuiSwitch]:checked:after{transform:scale(.33333) translate(4.5rem)}[tuiSwitch]:disabled._readonly._readonly{opacity:1}[tuiSwitch]:before,[tuiSwitch]:after{content:\"\";position:absolute;block-size:100%;inline-size:1.5rem;transition-property:transform}[tuiSwitch]:before{left:.125rem;display:var(--t-checked-icon, none);background:currentColor;-webkit-mask:var(--t-checked-icon) no-repeat center;mask:var(--t-checked-icon) no-repeat center;-webkit-mask-size:1rem;mask-size:1rem;transform:translate(-1.5rem)}[tuiSwitch]:after{right:0;border-radius:100%;transform:scale(.33333);box-shadow:-4.5rem 0 0 .75rem var(--tui-background-base);outline:.375rem solid var(--tui-background-neutral-2-pressed);outline-offset:var(--t-checked-icon, 20rem)}[tuiSwitch]:invalid:not([data-mode]),[tuiSwitch][data-mode~=invalid]{color:#fff}\n"] }]
70
70
  }], propDecorators: { size: [{
71
71
  type: Input
72
72
  }], showIcons: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-switch.mjs","sources":["../../../projects/kit/components/switch/switch.options.ts","../../../projects/kit/components/switch/switch.component.ts","../../../projects/kit/components/switch/taiga-ui-kit-components-switch.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiSwitchOptions {\n readonly showIcons: boolean;\n readonly size: TuiSizeS;\n readonly icon: TuiStringHandler<TuiSizeS> | string;\n readonly appearance: TuiStringHandler<HTMLInputElement>;\n}\n\nexport const TUI_SWITCH_DEFAULT_OPTIONS: TuiSwitchOptions = {\n showIcons: true,\n size: 'm',\n icon: '@tui.check',\n appearance: (el) => (el.checked ? 'primary' : 'secondary'),\n};\n\nexport const TUI_SWITCH_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_SWITCH_OPTIONS' : '',\n {\n factory: () => TUI_SWITCH_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiSwitchOptionsProvider(options: Partial<TuiSwitchOptions>): Provider {\n return tuiProvideOptions(TUI_SWITCH_OPTIONS, options, TUI_SWITCH_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n type DoCheck,\n inject,\n Input,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiInjectIconResolver} from '@taiga-ui/core/tokens';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_SWITCH_OPTIONS} from './switch.options';\n\n@Component({\n standalone: true,\n selector: 'input[type=\"checkbox\"][tuiSwitch]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/switch.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n },\n TuiNativeValidator,\n ],\n host: {\n role: 'switch',\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[class._readonly]': '!control',\n '[style.--t-checked-icon]': 'icon',\n },\n})\nexport class TuiSwitch implements DoCheck, OnInit {\n private readonly appearance = inject(TuiAppearance);\n private readonly resolver = tuiInjectIconResolver();\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly options = inject(TUI_SWITCH_OPTIONS);\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n protected readonly control = inject(NgControl, {self: true, optional: true});\n\n @Input()\n public size: TuiSizeS = this.options.size;\n\n @Input()\n public showIcons = this.options.showIcons;\n\n public ngOnInit(): void {\n this.control?.valueChanges\n ?.pipe(tuiWatch(this.cdr), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n\n public ngDoCheck(): void {\n this.appearance.tuiAppearance = this.options.appearance(this.el);\n }\n\n protected get icon(): string | null {\n const {options, resolver, size} = this;\n const icon = tuiIsString(options.icon) ? options.icon : options.icon(size);\n\n return this.showIcons && icon ? `url(${resolver(icon)})` : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-switch.mjs","sources":["../../../projects/kit/components/switch/switch.options.ts","../../../projects/kit/components/switch/switch.component.ts","../../../projects/kit/components/switch/taiga-ui-kit-components-switch.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiSwitchOptions {\n readonly showIcons: boolean;\n readonly size: TuiSizeS;\n readonly icon: TuiStringHandler<TuiSizeS> | string;\n readonly appearance: TuiStringHandler<HTMLInputElement>;\n}\n\nexport const TUI_SWITCH_DEFAULT_OPTIONS: TuiSwitchOptions = {\n showIcons: true,\n size: 'm',\n icon: '@tui.check',\n appearance: (el) => (el.checked ? 'primary' : 'secondary'),\n};\n\nexport const TUI_SWITCH_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_SWITCH_OPTIONS' : '',\n {\n factory: () => TUI_SWITCH_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiSwitchOptionsProvider(options: Partial<TuiSwitchOptions>): Provider {\n return tuiProvideOptions(TUI_SWITCH_OPTIONS, options, TUI_SWITCH_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n type DoCheck,\n inject,\n Input,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {tuiInjectIconResolver} from '@taiga-ui/core/tokens';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_SWITCH_OPTIONS} from './switch.options';\n\n@Component({\n standalone: true,\n selector: 'input[type=\"checkbox\"][tuiSwitch]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/switch.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n },\n TuiNativeValidator,\n ],\n host: {\n role: 'switch',\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[class._readonly]': '!control',\n '[style.--t-checked-icon]': 'icon',\n },\n})\nexport class TuiSwitch implements DoCheck, OnInit {\n private readonly appearance = inject(TuiAppearance);\n private readonly resolver = tuiInjectIconResolver();\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly options = inject(TUI_SWITCH_OPTIONS);\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n protected readonly control = inject(NgControl, {self: true, optional: true});\n\n @Input()\n public size: TuiSizeS = this.options.size;\n\n @Input()\n public showIcons = this.options.showIcons;\n\n public ngOnInit(): void {\n this.control?.valueChanges\n ?.pipe(tuiWatch(this.cdr), takeUntilDestroyed(this.destroyRef))\n .subscribe();\n }\n\n public ngDoCheck(): void {\n this.appearance.tuiAppearance = this.options.appearance(this.el);\n }\n\n protected get icon(): string | null {\n const {options, resolver, size} = this;\n const icon = tuiIsString(options.icon) ? options.icon : options.icon(size);\n\n return this.showIcons && icon ? `url(${resolver(icon)})` : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,24 +1,33 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive } from '@angular/core';
2
+ import { inject, Directive } from '@angular/core';
3
3
  import { TuiControl } from '@taiga-ui/cdk/classes';
4
4
  import * as i2 from '@taiga-ui/cdk/directives/native-validator';
5
5
  import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
6
+ import { tuiArrayToggle } from '@taiga-ui/cdk/utils/miscellaneous';
6
7
  import { tuiAsOptionContent, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
7
8
  import * as i3 from '@taiga-ui/core/components/textfield';
8
9
  import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
9
10
  import * as i1 from '@taiga-ui/core/directives/dropdown';
10
11
  import { tuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
12
+ import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
11
13
  import { TuiSelectOption } from '@taiga-ui/kit/components/select';
12
14
 
13
15
  class TuiButtonSelect extends TuiControl {
14
16
  constructor() {
15
17
  super(...arguments);
16
18
  this.open = tuiDropdownOpen();
19
+ this.handlers = inject(TUI_ITEMS_HANDLERS);
17
20
  this.size = 's';
18
21
  }
19
22
  handleOption(option) {
20
- this.onChange(option);
21
- this.open.set(false);
23
+ if (Array.isArray(this.control.value)) {
24
+ const result = tuiArrayToggle(this.control.value, option, this.handlers.identityMatcher());
25
+ this.onChange(result);
26
+ }
27
+ else {
28
+ this.onChange(option);
29
+ this.open.set(false);
30
+ }
22
31
  }
23
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
24
33
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiNativeValidator,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n ],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAiBA,MAea,eAAmB,SAAQ,UAAa,CAAA;AAfrD,IAAA,WAAA,GAAA;;QAgBqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAM9B,KAAA;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;+GARQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAQQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;AAC3B,qBAAA;AACJ,iBAAA,CAAA;;;AC/BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiArrayToggle} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListHost,\n tuiAsOptionContent,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiNativeValidator,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n ],\n})\nexport class TuiButtonSelect<T>\n extends TuiControl<T | T[]>\n implements TuiDataListHost<T>\n{\n private readonly open = tuiDropdownOpen();\n private readonly handlers = inject(TUI_ITEMS_HANDLERS);\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n if (Array.isArray(this.control.value)) {\n const result = tuiArrayToggle(\n this.control.value as T[],\n option,\n this.handlers.identityMatcher(),\n );\n\n this.onChange(result);\n } else {\n this.onChange(option);\n this.open.set(false);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAmBA,MAea,eACT,SAAQ,UAAmB,CAAA;AAhB/B,IAAA,WAAA,GAAA;;QAmBqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEvC,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAgB9B,KAAA;AAdU,IAAA,YAAY,CAAC,MAAS,EAAA;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,MAAM,MAAM,GAAG,cAAc,CACzB,IAAI,CAAC,OAAO,CAAC,KAAY,EACzB,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAClC,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACJ;+GAtBQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAQQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;AAC3B,qBAAA;AACJ,iBAAA,CAAA;;;ACjCD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.63.0",
3
+ "version": "4.65.0",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -673,9 +673,9 @@
673
673
  "@ng-web-apis/intersection-observer": "^4.12.0",
674
674
  "@ng-web-apis/mutation-observer": "^4.12.0",
675
675
  "@ng-web-apis/resize-observer": "^4.12.0",
676
- "@taiga-ui/cdk": "^4.63.0",
677
- "@taiga-ui/core": "^4.63.0",
678
- "@taiga-ui/i18n": "^4.63.0",
676
+ "@taiga-ui/cdk": "^4.65.0",
677
+ "@taiga-ui/core": "^4.65.0",
678
+ "@taiga-ui/i18n": "^4.65.0",
679
679
  "@taiga-ui/polymorpheus": "^4.9.0",
680
680
  "rxjs": ">=7.0.0"
681
681
  },
@@ -35,7 +35,7 @@
35
35
  inline-size: 2rem;
36
36
 
37
37
  &::before {
38
- inline-size: 1.125rem;
38
+ inline-size: 1rem;
39
39
  transform: translateX(-1rem);
40
40
  mask-size: 0.75rem;
41
41
  }
@@ -76,11 +76,11 @@
76
76
  }
77
77
 
78
78
  &::before {
79
+ left: 0.125rem;
79
80
  display: var(--t-checked-icon, none);
80
81
  background: currentColor;
81
82
  mask: var(--t-checked-icon) no-repeat center;
82
83
  mask-size: 1rem;
83
- inline-size: 1.375rem;
84
84
  transform: translateX(-1.5rem);
85
85
  }
86
86