@taiga-ui/kit 4.54.0 → 4.56.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.
Files changed (68) hide show
  1. package/components/avatar/avatar.options.d.ts +1 -3
  2. package/components/confirm/confirm.component.d.ts +1 -0
  3. package/components/confirm/confirm.service.d.ts +2 -1
  4. package/components/index.d.ts +1 -0
  5. package/components/input-number/quantum.directive.d.ts +1 -1
  6. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +1 -1
  7. package/components/rating/rating.options.d.ts +5 -3
  8. package/components/toast/index.d.ts +5 -0
  9. package/components/toast/toast.component.d.ts +17 -0
  10. package/components/toast/toast.d.ts +3 -0
  11. package/components/toast/toast.directive.d.ts +7 -0
  12. package/components/toast/toast.options.d.ts +8 -0
  13. package/components/toast/toast.service.d.ts +16 -0
  14. package/esm2022/components/avatar/avatar.options.mjs +3 -9
  15. package/esm2022/components/checkbox/checkbox.component.mjs +2 -2
  16. package/esm2022/components/confirm/confirm.component.mjs +5 -3
  17. package/esm2022/components/confirm/confirm.service.mjs +7 -7
  18. package/esm2022/components/index.mjs +2 -1
  19. package/esm2022/components/input-chip/input-chip.directive.mjs +11 -6
  20. package/esm2022/components/input-number/quantum.directive.mjs +6 -5
  21. package/esm2022/components/input-range/input-range.component.mjs +3 -5
  22. package/esm2022/components/input-slider/input-slider.directive.mjs +3 -3
  23. package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +6 -5
  24. package/esm2022/components/radio/radio.component.mjs +2 -2
  25. package/esm2022/components/rating/rating.component.mjs +3 -3
  26. package/esm2022/components/rating/rating.options.mjs +1 -1
  27. package/esm2022/components/slider/slider.component.mjs +2 -2
  28. package/esm2022/components/switch/switch.component.mjs +2 -2
  29. package/esm2022/components/toast/index.mjs +6 -0
  30. package/esm2022/components/toast/taiga-ui-kit-components-toast.mjs +5 -0
  31. package/esm2022/components/toast/toast.component.mjs +50 -0
  32. package/esm2022/components/toast/toast.directive.mjs +68 -0
  33. package/esm2022/components/toast/toast.mjs +4 -0
  34. package/esm2022/components/toast/toast.options.mjs +8 -0
  35. package/esm2022/components/toast/toast.service.mjs +54 -0
  36. package/fesm2022/taiga-ui-kit-components-avatar.mjs +4 -8
  37. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +2 -2
  39. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-kit-components-confirm.mjs +10 -8
  41. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +10 -5
  43. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-kit-components-input-number.mjs +5 -4
  45. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-kit-components-input-range.mjs +2 -4
  47. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +2 -2
  49. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +6 -6
  51. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-kit-components-radio.mjs +2 -2
  53. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-rating.mjs +2 -2
  55. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-slider.mjs +2 -2
  57. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-switch.mjs +2 -2
  59. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-toast.mjs +172 -0
  61. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  62. package/fesm2022/taiga-ui-kit-components.mjs +1 -0
  63. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  64. package/package.json +10 -4
  65. package/styles/components/checkbox.less +1 -1
  66. package/styles/components/radio.less +1 -1
  67. package/styles/components/switch.less +1 -1
  68. package/styles/components/toast.less +45 -0
@@ -0,0 +1,50 @@
1
+ import { NgIf } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, inject, ViewChild, } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
5
+ import { TuiSwipe } from '@taiga-ui/cdk/directives/swipe';
6
+ import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
7
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
+ import { TuiButton } from '@taiga-ui/core/components/button';
9
+ import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
10
+ import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
11
+ import { EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer } from 'rxjs';
12
+ import { TuiToastDirective } from './toast.directive';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@taiga-ui/cdk/directives/animated";
15
+ class TuiToastComponent {
16
+ constructor() {
17
+ this.el = tuiInjectElement();
18
+ this.isMobile = inject(TUI_IS_MOBILE);
19
+ this.context = injectContext();
20
+ this.icons = inject(TUI_COMMON_ICONS);
21
+ this.$ = of(this.context.autoClose)
22
+ .pipe(switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)), takeUntil(fromEvent(this.el, 'mouseenter')), repeat({ delay: () => fromEvent(this.el, 'mouseleave') }), takeUntilDestroyed())
23
+ .subscribe(() => this.context.$implicit.complete());
24
+ }
25
+ ngAfterViewInit() {
26
+ if (this.button) {
27
+ this.el.querySelector('[tuiToast]')?.appendChild(this.button.nativeElement);
28
+ }
29
+ }
30
+ onSwipe() {
31
+ if (this.context.closable) {
32
+ this.context.$implicit.complete();
33
+ }
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastComponent, isStandalone: true, selector: "tui-toast", host: { attributes: { "role": "status" }, properties: { "class._mobile": "isMobile", "attr.data-appearance": "context.appearance" } }, viewQueries: [{ propertyName: "button", first: true, predicate: TuiButton, descendants: true, read: ElementRef }], hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n {{ text }}\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n", styles: ["::ng-deep *:has(>tui-toast){flex-direction:column-reverse!important;justify-content:flex-end}:host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;top:1.25rem;display:grid;margin:0 auto;touch-action:none;animation-fill-mode:both;--tui-from: translate3d(0, -2rem, 0)}:host.tui-enter{place-items:end;animation-name:tuiSlide,tuiCollapse}:host.tui-leave{animation-name:tuiFade,tuiCollapse}:host.tui-leave:first-child{animation-name:tuiFade}:host._mobile{top:env(safe-area-inset-top)}:host._mobile.tui-enter{animation-delay:var(--tui-duration)}:host._mobile.tui-leave{place-items:end;animation-name:tuiSlide,tuiCollapse}.t-wrapper{grid-row:1 / span 2}.t-wrapper:before{content:\"\";display:block;block-size:.75rem}:host._mobile .t-wrapper:before{block-size:.25rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiSwipe, selector: "[tuiSwipe]", outputs: ["tuiSwipe"] }, { kind: "directive", type: TuiToastDirective, selector: "[tuiToast]:not(ng-template)" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ }
38
+ export { TuiToastComponent };
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ standalone: true, selector: 'tui-toast', imports: [NgIf, PolymorpheusOutlet, TuiButton, TuiSwipe, TuiToastDirective], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated], host: {
42
+ role: 'status',
43
+ '[class._mobile]': 'isMobile',
44
+ '[attr.data-appearance]': 'context.appearance',
45
+ }, template: "<div\n class=\"t-wrapper\"\n (tuiSwipe)=\"onSwipe()\"\n>\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n tuiToast\n [iconStart]=\"context.data?.toString() || ''\"\n >\n {{ text }}\n </div>\n <button\n *ngIf=\"context.closable && !isMobile\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click.stop.prevent)=\"context.$implicit.complete()\"\n >\n Close\n </button>\n</div>\n", styles: ["::ng-deep *:has(>tui-toast){flex-direction:column-reverse!important;justify-content:flex-end}:host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;top:1.25rem;display:grid;margin:0 auto;touch-action:none;animation-fill-mode:both;--tui-from: translate3d(0, -2rem, 0)}:host.tui-enter{place-items:end;animation-name:tuiSlide,tuiCollapse}:host.tui-leave{animation-name:tuiFade,tuiCollapse}:host.tui-leave:first-child{animation-name:tuiFade}:host._mobile{top:env(safe-area-inset-top)}:host._mobile.tui-enter{animation-delay:var(--tui-duration)}:host._mobile.tui-leave{place-items:end;animation-name:tuiSlide,tuiCollapse}.t-wrapper{grid-row:1 / span 2}.t-wrapper:before{content:\"\";display:block;block-size:.75rem}:host._mobile .t-wrapper:before{block-size:.25rem}\n"] }]
46
+ }], propDecorators: { button: [{
47
+ type: ViewChild,
48
+ args: [TuiButton, { read: ElementRef }]
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdG9hc3QvdG9hc3QudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7QUFHcEQsTUFjYSxpQkFBaUI7SUFkOUI7UUFrQnFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRCLGFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsWUFBTyxHQUFHLGFBQWEsRUFBcUMsQ0FBQztRQUM3RCxVQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakMsTUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUM1QyxJQUFJLENBQ0QsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNoRSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFDM0MsTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFDLENBQUMsRUFDdkQsa0JBQWtCLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQWEzRDtJQVhVLGVBQWU7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDO0lBRVMsT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckM7SUFDTCxDQUFDOytHQTVCUSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvUEFDZixTQUFTLDJCQUFTLFVBQVUsOEVDdEMzQyx5akJBdUJBLGc1QkRHYyxJQUFJLDZGQUFFLGtCQUFrQiw4SEFBRSxTQUFTLG9JQUFFLFFBQVEsOEVBQUUsaUJBQWlCOztTQVdqRSxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFkN0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sV0FBVyxXQUNaLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsbUJBRzFELHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsV0FBVyxDQUFDLFFBQ3ZCO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLGlCQUFpQixFQUFFLFVBQVU7d0JBQzdCLHdCQUF3QixFQUFFLG9CQUFvQjtxQkFDakQ7OEJBSWdCLE1BQU07c0JBRHRCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgdHlwZSBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7VHVpQW5pbWF0ZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hbmltYXRlZCc7XG5pbXBvcnQge1R1aVN3aXBlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvc3dpcGUnO1xuaW1wb3J0IHt0eXBlIFR1aVBvcG92ZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1RVSV9DT01NT05fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge2luamVjdENvbnRleHQsIFBvbHltb3JwaGV1c091dGxldH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge0VNUFRZLCBmcm9tRXZlbnQsIG9mLCByZXBlYXQsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpVG9hc3REaXJlY3RpdmV9IGZyb20gJy4vdG9hc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7dHlwZSBUdWlUb2FzdE9wdGlvbnN9IGZyb20gJy4vdG9hc3Qub3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktdG9hc3QnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBQb2x5bW9ycGhldXNPdXRsZXQsIFR1aUJ1dHRvbiwgVHVpU3dpcGUsIFR1aVRvYXN0RGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdG9hc3Quc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpQW5pbWF0ZWRdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3N0YXR1cycsXG4gICAgICAgICdbY2xhc3MuX21vYmlsZV0nOiAnaXNNb2JpbGUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1hcHBlYXJhbmNlXSc6ICdjb250ZXh0LmFwcGVhcmFuY2UnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRvYXN0Q29tcG9uZW50PE8sIEk+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChUdWlCdXR0b24sIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJ1dHRvbj86IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc01vYmlsZSA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdENvbnRleHQ8VHVpUG9wb3ZlcjxUdWlUb2FzdE9wdGlvbnM8ST4sIE8+PigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgJCA9IG9mKHRoaXMuY29udGV4dC5hdXRvQ2xvc2UpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChhdXRvQ2xvc2UpID0+IChhdXRvQ2xvc2UgPyB0aW1lcihhdXRvQ2xvc2UpIDogRU1QVFkpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbChmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlZW50ZXInKSksXG4gICAgICAgICAgICByZXBlYXQoe2RlbGF5OiAoKSA9PiBmcm9tRXZlbnQodGhpcy5lbCwgJ21vdXNlbGVhdmUnKX0pLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKCkpO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3IoJ1t0dWlUb2FzdF0nKT8uYXBwZW5kQ2hpbGQodGhpcy5idXR0b24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Td2lwZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5jbG9zYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LiRpbXBsaWNpdC5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICAodHVpU3dpcGUpPVwib25Td2lwZSgpXCJcbj5cbiAgICA8ZGl2XG4gICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjb250ZXh0LmNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogY29udGV4dFwiXG4gICAgICAgIHR1aVRvYXN0XG4gICAgICAgIFtpY29uU3RhcnRdPVwiY29udGV4dC5kYXRhPy50b1N0cmluZygpIHx8ICcnXCJcbiAgICA+XG4gICAgICAgIHt7IHRleHQgfX1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiY29udGV4dC5jbG9zYWJsZSAmJiAhaXNNb2JpbGVcIlxuICAgICAgICBhcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuY2xvc2VcIlxuICAgICAgICAoY2xpY2suc3RvcC5wcmV2ZW50KT1cImNvbnRleHQuJGltcGxpY2l0LmNvbXBsZXRlKClcIlxuICAgID5cbiAgICAgICAgQ2xvc2VcbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,68 @@
1
+ import { ChangeDetectionStrategy, Component, Directive, ElementRef, inject, ViewEncapsulation, } from '@angular/core';
2
+ import { TUI_PLATFORM } from '@taiga-ui/cdk/tokens';
3
+ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
+ import { tuiButtonOptionsProvider } from '@taiga-ui/core/components';
5
+ import { TuiWithIcons } from '@taiga-ui/core/directives/icons';
6
+ import { TUI_COMMON_ICONS, TUI_ICON_END } from '@taiga-ui/core/tokens';
7
+ import { tuiAvatarOptionsProvider } from '@taiga-ui/kit/components/avatar';
8
+ import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@taiga-ui/core/directives/icons";
11
+ class TuiToastStyles {
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-toast" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem);border:inherit;text-decoration:none;overflow:hidden}[tuiToast]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]>*,[tuiToast]:after,[tuiToast]:before{max-inline-size:50%;margin:0 -.25rem}[tuiToast]:after{font-size:1rem;color:var(--tui-text-tertiary)}[tuiToast] tui-avatar{margin-inline-end:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastStyles, decorators: [{
16
+ type: Component,
17
+ args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
18
+ class: 'tui-toast',
19
+ }, styles: ["[tuiToast]{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;grid-row:1 / span 2;box-sizing:border-box;gap:.75rem;color:var(--tui-text-primary);background:var(--tui-background-elevation-3);min-block-size:3.5rem;border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--tui-shadow-medium);align-items:center;justify-content:center;inline-size:-webkit-max-content;inline-size:max-content;font:var(--tui-font-text-ui-s);max-inline-size:min(calc(100vw - 2rem),25rem);border:inherit;text-decoration:none;overflow:hidden}[tuiToast]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiToast]>*,[tuiToast]:after,[tuiToast]:before{max-inline-size:50%;margin:0 -.25rem}[tuiToast]:after{font-size:1rem;color:var(--tui-text-tertiary)}[tuiToast] tui-avatar{margin-inline-end:0}\n"] }]
20
+ }] });
21
+ class TuiToastDirective {
22
+ constructor() {
23
+ this.nothing = tuiWithStyles(TuiToastStyles);
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastDirective, isStandalone: true, selector: "[tuiToast]:not(ng-template)", providers: [
27
+ tuiBadgeOptionsProvider({ size: 'l' }),
28
+ tuiAvatarOptionsProvider(() => ({
29
+ size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',
30
+ })),
31
+ tuiButtonOptionsProvider(() => ({
32
+ size: 's',
33
+ appearance: inject(TUI_PLATFORM) === 'web' ? 'secondary-grayscale' : 'secondary',
34
+ })),
35
+ {
36
+ provide: TUI_ICON_END,
37
+ useFactory: () => inject(ElementRef).nativeElement?.matches('a, button')
38
+ ? inject(TUI_COMMON_ICONS).more
39
+ : '',
40
+ },
41
+ ], hostDirectives: [{ directive: i1.TuiWithIcons }], ngImport: i0 }); }
42
+ }
43
+ export { TuiToastDirective };
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ standalone: true,
48
+ selector: '[tuiToast]:not(ng-template)',
49
+ providers: [
50
+ tuiBadgeOptionsProvider({ size: 'l' }),
51
+ tuiAvatarOptionsProvider(() => ({
52
+ size: inject(TUI_PLATFORM) === 'web' ? 's' : 'm',
53
+ })),
54
+ tuiButtonOptionsProvider(() => ({
55
+ size: 's',
56
+ appearance: inject(TUI_PLATFORM) === 'web' ? 'secondary-grayscale' : 'secondary',
57
+ })),
58
+ {
59
+ provide: TUI_ICON_END,
60
+ useFactory: () => inject(ElementRef).nativeElement?.matches('a, button')
61
+ ? inject(TUI_COMMON_ICONS).more
62
+ : '',
63
+ },
64
+ ],
65
+ hostDirectives: [TuiWithIcons],
66
+ }]
67
+ }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7OztBQUV2RSxNQVVNLGNBQWM7K0dBQWQsY0FBYzttR0FBZCxjQUFjLCtHQVJOLEVBQUU7OzRGQVFWLGNBQWM7a0JBVm5CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsV0FBVztxQkFDckI7O0FBSUwsTUF1QmEsaUJBQWlCO0lBdkI5QjtRQXdCdUIsWUFBTyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUM5RDsrR0FGWSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwwRUFwQmY7WUFDUCx1QkFBdUIsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQztZQUNwQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHO2FBQ25ELENBQUMsQ0FBQztZQUNILHdCQUF3QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLElBQUksRUFBRSxHQUFHO2dCQUNULFVBQVUsRUFDTixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsV0FBVzthQUMzRSxDQUFDLENBQUM7WUFDSDtnQkFDSSxPQUFPLEVBQUUsWUFBWTtnQkFDckIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQztvQkFDbEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUk7b0JBQy9CLENBQUMsQ0FBQyxFQUFFO2FBQ2Y7U0FDSjs7U0FHUSxpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkF2QjdCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRTt3QkFDUCx1QkFBdUIsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQzt3QkFDcEMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDNUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRzt5QkFDbkQsQ0FBQyxDQUFDO3dCQUNILHdCQUF3QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQzVCLElBQUksRUFBRSxHQUFHOzRCQUNULFVBQVUsRUFDTixNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsV0FBVzt5QkFDM0UsQ0FBQyxDQUFDO3dCQUNIOzRCQUNJLE9BQU8sRUFBRSxZQUFZOzRCQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQ2IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDO2dDQUNsRCxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSTtnQ0FDL0IsQ0FBQyxDQUFDLEVBQUU7eUJBQ2Y7cUJBQ0o7b0JBQ0QsY0FBYyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9QTEFURk9STX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0dWlCdXR0b25PcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtUdWlXaXRoSWNvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaWNvbnMnO1xuaW1wb3J0IHtUVUlfQ09NTU9OX0lDT05TLCBUVUlfSUNPTl9FTkR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aUF2YXRhck9wdGlvbnNQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQge3R1aUJhZGdlT3B0aW9uc1Byb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvYmFkZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnQGltcG9ydCBcIkB0YWlnYS11aS9raXQvc3R5bGVzL2NvbXBvbmVudHMvdG9hc3QubGVzc1wiOyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3R1aS10b2FzdCcsXG4gICAgfSxcbn0pXG5jbGFzcyBUdWlUb2FzdFN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aVRvYXN0XTpub3QobmctdGVtcGxhdGUpJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQmFkZ2VPcHRpb25zUHJvdmlkZXIoe3NpemU6ICdsJ30pLFxuICAgICAgICB0dWlBdmF0YXJPcHRpb25zUHJvdmlkZXIoKCkgPT4gKHtcbiAgICAgICAgICAgIHNpemU6IGluamVjdChUVUlfUExBVEZPUk0pID09PSAnd2ViJyA/ICdzJyA6ICdtJyxcbiAgICAgICAgfSkpLFxuICAgICAgICB0dWlCdXR0b25PcHRpb25zUHJvdmlkZXIoKCkgPT4gKHtcbiAgICAgICAgICAgIHNpemU6ICdzJyxcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6XG4gICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9QTEFURk9STSkgPT09ICd3ZWInID8gJ3NlY29uZGFyeS1ncmF5c2NhbGUnIDogJ3NlY29uZGFyeScsXG4gICAgICAgIH0pKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVFVJX0lDT05fRU5ELFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT5cbiAgICAgICAgICAgICAgICBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudD8ubWF0Y2hlcygnYSwgYnV0dG9uJylcbiAgICAgICAgICAgICAgICAgICAgPyBpbmplY3QoVFVJX0NPTU1PTl9JQ09OUykubW9yZVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlXaXRoSWNvbnNdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUb2FzdERpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aVRvYXN0U3R5bGVzKTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { TuiToastDirective } from './toast.directive';
2
+ import { TuiToastTemplate } from './toast.service';
3
+ export const TuiToast = [TuiToastDirective, TuiToastTemplate];
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy90b2FzdC90b2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUdWlUb2FzdERpcmVjdGl2ZX0gZnJvbSAnLi90b2FzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUdWlUb2FzdFRlbXBsYXRlfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgVHVpVG9hc3QgPSBbVHVpVG9hc3REaXJlY3RpdmUsIFR1aVRvYXN0VGVtcGxhdGVdIGFzIGNvbnN0O1xuIl19
@@ -0,0 +1,8 @@
1
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
2
+ export const TUI_TOAST_DEFAULT_OPTIONS = {
3
+ appearance: '',
4
+ autoClose: 5000,
5
+ closable: true,
6
+ };
7
+ export const [TUI_TOAST_OPTIONS, tuiToastOptionsProvider] = tuiCreateOptions(TUI_TOAST_DEFAULT_OPTIONS);
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qub3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3RvYXN0L3RvYXN0Lm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFTeEQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQTBCO0lBQzVELFVBQVUsRUFBRSxFQUFFO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixRQUFRLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHLGdCQUFnQixDQUN4RSx5QkFBeUIsQ0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpQ3JlYXRlT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpVG9hc3RPcHRpb25zPEk+IHtcbiAgICBhdXRvQ2xvc2U6IG51bWJlcjtcbiAgICBjbG9zYWJsZTogYm9vbGVhbjtcbiAgICBhcHBlYXJhbmNlOiBzdHJpbmc7XG4gICAgZGF0YT86IEk7XG59XG5cbmV4cG9ydCBjb25zdCBUVUlfVE9BU1RfREVGQVVMVF9PUFRJT05TOiBUdWlUb2FzdE9wdGlvbnM8dm9pZD4gPSB7XG4gICAgYXBwZWFyYW5jZTogJycsXG4gICAgYXV0b0Nsb3NlOiA1MDAwLFxuICAgIGNsb3NhYmxlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFtUVUlfVE9BU1RfT1BUSU9OUywgdHVpVG9hc3RPcHRpb25zUHJvdmlkZXJdID0gdHVpQ3JlYXRlT3B0aW9ucyhcbiAgICBUVUlfVE9BU1RfREVGQVVMVF9PUFRJT05TLFxuKTtcbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Directive, inject, Injectable } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
4
+ import { tuiAsPopover, TuiPopoverService } from '@taiga-ui/cdk/services';
5
+ import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
6
+ import { tuiCreateToken, tuiCreateTokenFromFactory, } from '@taiga-ui/cdk/utils/miscellaneous';
7
+ import { TUI_ALERTS } from '@taiga-ui/core/components/alert';
8
+ import { BehaviorSubject, pairwise } from 'rxjs';
9
+ import { TuiToastComponent } from './toast.component';
10
+ import { TUI_TOAST_OPTIONS } from './toast.options';
11
+ import * as i0 from "@angular/core";
12
+ const TOASTS = tuiCreateToken(new BehaviorSubject([]));
13
+ export const TUI_TOASTS_CONCURRENCY = tuiCreateTokenFromFactory(() => inject(TUI_IS_MOBILE) ? 1 : 2);
14
+ class TuiToastService extends TuiPopoverService {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.concurrency = inject(TUI_TOASTS_CONCURRENCY);
18
+ this.alerts = inject(TUI_ALERTS);
19
+ this.sub = this.items$
20
+ .pipe(pairwise(), takeUntilDestroyed())
21
+ .subscribe(([prev, next]) => {
22
+ const closed = prev.filter((item) => !next.includes(item));
23
+ const alerts = this.alerts.value.filter((item) => !closed.includes(item));
24
+ const toasts = new Set([...alerts, ...next.slice(0, this.concurrency)]);
25
+ this.alerts.next(Array.from(toasts));
26
+ });
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, providedIn: 'root', useFactory: () => new TuiToastService(TOASTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)) }); }
30
+ }
31
+ export { TuiToastService };
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastService, decorators: [{
33
+ type: Injectable,
34
+ args: [{
35
+ providedIn: 'root',
36
+ useFactory: () => new TuiToastService(TOASTS, TuiToastComponent, inject(TUI_TOAST_OPTIONS)),
37
+ }]
38
+ }] });
39
+ class TuiToastTemplate extends TuiPopoverDirective {
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastTemplate, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiToastTemplate, isStandalone: true, selector: "ng-template[tuiToast]", inputs: { options: ["tuiToastOptions", "options"], open: ["tuiToast", "open"] }, outputs: { openChange: "tuiToastChange" }, providers: [tuiAsPopover(TuiToastService)], usesInheritance: true, ngImport: i0 }); }
42
+ }
43
+ export { TuiToastTemplate };
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiToastTemplate, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ standalone: true,
48
+ selector: 'ng-template[tuiToast]',
49
+ inputs: ['options: tuiToastOptions', 'open: tuiToast'],
50
+ outputs: ['openChange: tuiToastChange'],
51
+ providers: [tuiAsPopover(TuiToastService)],
52
+ }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3RvYXN0L3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQW1CLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDSCxjQUFjLEVBQ2QseUJBQXlCLEdBQzVCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEUsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUN6QixJQUFJLGVBQWUsQ0FBMkQsRUFBRSxDQUFDLENBQ3BGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyx5QkFBeUIsQ0FBUyxHQUFHLEVBQUUsQ0FDekUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEMsQ0FBQztBQUVGLE1BS2EsZUFBZ0IsU0FBUSxpQkFBdUM7SUFMNUU7O1FBTXFCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQixRQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGtCQUFrQixFQUFFLENBQUM7YUFDdEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztLQUNWOytHQWJZLGVBQWU7bUhBQWYsZUFBZSxjQUpaLE1BQU0sY0FDTixHQUFHLEVBQUUsQ0FDYixJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1NBRXBFLGVBQWU7NEZBQWYsZUFBZTtrQkFMM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUNiLG9CQUFvQixNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7aUJBQ2hGOztBQWdCRCxNQU9hLGdCQUFvQixTQUFRLG1CQUF1QzsrR0FBbkUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsZ01BRmQsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7O1NBRWpDLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQVA1QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsNEJBQTRCLENBQUM7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1R1aVBvcG92ZXJEaXJlY3RpdmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9wb3BvdmVyJztcbmltcG9ydCB7dHVpQXNQb3BvdmVyLCB0eXBlIFR1aVBvcG92ZXIsIFR1aVBvcG92ZXJTZXJ2aWNlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICB0dWlDcmVhdGVUb2tlbixcbiAgICB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5LFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUVUlfQUxFUlRTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2FsZXJ0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBwYWlyd2lzZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpVG9hc3RDb21wb25lbnR9IGZyb20gJy4vdG9hc3QuY29tcG9uZW50JztcbmltcG9ydCB7VFVJX1RPQVNUX09QVElPTlMsIHR5cGUgVHVpVG9hc3RPcHRpb25zfSBmcm9tICcuL3RvYXN0Lm9wdGlvbnMnO1xuXG5jb25zdCBUT0FTVFMgPSB0dWlDcmVhdGVUb2tlbihcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5QXJyYXk8VHVpUG9wb3ZlcjxUdWlUb2FzdE9wdGlvbnM8dW5rbm93bj4sIGFueT4+PihbXSksXG4pO1xuXG5leHBvcnQgY29uc3QgVFVJX1RPQVNUU19DT05DVVJSRU5DWSA9IHR1aUNyZWF0ZVRva2VuRnJvbUZhY3Rvcnk8bnVtYmVyPigoKSA9PlxuICAgIGluamVjdChUVUlfSVNfTU9CSUxFKSA/IDEgOiAyLFxuKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICB1c2VGYWN0b3J5OiAoKSA9PlxuICAgICAgICBuZXcgVHVpVG9hc3RTZXJ2aWNlKFRPQVNUUywgVHVpVG9hc3RDb21wb25lbnQsIGluamVjdChUVUlfVE9BU1RfT1BUSU9OUykpLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUb2FzdFNlcnZpY2UgZXh0ZW5kcyBUdWlQb3BvdmVyU2VydmljZTxUdWlUb2FzdE9wdGlvbnM8YW55Pj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uY3VycmVuY3kgPSBpbmplY3QoVFVJX1RPQVNUU19DT05DVVJSRU5DWSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHMgPSBpbmplY3QoVFVJX0FMRVJUUyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3ViID0gdGhpcy5pdGVtcyRcbiAgICAgICAgLnBpcGUocGFpcndpc2UoKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2LCBuZXh0XSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xvc2VkID0gcHJldi5maWx0ZXIoKGl0ZW0pID0+ICFuZXh0LmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgICAgIGNvbnN0IGFsZXJ0cyA9IHRoaXMuYWxlcnRzLnZhbHVlLmZpbHRlcigoaXRlbSkgPT4gIWNsb3NlZC5pbmNsdWRlcyhpdGVtKSk7XG4gICAgICAgICAgICBjb25zdCB0b2FzdHMgPSBuZXcgU2V0KFsuLi5hbGVydHMsIC4uLm5leHQuc2xpY2UoMCwgdGhpcy5jb25jdXJyZW5jeSldKTtcblxuICAgICAgICAgICAgdGhpcy5hbGVydHMubmV4dChBcnJheS5mcm9tKHRvYXN0cykpO1xuICAgICAgICB9KTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3R1aVRvYXN0XScsXG4gICAgaW5wdXRzOiBbJ29wdGlvbnM6IHR1aVRvYXN0T3B0aW9ucycsICdvcGVuOiB0dWlUb2FzdCddLFxuICAgIG91dHB1dHM6IFsnb3BlbkNoYW5nZTogdHVpVG9hc3RDaGFuZ2UnXSxcbiAgICBwcm92aWRlcnM6IFt0dWlBc1BvcG92ZXIoVHVpVG9hc3RTZXJ2aWNlKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRvYXN0VGVtcGxhdGU8VD4gZXh0ZW5kcyBUdWlQb3BvdmVyRGlyZWN0aXZlPFR1aVRvYXN0T3B0aW9uczxUPj4ge31cbiJdfQ==
@@ -1,11 +1,12 @@
1
1
  import { NgIf, NgForOf } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, Component, ChangeDetectionStrategy, Input, ViewEncapsulation, Directive } from '@angular/core';
4
- import { tuiProvideOptions, tuiIsString, tuiPure, tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
3
+ import { inject, Component, ChangeDetectionStrategy, Input, ViewEncapsulation, Directive } from '@angular/core';
4
+ import { tuiIsString, tuiPure, tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import * as i1 from '@taiga-ui/core/directives/appearance';
6
6
  import { tuiAppearanceOptionsProvider, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
7
7
  import * as i2 from '@taiga-ui/core/directives/icons';
8
8
  import { TuiIcons } from '@taiga-ui/core/directives/icons';
9
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
9
10
  import { __decorate } from 'tslib';
10
11
  import { TuiFade } from '@taiga-ui/kit/directives/fade';
11
12
 
@@ -14,12 +15,7 @@ const TUI_AVATAR_DEFAULT_OPTIONS = {
14
15
  round: true,
15
16
  size: 'l',
16
17
  };
17
- const TUI_AVATAR_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_AVATAR_OPTIONS' : '', {
18
- factory: () => TUI_AVATAR_DEFAULT_OPTIONS,
19
- });
20
- function tuiAvatarOptionsProvider(options) {
21
- return tuiProvideOptions(TUI_AVATAR_OPTIONS, options, TUI_AVATAR_DEFAULT_OPTIONS);
22
- }
18
+ const [TUI_AVATAR_OPTIONS, tuiAvatarOptionsProvider] = tuiCreateOptions(TUI_AVATAR_DEFAULT_OPTIONS);
23
19
 
24
20
  class TuiAvatar {
25
21
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-avatar.mjs","sources":["../../../projects/kit/components/avatar/avatar.options.ts","../../../projects/kit/components/avatar/avatar.component.ts","../../../projects/kit/components/avatar/avatar.template.html","../../../projects/kit/components/avatar/avatar-labeled.component.ts","../../../projects/kit/components/avatar/avatar-outline.directive.ts","../../../projects/kit/components/avatar/avatar-stack.component.ts","../../../projects/kit/components/avatar/taiga-ui-kit-components-avatar.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiSizeXS, type TuiSizeXXL} from '@taiga-ui/core/types';\n\nexport interface TuiAvatarOptions extends TuiAppearanceOptions {\n readonly appearance: string;\n readonly round: boolean;\n readonly size: TuiSizeXS | TuiSizeXXL;\n}\n\nexport const TUI_AVATAR_DEFAULT_OPTIONS: TuiAvatarOptions = {\n appearance: '',\n round: true,\n size: 'l',\n};\n\nexport const TUI_AVATAR_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_AVATAR_OPTIONS' : '',\n {\n factory: () => TUI_AVATAR_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiAvatarOptionsProvider(options: Partial<TuiAvatarOptions>): Provider {\n return tuiProvideOptions(TUI_AVATAR_OPTIONS, options, TUI_AVATAR_DEFAULT_OPTIONS);\n}\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {type SafeResourceUrl} from '@angular/platform-browser';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_AVATAR_OPTIONS} from './avatar.options';\n\n@Component({\n standalone: true,\n // TODO: Remove `tui-avatar` selector leaving only [tuiAvatar] in v5\n selector: 'tui-avatar,button[tuiAvatar],a[tuiAvatar]',\n imports: [NgIf],\n templateUrl: './avatar.template.html',\n styleUrls: ['./avatar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAppearanceOptionsProvider(TUI_AVATAR_OPTIONS)],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiIcons,\n inputs: ['iconStart: src'],\n },\n ],\n host: {\n '[attr.data-size]': 'size',\n '[attr.data-type]': 'type',\n '[class._round]': 'round',\n '[class._svg]': 'svg',\n },\n})\nexport class TuiAvatar {\n private readonly options = inject(TUI_AVATAR_OPTIONS);\n\n @Input()\n public size = this.options.size;\n\n @Input()\n public round = this.options.round;\n\n @Input()\n public src?: SafeResourceUrl | string | null;\n\n protected get value(): SafeResourceUrl | string {\n return this.src || '';\n }\n\n protected get svg(): boolean {\n return tuiIsString(this.value) && this.value.endsWith('.svg');\n }\n\n protected get type(): 'content' | 'icon' | 'img' | 'text' {\n if (this.value && !tuiIsString(this.value)) {\n return 'img';\n }\n\n if (this.value.startsWith('@tui.')) {\n return 'icon';\n }\n\n if (this.value.length > 0 && this.value.length < 3) {\n return 'text';\n }\n\n return this.value.length ? 'img' : 'content';\n }\n}\n","<img\n *ngIf=\"type === 'img'\"\n alt=\"\"\n loading=\"lazy\"\n [src]=\"value\"\n/>\n<ng-container *ngIf=\"type === 'text'\">{{ value }}</ng-container>\n<ng-content />\n","import {NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiFade} from '@taiga-ui/kit/directives/fade';\n\n@Component({\n standalone: true,\n selector: 'tui-avatar-labeled',\n imports: [NgForOf, NgIf, TuiFade],\n template: `\n <ng-content />\n <ng-container *ngIf=\"label.length\">\n <span\n *ngFor=\"let item of split(label)\"\n tuiFade\n >\n {{ item }}\n </span>\n </ng-container>\n `,\n styleUrls: ['./avatar-labeled.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiAvatarLabeled {\n @Input()\n public label = '';\n\n @tuiPure\n protected split(label: string): readonly string[] {\n return label.split(' ');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./avatar-outline.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-avatar-outline',\n },\n})\nclass TuiAvatarOutlineStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiAvatarOutline]',\n host: {\n '[style.--t-fill]': 'value',\n '[class._outline]': 'value',\n },\n})\nexport class TuiAvatarOutline {\n protected readonly nothing = tuiWithStyles(TuiAvatarOutlineStyles);\n\n @Input()\n public tuiAvatarOutline: string | null = '';\n\n protected get value(): string | null {\n return this.tuiAvatarOutline === ''\n ? 'var(--tui-background-accent-1)'\n : this.tuiAvatarOutline;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\n@Component({\n standalone: true,\n selector: 'tui-avatar-stack',\n template: '<ng-content />',\n styleUrls: ['./avatar-stack.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-direction]': 'direction',\n },\n})\nexport class TuiAvatarStack {\n @Input()\n public direction: TuiHorizontalDirection = 'right';\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-avatar.mjs","sources":["../../../projects/kit/components/avatar/avatar.options.ts","../../../projects/kit/components/avatar/avatar.component.ts","../../../projects/kit/components/avatar/avatar.template.html","../../../projects/kit/components/avatar/avatar-labeled.component.ts","../../../projects/kit/components/avatar/avatar-outline.directive.ts","../../../projects/kit/components/avatar/avatar-stack.component.ts","../../../projects/kit/components/avatar/taiga-ui-kit-components-avatar.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiSizeXS, type TuiSizeXXL} from '@taiga-ui/core/types';\n\nexport interface TuiAvatarOptions extends TuiAppearanceOptions {\n readonly appearance: string;\n readonly round: boolean;\n readonly size: TuiSizeXS | TuiSizeXXL;\n}\n\nexport const TUI_AVATAR_DEFAULT_OPTIONS: TuiAvatarOptions = {\n appearance: '',\n round: true,\n size: 'l',\n};\n\nexport const [TUI_AVATAR_OPTIONS, tuiAvatarOptionsProvider] = tuiCreateOptions(\n TUI_AVATAR_DEFAULT_OPTIONS,\n);\n","import {NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {type SafeResourceUrl} from '@angular/platform-browser';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_AVATAR_OPTIONS} from './avatar.options';\n\n@Component({\n standalone: true,\n // TODO: Remove `tui-avatar` selector leaving only [tuiAvatar] in v5\n selector: 'tui-avatar,button[tuiAvatar],a[tuiAvatar]',\n imports: [NgIf],\n templateUrl: './avatar.template.html',\n styleUrls: ['./avatar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAppearanceOptionsProvider(TUI_AVATAR_OPTIONS)],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiIcons,\n inputs: ['iconStart: src'],\n },\n ],\n host: {\n '[attr.data-size]': 'size',\n '[attr.data-type]': 'type',\n '[class._round]': 'round',\n '[class._svg]': 'svg',\n },\n})\nexport class TuiAvatar {\n private readonly options = inject(TUI_AVATAR_OPTIONS);\n\n @Input()\n public size = this.options.size;\n\n @Input()\n public round = this.options.round;\n\n @Input()\n public src?: SafeResourceUrl | string | null;\n\n protected get value(): SafeResourceUrl | string {\n return this.src || '';\n }\n\n protected get svg(): boolean {\n return tuiIsString(this.value) && this.value.endsWith('.svg');\n }\n\n protected get type(): 'content' | 'icon' | 'img' | 'text' {\n if (this.value && !tuiIsString(this.value)) {\n return 'img';\n }\n\n if (this.value.startsWith('@tui.')) {\n return 'icon';\n }\n\n if (this.value.length > 0 && this.value.length < 3) {\n return 'text';\n }\n\n return this.value.length ? 'img' : 'content';\n }\n}\n","<img\n *ngIf=\"type === 'img'\"\n alt=\"\"\n loading=\"lazy\"\n [src]=\"value\"\n/>\n<ng-container *ngIf=\"type === 'text'\">{{ value }}</ng-container>\n<ng-content />\n","import {NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiFade} from '@taiga-ui/kit/directives/fade';\n\n@Component({\n standalone: true,\n selector: 'tui-avatar-labeled',\n imports: [NgForOf, NgIf, TuiFade],\n template: `\n <ng-content />\n <ng-container *ngIf=\"label.length\">\n <span\n *ngFor=\"let item of split(label)\"\n tuiFade\n >\n {{ item }}\n </span>\n </ng-container>\n `,\n styleUrls: ['./avatar-labeled.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiAvatarLabeled {\n @Input()\n public label = '';\n\n @tuiPure\n protected split(label: string): readonly string[] {\n return label.split(' ');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./avatar-outline.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-avatar-outline',\n },\n})\nclass TuiAvatarOutlineStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiAvatarOutline]',\n host: {\n '[style.--t-fill]': 'value',\n '[class._outline]': 'value',\n },\n})\nexport class TuiAvatarOutline {\n protected readonly nothing = tuiWithStyles(TuiAvatarOutlineStyles);\n\n @Input()\n public tuiAvatarOutline: string | null = '';\n\n protected get value(): string | null {\n return this.tuiAvatarOutline === ''\n ? 'var(--tui-background-accent-1)'\n : this.tuiAvatarOutline;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiHorizontalDirection} from '@taiga-ui/core/types';\n\n@Component({\n standalone: true,\n selector: 'tui-avatar-stack',\n template: '<ng-content />',\n styleUrls: ['./avatar-stack.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-direction]': 'direction',\n },\n})\nexport class TuiAvatarStack {\n @Input()\n public direction: TuiHorizontalDirection = 'right';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -65,7 +65,7 @@ class TuiCheckbox {
65
65
  return icon && `url(${this.resolver(icon)})`;
66
66
  }
67
67
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCheckbox, isStandalone: true, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: { size: "size" }, host: { properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "getIcon(\"checked\")", "style.--t-indeterminate-icon": "getIcon(\"indeterminate\")" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiCheckbox]{--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:before{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";inline-size:1rem;block-size:1rem;margin:auto;background:currentColor;-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;transform:scale(0);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:disabled._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:checked:before,[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-checked-icon);mask-image:var(--t-checked-icon);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out,-webkit-mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-indeterminate-icon);mask-image:var(--t-indeterminate-icon)}[tuiCheckbox][data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox][data-size=s]:before{inline-size:.875rem;block-size:.875rem}[tuiCheckbox]:invalid:not([data-mode]),[tuiCheckbox][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCheckbox, isStandalone: true, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: { size: "size" }, host: { properties: { "disabled": "!control || control.disabled", "attr.data-size": "size", "class._readonly": "!control", "style.--t-checked-icon": "getIcon(\"checked\")", "style.--t-indeterminate-icon": "getIcon(\"indeterminate\")" } }, hostDirectives: [{ directive: i1.TuiAppearance, inputs: ["tuiAppearanceState", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceFocus", "tuiAppearanceMode", "tuiAppearanceMode"] }, { directive: i2.TuiNativeValidator }], ngImport: i0, template: '', isInline: true, styles: ["[tuiCheckbox]{--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:before{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";inline-size:1rem;block-size:1rem;margin:auto;background:currentColor;-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;transform:scale(0);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:checked:before,[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-checked-icon);mask-image:var(--t-checked-icon);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out,-webkit-mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-indeterminate-icon);mask-image:var(--t-indeterminate-icon)}[tuiCheckbox][data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox][data-size=s]:before{inline-size:.875rem;block-size:.875rem}[tuiCheckbox]:invalid:not([data-mode]),[tuiCheckbox][data-mode~=invalid]{color:#fff}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
69
69
  }
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCheckbox, decorators: [{
71
71
  type: Component,
@@ -81,7 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
81
81
  '[class._readonly]': '!control',
82
82
  '[style.--t-checked-icon]': 'getIcon("checked")',
83
83
  '[style.--t-indeterminate-icon]': 'getIcon("indeterminate")',
84
- }, styles: ["[tuiCheckbox]{--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:before{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";inline-size:1rem;block-size:1rem;margin:auto;background:currentColor;-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;transform:scale(0);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:disabled._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:checked:before,[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-checked-icon);mask-image:var(--t-checked-icon);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out,-webkit-mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-indeterminate-icon);mask-image:var(--t-indeterminate-icon)}[tuiCheckbox][data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox][data-size=s]:before{inline-size:.875rem;block-size:.875rem}[tuiCheckbox]:invalid:not([data-mode]),[tuiCheckbox][data-mode~=invalid]{color:#fff}\n"] }]
84
+ }, styles: ["[tuiCheckbox]{--t-size: 1.5rem;--t-radius: var(--tui-radius-s);inline-size:var(--t-size);block-size:var(--t-size);border-radius:var(--t-radius);cursor:pointer;margin:0;flex-shrink:0}[tuiCheckbox]:before{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";inline-size:1rem;block-size:1rem;margin:auto;background:currentColor;-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>') center / 100%;transform:scale(0);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s var(--tui-duration) ease-in-out,-webkit-mask 0s var(--tui-duration) ease-in-out}[tuiCheckbox]:disabled._readonly._readonly{opacity:1;pointer-events:none}[tuiCheckbox]:checked:before,[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-checked-icon);mask-image:var(--t-checked-icon);transform:scale(1);transition:transform var(--tui-duration) ease-in-out,-webkit-mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out;transition:transform var(--tui-duration) ease-in-out,mask 0s ease-in-out,-webkit-mask 0s ease-in-out;transition-duration:inherit}[tuiCheckbox]:indeterminate:before{-webkit-mask-image:var(--t-indeterminate-icon);mask-image:var(--t-indeterminate-icon)}[tuiCheckbox][data-size=s]{--t-size: 1rem;--t-radius: var(--tui-radius-xs)}[tuiCheckbox][data-size=s]:before{inline-size:.875rem;block-size:.875rem}[tuiCheckbox]:invalid:not([data-mode]),[tuiCheckbox][data-mode~=invalid]{color:#fff}\n"] }]
85
85
  }], propDecorators: { size: [{
86
86
  type: Input
87
87
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-checkbox.mjs","sources":["../../../projects/kit/components/checkbox/checkbox.options.ts","../../../projects/kit/components/checkbox/checkbox.component.ts","../../../projects/kit/components/checkbox/taiga-ui-kit-components-checkbox.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 TuiCheckboxOptions {\n readonly size: TuiSizeS;\n readonly appearance: TuiStringHandler<HTMLInputElement> | string;\n readonly icons: Readonly<{\n checked: TuiStringHandler<TuiSizeS> | string;\n indeterminate: TuiStringHandler<TuiSizeS> | string;\n }>;\n}\n\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: TuiCheckboxOptions = {\n size: 'm',\n appearance: (el) =>\n el.checked || el.indeterminate ? 'primary' : 'outline-grayscale',\n icons: {\n checked: '@tui.check',\n indeterminate: '@tui.minus',\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_CHECKBOX_OPTIONS' : '',\n {\n factory: () => TUI_CHECKBOX_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiCheckboxOptionsProvider(\n options: Partial<TuiCheckboxOptions>,\n): Provider {\n return tuiProvideOptions(TUI_CHECKBOX_OPTIONS, options, TUI_CHECKBOX_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, NgModel} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiControlValue, 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_CHECKBOX_OPTIONS} from './checkbox.options';\n\n@Component({\n standalone: true,\n selector: 'input[type=\"checkbox\"][tuiCheckbox]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/checkbox.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n },\n\n TuiNativeValidator,\n ],\n host: {\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[class._readonly]': '!control',\n '[style.--t-checked-icon]': 'getIcon(\"checked\")',\n '[style.--t-indeterminate-icon]': 'getIcon(\"indeterminate\")',\n },\n})\nexport class TuiCheckbox implements OnInit, DoCheck {\n private readonly appearance = inject(TuiAppearance);\n private readonly options = inject(TUI_CHECKBOX_OPTIONS);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly resolver = tuiInjectIconResolver();\n private readonly destroyRef = inject(DestroyRef);\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n @Input()\n public size: TuiSizeS = this.options.size;\n\n public readonly control: NgControl | null = inject(NgControl, {\n optional: true,\n self: true,\n });\n\n public ngOnInit(): void {\n if (!this.control?.valueChanges) {\n return;\n }\n\n tuiControlValue(this.control)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n // https://github.com/angular/angular/issues/14988\n const fix =\n this.control instanceof NgModel && value === null\n ? this.control.model\n : value;\n\n this.el.indeterminate = fix === null;\n });\n }\n\n public ngDoCheck(): void {\n this.appearance.tuiAppearance = tuiIsString(this.options.appearance)\n ? this.options.appearance\n : this.options.appearance(this.el);\n }\n\n protected getIcon(state: 'checked' | 'indeterminate'): string {\n const option = this.options.icons[state];\n const icon = tuiIsString(option) ? option : option(this.size);\n\n return icon && `url(${this.resolver(icon)})`;\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-checkbox.mjs","sources":["../../../projects/kit/components/checkbox/checkbox.options.ts","../../../projects/kit/components/checkbox/checkbox.component.ts","../../../projects/kit/components/checkbox/taiga-ui-kit-components-checkbox.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 TuiCheckboxOptions {\n readonly size: TuiSizeS;\n readonly appearance: TuiStringHandler<HTMLInputElement> | string;\n readonly icons: Readonly<{\n checked: TuiStringHandler<TuiSizeS> | string;\n indeterminate: TuiStringHandler<TuiSizeS> | string;\n }>;\n}\n\nexport const TUI_CHECKBOX_DEFAULT_OPTIONS: TuiCheckboxOptions = {\n size: 'm',\n appearance: (el) =>\n el.checked || el.indeterminate ? 'primary' : 'outline-grayscale',\n icons: {\n checked: '@tui.check',\n indeterminate: '@tui.minus',\n },\n};\n\nexport const TUI_CHECKBOX_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_CHECKBOX_OPTIONS' : '',\n {\n factory: () => TUI_CHECKBOX_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiCheckboxOptionsProvider(\n options: Partial<TuiCheckboxOptions>,\n): Provider {\n return tuiProvideOptions(TUI_CHECKBOX_OPTIONS, options, TUI_CHECKBOX_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, NgModel} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiControlValue, 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_CHECKBOX_OPTIONS} from './checkbox.options';\n\n@Component({\n standalone: true,\n selector: 'input[type=\"checkbox\"][tuiCheckbox]',\n template: '',\n styles: ['@import \"@taiga-ui/kit/styles/components/checkbox.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TuiAppearance,\n inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n },\n\n TuiNativeValidator,\n ],\n host: {\n '[disabled]': '!control || control.disabled',\n '[attr.data-size]': 'size',\n '[class._readonly]': '!control',\n '[style.--t-checked-icon]': 'getIcon(\"checked\")',\n '[style.--t-indeterminate-icon]': 'getIcon(\"indeterminate\")',\n },\n})\nexport class TuiCheckbox implements OnInit, DoCheck {\n private readonly appearance = inject(TuiAppearance);\n private readonly options = inject(TUI_CHECKBOX_OPTIONS);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly resolver = tuiInjectIconResolver();\n private readonly destroyRef = inject(DestroyRef);\n private readonly el = tuiInjectElement<HTMLInputElement>();\n\n @Input()\n public size: TuiSizeS = this.options.size;\n\n public readonly control: NgControl | null = inject(NgControl, {\n optional: true,\n self: true,\n });\n\n public ngOnInit(): void {\n if (!this.control?.valueChanges) {\n return;\n }\n\n tuiControlValue(this.control)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n // https://github.com/angular/angular/issues/14988\n const fix =\n this.control instanceof NgModel && value === null\n ? this.control.model\n : value;\n\n this.el.indeterminate = fix === null;\n });\n }\n\n public ngDoCheck(): void {\n this.appearance.tuiAppearance = tuiIsString(this.options.appearance)\n ? this.options.appearance\n : this.options.appearance(this.el);\n }\n\n protected getIcon(state: 'checked' | 'indeterminate'): string {\n const option = this.options.icons[state];\n const icon = tuiIsString(option) ? option : option(this.size);\n\n return icon && `url(${this.resolver(icon)})`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAca,MAAA,4BAA4B,GAAuB;AAC5D,IAAA,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,CAAC,EAAE,KACX,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,aAAa,GAAG,SAAS,GAAG,mBAAmB;AACpE,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,aAAa,EAAE,YAAY;AAC9B,KAAA;EACH;AAEW,MAAA,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC;AACI,IAAA,OAAO,EAAE,MAAM,4BAA4B;AAC9C,CAAA,EACH;AAEI,SAAU,0BAA0B,CACtC,OAAoC,EAAA;IAEpC,OAAO,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAC1F;;ACZA,MAuBa,WAAW,CAAA;AAvBxB,IAAA,WAAA,GAAA;AAwBqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAQ,CAAA,QAAA,GAAG,qBAAqB,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAoB,CAAC;AAGpD,QAAA,IAAA,CAAA,IAAI,GAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAE1B,QAAA,IAAA,CAAA,OAAO,GAAqB,MAAM,CAAC,SAAS,EAAE;AAC1D,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC,CAAC;AAgCN,KAAA;IA9BU,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACxB,aAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7D,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;;YAEjB,MAAM,GAAG,GACL,IAAI,CAAC,OAAO,YAAY,OAAO,IAAI,KAAK,KAAK,IAAI;AAC7C,kBAAE,IAAI,CAAC,OAAO,CAAC,KAAK;kBAClB,KAAK,CAAC;YAEhB,IAAI,CAAC,EAAE,CAAC,aAAa,GAAG,GAAG,KAAK,IAAI,CAAC;AACzC,SAAC,CAAC,CAAC;KACV;IAEM,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAChE,cAAE,IAAI,CAAC,OAAO,CAAC,UAAU;cACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC1C;AAES,IAAA,OAAO,CAAC,KAAkC,EAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO,IAAI,IAAI,CAAA,IAAA,EAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;KAChD;+GA7CQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,+kBApBV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ytDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAoBH,WAAW,EAAA,UAAA,EAAA,CAAA;kBAvBvB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,qCAAqC,EACrC,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAC/B,cAAA,EAAA;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,aAAa;AACxB,4BAAA,MAAM,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;AAC5E,yBAAA;wBAED,kBAAkB;qBACrB,EACK,IAAA,EAAA;AACF,wBAAA,YAAY,EAAE,8BAA8B;AAC5C,wBAAA,kBAAkB,EAAE,MAAM;AAC1B,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,0BAA0B,EAAE,oBAAoB;AAChD,wBAAA,gCAAgC,EAAE,0BAA0B;AAC/D,qBAAA,EAAA,MAAA,EAAA,CAAA,ytDAAA,CAAA,EAAA,CAAA;8BAWM,IAAI,EAAA,CAAA;sBADV,KAAK;;;ACtDV;;AAEG;;;;"}
@@ -3,6 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { inject, Component, ChangeDetectionStrategy, Injectable } from '@angular/core';
4
4
  import { TuiAutoFocus } from '@taiga-ui/cdk/directives/auto-focus';
5
5
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
6
+ import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
6
7
  import { TuiButton } from '@taiga-ui/core/components/button';
7
8
  import { TUI_CONFIRM_WORDS } from '@taiga-ui/kit/tokens';
8
9
  import { injectContext, PolymorpheusOutlet, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
@@ -20,17 +21,19 @@ class TuiConfirm {
20
21
  return this.isMobile ? 'secondary' : 'flat';
21
22
  }
22
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- 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}\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\"\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
25
  }
25
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirm, decorators: [{
26
27
  type: Component,
27
- 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}\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\"\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
29
  }] });
29
30
  const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);
31
+ const TUI_CONFIRM_DIALOG = tuiCreateToken(TUI_CONFIRM);
30
32
 
31
33
  class TuiConfirmService {
32
34
  constructor() {
33
35
  this.dialogs = inject(TuiDialogService);
36
+ this.component = inject(TUI_CONFIRM_DIALOG);
34
37
  this.dirty = false;
35
38
  }
36
39
  markAsDirty() {
@@ -39,12 +42,11 @@ class TuiConfirmService {
39
42
  markAsPristine() {
40
43
  this.dirty = false;
41
44
  }
42
- withConfirm(options) {
45
+ withConfirm(
46
+ // TODO: Replace with NoInfer in v5
47
+ options) {
43
48
  return defer(() => this.dirty
44
- ? this.dialogs.open(TUI_CONFIRM, {
45
- size: 's',
46
- ...options,
47
- })
49
+ ? this.dialogs.open(this.component, { size: 's', ...options })
48
50
  : of(true));
49
51
  }
50
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiConfirmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -58,5 +60,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
58
60
  * Generated bundle index. Do not edit.
59
61
  */
60
62
 
61
- export { TUI_CONFIRM, TuiConfirm, TuiConfirmService };
63
+ export { TUI_CONFIRM, TUI_CONFIRM_DIALOG, TuiConfirm, TuiConfirmService };
62
64
  //# sourceMappingURL=taiga-ui-kit-components-confirm.mjs.map
@@ -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 {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);\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, type TuiConfirmData} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\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(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\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\"\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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"}
@@ -168,11 +168,16 @@ class TuiInputChipBaseDirective extends TuiControl {
168
168
  }
169
169
  onBackspace(key) {
170
170
  // (keydown.backspace) doesn't emit event on empty input in ios safari
171
- if (key === 'Backspace' &&
172
- !this.textfield.value() &&
173
- this.interactive() &&
174
- (this.mobile || !this.textfield.item)) {
175
- this.onChange(this.value().slice(0, -1));
171
+ if (key === 'Backspace' && !this.textfield.value() && this.interactive()) {
172
+ if (this.mobile || !this.textfield.item) {
173
+ this.onChange(this.value().slice(0, -1));
174
+ }
175
+ else {
176
+ this.el.dispatchEvent(new KeyboardEvent('keydown', {
177
+ key: 'ArrowLeft',
178
+ bubbles: true,
179
+ }));
180
+ }
176
181
  }
177
182
  }
178
183
  scrollTo() {